From e41869d1fcac91167d6cc4d56c45b917d9559d35 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 31 Jan 2022 10:25:18 +0530 Subject: [PATCH 01/35] feat(lib/babe): implement secondary slot block production --- lib/babe/babe.go | 3 ++- lib/babe/build.go | 54 +++++++++++++++++++++++++++++++++++-------- lib/babe/crypto.go | 41 ++++++++++++++++++++++++++++++++ lib/babe/epoch.go | 19 ++++++++++++++- lib/babe/secondary.go | 1 + lib/babe/types.go | 1 + 6 files changed, 107 insertions(+), 12 deletions(-) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 548bf18e9d..4e9219168d 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -49,7 +49,8 @@ type Service struct { slotDuration time.Duration epochData *epochData // for slots where we are a producer, store the vrf output (bytes 0-32) + proof (bytes 32-96) - slotToProof map[uint64]*VrfOutputAndProof + slotToProof map[uint64]*VrfOutputAndProof + slotToIfPrimary map[uint64]bool // State variables sync.RWMutex diff --git a/lib/babe/build.go b/lib/babe/build.go index c24ff97ccd..7a69929ead 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -32,6 +32,7 @@ func (b *Service) buildBlock(parent *types.Header, slot Slot, rt runtime.Instanc b.blockState, b.slotToProof, b.epochData.authorityIndex, + b.slotToIfPrimary, ) if err != nil { return nil, fmt.Errorf("failed to create block builder: %w", err) @@ -62,12 +63,13 @@ type BlockBuilder struct { blockState BlockState slotToProof map[uint64]*VrfOutputAndProof currentAuthorityIndex uint32 + slotToIfPrimary map[uint64]bool } // NewBlockBuilder creates a new block builder. func NewBlockBuilder(kp *sr25519.Keypair, ts TransactionState, bs BlockState, sp map[uint64]*VrfOutputAndProof, - authidx uint32) (*BlockBuilder, error) { + authidx uint32, slotToIfPrimary map[uint64]bool) (*BlockBuilder, error) { if ts == nil { return nil, errors.New("cannot create block builder; transaction state is nil") } @@ -195,25 +197,46 @@ func (b *BlockBuilder) buildBlockSeal(header *types.Header) (*types.SealDigest, // buildBlockPreDigest creates the pre-digest for the slot. // the pre-digest consists of the ConsensusEngineID and the encoded BABE header for the slot. func (b *BlockBuilder) buildBlockPreDigest(slot Slot) (*types.PreRuntimeDigest, error) { - babeHeader := types.NewBabeDigest() - data, err := b.buildBlockBABEPrimaryPreDigest(slot) - if err != nil { - return nil, err + + // check if secondary slot + isPrimary, ok := b.slotToIfPrimary[slot.number] + if !ok { + return nil, ErrNotAuthorized } - err = babeHeader.Set(*data) - if err != nil { - return nil, err + // TODO: if author_secondary_vrf enabled, use SecondaryVRF + // otherwise BlockBabeSecondaryPlainPreDigest + babeHeader := types.NewBabeDigest() + if isPrimary { + data, err := b.buildBlockBABEPrimaryPreDigest(slot) + if err != nil { + return nil, err + } + + err = babeHeader.Set(*data) + if err != nil { + return nil, err + } + } else { + data, err := b.buildBlockBabeSecondaryPlainPreDigest(slot) + if err != nil { + return nil, err + } + + err = babeHeader.Set(*data) + if err != nil { + return nil, err + } } - encBABEPrimaryPreDigest, err := scale.Marshal(babeHeader) + encBABEPreDigest, err := scale.Marshal(babeHeader) if err != nil { return nil, err } return &types.PreRuntimeDigest{ ConsensusEngineID: types.BabeEngineID, - Data: encBABEPrimaryPreDigest, + Data: encBABEPreDigest, }, nil } @@ -233,6 +256,17 @@ func (b *BlockBuilder) buildBlockBABEPrimaryPreDigest(slot Slot) (*types.BabePri ), nil } +func (b *BlockBuilder) buildBlockBabeSecondaryPlainPreDigest(slot Slot) (*types.BabeSecondaryPlainPreDigest, error) { + if b.slotToProof[slot.number] == nil { + return nil, ErrNotAuthorized + } + + return &types.BabeSecondaryPlainPreDigest{ + AuthorityIndex: b.currentAuthorityIndex, + SlotNumber: slot.number, + }, nil +} + // buildBlockExtrinsics applies extrinsics to the block. it returns an array of included extrinsics. // for each extrinsic in queue, add it to the block, until the slot ends or the block is full. // if any extrinsic fails, it returns an empty array and an error. diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index f3dfe4d2ac..ea9bc2817a 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -4,11 +4,13 @@ package babe import ( + "bytes" "errors" "fmt" "math" "math/big" + "github.com/ChainSafe/gossamer/dot/types" "github.com/ChainSafe/gossamer/lib/crypto" "github.com/ChainSafe/gossamer/lib/crypto/sr25519" "github.com/ChainSafe/gossamer/pkg/scale" @@ -83,6 +85,45 @@ func checkPrimaryThreshold(randomness Randomness, return inoutUint.Compare(threshold) < 0, nil } +func i32toBytes(val uint32) []byte { + r := make([]byte, 4) + for i := uint32(0); i < 4; i++ { + r[i] = byte((val >> (8 * i)) & 0xff) + } + return r +} + +func claimSecondarySlot(randomness Randomness, + slot, epoch uint64, + authorities []types.Authority, + threshold *scale.Uint128, + keypair *sr25519.Keypair, +) (*VrfOutputAndProof, error) { + + secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) + if err != nil { + return nil, err + } + + for _, authority := range authorities { + if bytes.Equal(authority.ToRaw().Key[:], i32toBytes(secondarySlotAuthor)) { + transcript := makeTranscript(randomness, slot, epoch) + + out, proof, err := keypair.VrfSign(transcript) + if err != nil { + return nil, err + } + + return &VrfOutputAndProof{ + output: out, + proof: proof, + }, nil + } + } + + return nil, nil +} + // CalculateThreshold calculates the slot lottery threshold // equation: threshold = 2^128 * (1 - (1-c)^(1/len(authorities)) // see https://github.com/paritytech/substrate/blob/master/client/consensus/babe/src/authorship.rs#L44 diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index ffd3913c52..4101a644bf 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -65,6 +65,7 @@ func (b *Service) initiateEpoch(epoch uint64) error { authorities: data.Authorities, authorityIndex: idx, threshold: threshold, + secondary: cfgData.SecondarySlots, } } else { b.epochData = &epochData{ @@ -174,11 +175,27 @@ func (b *Service) incrementEpoch() (uint64, error) { // if it is not authorised. // output = return[0:32]; proof = return[32:96] func (b *Service) runLottery(slot, epoch uint64) (*VrfOutputAndProof, error) { - return claimPrimarySlot( + // here: If we can't claim primary slot, claim secondary slot + proof, err := claimPrimarySlot( b.epochData.randomness, slot, epoch, b.epochData.threshold, b.keypair, ) + if err == nil { + b.slotToIfPrimary[slot] = true + return proof, nil + } + + if b.epochData.secondary != 1 && b.epochData.secondary != 2 { + return nil, err + } + + if errors.Is(err, errOverPrimarySlotThreshold) { + b.slotToIfPrimary[slot] = false + return claimSecondarySlot(b.epochData.randomness, slot, epoch, b.epochData.authorities, b.epochData.threshold, b.keypair) + } + + return proof, err } diff --git a/lib/babe/secondary.go b/lib/babe/secondary.go index 16c145ae1e..55bdc00614 100644 --- a/lib/babe/secondary.go +++ b/lib/babe/secondary.go @@ -12,6 +12,7 @@ import ( "github.com/ChainSafe/gossamer/lib/crypto/sr25519" ) +// https://github.com/paritytech/substrate/blob/b07765f9ecc4c508fb4d0fba930b476c8509f5c2/client/consensus/babe/src/authorship.rs#L98 func getSecondarySlotAuthor(slot uint64, numAuths int, randomness Randomness) (uint32, error) { s := make([]byte, 8) binary.LittleEndian.PutUint64(s, slot) diff --git a/lib/babe/types.go b/lib/babe/types.go index 30a5bd96c3..901ee59e88 100644 --- a/lib/babe/types.go +++ b/lib/babe/types.go @@ -60,6 +60,7 @@ type epochData struct { authorityIndex uint32 authorities []types.Authority threshold *scale.Uint128 + secondary byte } func (ed *epochData) String() string { From ea2729c37ca9daf82450cbcf9d093625ee364af6 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Feb 2022 18:23:18 +0530 Subject: [PATCH 02/35] Initialize the map --- lib/babe/babe.go | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 4e9219168d..f4ce85d37f 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -107,6 +107,7 @@ func NewService(cfg *ServiceConfig) (*Service, error) { keypair: cfg.Keypair, transactionState: cfg.TransactionState, slotToProof: make(map[uint64]*VrfOutputAndProof), + slotToIfPrimary: make(map[uint64]bool), pause: make(chan struct{}), authority: cfg.Authority, dev: cfg.IsDev, From a42b7120de5849812d50bd242762652954e38e49 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Feb 2022 18:44:06 +0530 Subject: [PATCH 03/35] adjusting to new babe changes --- lib/babe/babe.go | 1 - lib/babe/epoch.go | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index ef126e4859..0c56886e66 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -45,7 +45,6 @@ type Service struct { // BABE authority keypair keypair *sr25519.Keypair // TODO: change to BABE keystore (#1864) - epochData *epochData // for slots where we are a producer, store the vrf output (bytes 0-32) + proof (bytes 32-96) slotToIfPrimary map[uint64]bool diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index fc19445307..d0babd9d39 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -138,6 +138,7 @@ func (b *Service) getEpochDataAndStartSlot(epoch uint64) (*epochData, uint64, er authorities: data.Authorities, authorityIndex: idx, threshold: threshold, + secondary: cfgData.SecondarySlots, } startSlot, err := b.epochState.GetStartSlotForEpoch(epoch) @@ -234,13 +235,13 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutp return proof, nil } - if b.epochData.secondary != 1 && b.epochData.secondary != 2 { + if epochData.secondary != 1 && epochData.secondary != 2 { return nil, err } if errors.Is(err, errOverPrimarySlotThreshold) { b.slotToIfPrimary[slot] = false - return claimSecondarySlot(b.epochData.randomness, slot, epoch, b.epochData.authorities, b.epochData.threshold, b.keypair) + return claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair) } return proof, err From a3d7d4a38d3f9c5c0096ae8bd37abdb04a86b143 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Feb 2022 21:57:42 +0530 Subject: [PATCH 04/35] adjusting to new babe changes --- lib/babe/babe.go | 4 ++-- lib/babe/build.go | 17 ++++++----------- lib/babe/crypto.go | 16 +++++----------- lib/babe/epoch.go | 2 +- lib/babe/epoch_handler.go | 35 ++++++++++++++++++++++++----------- 5 files changed, 38 insertions(+), 36 deletions(-) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 0c56886e66..012aac7e77 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -404,7 +404,7 @@ func (b *Service) handleEpoch(epoch uint64) (next uint64, err error) { return next, nil } -func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof) error { +func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof, ifPrimary bool) error { parentHeader, err := b.blockState.BestBlockHeader() if err != nil { return err @@ -446,7 +446,7 @@ func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, proof rt.SetContextStorage(ts) - block, err := b.buildBlock(parent, currentSlot, rt, authorityIndex, proof) + block, err := b.buildBlock(parent, currentSlot, rt, authorityIndex, proof, ifPrimary) if err != nil { return err } diff --git a/lib/babe/build.go b/lib/babe/build.go index fdd857d9b1..0c823bb2a5 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -26,7 +26,7 @@ const ( // construct a block for this slot with the given parent func (b *Service) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance, - authorityIndex uint32, proof *VrfOutputAndProof) (*types.Block, error) { + authorityIndex uint32, proof *VrfOutputAndProof, ifPrimary bool) (*types.Block, error) { builder, err := NewBlockBuilder( b.keypair, b.transactionState, @@ -43,7 +43,7 @@ func (b *Service) buildBlock(parent *types.Header, slot Slot, rt runtime.Instanc ethmetrics.Enabled = true start := time.Now() - block, err := builder.buildBlock(parent, slot, rt) + block, err := builder.buildBlock(parent, slot, rt, ifPrimary) if err != nil { builderErrors := ethmetrics.GetOrRegisterCounter(buildBlockErrors, nil) builderErrors.Inc(1) @@ -62,7 +62,6 @@ type BlockBuilder struct { blockState BlockState proof *VrfOutputAndProof currentAuthorityIndex uint32 - slotToIfPrimary map[uint64]bool } // NewBlockBuilder creates a new block builder. @@ -90,11 +89,11 @@ func NewBlockBuilder(kp *sr25519.Keypair, ts TransactionState, return bb, nil } -func (b *BlockBuilder) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance) (*types.Block, error) { +func (b *BlockBuilder) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance, ifPrimary bool) (*types.Block, error) { logger.Tracef("build block with parent %s and slot: %s", parent, slot) // create pre-digest - preDigest, err := b.buildBlockPreDigest(slot) + preDigest, err := b.buildBlockPreDigest(slot, ifPrimary) if err != nil { return nil, err } @@ -195,18 +194,14 @@ func (b *BlockBuilder) buildBlockSeal(header *types.Header) (*types.SealDigest, // buildBlockPreDigest creates the pre-digest for the slot. // the pre-digest consists of the ConsensusEngineID and the encoded BABE header for the slot. -func (b *BlockBuilder) buildBlockPreDigest(slot Slot) (*types.PreRuntimeDigest, error) { +func (b *BlockBuilder) buildBlockPreDigest(slot Slot, ifPrimary bool) (*types.PreRuntimeDigest, error) { // check if secondary slot - isPrimary, ok := b.slotToIfPrimary[slot.number] - if !ok { - return nil, ErrNotAuthorized - } // TODO: if author_secondary_vrf enabled, use SecondaryVRF // otherwise BlockBabeSecondaryPlainPreDigest babeHeader := types.NewBabeDigest() - if isPrimary { + if ifPrimary { data := b.buildBlockBABEPrimaryPreDigest(slot) err := babeHeader.Set(*data) if err != nil { diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index ea9bc2817a..eb0acfc426 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -4,7 +4,6 @@ package babe import ( - "bytes" "errors" "fmt" "math" @@ -85,14 +84,6 @@ func checkPrimaryThreshold(randomness Randomness, return inoutUint.Compare(threshold) < 0, nil } -func i32toBytes(val uint32) []byte { - r := make([]byte, 4) - for i := uint32(0); i < 4; i++ { - r[i] = byte((val >> (8 * i)) & 0xff) - } - return r -} - func claimSecondarySlot(randomness Randomness, slot, epoch uint64, authorities []types.Authority, @@ -105,8 +96,8 @@ func claimSecondarySlot(randomness Randomness, return nil, err } - for _, authority := range authorities { - if bytes.Equal(authority.ToRaw().Key[:], i32toBytes(secondarySlotAuthor)) { + for authority_index := range authorities { + if authority_index == int(secondarySlotAuthor) { transcript := makeTranscript(randomness, slot, epoch) out, proof, err := keypair.VrfSign(transcript) @@ -114,6 +105,8 @@ func claimSecondarySlot(randomness Randomness, return nil, err } + logger.Debugf("claimed secondary slot, for slot number: %d", slot) + return &VrfOutputAndProof{ output: out, proof: proof, @@ -121,6 +114,7 @@ func claimSecondarySlot(randomness Randomness, } } + // It is not our turn to propose return nil, nil } diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index d0babd9d39..a949c530a5 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -244,5 +244,5 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutp return claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair) } - return proof, err + return nil, err } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 9b60455aef..a2989b55bf 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -13,7 +13,7 @@ import ( "github.com/ChainSafe/gossamer/lib/crypto/sr25519" ) -type handleSlotFunc = func(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof) error +type handleSlotFunc = func(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof, ifPrimary bool) error var ( errEpochPast = errors.New("cannot run epoch that has already passed") @@ -27,7 +27,8 @@ type epochHandler struct { epochData *epochData // for slots where we are a producer, store the vrf output (bytes 0-32) + proof (bytes 32-96) - slotToProof map[uint64]*VrfOutputAndProof + slotToProof map[uint64]*VrfOutputAndProof + slotToIfPrimary map[uint64]bool handleSlot handleSlotFunc } @@ -36,6 +37,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta handleSlot handleSlotFunc, keypair *sr25519.Keypair) (*epochHandler, error) { // determine which slots we'll be authoring in by pre-calculating VRF output slotToProof := make(map[uint64]*VrfOutputAndProof, constants.epochLength) + slotToIfPrimary := make(map[uint64]bool) for i := firstSlot; i < firstSlot+constants.epochLength; i++ { proof, err := claimPrimarySlot( epochData.randomness, @@ -44,23 +46,34 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta epochData.threshold, keypair, ) - if errors.Is(err, errOverPrimarySlotThreshold) { + if err == nil { + slotToProof[i] = proof + slotToIfPrimary[i] = true + logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) continue - } else if err != nil { + } + if !errors.Is(err, errOverPrimarySlotThreshold) { + return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) + } + + proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, epochData.threshold, keypair) + if err != nil { return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } slotToProof[i] = proof + slotToIfPrimary[i] = false logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) } return &epochHandler{ - epochNumber: epochNumber, - firstSlot: firstSlot, - constants: constants, - epochData: epochData, - slotToProof: slotToProof, - handleSlot: handleSlot, + epochNumber: epochNumber, + firstSlot: firstSlot, + constants: constants, + epochData: epochData, + slotToProof: slotToProof, + handleSlot: handleSlot, + slotToIfPrimary: slotToIfPrimary, }, nil } @@ -124,7 +137,7 @@ func (h *epochHandler) run(ctx context.Context, errCh chan<- error) { panic(fmt.Sprintf("no VRF proof for authoring slot! slot=%d", swt.slotNum)) } - err := h.handleSlot(h.epochNumber, swt.slotNum, h.epochData.authorityIndex, h.slotToProof[swt.slotNum]) + err := h.handleSlot(h.epochNumber, swt.slotNum, h.epochData.authorityIndex, h.slotToProof[swt.slotNum], h.slotToIfPrimary[swt.slotNum]) if err != nil { logger.Warnf("failed to handle slot %d: %s", swt.slotNum, err) continue From 25bddae21f0180cdfed4a6b2df1fe20a6f8c06fe Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Fri, 4 Feb 2022 21:57:41 +0530 Subject: [PATCH 05/35] fixed some errors and addressed reviews --- dot/sync/chain_processor.go | 15 ++++++++++++--- lib/babe/babe.go | 4 ---- lib/babe/build.go | 3 +-- lib/babe/crypto.go | 25 ++++++++++++------------- lib/babe/epoch.go | 7 +++---- lib/babe/epoch_handler.go | 2 +- 6 files changed, 29 insertions(+), 27 deletions(-) diff --git a/dot/sync/chain_processor.go b/dot/sync/chain_processor.go index 0d0024f8cc..f85793ccb5 100644 --- a/dot/sync/chain_processor.go +++ b/dot/sync/chain_processor.go @@ -103,15 +103,24 @@ func (s *chainProcessor) processReadyBlocks() { } // processBlockData processes the BlockData from a BlockResponse and -// eturns the index of the last BlockData it handled on success, +// returns the index of the last BlockData it handled on success, // or the index of the block data that errored on failure. func (s *chainProcessor) processBlockData(bd *types.BlockData) error { if bd == nil { return ErrNilBlockData } - hasHeader, _ := s.blockState.HasHeader(bd.Hash) - hasBody, _ := s.blockState.HasBlockBody(bd.Hash) + hasHeader, err := s.blockState.HasHeader(bd.Hash) + if err != nil { + logger.Debugf("failed to check if block state has header for hash %s: %s", bd.Hash, err) + return err + } + hasBody, err := s.blockState.HasBlockBody(bd.Hash) + if err != nil { + logger.Debugf("failed to check block state has body for hash %s: %s", bd.Hash, err) + return err + } + if hasHeader && hasBody { // TODO: fix this; sometimes when the node shuts down the "best block" isn't stored properly, // so when the node restarts it has blocks higher than what it thinks is the best, causing it not to sync diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 012aac7e77..6ac2b44591 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -45,9 +45,6 @@ type Service struct { // BABE authority keypair keypair *sr25519.Keypair // TODO: change to BABE keystore (#1864) - // for slots where we are a producer, store the vrf output (bytes 0-32) + proof (bytes 32-96) - slotToIfPrimary map[uint64]bool - // State variables sync.RWMutex pause chan struct{} @@ -111,7 +108,6 @@ func NewService(cfg *ServiceConfig) (*Service, error) { epochState: cfg.EpochState, keypair: cfg.Keypair, transactionState: cfg.TransactionState, - slotToIfPrimary: make(map[uint64]bool), pause: make(chan struct{}), authority: cfg.Authority, dev: cfg.IsDev, diff --git a/lib/babe/build.go b/lib/babe/build.go index 0c823bb2a5..5c7575c37f 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -33,7 +33,6 @@ func (b *Service) buildBlock(parent *types.Header, slot Slot, rt runtime.Instanc b.blockState, proof, authorityIndex, - b.slotToIfPrimary, ) if err != nil { return nil, fmt.Errorf("failed to create block builder: %w", err) @@ -67,7 +66,7 @@ type BlockBuilder struct { // NewBlockBuilder creates a new block builder. func NewBlockBuilder(kp *sr25519.Keypair, ts TransactionState, bs BlockState, proof *VrfOutputAndProof, - authidx uint32, slotToIfPrimary map[uint64]bool) (*BlockBuilder, error) { + authidx uint32) (*BlockBuilder, error) { if ts == nil { return nil, ErrNilTransactionState } diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index eb0acfc426..f0ba87e061 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -89,6 +89,7 @@ func claimSecondarySlot(randomness Randomness, authorities []types.Authority, threshold *scale.Uint128, keypair *sr25519.Keypair, + authorityIndex uint32, ) (*VrfOutputAndProof, error) { secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) @@ -96,22 +97,20 @@ func claimSecondarySlot(randomness Randomness, return nil, err } - for authority_index := range authorities { - if authority_index == int(secondarySlotAuthor) { - transcript := makeTranscript(randomness, slot, epoch) + if int(authorityIndex) == int(secondarySlotAuthor) { + transcript := makeTranscript(randomness, slot, epoch) - out, proof, err := keypair.VrfSign(transcript) - if err != nil { - return nil, err - } + out, proof, err := keypair.VrfSign(transcript) + if err != nil { + return nil, err + } - logger.Debugf("claimed secondary slot, for slot number: %d", slot) + logger.Debugf("claimed secondary slot, for slot number: %d", slot) - return &VrfOutputAndProof{ - output: out, - proof: proof, - }, nil - } + return &VrfOutputAndProof{ + output: out, + proof: proof, + }, nil } // It is not our turn to propose diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index a949c530a5..def2959f3d 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -223,6 +223,7 @@ func (b *Service) incrementEpoch() (uint64, error) { // if it is not authorised. // output = return[0:32]; proof = return[32:96] func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutputAndProof, error) { + // TODO: Check if whether to store if a primary slot was claimed? How? proof, err := claimPrimarySlot( epochData.randomness, slot, @@ -231,17 +232,15 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutp b.keypair, ) if err == nil { - b.slotToIfPrimary[slot] = true return proof, nil } - if epochData.secondary != 1 && epochData.secondary != 2 { + if epochData.secondary == 0 { return nil, err } if errors.Is(err, errOverPrimarySlotThreshold) { - b.slotToIfPrimary[slot] = false - return claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair) + return claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair, epochData.authorityIndex) } return nil, err diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index a2989b55bf..c24de05daa 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -56,7 +56,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } - proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, epochData.threshold, keypair) + proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, epochData.threshold, keypair, epochData.authorityIndex) if err != nil { return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } From 1c09237cde33d41be363c3c3dfbb03a70132aaa3 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 7 Feb 2022 13:59:19 +0530 Subject: [PATCH 06/35] Pass pre runtime digest through functions instead of storing proof in map and creating pre runtime digest later --- lib/babe/babe.go | 4 +- lib/babe/build.go | 81 +++++---------------------------------- lib/babe/epoch.go | 15 ++++++-- lib/babe/epoch_handler.go | 48 +++++++++++------------ 4 files changed, 48 insertions(+), 100 deletions(-) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 6ac2b44591..7f7fa3adeb 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -400,7 +400,7 @@ func (b *Service) handleEpoch(epoch uint64) (next uint64, err error) { return next, nil } -func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof, ifPrimary bool) error { +func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error { parentHeader, err := b.blockState.BestBlockHeader() if err != nil { return err @@ -442,7 +442,7 @@ func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, proof rt.SetContextStorage(ts) - block, err := b.buildBlock(parent, currentSlot, rt, authorityIndex, proof, ifPrimary) + block, err := b.buildBlock(parent, currentSlot, rt, authorityIndex, preRuntimeDigest) if err != nil { return err } diff --git a/lib/babe/build.go b/lib/babe/build.go index 5c7575c37f..36c6a31142 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -26,13 +26,13 @@ const ( // construct a block for this slot with the given parent func (b *Service) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance, - authorityIndex uint32, proof *VrfOutputAndProof, ifPrimary bool) (*types.Block, error) { + authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) (*types.Block, error) { builder, err := NewBlockBuilder( b.keypair, b.transactionState, b.blockState, - proof, authorityIndex, + preRuntimeDigest, ) if err != nil { return nil, fmt.Errorf("failed to create block builder: %w", err) @@ -42,7 +42,7 @@ func (b *Service) buildBlock(parent *types.Header, slot Slot, rt runtime.Instanc ethmetrics.Enabled = true start := time.Now() - block, err := builder.buildBlock(parent, slot, rt, ifPrimary) + block, err := builder.buildBlock(parent, slot, rt) if err != nil { builderErrors := ethmetrics.GetOrRegisterCounter(buildBlockErrors, nil) builderErrors.Inc(1) @@ -59,50 +59,41 @@ type BlockBuilder struct { keypair *sr25519.Keypair transactionState TransactionState blockState BlockState - proof *VrfOutputAndProof currentAuthorityIndex uint32 + preRuntimeDigest *types.PreRuntimeDigest } // NewBlockBuilder creates a new block builder. func NewBlockBuilder(kp *sr25519.Keypair, ts TransactionState, - bs BlockState, proof *VrfOutputAndProof, - authidx uint32) (*BlockBuilder, error) { + bs BlockState, + authidx uint32, preRuntimeDigest *types.PreRuntimeDigest) (*BlockBuilder, error) { if ts == nil { return nil, ErrNilTransactionState } if bs == nil { return nil, ErrNilBlockState } - if proof == nil { - return nil, ErrNilVRFProof - } bb := &BlockBuilder{ keypair: kp, transactionState: ts, blockState: bs, - proof: proof, currentAuthorityIndex: authidx, + preRuntimeDigest: preRuntimeDigest, } return bb, nil } -func (b *BlockBuilder) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance, ifPrimary bool) (*types.Block, error) { +func (b *BlockBuilder) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance) (*types.Block, error) { logger.Tracef("build block with parent %s and slot: %s", parent, slot) - // create pre-digest - preDigest, err := b.buildBlockPreDigest(slot, ifPrimary) - if err != nil { - return nil, err - } - - logger.Trace("built pre-digest") + preDigest := b.preRuntimeDigest // create new block header number := big.NewInt(0).Add(parent.Number, big.NewInt(1)) digest := types.NewDigest() - err = digest.Add(*preDigest) + err := digest.Add(*preDigest) if err != nil { return nil, err } @@ -191,58 +182,6 @@ func (b *BlockBuilder) buildBlockSeal(header *types.Header) (*types.SealDigest, }, nil } -// buildBlockPreDigest creates the pre-digest for the slot. -// the pre-digest consists of the ConsensusEngineID and the encoded BABE header for the slot. -func (b *BlockBuilder) buildBlockPreDigest(slot Slot, ifPrimary bool) (*types.PreRuntimeDigest, error) { - - // check if secondary slot - - // TODO: if author_secondary_vrf enabled, use SecondaryVRF - // otherwise BlockBabeSecondaryPlainPreDigest - babeHeader := types.NewBabeDigest() - if ifPrimary { - data := b.buildBlockBABEPrimaryPreDigest(slot) - err := babeHeader.Set(*data) - if err != nil { - return nil, fmt.Errorf("cannot set babe header: %w", err) - } - } else { - data := b.buildBlockBabeSecondaryPlainPreDigest(slot) - err := babeHeader.Set(*data) - if err != nil { - return nil, fmt.Errorf("cannot set babe header: %w", err) - } - } - - encBABEPreDigest, err := scale.Marshal(babeHeader) - if err != nil { - return nil, err - } - - return &types.PreRuntimeDigest{ - ConsensusEngineID: types.BabeEngineID, - Data: encBABEPreDigest, - }, nil -} - -// buildBlockBABEPrimaryPreDigest creates the BABE header for the slot. -// the BABE header includes the proof of authorship right for this slot. -func (b *BlockBuilder) buildBlockBABEPrimaryPreDigest(slot Slot) *types.BabePrimaryPreDigest { - return types.NewBabePrimaryPreDigest( - b.currentAuthorityIndex, - slot.number, - b.proof.output, - b.proof.proof, - ) -} - -func (b *BlockBuilder) buildBlockBabeSecondaryPlainPreDigest(slot Slot) *types.BabeSecondaryPlainPreDigest { - return &types.BabeSecondaryPlainPreDigest{ - AuthorityIndex: b.currentAuthorityIndex, - SlotNumber: slot.number, - } -} - // buildBlockExtrinsics applies extrinsics to the block. it returns an array of included extrinsics. // for each extrinsic in queue, add it to the block, until the slot ends or the block is full. // if any extrinsic fails, it returns an empty array and an error. diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index def2959f3d..5efaa48d4e 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -222,7 +222,7 @@ func (b *Service) incrementEpoch() (uint64, error) { // It returns the wrapped error errOverPrimarySlotThreshold // if it is not authorised. // output = return[0:32]; proof = return[32:96] -func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutputAndProof, error) { +func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.PreRuntimeDigest, error) { // TODO: Check if whether to store if a primary slot was claimed? How? proof, err := claimPrimarySlot( epochData.randomness, @@ -232,7 +232,9 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutp b.keypair, ) if err == nil { - return proof, nil + preRuntimeDigest := types.NewBabePrimaryPreDigest(epochData.authorityIndex, slot, proof.output, proof.proof) + + return preRuntimeDigest.ToPreRuntimeDigest() } if epochData.secondary == 0 { @@ -240,7 +242,14 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*VrfOutp } if errors.Is(err, errOverPrimarySlotThreshold) { - return claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair, epochData.authorityIndex) + proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair, epochData.authorityIndex) + if err != nil { + return nil, err + } + if proof != nil { + preRuntimeDigest := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot) + return preRuntimeDigest.ToPreRuntimeDigest() + } } return nil, err diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index c24de05daa..58de70d142 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -10,10 +10,11 @@ import ( "sort" "time" + "github.com/ChainSafe/gossamer/dot/types" "github.com/ChainSafe/gossamer/lib/crypto/sr25519" ) -type handleSlotFunc = func(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof, ifPrimary bool) error +type handleSlotFunc = func(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error var ( errEpochPast = errors.New("cannot run epoch that has already passed") @@ -26,9 +27,7 @@ type epochHandler struct { constants constants epochData *epochData - // for slots where we are a producer, store the vrf output (bytes 0-32) + proof (bytes 32-96) - slotToProof map[uint64]*VrfOutputAndProof - slotToIfPrimary map[uint64]bool + slotToPreRuntimeDigest map[uint64]*types.PreRuntimeDigest handleSlot handleSlotFunc } @@ -36,8 +35,7 @@ type epochHandler struct { func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, constants constants, handleSlot handleSlotFunc, keypair *sr25519.Keypair) (*epochHandler, error) { // determine which slots we'll be authoring in by pre-calculating VRF output - slotToProof := make(map[uint64]*VrfOutputAndProof, constants.epochLength) - slotToIfPrimary := make(map[uint64]bool) + slotToPreRuntimeDigest := make(map[uint64]*types.PreRuntimeDigest) for i := firstSlot; i < firstSlot+constants.epochLength; i++ { proof, err := claimPrimarySlot( epochData.randomness, @@ -47,8 +45,8 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta keypair, ) if err == nil { - slotToProof[i] = proof - slotToIfPrimary[i] = true + preRuntimeDigest, _ := types.NewBabePrimaryPreDigest(epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() + slotToPreRuntimeDigest[i] = preRuntimeDigest logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) continue } @@ -61,19 +59,21 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } - slotToProof[i] = proof - slotToIfPrimary[i] = false - logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) + if proof != nil { + preRuntimeDigest, _ := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, i).ToPreRuntimeDigest() + slotToPreRuntimeDigest[i] = preRuntimeDigest + logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) + } + } return &epochHandler{ - epochNumber: epochNumber, - firstSlot: firstSlot, - constants: constants, - epochData: epochData, - slotToProof: slotToProof, - handleSlot: handleSlot, - slotToIfPrimary: slotToIfPrimary, + epochNumber: epochNumber, + firstSlot: firstSlot, + constants: constants, + epochData: epochData, + handleSlot: handleSlot, + slotToPreRuntimeDigest: slotToPreRuntimeDigest, }, nil } @@ -92,7 +92,7 @@ func (h *epochHandler) run(ctx context.Context, errCh chan<- error) { // for each slot we're handling, create a timer that will fire when it starts // we create timers only for slots where we're authoring - authoringSlots := getAuthoringSlots(h.slotToProof) + authoringSlots := getAuthoringSlots(h.slotToPreRuntimeDigest) type slotWithTimer struct { timer *time.Timer @@ -132,12 +132,12 @@ func (h *epochHandler) run(ctx context.Context, errCh chan<- error) { case <-ctx.Done(): return case <-swt.timer.C: - if _, has := h.slotToProof[swt.slotNum]; !has { + if _, has := h.slotToPreRuntimeDigest[swt.slotNum]; !has { // this should never happen panic(fmt.Sprintf("no VRF proof for authoring slot! slot=%d", swt.slotNum)) } - err := h.handleSlot(h.epochNumber, swt.slotNum, h.epochData.authorityIndex, h.slotToProof[swt.slotNum], h.slotToIfPrimary[swt.slotNum]) + err := h.handleSlot(h.epochNumber, swt.slotNum, h.epochData.authorityIndex, h.slotToPreRuntimeDigest[swt.slotNum]) if err != nil { logger.Warnf("failed to handle slot %d: %s", swt.slotNum, err) continue @@ -148,9 +148,9 @@ func (h *epochHandler) run(ctx context.Context, errCh chan<- error) { // getAuthoringSlots returns an ordered slice of slot numbers where we can author blocks, // based on the given VRF output and proof map. -func getAuthoringSlots(slotToProof map[uint64]*VrfOutputAndProof) []uint64 { - authoringSlots := make([]uint64, 0, len(slotToProof)) - for authoringSlot := range slotToProof { +func getAuthoringSlots(slotToPreRuntimeDigest map[uint64]*types.PreRuntimeDigest) []uint64 { + authoringSlots := make([]uint64, 0, len(slotToPreRuntimeDigest)) + for authoringSlot := range slotToPreRuntimeDigest { authoringSlots = append(authoringSlots, authoringSlot) } From c25d9d6fe93b62f8e54c31fa3034eeb8162113c5 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 7 Feb 2022 16:43:09 +0530 Subject: [PATCH 07/35] adjusting some tests --- lib/babe/build.go | 4 +-- lib/babe/build_integration_test.go | 27 ++++++--------- lib/babe/epoch.go | 1 - lib/babe/epoch_handler_test.go | 11 +++--- lib/babe/verify_integration_test.go | 54 ++++++++++++++++++----------- 5 files changed, 52 insertions(+), 45 deletions(-) diff --git a/lib/babe/build.go b/lib/babe/build.go index 36c6a31142..2d4527e227 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -111,7 +111,7 @@ func (b *BlockBuilder) buildBlock(parent *types.Header, slot Slot, rt runtime.In logger.Trace("initialised block") // add block inherents - inherents, err := b.buildBlockInherents(slot, rt) + inherents, err := buildBlockInherents(slot, rt) if err != nil { return nil, fmt.Errorf("cannot build inherents: %s", err) } @@ -236,7 +236,7 @@ func (b *BlockBuilder) buildBlockExtrinsics(slot Slot, rt runtime.Instance) []*t return included } -func (b *BlockBuilder) buildBlockInherents(slot Slot, rt runtime.Instance) ([][]byte, error) { +func buildBlockInherents(slot Slot, rt runtime.Instance) ([][]byte, error) { // Setup inherents: add timstap0 idata := types.NewInherentsData() timestamp := uint64(time.Now().UnixMilli()) diff --git a/lib/babe/build_integration_test.go b/lib/babe/build_integration_test.go index 9f45248289..5f5e0bbfd6 100644 --- a/lib/babe/build_integration_test.go +++ b/lib/babe/build_integration_test.go @@ -41,15 +41,15 @@ func TestSeal(t *testing.T) { babeService.epochHandler, err = babeService.initiateAndGetEpochHandler(0) require.NoError(t, err) - authoringSlots := getAuthoringSlots(babeService.epochHandler.slotToProof) + authoringSlots := getAuthoringSlots(babeService.epochHandler.slotToPreRuntimeDigest) require.NotEmpty(t, authoringSlots) builder, _ := NewBlockBuilder( babeService.keypair, babeService.transactionState, babeService.blockState, - babeService.epochHandler.slotToProof[authoringSlots[0]], babeService.epochHandler.epochData.authorityIndex, + babeService.epochHandler.slotToPreRuntimeDigest[authoringSlots[0]], ) zeroHash, err := common.HexToHash("0x00") @@ -92,10 +92,10 @@ func createTestBlock(t *testing.T, babeService *Service, parent *types.Header, rt, err := babeService.blockState.GetRuntime(nil) require.NoError(t, err) - outAndProof, err := babeService.runLottery(slotNumber, epoch, epochData) + preRuntimeDigest, err := babeService.runLottery(slotNumber, epoch, epochData) require.NoError(t, err) - block, err := babeService.buildBlock(parent, slot, rt, epochData.authorityIndex, outAndProof) + block, err := babeService.buildBlock(parent, slot, rt, epochData.authorityIndex, preRuntimeDigest) require.NoError(t, err) babeService.blockState.StoreRuntime(block.Header.Hash(), rt) @@ -154,14 +154,6 @@ func TestApplyExtrinsic(t *testing.T) { babeService := createTestService(t, cfg) const authorityIndex = 0 - builder, _ := NewBlockBuilder( - babeService.keypair, - babeService.transactionState, - babeService.blockState, - &VrfOutputAndProof{}, - authorityIndex, - ) - duration, err := time.ParseDuration("1s") require.NoError(t, err) @@ -177,8 +169,9 @@ func TestApplyExtrinsic(t *testing.T) { duration: duration, number: 2, } + testVRFOutputAndProof := &VrfOutputAndProof{} - preDigest2, err := builder.buildBlockPreDigest(slot2) + preDigest2, err := types.NewBabePrimaryPreDigest(authorityIndex, slot2.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof).ToPreRuntimeDigest() require.NoError(t, err) parentHash := babeService.blockState.GenesisHash() @@ -190,7 +183,7 @@ func TestApplyExtrinsic(t *testing.T) { require.NoError(t, err) rt.SetContextStorage(ts) - preDigest, err := builder.buildBlockPreDigest(slot) + preDigest, err := types.NewBabePrimaryPreDigest(authorityIndex, slot.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof).ToPreRuntimeDigest() require.NoError(t, err) digest := types.NewDigest() @@ -204,7 +197,7 @@ func TestApplyExtrinsic(t *testing.T) { err = rt.InitializeBlock(header) require.NoError(t, err) - _, err = builder.buildBlockInherents(slot, rt) + _, err = buildBlockInherents(slot, rt) require.NoError(t, err) header1, err := rt.FinalizeBlock() @@ -223,7 +216,7 @@ func TestApplyExtrinsic(t *testing.T) { err = rt.InitializeBlock(header2) require.NoError(t, err) - _, err = builder.buildBlockInherents(slot, rt) + _, err = buildBlockInherents(slot, rt) require.NoError(t, err) res, err := rt.ApplyExtrinsic(extBytes) @@ -381,7 +374,7 @@ func TestBuildBlock_failing(t *testing.T) { require.NoError(t, err) const authorityIndex uint32 = 0 - _, err = babeService.buildBlock(parentHeader, slot, rt, authorityIndex, &VrfOutputAndProof{}) + _, err = babeService.buildBlock(parentHeader, slot, rt, authorityIndex, &types.PreRuntimeDigest{}) require.NotNil(t, err) require.Equal(t, "cannot build extrinsics: error applying extrinsic: Apply error, type: Payment", err.Error(), "Did not receive expected error text") diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 5efaa48d4e..dda9a7548d 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -223,7 +223,6 @@ func (b *Service) incrementEpoch() (uint64, error) { // if it is not authorised. // output = return[0:32]; proof = return[32:96] func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.PreRuntimeDigest, error) { - // TODO: Check if whether to store if a primary slot was claimed? How? proof, err := claimPrimarySlot( epochData.randomness, slot, diff --git a/lib/babe/epoch_handler_test.go b/lib/babe/epoch_handler_test.go index 201a1ad83d..0de6e840f6 100644 --- a/lib/babe/epoch_handler_test.go +++ b/lib/babe/epoch_handler_test.go @@ -8,6 +8,7 @@ import ( "testing" "time" + "github.com/ChainSafe/gossamer/dot/types" "github.com/ChainSafe/gossamer/lib/crypto/sr25519" "github.com/ChainSafe/gossamer/pkg/scale" @@ -15,7 +16,7 @@ import ( ) func TestNewEpochHandler(t *testing.T) { - testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof) error { + testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error { return nil } @@ -35,7 +36,7 @@ func TestNewEpochHandler(t *testing.T) { epochHandler, err := newEpochHandler(1, 9999, epochData, constants, testHandleSlotFunc, keypair) require.NoError(t, err) - require.Equal(t, 200, len(epochHandler.slotToProof)) + require.Equal(t, 200, len(epochHandler.slotToPreRuntimeDigest)) require.Equal(t, uint64(1), epochHandler.epochNumber) require.Equal(t, uint64(9999), epochHandler.firstSlot) require.Equal(t, constants, epochHandler.constants) @@ -49,7 +50,7 @@ func TestEpochHandler_run(t *testing.T) { startSlot := getCurrentSlot(sd) var callsToHandleSlot, firstExecutedSlot uint64 - testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, proof *VrfOutputAndProof) error { + testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error { require.Equal(t, uint64(1), epoch) if callsToHandleSlot == 0 { firstExecutedSlot = slotNum @@ -57,7 +58,7 @@ func TestEpochHandler_run(t *testing.T) { require.Equal(t, firstExecutedSlot+callsToHandleSlot, slotNum) } require.Equal(t, uint32(0), authorityIndex) - require.NotNil(t, proof) + require.NotNil(t, preRuntimeDigest) callsToHandleSlot++ return nil } @@ -78,7 +79,7 @@ func TestEpochHandler_run(t *testing.T) { defer cancel() epochHandler, err := newEpochHandler(1, startSlot, epochData, constants, testHandleSlotFunc, keypair) require.NoError(t, err) - require.Equal(t, epochLength, uint64(len(epochHandler.slotToProof))) + require.Equal(t, epochLength, uint64(len(epochHandler.slotToPreRuntimeDigest))) errCh := make(chan error) go epochHandler.run(ctx, errCh) diff --git a/lib/babe/verify_integration_test.go b/lib/babe/verify_integration_test.go index 9accad6ff9..f57645f591 100644 --- a/lib/babe/verify_integration_test.go +++ b/lib/babe/verify_integration_test.go @@ -10,7 +10,6 @@ import ( "errors" "math/big" "testing" - "time" "github.com/ChainSafe/gossamer/dot/state" "github.com/ChainSafe/gossamer/dot/types" @@ -338,28 +337,45 @@ func TestVerifyPimarySlotWinner(t *testing.T) { const slotNumber uint64 = 1 - outAndProof, err := babeService.runLottery(slotNumber, testEpochIndex, epochData) + preRuntimeDigest, err := babeService.runLottery(slotNumber, testEpochIndex, epochData) require.NoError(t, err) - builder, _ := NewBlockBuilder( - babeService.keypair, - babeService.transactionState, - babeService.blockState, - outAndProof, - epochData.authorityIndex, - ) - - duration, err := time.ParseDuration("1s") + babePreDigest, err := types.DecodeBabePreDigest(preRuntimeDigest.Data) require.NoError(t, err) - - slot := Slot{ - start: time.Now(), - duration: duration, - number: slotNumber, + + // var slotNumber uint64 + var authorityIndex uint32 + var vrfOutput [sr25519.VRFOutputLength]byte + var vrfProof [sr25519.VRFProofLength]byte + switch d := babePreDigest.(type) { + case types.BabePrimaryPreDigest: + // slotNumber = d.SlotNumber + authorityIndex = d.AuthorityIndex + vrfOutput = d.VRFOutput + vrfProof = d.VRFProof + default: + t.Fatal("expect babe primary pre digest") } + // builder, _ := NewBlockBuilder( + // babeService.keypair, + // babeService.transactionState, + // babeService.blockState, + // epochData.authorityIndex, + // preRuntimeDigest, + // ) + + // duration, err := time.ParseDuration("1s") + // require.NoError(t, err) + + // slot := Slot{ + // start: time.Now(), + // duration: duration, + // number: slotNumber, + // } + // create babe header - babeHeader := builder.buildBlockBABEPrimaryPreDigest(slot) + // babeHeader := builder.buildBlockBABEPrimaryPreDigest(slot) Authorities := make([]types.Authority, 1) Authorities[0] = types.Authority{ @@ -374,9 +390,7 @@ func TestVerifyPimarySlotWinner(t *testing.T) { }) require.NoError(t, err) - ok, err := verifier.verifyPrimarySlotWinner( - babeHeader.AuthorityIndex, slot.number, - babeHeader.VRFOutput, babeHeader.VRFProof) + ok, err := verifier.verifyPrimarySlotWinner(authorityIndex, slotNumber, vrfOutput, vrfProof) require.NoError(t, err) require.True(t, ok) } From a9c0d0724039d8849d6d67705909b39b9c855ae4 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 7 Feb 2022 16:49:18 +0530 Subject: [PATCH 08/35] removing unused params --- lib/babe/crypto.go | 1 - lib/babe/epoch.go | 2 +- lib/babe/epoch_handler.go | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index f0ba87e061..2697c418ee 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -87,7 +87,6 @@ func checkPrimaryThreshold(randomness Randomness, func claimSecondarySlot(randomness Randomness, slot, epoch uint64, authorities []types.Authority, - threshold *scale.Uint128, keypair *sr25519.Keypair, authorityIndex uint32, ) (*VrfOutputAndProof, error) { diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index dda9a7548d..9dba238736 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -241,7 +241,7 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P } if errors.Is(err, errOverPrimarySlotThreshold) { - proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, epochData.threshold, b.keypair, epochData.authorityIndex) + proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, b.keypair, epochData.authorityIndex) if err != nil { return nil, err } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 58de70d142..8e3e355772 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -54,7 +54,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } - proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, epochData.threshold, keypair, epochData.authorityIndex) + proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) if err != nil { return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } From 454eab203c25b61ee37fb30788ceca7049d3f6ed Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 7 Feb 2022 22:03:25 +0530 Subject: [PATCH 09/35] attempting to stress test --- tests/stress/stress_test.go | 62 +++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index 58afc5823d..90a1e1bc2c 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -17,6 +17,7 @@ import ( "github.com/centrifuge/go-substrate-rpc-client/v3/signature" "github.com/centrifuge/go-substrate-rpc-client/v3/types" "github.com/gorilla/websocket" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" gosstypes "github.com/ChainSafe/gossamer/dot/types" @@ -641,3 +642,64 @@ func TestSync_SubmitExtrinsicLoad(t *testing.T) { // Output: Balance transferred from Alice to Bob: 100000000000000 } } + +func TestSecondarySlotProducer(t *testing.T) { + numNodes := 4 + utils.Logger.Patch(log.SetLevel(log.Info)) + + // start block producing node first + node, err := utils.RunGossamer(t, numNodes-1, + utils.TestDir(t, utils.KeyList[numNodes-1]), + utils.GenesisDev, utils.ConfigNoGrandpa, + false, true) + require.NoError(t, err) + + // wait and start rest of nodes - if they all start at the same time the first round usually doesn't complete since + // all nodes vote for different blocks. + time.Sleep(time.Second * 15) + nodes, err := utils.InitializeAndStartNodes(t, numNodes-1, utils.GenesisDev, utils.ConfigNotAuthority) + require.NoError(t, err) + nodes = append(nodes, node) + + time.Sleep(time.Second * 30) + + defer func() { + errList := utils.StopNodes(t, nodes) + require.Len(t, errList, 0) + }() + + numCmps := 10 + secondaryCount := 0 + + for i := 0; i < numCmps; i++ { + time.Sleep(3 * time.Second) + t.Log("comparing...", i) + hashes, err := compareBlocksByNumberWithRetry(t, nodes, strconv.Itoa(i)) + if len(hashes) > 1 || len(hashes) == 0 { + require.NoError(t, err, i) + continue + } + + // there will only be one key in the mapping + for hash, nodesWithHash := range hashes { + // allow 1 node to potentially not have synced. this is due to the need to increase max peer count + require.GreaterOrEqual(t, len(nodesWithHash), numNodes-1) + for _, nodeWithHash := range nodes { + block := utils.GetBlock(t, nodeWithHash, hash) + vdt := block.Header.Digest.VaryingDataType.Value() + + switch vdt.(type) { + case gosstypes.BabeSecondaryPlainPreDigest: + // TODO: verify the block + secondaryCount++ + fmt.Println("gosstypes.BabeSecondaryPlainPreDigest") + case gosstypes.BabePrimaryPreDigest: + fmt.Println("gosstypes.BabePrimaryPreDigest") + default: + } + } + } + } + + assert.Greater(t, secondaryCount, 0) +} From 151482cb493334600445ed6de8b61160f4239526 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Tue, 8 Feb 2022 09:40:45 +0530 Subject: [PATCH 10/35] addressed reviews --- dot/sync/chain_processor.go | 6 ++---- lib/babe/build.go | 8 ++++++-- lib/babe/build_integration_test.go | 12 ++++++++++-- lib/babe/crypto.go | 8 +++----- lib/babe/epoch.go | 2 +- lib/babe/epoch_handler.go | 6 +++--- lib/babe/verify_integration_test.go | 24 +----------------------- tests/stress/stress_test.go | 2 -- 8 files changed, 26 insertions(+), 42 deletions(-) diff --git a/dot/sync/chain_processor.go b/dot/sync/chain_processor.go index f85793ccb5..bb44208f78 100644 --- a/dot/sync/chain_processor.go +++ b/dot/sync/chain_processor.go @@ -112,13 +112,11 @@ func (s *chainProcessor) processBlockData(bd *types.BlockData) error { hasHeader, err := s.blockState.HasHeader(bd.Hash) if err != nil { - logger.Debugf("failed to check if block state has header for hash %s: %s", bd.Hash, err) - return err + return fmt.Errorf("failed to check if block state has header for hash %s: %w", bd.Hash, err) } hasBody, err := s.blockState.HasBlockBody(bd.Hash) if err != nil { - logger.Debugf("failed to check block state has body for hash %s: %s", bd.Hash, err) - return err + return fmt.Errorf("failed to check block state has body for hash %s: %w", bd.Hash, err) } if hasHeader && hasBody { diff --git a/lib/babe/build.go b/lib/babe/build.go index 2d4527e227..95b286e321 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -64,9 +64,13 @@ type BlockBuilder struct { } // NewBlockBuilder creates a new block builder. -func NewBlockBuilder(kp *sr25519.Keypair, ts TransactionState, +func NewBlockBuilder( + kp *sr25519.Keypair, + ts TransactionState, bs BlockState, - authidx uint32, preRuntimeDigest *types.PreRuntimeDigest) (*BlockBuilder, error) { + authidx uint32, + preRuntimeDigest *types.PreRuntimeDigest, +) (*BlockBuilder, error) { if ts == nil { return nil, ErrNilTransactionState } diff --git a/lib/babe/build_integration_test.go b/lib/babe/build_integration_test.go index 5f5e0bbfd6..507f4833fa 100644 --- a/lib/babe/build_integration_test.go +++ b/lib/babe/build_integration_test.go @@ -171,7 +171,11 @@ func TestApplyExtrinsic(t *testing.T) { } testVRFOutputAndProof := &VrfOutputAndProof{} - preDigest2, err := types.NewBabePrimaryPreDigest(authorityIndex, slot2.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof).ToPreRuntimeDigest() + preDigest2, err := types.NewBabePrimaryPreDigest( + authorityIndex, slot2.number, + testVRFOutputAndProof.output, + testVRFOutputAndProof.proof, + ).ToPreRuntimeDigest() require.NoError(t, err) parentHash := babeService.blockState.GenesisHash() @@ -183,7 +187,11 @@ func TestApplyExtrinsic(t *testing.T) { require.NoError(t, err) rt.SetContextStorage(ts) - preDigest, err := types.NewBabePrimaryPreDigest(authorityIndex, slot.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof).ToPreRuntimeDigest() + preDigest, err := types.NewBabePrimaryPreDigest( + authorityIndex, slot.number, + testVRFOutputAndProof.output, + testVRFOutputAndProof.proof, + ).ToPreRuntimeDigest() require.NoError(t, err) digest := types.NewDigest() diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index 2697c418ee..ce05fa98cf 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -90,10 +90,9 @@ func claimSecondarySlot(randomness Randomness, keypair *sr25519.Keypair, authorityIndex uint32, ) (*VrfOutputAndProof, error) { - secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) if err != nil { - return nil, err + return nil, fmt.Errorf("cannot get secondary slot author: %w", err) } if int(authorityIndex) == int(secondarySlotAuthor) { @@ -101,7 +100,7 @@ func claimSecondarySlot(randomness Randomness, out, proof, err := keypair.VrfSign(transcript) if err != nil { - return nil, err + return nil, fmt.Errorf("cannot verify transcript: %w", err) } logger.Debugf("claimed secondary slot, for slot number: %d", slot) @@ -112,8 +111,7 @@ func claimSecondarySlot(randomness Randomness, }, nil } - // It is not our turn to propose - return nil, nil + return nil, errors.New("not our turn to propose a block") } // CalculateThreshold calculates the slot lottery threshold diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 9dba238736..316e12f5b8 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -243,7 +243,7 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P if errors.Is(err, errOverPrimarySlotThreshold) { proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, b.keypair, epochData.authorityIndex) if err != nil { - return nil, err + return nil, fmt.Errorf("cannot claim secondary slot: %w", err) } if proof != nil { preRuntimeDigest := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot) diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 8e3e355772..07fba12ed3 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -35,7 +35,7 @@ type epochHandler struct { func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, constants constants, handleSlot handleSlotFunc, keypair *sr25519.Keypair) (*epochHandler, error) { // determine which slots we'll be authoring in by pre-calculating VRF output - slotToPreRuntimeDigest := make(map[uint64]*types.PreRuntimeDigest) + slotToPreRuntimeDigest := make(map[uint64]*types.PreRuntimeDigest, constants.epochLength) for i := firstSlot; i < firstSlot+constants.epochLength; i++ { proof, err := claimPrimarySlot( epochData.randomness, @@ -47,7 +47,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta if err == nil { preRuntimeDigest, _ := types.NewBabePrimaryPreDigest(epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() slotToPreRuntimeDigest[i] = preRuntimeDigest - logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) + logger.Debugf("epoch %d: claimed primary slot %d", epochNumber, i) continue } if !errors.Is(err, errOverPrimarySlotThreshold) { @@ -62,7 +62,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta if proof != nil { preRuntimeDigest, _ := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, i).ToPreRuntimeDigest() slotToPreRuntimeDigest[i] = preRuntimeDigest - logger.Debugf("epoch %d: claimed slot %d", epochNumber, i) + logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) } } diff --git a/lib/babe/verify_integration_test.go b/lib/babe/verify_integration_test.go index f57645f591..bec2d115fd 100644 --- a/lib/babe/verify_integration_test.go +++ b/lib/babe/verify_integration_test.go @@ -342,14 +342,12 @@ func TestVerifyPimarySlotWinner(t *testing.T) { babePreDigest, err := types.DecodeBabePreDigest(preRuntimeDigest.Data) require.NoError(t, err) - - // var slotNumber uint64 + var authorityIndex uint32 var vrfOutput [sr25519.VRFOutputLength]byte var vrfProof [sr25519.VRFProofLength]byte switch d := babePreDigest.(type) { case types.BabePrimaryPreDigest: - // slotNumber = d.SlotNumber authorityIndex = d.AuthorityIndex vrfOutput = d.VRFOutput vrfProof = d.VRFProof @@ -357,26 +355,6 @@ func TestVerifyPimarySlotWinner(t *testing.T) { t.Fatal("expect babe primary pre digest") } - // builder, _ := NewBlockBuilder( - // babeService.keypair, - // babeService.transactionState, - // babeService.blockState, - // epochData.authorityIndex, - // preRuntimeDigest, - // ) - - // duration, err := time.ParseDuration("1s") - // require.NoError(t, err) - - // slot := Slot{ - // start: time.Now(), - // duration: duration, - // number: slotNumber, - // } - - // create babe header - // babeHeader := builder.buildBlockBABEPrimaryPreDigest(slot) - Authorities := make([]types.Authority, 1) Authorities[0] = types.Authority{ Key: kp.Public().(*sr25519.PublicKey), diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index 90a1e1bc2c..f70c61062e 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -692,9 +692,7 @@ func TestSecondarySlotProducer(t *testing.T) { case gosstypes.BabeSecondaryPlainPreDigest: // TODO: verify the block secondaryCount++ - fmt.Println("gosstypes.BabeSecondaryPlainPreDigest") case gosstypes.BabePrimaryPreDigest: - fmt.Println("gosstypes.BabePrimaryPreDigest") default: } } From 25d7a92525849397d4e689e6c66bbfbc8972fb17 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Wed, 9 Feb 2022 20:59:28 +0530 Subject: [PATCH 11/35] fixing some more errors --- lib/babe/babe.go | 1 + lib/babe/crypto.go | 2 +- lib/babe/epoch.go | 3 ++ lib/babe/epoch_handler.go | 8 +++- lib/babe/errors.go | 1 + tests/stress/stress_test.go | 72 +++++++++++++---------------------- tests/utils/gossamer_utils.go | 1 + 7 files changed, 41 insertions(+), 47 deletions(-) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 7f7fa3adeb..ebc9edca2b 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -461,6 +461,7 @@ func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, preRu ), ) + // TODO: sometimes this failes with cannot find parent block in blocktree if err := b.blockImportHandler.HandleBlockProduced(block, ts); err != nil { logger.Warnf("failed to import built block: %s", err) return err diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index ce05fa98cf..f2b34dd6fe 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -111,7 +111,7 @@ func claimSecondarySlot(randomness Randomness, }, nil } - return nil, errors.New("not our turn to propose a block") + return nil, errNotOurTurnToPropose } // CalculateThreshold calculates the slot lottery threshold diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 316e12f5b8..f07761e00b 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -190,6 +190,9 @@ func (b *Service) getFirstAuthoringSlot(epoch uint64, epochData *epochData) (uin if errors.Is(err, errOverPrimarySlotThreshold) { continue } + if errors.Is(err, errNotOurTurnToPropose) { + continue + } return 0, fmt.Errorf("error running slot lottery at slot %d: error %w", i, err) } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 07fba12ed3..67de05f2b6 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -55,12 +55,18 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta } proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) + if errors.Is(err, errNotOurTurnToPropose) { + continue + } if err != nil { return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } if proof != nil { - preRuntimeDigest, _ := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, i).ToPreRuntimeDigest() + preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, i).ToPreRuntimeDigest() + if err != nil { + return nil, fmt.Errorf("failed to get pre runtime digest from babe secondary plain predigest for slot %d: %w", i, err) + } slotToPreRuntimeDigest[i] = preRuntimeDigest logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) } diff --git a/lib/babe/errors.go b/lib/babe/errors.go index b7ca2f7cd1..abb9ef527b 100644 --- a/lib/babe/errors.go +++ b/lib/babe/errors.go @@ -73,6 +73,7 @@ var ( errFirstBlockTimeout = errors.New("timed out waiting for first block") errChannelClosed = errors.New("block notifier channel was closed") errOverPrimarySlotThreshold = errors.New("cannot claim slot, over primary threshold") + errNotOurTurnToPropose = errors.New("cannot claim slot, not our turn to propose a block") errNoConfigData = errors.New("cannot find ConfigData for epoch") errGetEpochData = errors.New("get epochData error") errFailedFinalisation = errors.New("failed to check finalisation") diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index f70c61062e..96efd30073 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -643,60 +643,42 @@ func TestSync_SubmitExtrinsicLoad(t *testing.T) { } } -func TestSecondarySlotProducer(t *testing.T) { - numNodes := 4 - utils.Logger.Patch(log.SetLevel(log.Info)) +func TestStress_Grandpa_OneAuthority2(t *testing.T) { + numNodes := 3 - // start block producing node first - node, err := utils.RunGossamer(t, numNodes-1, - utils.TestDir(t, utils.KeyList[numNodes-1]), - utils.GenesisDev, utils.ConfigNoGrandpa, - false, true) + nodes, err := utils.InitializeAndStartNodes(t, numNodes, utils.GenesisThreeAuths, utils.ConfigDefault) require.NoError(t, err) - // wait and start rest of nodes - if they all start at the same time the first round usually doesn't complete since - // all nodes vote for different blocks. - time.Sleep(time.Second * 15) - nodes, err := utils.InitializeAndStartNodes(t, numNodes-1, utils.GenesisDev, utils.ConfigNotAuthority) - require.NoError(t, err) - nodes = append(nodes, node) + primaryCount := 0 + secondaryCount := 0 + otherCount := 0 + for i := 1; i < 20; i++ { + fmt.Printf("%d iteration\n", i) + hash, err := utils.GetBlockHash(t, nodes[0], fmt.Sprintf("%d", i)) + require.NoError(t, err) - time.Sleep(time.Second * 30) + block := utils.GetBlock(t, nodes[0], hash) + header := block.Header - defer func() { - errList := utils.StopNodes(t, nodes) - require.Len(t, errList, 0) - }() + preDigestItem := header.Digest.Types[0] - numCmps := 10 - secondaryCount := 0 + preDigest, ok := preDigestItem.Value().(gosstypes.PreRuntimeDigest) + require.True(t, ok) - for i := 0; i < numCmps; i++ { - time.Sleep(3 * time.Second) - t.Log("comparing...", i) - hashes, err := compareBlocksByNumberWithRetry(t, nodes, strconv.Itoa(i)) - if len(hashes) > 1 || len(hashes) == 0 { - require.NoError(t, err, i) - continue - } + babePreDigest, err := gosstypes.DecodeBabePreDigest(preDigest.Data) + require.NoError(t, err) - // there will only be one key in the mapping - for hash, nodesWithHash := range hashes { - // allow 1 node to potentially not have synced. this is due to the need to increase max peer count - require.GreaterOrEqual(t, len(nodesWithHash), numNodes-1) - for _, nodeWithHash := range nodes { - block := utils.GetBlock(t, nodeWithHash, hash) - vdt := block.Header.Digest.VaryingDataType.Value() - - switch vdt.(type) { - case gosstypes.BabeSecondaryPlainPreDigest: - // TODO: verify the block - secondaryCount++ - case gosstypes.BabePrimaryPreDigest: - default: - } - } + switch babePreDigest.(type) { + case gosstypes.BabePrimaryPreDigest: + primaryCount++ + case gosstypes.BabeSecondaryVRFPreDigest: + otherCount++ + case gosstypes.BabeSecondaryPlainPreDigest: + secondaryCount++ } + require.NotEqual(t, babePreDigest, nil) + + time.Sleep(10 * time.Second) } assert.Greater(t, secondaryCount, 0) diff --git a/tests/utils/gossamer_utils.go b/tests/utils/gossamer_utils.go index 78bb2e6f94..1de9bfb316 100644 --- a/tests/utils/gossamer_utils.go +++ b/tests/utils/gossamer_utils.go @@ -135,6 +135,7 @@ func startGossamer(t *testing.T, node *Node, websocket bool) error { node.Key = key + Logger.Infof("node basepath: %s", node.basePath) // create log file outfile, err := os.Create(filepath.Join(node.basePath, "log.out")) if err != nil { From d771a94815517f1d2ca83840b758a1cbb3f774eb Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Wed, 9 Feb 2022 21:30:30 +0530 Subject: [PATCH 12/35] rename --- tests/stress/stress_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index 96efd30073..b32928eea6 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -643,7 +643,7 @@ func TestSync_SubmitExtrinsicLoad(t *testing.T) { } } -func TestStress_Grandpa_OneAuthority2(t *testing.T) { +func TestStress_SecondarySlotProduction(t *testing.T) { numNodes := 3 nodes, err := utils.InitializeAndStartNodes(t, numNodes, utils.GenesisThreeAuths, utils.ConfigDefault) From 1bd089beb6a341bcf40f77b2713403f979a53392 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 14 Feb 2022 20:58:40 +0530 Subject: [PATCH 13/35] Small changes and TODO comments while debugging --- dot/digest/digest.go | 2 ++ dot/types/babe.go | 11 +++++++++++ lib/babe/babe.go | 1 + lib/babe/epoch.go | 8 ++++---- lib/babe/epoch_handler.go | 6 ++++++ lib/babe/errors.go | 41 ++++++++++++++++++++------------------- 6 files changed, 45 insertions(+), 24 deletions(-) diff --git a/dot/digest/digest.go b/dot/digest/digest.go index ef273585bc..ca7868b544 100644 --- a/dot/digest/digest.go +++ b/dot/digest/digest.go @@ -123,6 +123,8 @@ func (h *Handler) HandleDigests(header *types.Header) { for i, d := range header.Digest.Types { val, ok := d.Value().(types.ConsensusDigest) if ok { + // TODO: handleConsensusDigest never gets called other than the first time. (In development as well) + // i.e., header.Digest does not have consensus digest. Why? err := h.handleConsensusDigest(&val, header) if err != nil { h.logger.Errorf("cannot handle digests for block number %s, index %d, digest %s: %s", diff --git a/dot/types/babe.go b/dot/types/babe.go index 7e47b52a93..d364006c69 100644 --- a/dot/types/babe.go +++ b/dot/types/babe.go @@ -10,6 +10,17 @@ import ( // RandomnessLength is the length of the epoch randomness (32 bytes) const RandomnessLength = 32 +type AllowedSlots byte + +const ( + // Only allow primary slots. + PrimarySlots AllowedSlots = iota + // Allow primary and secondary plain slots. + PrimaryAndSecondaryPlainSlots + // Allow primary and secondary VRF slots. + PrimaryAndSecondaryVRFSlots +) + // BabeConfiguration contains the genesis data for BABE //nolint:lll // see: https://github.com/paritytech/substrate/blob/426c26b8bddfcdbaf8d29f45b128e0864b57de1c/core/consensus/babe/primitives/src/lib.rs#L132 diff --git a/lib/babe/babe.go b/lib/babe/babe.go index ebc9edca2b..76edb25940 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -386,6 +386,7 @@ func (b *Service) handleEpoch(epoch uint64) (next uint64, err error) { // stop current epoch handler cancel() case err := <-errCh: + // TODO: errEpochPast is sent on this channel, but it doesnot get logged here cleanup() logger.Errorf("error from epochHandler: %s", err) } diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index f07761e00b..fba0bb8d7e 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -239,11 +239,11 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P return preRuntimeDigest.ToPreRuntimeDigest() } - if epochData.secondary == 0 { - return nil, err - } - if errors.Is(err, errOverPrimarySlotThreshold) { + if epochData.secondary == 0 { + return nil, errSecondarySlotProductionDisabled + } + proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, b.keypair, epochData.authorityIndex) if err != nil { return nil, fmt.Errorf("cannot claim secondary slot: %w", err) diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 67de05f2b6..fa9accbc6e 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -50,10 +50,16 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta logger.Debugf("epoch %d: claimed primary slot %d", epochNumber, i) continue } + if !errors.Is(err, errOverPrimarySlotThreshold) { return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } + if epochData.secondary == 0 { + // return nil, errSecondarySlotProductionDisabled + continue + } + proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) if errors.Is(err, errNotOurTurnToPropose) { continue diff --git a/lib/babe/errors.go b/lib/babe/errors.go index abb9ef527b..6100656433 100644 --- a/lib/babe/errors.go +++ b/lib/babe/errors.go @@ -64,26 +64,27 @@ var ( ErrNilTransactionState = errors.New("cannot create block builder; transaction state is nil") ErrNilVRFProof = errors.New("cannot create block builder; slot VRF proof is nil") - errNilBlockImportHandler = errors.New("cannot have nil BlockImportHandler") - errNilEpochState = errors.New("cannot have nil EpochState") - errNilStorageState = errors.New("storage state is nil") - errNilParentHeader = errors.New("parent header is nil") - errInvalidResult = errors.New("invalid error value") - errNoEpochData = errors.New("no epoch data found for upcoming epoch") - errFirstBlockTimeout = errors.New("timed out waiting for first block") - errChannelClosed = errors.New("block notifier channel was closed") - errOverPrimarySlotThreshold = errors.New("cannot claim slot, over primary threshold") - errNotOurTurnToPropose = errors.New("cannot claim slot, not our turn to propose a block") - errNoConfigData = errors.New("cannot find ConfigData for epoch") - errGetEpochData = errors.New("get epochData error") - errFailedFinalisation = errors.New("failed to check finalisation") - errMissingDigest = errors.New("chain head missing digest") - errSetFirstSlot = errors.New("set first slot error") - errGetEpoch = errors.New("get epoch error") - errSkipVerify = errors.New("skipVerify error") - errMissingDigestItems = errors.New("block header is missing digest items") - errDescendant = errors.New("descendant err") - errServicePaused = errors.New("service paused") + errNilBlockImportHandler = errors.New("cannot have nil BlockImportHandler") + errNilEpochState = errors.New("cannot have nil EpochState") + errNilStorageState = errors.New("storage state is nil") + errNilParentHeader = errors.New("parent header is nil") + errInvalidResult = errors.New("invalid error value") + errNoEpochData = errors.New("no epoch data found for upcoming epoch") + errFirstBlockTimeout = errors.New("timed out waiting for first block") + errChannelClosed = errors.New("block notifier channel was closed") + errOverPrimarySlotThreshold = errors.New("cannot claim slot, over primary threshold") + errNotOurTurnToPropose = errors.New("cannot claim slot, not our turn to propose a block") + errSecondarySlotProductionDisabled = errors.New("cannot claim slot, secondary slot production is disabled") + errNoConfigData = errors.New("cannot find ConfigData for epoch") + errGetEpochData = errors.New("get epochData error") + errFailedFinalisation = errors.New("failed to check finalisation") + errMissingDigest = errors.New("chain head missing digest") + errSetFirstSlot = errors.New("set first slot error") + errGetEpoch = errors.New("get epoch error") + errSkipVerify = errors.New("skipVerify error") + errMissingDigestItems = errors.New("block header is missing digest items") + errDescendant = errors.New("descendant err") + errServicePaused = errors.New("service paused") other Other invalidCustom InvalidCustom From aea476655d6e37234ec5936f801fba4308be0284 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 14 Feb 2022 22:36:49 +0530 Subject: [PATCH 14/35] pass lint --- dot/types/babe.go | 7 ++++--- lib/babe/babe.go | 5 ++++- lib/babe/epoch.go | 3 ++- lib/babe/epoch_handler.go | 15 +++++++++++---- lib/babe/epoch_handler_test.go | 8 ++++++-- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/dot/types/babe.go b/dot/types/babe.go index d364006c69..c858e5f6c0 100644 --- a/dot/types/babe.go +++ b/dot/types/babe.go @@ -10,14 +10,15 @@ import ( // RandomnessLength is the length of the epoch randomness (32 bytes) const RandomnessLength = 32 +// AllowedSlots tells in what ways a slot can be claimed. type AllowedSlots byte const ( - // Only allow primary slots. + // PrimarySlots only allows primary slots. PrimarySlots AllowedSlots = iota - // Allow primary and secondary plain slots. + // PrimaryAndSecondaryPlainSlots allow primary and secondary plain slots. PrimaryAndSecondaryPlainSlots - // Allow primary and secondary VRF slots. + // PrimaryAndSecondaryVRFSlots allows primary and secondary VRF slots. PrimaryAndSecondaryVRFSlots ) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 76edb25940..899e23f524 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -401,7 +401,10 @@ func (b *Service) handleEpoch(epoch uint64) (next uint64, err error) { return next, nil } -func (b *Service) handleSlot(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error { +func (b *Service) handleSlot(epoch, slotNum uint64, + authorityIndex uint32, + preRuntimeDigest *types.PreRuntimeDigest, +) error { parentHeader, err := b.blockState.BestBlockHeader() if err != nil { return err diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index fba0bb8d7e..1e01e7517d 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -244,7 +244,8 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P return nil, errSecondarySlotProductionDisabled } - proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, epochData.authorities, b.keypair, epochData.authorityIndex) + proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, + epochData.authorities, b.keypair, epochData.authorityIndex) if err != nil { return nil, fmt.Errorf("cannot claim secondary slot: %w", err) } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index fa9accbc6e..b578e75761 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -45,7 +45,11 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta keypair, ) if err == nil { - preRuntimeDigest, _ := types.NewBabePrimaryPreDigest(epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() + preRuntimeDigest, err := types.NewBabePrimaryPreDigest( + epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() + if err != nil { + return nil, fmt.Errorf("error converting babe primary pre-digest to pre-runtime digest: %w", err) + } slotToPreRuntimeDigest[i] = preRuntimeDigest logger.Debugf("epoch %d: claimed primary slot %d", epochNumber, i) continue @@ -60,7 +64,8 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta continue } - proof, err = claimSecondarySlot(epochData.randomness, i, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) + proof, err = claimSecondarySlot( + epochData.randomness, i, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) if errors.Is(err, errNotOurTurnToPropose) { continue } @@ -69,9 +74,11 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta } if proof != nil { - preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, i).ToPreRuntimeDigest() + preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( + epochData.authorityIndex, i).ToPreRuntimeDigest() if err != nil { - return nil, fmt.Errorf("failed to get pre runtime digest from babe secondary plain predigest for slot %d: %w", i, err) + return nil, fmt.Errorf( + "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", i, err) } slotToPreRuntimeDigest[i] = preRuntimeDigest logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) diff --git a/lib/babe/epoch_handler_test.go b/lib/babe/epoch_handler_test.go index 0de6e840f6..52b47b1117 100644 --- a/lib/babe/epoch_handler_test.go +++ b/lib/babe/epoch_handler_test.go @@ -16,7 +16,9 @@ import ( ) func TestNewEpochHandler(t *testing.T) { - testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error { + testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, + preRuntimeDigest *types.PreRuntimeDigest, + ) error { return nil } @@ -50,7 +52,9 @@ func TestEpochHandler_run(t *testing.T) { startSlot := getCurrentSlot(sd) var callsToHandleSlot, firstExecutedSlot uint64 - testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, preRuntimeDigest *types.PreRuntimeDigest) error { + testHandleSlotFunc := func(epoch, slotNum uint64, authorityIndex uint32, + preRuntimeDigest *types.PreRuntimeDigest, + ) error { require.Equal(t, uint64(1), epoch) if callsToHandleSlot == 0 { firstExecutedSlot = slotNum From 8e2330272bbe6ff656cf2df8e5296b63843f2260 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Tue, 15 Feb 2022 17:31:07 +0530 Subject: [PATCH 15/35] small changes --- lib/babe/babe.go | 1 - lib/babe/crypto.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/babe/babe.go b/lib/babe/babe.go index 899e23f524..59db9a0fa2 100644 --- a/lib/babe/babe.go +++ b/lib/babe/babe.go @@ -465,7 +465,6 @@ func (b *Service) handleSlot(epoch, slotNum uint64, ), ) - // TODO: sometimes this failes with cannot find parent block in blocktree if err := b.blockImportHandler.HandleBlockProduced(block, ts); err != nil { logger.Warnf("failed to import built block: %s", err) return err diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index f2b34dd6fe..62dfef5027 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -95,7 +95,7 @@ func claimSecondarySlot(randomness Randomness, return nil, fmt.Errorf("cannot get secondary slot author: %w", err) } - if int(authorityIndex) == int(secondarySlotAuthor) { + if authorityIndex == secondarySlotAuthor { transcript := makeTranscript(randomness, slot, epoch) out, proof, err := keypair.VrfSign(transcript) From a7e027ffeb22120f494f907aff68d54198e21c11 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Tue, 15 Feb 2022 17:31:26 +0530 Subject: [PATCH 16/35] Update lib/babe/epoch_handler.go Co-authored-by: Timothy Wu --- lib/babe/epoch_handler.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index b578e75761..a3dade9c4d 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -44,7 +44,8 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta epochData.threshold, keypair, ) - if err == nil { + switch err { + case nil: preRuntimeDigest, err := types.NewBabePrimaryPreDigest( epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() if err != nil { @@ -53,10 +54,10 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta slotToPreRuntimeDigest[i] = preRuntimeDigest logger.Debugf("epoch %d: claimed primary slot %d", epochNumber, i) continue - } - - if !errors.Is(err, errOverPrimarySlotThreshold) { - return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) + default: + if !errors.Is(err, errOverPrimarySlotThreshold) { + return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) + } } if epochData.secondary == 0 { From 15502051ead70d38c15b3c56244deee0b727392b Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Tue, 15 Feb 2022 18:22:24 +0530 Subject: [PATCH 17/35] make sure epochData.secondary gets filled --- lib/babe/epoch.go | 2 ++ lib/babe/epoch_handler.go | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 1e01e7517d..caedea7cbb 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -165,6 +165,8 @@ func (b *Service) getLatestEpochData() (resEpochData *epochData, error error) { return nil, fmt.Errorf("cannot get epoch state latest config data: %w", err) } + resEpochData.secondary = configData.SecondarySlots + resEpochData.threshold, err = CalculateThreshold(configData.C1, configData.C2, len(resEpochData.authorities)) if err != nil { return nil, fmt.Errorf("cannot calculate threshold: %w", err) diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index a3dade9c4d..953710de0c 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -44,7 +44,8 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta epochData.threshold, keypair, ) - switch err { + + switch err { case nil: preRuntimeDigest, err := types.NewBabePrimaryPreDigest( epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() From a06c66b0d58e835f0b48fc76c5da34a01e42652b Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 17 Feb 2022 12:26:38 +0530 Subject: [PATCH 18/35] Update lib/babe/verify_integration_test.go Co-authored-by: Quentin McGaw --- lib/babe/verify_integration_test.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/babe/verify_integration_test.go b/lib/babe/verify_integration_test.go index bec2d115fd..1bbc878c7d 100644 --- a/lib/babe/verify_integration_test.go +++ b/lib/babe/verify_integration_test.go @@ -343,17 +343,11 @@ func TestVerifyPimarySlotWinner(t *testing.T) { babePreDigest, err := types.DecodeBabePreDigest(preRuntimeDigest.Data) require.NoError(t, err) - var authorityIndex uint32 - var vrfOutput [sr25519.VRFOutputLength]byte - var vrfProof [sr25519.VRFProofLength]byte - switch d := babePreDigest.(type) { - case types.BabePrimaryPreDigest: - authorityIndex = d.AuthorityIndex - vrfOutput = d.VRFOutput - vrfProof = d.VRFProof - default: - t.Fatal("expect babe primary pre digest") - } + d, ok := babePreDigest.(types.BabePrimaryPreDigest) + require.True(t, ok) + authorityIndex := d.AuthorityIndex + vrfOutput := d.VRFOutput + vrfProof := d.VRFProof Authorities := make([]types.Authority, 1) Authorities[0] = types.Authority{ From b27b37ad7bc391428c8f34cc59633d261ace4f84 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 17 Feb 2022 12:27:16 +0530 Subject: [PATCH 19/35] Update lib/babe/epoch_handler.go Co-authored-by: Quentin McGaw --- lib/babe/epoch_handler.go | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 953710de0c..6fdece8cea 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -85,7 +85,6 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta slotToPreRuntimeDigest[i] = preRuntimeDigest logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) } - } return &epochHandler{ From 8b6a6d0b81e0cd08d3500d755a17de81e16f5ab1 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 17 Feb 2022 12:27:34 +0530 Subject: [PATCH 20/35] Update tests/stress/stress_test.go Co-authored-by: Quentin McGaw --- tests/stress/stress_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index b32928eea6..0853f7bc92 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -676,7 +676,7 @@ func TestStress_SecondarySlotProduction(t *testing.T) { case gosstypes.BabeSecondaryPlainPreDigest: secondaryCount++ } - require.NotEqual(t, babePreDigest, nil) + require.NotNil(t, babePreDigest) time.Sleep(10 * time.Second) } From a9a9d11a85816f73363bbcb4327e762539edb967 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 17 Feb 2022 15:45:26 +0530 Subject: [PATCH 21/35] addressed reviews - no need of proof in secondary plain slot - and other comments --- dot/types/babe.go | 1 + lib/babe/crypto.go | 24 ++++++------------------ lib/babe/epoch.go | 11 +++++------ lib/babe/epoch_handler.go | 4 ++-- lib/babe/verify_integration_test.go | 2 +- 5 files changed, 15 insertions(+), 27 deletions(-) diff --git a/dot/types/babe.go b/dot/types/babe.go index c858e5f6c0..e0ebd30cf1 100644 --- a/dot/types/babe.go +++ b/dot/types/babe.go @@ -13,6 +13,7 @@ const RandomnessLength = 32 // AllowedSlots tells in what ways a slot can be claimed. type AllowedSlots byte +// https://github.com/paritytech/substrate/blob/ded44948e2d5a398abcb4e342b0513cb690961bb/primitives/consensus/babe/src/lib.rs#L219-L226 const ( // PrimarySlots only allows primary slots. PrimarySlots AllowedSlots = iota diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index 62dfef5027..d046316a03 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -84,34 +84,22 @@ func checkPrimaryThreshold(randomness Randomness, return inoutUint.Compare(threshold) < 0, nil } -func claimSecondarySlot(randomness Randomness, - slot, epoch uint64, +func claimSecondarySlotPlain(randomness Randomness, + slot uint64, authorities []types.Authority, - keypair *sr25519.Keypair, authorityIndex uint32, -) (*VrfOutputAndProof, error) { +) error { secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) if err != nil { - return nil, fmt.Errorf("cannot get secondary slot author: %w", err) + return fmt.Errorf("cannot get secondary slot author: %w", err) } if authorityIndex == secondarySlotAuthor { - transcript := makeTranscript(randomness, slot, epoch) - - out, proof, err := keypair.VrfSign(transcript) - if err != nil { - return nil, fmt.Errorf("cannot verify transcript: %w", err) - } - logger.Debugf("claimed secondary slot, for slot number: %d", slot) - - return &VrfOutputAndProof{ - output: out, - proof: proof, - }, nil + return nil } - return nil, errNotOurTurnToPropose + return errNotOurTurnToPropose } // CalculateThreshold calculates the slot lottery threshold diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index caedea7cbb..77a0b95bc4 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -246,15 +246,14 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P return nil, errSecondarySlotProductionDisabled } - proof, err = claimSecondarySlot(epochData.randomness, slot, epoch, - epochData.authorities, b.keypair, epochData.authorityIndex) + err = claimSecondarySlotPlain(epochData.randomness, slot, + epochData.authorities, epochData.authorityIndex) if err != nil { return nil, fmt.Errorf("cannot claim secondary slot: %w", err) } - if proof != nil { - preRuntimeDigest := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot) - return preRuntimeDigest.ToPreRuntimeDigest() - } + preRuntimeDigest := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot) + return preRuntimeDigest.ToPreRuntimeDigest() + } return nil, err diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 6fdece8cea..0aa051048c 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -66,8 +66,8 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta continue } - proof, err = claimSecondarySlot( - epochData.randomness, i, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) + err = claimSecondarySlotPlain( + epochData.randomness, i, epochData.authorities, epochData.authorityIndex) if errors.Is(err, errNotOurTurnToPropose) { continue } diff --git a/lib/babe/verify_integration_test.go b/lib/babe/verify_integration_test.go index 1bbc878c7d..a499898289 100644 --- a/lib/babe/verify_integration_test.go +++ b/lib/babe/verify_integration_test.go @@ -362,7 +362,7 @@ func TestVerifyPimarySlotWinner(t *testing.T) { }) require.NoError(t, err) - ok, err := verifier.verifyPrimarySlotWinner(authorityIndex, slotNumber, vrfOutput, vrfProof) + ok, err = verifier.verifyPrimarySlotWinner(authorityIndex, slotNumber, vrfOutput, vrfProof) require.NoError(t, err) require.True(t, ok) } From f0aab84c16e4a30152d1d6519d12a4b4fba036cf Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 17 Feb 2022 16:47:51 +0530 Subject: [PATCH 22/35] more fixes --- lib/babe/epoch.go | 9 +++------ lib/babe/epoch_handler.go | 18 ++++++++---------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 77a0b95bc4..a1caf4a813 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -236,9 +236,8 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P b.keypair, ) if err == nil { - preRuntimeDigest := types.NewBabePrimaryPreDigest(epochData.authorityIndex, slot, proof.output, proof.proof) - - return preRuntimeDigest.ToPreRuntimeDigest() + return types.NewBabePrimaryPreDigest( + epochData.authorityIndex, slot, proof.output, proof.proof).ToPreRuntimeDigest() } if errors.Is(err, errOverPrimarySlotThreshold) { @@ -251,9 +250,7 @@ func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.P if err != nil { return nil, fmt.Errorf("cannot claim secondary slot: %w", err) } - preRuntimeDigest := types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot) - return preRuntimeDigest.ToPreRuntimeDigest() - + return types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot).ToPreRuntimeDigest() } return nil, err diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 0aa051048c..0ff8cb7156 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -62,7 +62,6 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta } if epochData.secondary == 0 { - // return nil, errSecondarySlotProductionDisabled continue } @@ -75,16 +74,15 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) } - if proof != nil { - preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( - epochData.authorityIndex, i).ToPreRuntimeDigest() - if err != nil { - return nil, fmt.Errorf( - "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", i, err) - } - slotToPreRuntimeDigest[i] = preRuntimeDigest - logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) + preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( + epochData.authorityIndex, i).ToPreRuntimeDigest() + if err != nil { + return nil, fmt.Errorf( + "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", i, err) } + slotToPreRuntimeDigest[i] = preRuntimeDigest + logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) + } return &epochHandler{ From 255fdd7d2196d93431727fcd8c8013af1ec5339e Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 17 Feb 2022 18:22:29 +0530 Subject: [PATCH 23/35] more fixes --- lib/babe/crypto.go | 5 +---- lib/babe/verify_integration_test.go | 5 +---- tests/stress/stress_test.go | 2 +- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index d046316a03..3bb10115cc 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -84,10 +84,7 @@ func checkPrimaryThreshold(randomness Randomness, return inoutUint.Compare(threshold) < 0, nil } -func claimSecondarySlotPlain(randomness Randomness, - slot uint64, - authorities []types.Authority, - authorityIndex uint32, +func claimSecondarySlotPlain(randomness Randomness, slot uint64, authorities []types.Authority, authorityIndex uint32, ) error { secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) if err != nil { diff --git a/lib/babe/verify_integration_test.go b/lib/babe/verify_integration_test.go index a499898289..d52437de7a 100644 --- a/lib/babe/verify_integration_test.go +++ b/lib/babe/verify_integration_test.go @@ -345,9 +345,6 @@ func TestVerifyPimarySlotWinner(t *testing.T) { d, ok := babePreDigest.(types.BabePrimaryPreDigest) require.True(t, ok) - authorityIndex := d.AuthorityIndex - vrfOutput := d.VRFOutput - vrfProof := d.VRFProof Authorities := make([]types.Authority, 1) Authorities[0] = types.Authority{ @@ -362,7 +359,7 @@ func TestVerifyPimarySlotWinner(t *testing.T) { }) require.NoError(t, err) - ok, err = verifier.verifyPrimarySlotWinner(authorityIndex, slotNumber, vrfOutput, vrfProof) + ok, err = verifier.verifyPrimarySlotWinner(d.AuthorityIndex, slotNumber, d.VRFOutput, d.VRFProof) require.NoError(t, err) require.True(t, ok) } diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index 0853f7bc92..f0a84e54d8 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -644,7 +644,7 @@ func TestSync_SubmitExtrinsicLoad(t *testing.T) { } func TestStress_SecondarySlotProduction(t *testing.T) { - numNodes := 3 + const numNodes = 3 nodes, err := utils.InitializeAndStartNodes(t, numNodes, utils.GenesisThreeAuths, utils.ConfigDefault) require.NoError(t, err) From 34f26054e454e6011b69e58a14ab4a7629e53045 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Fri, 25 Feb 2022 17:57:23 +0530 Subject: [PATCH 24/35] feat(lib/babe): implement secondary vrf slot block production (#2307) * feat(lib/babe): implement secondary vrf slot - Also merge slot claim logic --- dot/core/messages_integration_test.go | 2 +- dot/core/service_integration_test.go | 2 +- dot/rpc/modules/chain_integration_test.go | 12 ++-- .../modules/childstate_integration_test.go | 2 +- dot/rpc/modules/state_integration_test.go | 2 +- dot/rpc/modules/system_integration_test.go | 2 +- dot/state/block_finalisation_test.go | 6 +- dot/state/block_test.go | 4 +- dot/state/service_test.go | 4 +- dot/state/test_helpers.go | 6 +- dot/sync/chain_processor_test.go | 2 +- dot/sync/message_test.go | 2 +- dot/sync/test_helpers.go | 2 +- dot/types/babe_digest.go | 45 +++++------- lib/babe/build_integration_test.go | 10 +-- lib/babe/crypto.go | 39 +++++++++-- lib/babe/epoch.go | 70 ++++++++++++++----- lib/babe/epoch_handler.go | 43 ++---------- lib/babe/types.go | 2 +- lib/babe/verify_integration_test.go | 2 +- lib/babe/verify_test.go | 20 +++--- lib/grandpa/grandpa_test.go | 4 +- lib/grandpa/message_handler_test.go | 8 +-- lib/grandpa/message_test.go | 2 +- lib/grandpa/message_tracker_test.go | 4 +- lib/grandpa/network_test.go | 2 +- 26 files changed, 158 insertions(+), 141 deletions(-) diff --git a/dot/core/messages_integration_test.go b/dot/core/messages_integration_test.go index 5fca745e56..82f9b77b19 100644 --- a/dot/core/messages_integration_test.go +++ b/dot/core/messages_integration_test.go @@ -82,7 +82,7 @@ func TestService_HandleBlockProduced(t *testing.T) { // simulate block sent from BABE session digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/core/service_integration_test.go b/dot/core/service_integration_test.go index 7ecd5be0a2..01d2104a65 100644 --- a/dot/core/service_integration_test.go +++ b/dot/core/service_integration_test.go @@ -75,7 +75,7 @@ func TestAnnounceBlock(t *testing.T) { // simulate block sent from BABE session digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/chain_integration_test.go b/dot/rpc/modules/chain_integration_test.go index bc11a6a267..dc8ffaef8f 100644 --- a/dot/rpc/modules/chain_integration_test.go +++ b/dot/rpc/modules/chain_integration_test.go @@ -43,7 +43,7 @@ func TestChainGetHeader_Genesis(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -79,7 +79,7 @@ func TestChainGetHeader_Latest(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -127,7 +127,7 @@ func TestChainGetBlock_Genesis(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -171,7 +171,7 @@ func TestChainGetBlock_Latest(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -315,7 +315,7 @@ func TestChainGetFinalizedHeadByRound(t *testing.T) { require.Equal(t, common.BytesToHex(expected[:]), res) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -388,7 +388,7 @@ func newTestStateService(t *testing.T) *state.Service { func loadTestBlocks(t *testing.T, gh common.Hash, bs *state.BlockState, rt runtime.Instance) { digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/childstate_integration_test.go b/dot/rpc/modules/childstate_integration_test.go index 6b3cb17de6..0504eda218 100644 --- a/dot/rpc/modules/childstate_integration_test.go +++ b/dot/rpc/modules/childstate_integration_test.go @@ -267,7 +267,7 @@ func setupChildStateStorage(t *testing.T) (*ChildStateModule, common.Hash) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/state_integration_test.go b/dot/rpc/modules/state_integration_test.go index db5834eb2f..efdff75a9d 100644 --- a/dot/rpc/modules/state_integration_test.go +++ b/dot/rpc/modules/state_integration_test.go @@ -531,7 +531,7 @@ func setupStateModule(t *testing.T) (*StateModule, *common.Hash, *common.Hash) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/system_integration_test.go b/dot/rpc/modules/system_integration_test.go index 3d14ea1a1a..9f72c6ae01 100644 --- a/dot/rpc/modules/system_integration_test.go +++ b/dot/rpc/modules/system_integration_test.go @@ -321,7 +321,7 @@ func setupSystemModule(t *testing.T) *SystemModule { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/state/block_finalisation_test.go b/dot/state/block_finalisation_test.go index b55466c374..7cf2d8848c 100644 --- a/dot/state/block_finalisation_test.go +++ b/dot/state/block_finalisation_test.go @@ -67,7 +67,7 @@ func TestBlockState_SetFinalisedHash(t *testing.T) { require.Equal(t, testGenesisHeader.Hash(), h) digest := types.NewDigest() - di, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + di, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) require.NotNil(t, di) err = digest.Add(*di) @@ -101,13 +101,13 @@ func TestSetFinalisedHash_setFirstSlotOnFinalisation(t *testing.T) { firstSlot := uint64(42069) digest := types.NewDigest() - di, err := types.NewBabeSecondaryPlainPreDigest(0, firstSlot).ToPreRuntimeDigest() + di, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, firstSlot)) require.NoError(t, err) require.NotNil(t, di) err = digest.Add(*di) require.NoError(t, err) digest2 := types.NewDigest() - di, err = types.NewBabeSecondaryPlainPreDigest(0, firstSlot+100).ToPreRuntimeDigest() + di, err = types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, firstSlot+100)) require.NoError(t, err) require.NotNil(t, di) err = digest2.Add(*di) diff --git a/dot/state/block_test.go b/dot/state/block_test.go index 45508e8a53..e2a0e94c0b 100644 --- a/dot/state/block_test.go +++ b/dot/state/block_test.go @@ -483,13 +483,13 @@ func TestNumberIsFinalised(t *testing.T) { require.False(t, fin) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) digest2 := types.NewDigest() - prd, err = types.NewBabeSecondaryPlainPreDigest(0, 100).ToPreRuntimeDigest() + prd, err = types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 100)) require.NoError(t, err) err = digest2.Add(*prd) require.NoError(t, err) diff --git a/dot/state/service_test.go b/dot/state/service_test.go index f8cabd4c08..4cfbb2f836 100644 --- a/dot/state/service_test.go +++ b/dot/state/service_test.go @@ -242,7 +242,7 @@ func TestService_PruneStorage(t *testing.T) { for i := 0; i < 3; i++ { block, trieState := generateBlockWithRandomTrie(t, serv, nil, int64(i+1)) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, uint64(i+1)).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(types.NewBabeSecondaryPlainPreDigest(0, uint64(i+1))) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -385,7 +385,7 @@ func TestService_Import(t *testing.T) { } digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 177).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 177)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/state/test_helpers.go b/dot/state/test_helpers.go index 62c8def253..46bb0ee5f6 100644 --- a/dot/state/test_helpers.go +++ b/dot/state/test_helpers.go @@ -77,7 +77,7 @@ func AddBlocksToState(t *testing.T, blockState *BlockState, depth int, for i := startNum + 1; i <= depth+startNum; i++ { d := types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{}) digest := types.NewDigest() - prd, err := d.ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*d) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -166,7 +166,7 @@ func AddBlocksToStateWithFixedBranches(t *testing.T, blockState *BlockState, dep // create base tree startNum := int(head.Number.Int64()) for i := startNum + 1; i <= depth; i++ { - d, err := types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() + d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{})) require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() @@ -208,7 +208,7 @@ func AddBlocksToStateWithFixedBranches(t *testing.T, blockState *BlockState, dep previousHash = branch.hash for i := branch.depth; i < depth; i++ { - d, err := types.NewBabePrimaryPreDigest(0, uint64(i+j+99), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() + d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(i+j+99), [32]byte{}, [64]byte{})) require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() diff --git a/dot/sync/chain_processor_test.go b/dot/sync/chain_processor_test.go index 78083e6145..56b24b7ba4 100644 --- a/dot/sync/chain_processor_test.go +++ b/dot/sync/chain_processor_test.go @@ -204,7 +204,7 @@ func TestChainProcessor_ExecuteBlock(t *testing.T) { func TestChainProcessor_HandleJustification(t *testing.T) { syncer := newTestSyncer(t) - d, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + d, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) digest := types.NewDigest() err = digest.Add(*d) diff --git a/dot/sync/message_test.go b/dot/sync/message_test.go index c8878b05d0..f5e19ee446 100644 --- a/dot/sync/message_test.go +++ b/dot/sync/message_test.go @@ -22,7 +22,7 @@ func addTestBlocksToState(t *testing.T, depth int, blockState BlockState) { require.Nil(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/sync/test_helpers.go b/dot/sync/test_helpers.go index 4836e3cf30..8dc1462be0 100644 --- a/dot/sync/test_helpers.go +++ b/dot/sync/test_helpers.go @@ -18,7 +18,7 @@ import ( // BuildBlock ... func BuildBlock(t *testing.T, instance runtime.Instance, parent *types.Header, ext types.Extrinsic) *types.Block { digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/types/babe_digest.go b/dot/types/babe_digest.go index b490d16181..c5fdbc0702 100644 --- a/dot/types/babe_digest.go +++ b/dot/types/babe_digest.go @@ -5,6 +5,7 @@ package types import ( "errors" + "fmt" "github.com/ChainSafe/gossamer/lib/crypto/sr25519" "github.com/ChainSafe/gossamer/pkg/scale" @@ -51,20 +52,6 @@ func NewBabePrimaryPreDigest(authorityIndex uint32, } } -// ToPreRuntimeDigest returns the BabePrimaryPreDigest as a PreRuntimeDigest -func (d *BabePrimaryPreDigest) ToPreRuntimeDigest() (*PreRuntimeDigest, error) { - digest := NewBabeDigest() - err := digest.Set(*d) - if err != nil { - return nil, err - } - enc, err := scale.Marshal(digest) - if err != nil { - return nil, err - } - return NewBABEPreRuntimeDigest(enc), nil -} - // Index Returns VDT index func (d BabePrimaryPreDigest) Index() uint { return 1 } @@ -82,20 +69,6 @@ func NewBabeSecondaryPlainPreDigest(authorityIndex uint32, slotNumber uint64) *B } } -// ToPreRuntimeDigest returns the BabePrimaryPreDigest as a PreRuntimeDigest -func (d *BabeSecondaryPlainPreDigest) ToPreRuntimeDigest() (*PreRuntimeDigest, error) { - digest := NewBabeDigest() - err := digest.Set(*d) - if err != nil { - return nil, err - } - enc, err := scale.Marshal(digest) - if err != nil { - return nil, err - } - return NewBABEPreRuntimeDigest(enc), nil -} - // Index Returns VDT index func (d BabeSecondaryPlainPreDigest) Index() uint { return 2 } @@ -121,3 +94,19 @@ func NewBabeSecondaryVRFPreDigest(authorityIndex uint32, // Index Returns VDT index func (d BabeSecondaryVRFPreDigest) Index() uint { return 3 } + +// ToPreRuntimeDigest returns the VaryingDataTypeValue as a PreRuntimeDigest +func ToPreRuntimeDigest(value scale.VaryingDataTypeValue) (*PreRuntimeDigest, error) { + digest := NewBabeDigest() + err := digest.Set(value) + if err != nil { + return nil, fmt.Errorf("cannot set varying data type value to babe digest: %w", err) + } + + enc, err := scale.Marshal(digest) + if err != nil { + return nil, fmt.Errorf("cannot marshal babe digest: %w", err) + } + + return NewBABEPreRuntimeDigest(enc), nil +} diff --git a/lib/babe/build_integration_test.go b/lib/babe/build_integration_test.go index 507f4833fa..a16e38a033 100644 --- a/lib/babe/build_integration_test.go +++ b/lib/babe/build_integration_test.go @@ -92,7 +92,7 @@ func createTestBlock(t *testing.T, babeService *Service, parent *types.Header, rt, err := babeService.blockState.GetRuntime(nil) require.NoError(t, err) - preRuntimeDigest, err := babeService.runLottery(slotNumber, epoch, epochData) + preRuntimeDigest, err := claimSlot(epoch, slotNumber, epochData, babeService.keypair) require.NoError(t, err) block, err := babeService.buildBlock(parent, slot, rt, epochData.authorityIndex, preRuntimeDigest) @@ -171,11 +171,11 @@ func TestApplyExtrinsic(t *testing.T) { } testVRFOutputAndProof := &VrfOutputAndProof{} - preDigest2, err := types.NewBabePrimaryPreDigest( + preDigest2, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest( authorityIndex, slot2.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof, - ).ToPreRuntimeDigest() + )) require.NoError(t, err) parentHash := babeService.blockState.GenesisHash() @@ -187,11 +187,11 @@ func TestApplyExtrinsic(t *testing.T) { require.NoError(t, err) rt.SetContextStorage(ts) - preDigest, err := types.NewBabePrimaryPreDigest( + preDigest, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest( authorityIndex, slot.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof, - ).ToPreRuntimeDigest() + )) require.NoError(t, err) digest := types.NewDigest() diff --git a/lib/babe/crypto.go b/lib/babe/crypto.go index 3bb10115cc..d2feeb4602 100644 --- a/lib/babe/crypto.go +++ b/lib/babe/crypto.go @@ -84,6 +84,37 @@ func checkPrimaryThreshold(randomness Randomness, return inoutUint.Compare(threshold) < 0, nil } +func claimSecondarySlotVRF(randomness Randomness, + slot, epoch uint64, + authorities []types.Authority, + keypair *sr25519.Keypair, + authorityIndex uint32, +) (*VrfOutputAndProof, error) { + + secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) + if err != nil { + return nil, fmt.Errorf("cannot get secondary slot author: %w", err) + } + + if authorityIndex != secondarySlotAuthor { + return nil, errNotOurTurnToPropose + } + + transcript := makeTranscript(randomness, slot, epoch) + + out, proof, err := keypair.VrfSign(transcript) + if err != nil { + return nil, fmt.Errorf("cannot verify transcript: %w", err) + } + + logger.Debugf("claimed secondary slot, for slot number: %d", slot) + + return &VrfOutputAndProof{ + output: out, + proof: proof, + }, nil +} + func claimSecondarySlotPlain(randomness Randomness, slot uint64, authorities []types.Authority, authorityIndex uint32, ) error { secondarySlotAuthor, err := getSecondarySlotAuthor(slot, len(authorities), randomness) @@ -91,12 +122,12 @@ func claimSecondarySlotPlain(randomness Randomness, slot uint64, authorities []t return fmt.Errorf("cannot get secondary slot author: %w", err) } - if authorityIndex == secondarySlotAuthor { - logger.Debugf("claimed secondary slot, for slot number: %d", slot) - return nil + if authorityIndex != secondarySlotAuthor { + return errNotOurTurnToPropose } - return errNotOurTurnToPropose + logger.Debugf("claimed secondary slot, for slot number: %d", slot) + return nil } // CalculateThreshold calculates the slot lottery threshold diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index a1caf4a813..5a2f64c00b 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -9,6 +9,7 @@ import ( "math/big" "github.com/ChainSafe/gossamer/dot/types" + "github.com/ChainSafe/gossamer/lib/crypto/sr25519" ) // initiateEpoch sets the epochData for the given epoch, runs the lottery for the slots in the epoch, @@ -138,7 +139,7 @@ func (b *Service) getEpochDataAndStartSlot(epoch uint64) (*epochData, uint64, er authorities: data.Authorities, authorityIndex: idx, threshold: threshold, - secondary: cfgData.SecondarySlots, + secondary: types.AllowedSlots(cfgData.SecondarySlots), } startSlot, err := b.epochState.GetStartSlotForEpoch(epoch) @@ -165,7 +166,7 @@ func (b *Service) getLatestEpochData() (resEpochData *epochData, error error) { return nil, fmt.Errorf("cannot get epoch state latest config data: %w", err) } - resEpochData.secondary = configData.SecondarySlots + resEpochData.secondary = types.AllowedSlots(configData.SecondarySlots) resEpochData.threshold, err = CalculateThreshold(configData.C1, configData.C2, len(resEpochData.authorities)) if err != nil { @@ -187,7 +188,7 @@ func (b *Service) getLatestEpochData() (resEpochData *epochData, error error) { func (b *Service) getFirstAuthoringSlot(epoch uint64, epochData *epochData) (uint64, error) { startSlot := getCurrentSlot(b.constants.slotDuration) for i := startSlot; i < startSlot+b.constants.epochLength; i++ { - _, err := b.runLottery(i, epoch, epochData) + _, err := claimSlot(epoch, i, epochData, b.keypair) if err != nil { if errors.Is(err, errOverPrimarySlotThreshold) { continue @@ -221,37 +222,68 @@ func (b *Service) incrementEpoch() (uint64, error) { return next, nil } -// runLottery runs the lottery for a specific slot number. +// claimSlot claims slot for a specific slot number. // It returns an encoded VrfOutputAndProof if the validator is authorised // to produce a block for that slot. // It returns the wrapped error errOverPrimarySlotThreshold // if it is not authorised. // output = return[0:32]; proof = return[32:96] -func (b *Service) runLottery(slot, epoch uint64, epochData *epochData) (*types.PreRuntimeDigest, error) { +func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keypair *sr25519.Keypair, +) (*types.PreRuntimeDigest, error) { proof, err := claimPrimarySlot( epochData.randomness, - slot, - epoch, + slotNumber, + epochNumber, epochData.threshold, - b.keypair, + keypair, ) + if err == nil { - return types.NewBabePrimaryPreDigest( - epochData.authorityIndex, slot, proof.output, proof.proof).ToPreRuntimeDigest() + preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest( + epochData.authorityIndex, slotNumber, proof.output, proof.proof)) + if err != nil { + return nil, fmt.Errorf("error converting babe primary pre-digest to pre-runtime digest: %w", err) + } + logger.Debugf("epoch %d: claimed primary slot %d", epochNumber, slotNumber) + return preRuntimeDigest, nil + } else if !errors.Is(err, errOverPrimarySlotThreshold) { + return nil, fmt.Errorf("error running slot lottery at slot %d: %w", slotNumber, err) } - if errors.Is(err, errOverPrimarySlotThreshold) { - if epochData.secondary == 0 { - return nil, errSecondarySlotProductionDisabled + switch epochData.secondary { + case types.PrimarySlots: + return nil, errSecondarySlotProductionDisabled + case types.PrimaryAndSecondaryVRFSlots: + proof, err := claimSecondarySlotVRF( + epochData.randomness, slotNumber, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) + if err != nil { + return nil, fmt.Errorf("error claim secondary vrf slot at %d: %w", slotNumber, err) } + preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryVRFPreDigest( + epochData.authorityIndex, slotNumber, proof.output, proof.proof)) - err = claimSecondarySlotPlain(epochData.randomness, slot, - epochData.authorities, epochData.authorityIndex) if err != nil { - return nil, fmt.Errorf("cannot claim secondary slot: %w", err) + return nil, fmt.Errorf("error converting babe secondary vrf pre-digest to pre-runtime digest: %w", err) } - return types.NewBabeSecondaryPlainPreDigest(epochData.authorityIndex, slot).ToPreRuntimeDigest() - } + logger.Debugf("epoch %d: claimed secondary vrf slot %d", epochNumber, slotNumber) + return preRuntimeDigest, nil + case types.PrimaryAndSecondaryPlainSlots: + err = claimSecondarySlotPlain( + epochData.randomness, slotNumber, epochData.authorities, epochData.authorityIndex) + if err != nil { + return nil, fmt.Errorf("error claiming secondary plain slot at %d: %w", slotNumber, err) + } + preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest( + epochData.authorityIndex, slotNumber)) - return nil, err + if err != nil { + return nil, fmt.Errorf( + "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", slotNumber, err) + } + logger.Debugf("epoch %d: claimed secondary plain slot %d", epochNumber, slotNumber) + return preRuntimeDigest, nil + default: + // this should never occur + return nil, errors.New("invalid slot claiming technique") + } } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 0ff8cb7156..04c8afce34 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -37,52 +37,17 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta // determine which slots we'll be authoring in by pre-calculating VRF output slotToPreRuntimeDigest := make(map[uint64]*types.PreRuntimeDigest, constants.epochLength) for i := firstSlot; i < firstSlot+constants.epochLength; i++ { - proof, err := claimPrimarySlot( - epochData.randomness, - i, - epochNumber, - epochData.threshold, - keypair, - ) - - switch err { - case nil: - preRuntimeDigest, err := types.NewBabePrimaryPreDigest( - epochData.authorityIndex, i, proof.output, proof.proof).ToPreRuntimeDigest() - if err != nil { - return nil, fmt.Errorf("error converting babe primary pre-digest to pre-runtime digest: %w", err) - } + preRuntimeDigest, err := claimSlot(epochNumber, i, epochData, keypair) + if err == nil { slotToPreRuntimeDigest[i] = preRuntimeDigest - logger.Debugf("epoch %d: claimed primary slot %d", epochNumber, i) continue - default: - if !errors.Is(err, errOverPrimarySlotThreshold) { - return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) - } } - if epochData.secondary == 0 { + if errors.Is(err, errNotOurTurnToPropose) || errors.Is(err, errSecondarySlotProductionDisabled) { continue } - err = claimSecondarySlotPlain( - epochData.randomness, i, epochData.authorities, epochData.authorityIndex) - if errors.Is(err, errNotOurTurnToPropose) { - continue - } - if err != nil { - return nil, fmt.Errorf("error running slot lottery at slot %d: %w", i, err) - } - - preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( - epochData.authorityIndex, i).ToPreRuntimeDigest() - if err != nil { - return nil, fmt.Errorf( - "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", i, err) - } - slotToPreRuntimeDigest[i] = preRuntimeDigest - logger.Debugf("epoch %d: claimed secondary slot %d", epochNumber, i) - + return nil, err } return &epochHandler{ diff --git a/lib/babe/types.go b/lib/babe/types.go index 0c475d8cd9..d2981791b4 100644 --- a/lib/babe/types.go +++ b/lib/babe/types.go @@ -60,7 +60,7 @@ type epochData struct { authorityIndex uint32 authorities []types.Authority threshold *scale.Uint128 - secondary byte + secondary types.AllowedSlots } func (ed *epochData) String() string { diff --git a/lib/babe/verify_integration_test.go b/lib/babe/verify_integration_test.go index d52437de7a..a03056abf6 100644 --- a/lib/babe/verify_integration_test.go +++ b/lib/babe/verify_integration_test.go @@ -337,7 +337,7 @@ func TestVerifyPimarySlotWinner(t *testing.T) { const slotNumber uint64 = 1 - preRuntimeDigest, err := babeService.runLottery(slotNumber, testEpochIndex, epochData) + preRuntimeDigest, err := claimSlot(testEpochIndex, slotNumber, epochData, babeService.keypair) require.NoError(t, err) babePreDigest, err := types.DecodeBabePreDigest(preRuntimeDigest.Data) diff --git a/lib/babe/verify_test.go b/lib/babe/verify_test.go index 4d4752ea18..8d1ff5a028 100644 --- a/lib/babe/verify_test.go +++ b/lib/babe/verify_test.go @@ -301,7 +301,7 @@ func Test_verifier_verifyPreRuntimeDigest(t *testing.T) { VRFOutput: output, VRFProof: proof, } - prd1, err := secDigest1.ToPreRuntimeDigest() + prd1, err := types.ToPreRuntimeDigest(secDigest1) assert.NoError(t, err) auth := types.NewAuthority(kp.Public(), uint64(1)) @@ -362,7 +362,7 @@ func Test_verifier_verifyPreRuntimeDigest(t *testing.T) { //BabeSecondaryPlainPreDigest case secDigest := types.BabeSecondaryPlainPreDigest{AuthorityIndex: 0, SlotNumber: uint64(1)} - prd, err := secDigest.ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(secDigest) assert.NoError(t, err) authSec := types.NewAuthority(kp.Public(), uint64(1)) @@ -519,12 +519,12 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { testHeaderPrimary.Digest = testDigestPrimary // Secondary Plain Test Header - testParentPrd, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() + testParentPrd, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) assert.NoError(t, err) testParentHeader := newTestHeader(t, *testParentPrd) testParentHash := encodeAndHashHeader(t, testParentHeader) - testSecondaryPrd, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() + testSecondaryPrd, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) assert.NoError(t, err) testSecPlainHeader := newTestHeader(t, *testSecondaryPrd) testSecPlainHeader.ParentHash = testParentHash @@ -565,13 +565,13 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { header2 := newTestHeader(t, testInvalidPreRuntimeDigest, testInvalidSeal) // Case 3: Invalid Seal Length - babePrd, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() + babePrd, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) assert.NoError(t, err) header3 := newTestHeader(t, *babePrd, testInvalidSeal) babeVerifier := newTestVerifier(t, kp, mockBlockState, scale.MaxUint128, false) // Case 4: Invalid signature - BabePrimaryPreDigest - babePrd2, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() + babePrd2, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) assert.NoError(t, err) header4 := newTestHeader(t, *babePrd2) @@ -579,7 +579,7 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { babeVerifier2 := newTestVerifier(t, kp, mockBlockState, scale.MaxUint128, false) // Case 5: Invalid signature - BabeSecondaryPlainPreDigest - babeSecPlainPrd, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() + babeSecPlainPrd, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) assert.NoError(t, err) header5 := newTestHeader(t, *babeSecPlainPrd) @@ -595,12 +595,12 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { babeVerifier4 := newTestVerifier(t, kp, mockBlockState, scale.MaxUint128, true) // Case 7: GetAuthorityIndex Err - babeParentPrd, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() + babeParentPrd, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) assert.NoError(t, err) babeParentHeader := newTestHeader(t, *babeParentPrd) parentHash := encodeAndHashHeader(t, babeParentHeader) - babePrd3, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() + babePrd3, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) assert.NoError(t, err) header7 := newTestHeader(t, *babePrd3) @@ -617,7 +617,7 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { babeVerifier7 := newTestVerifier(t, kp, mockBlockStateEquiv1, scale.MaxUint128, false) // Case 10: Equivocate case secondary plain - babeSecPlainPrd2, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() + babeSecPlainPrd2, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) assert.NoError(t, err) header8 := newTestHeader(t, *babeSecPlainPrd2) diff --git a/lib/grandpa/grandpa_test.go b/lib/grandpa/grandpa_test.go index 14a60f0714..c0e4ea252d 100644 --- a/lib/grandpa/grandpa_test.go +++ b/lib/grandpa/grandpa_test.go @@ -1352,7 +1352,7 @@ func addBlocksToState(t *testing.T, blockState *state.BlockState, depth int) { for i := startNum + 1; i <= depth; i++ { arrivalTime := time.Now() - d, err := types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() + d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{})) require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() @@ -1393,7 +1393,7 @@ func addBlocksAndReturnTheLastOne( bfcNumber := int(previousHead.Number.Int64() + 1) - d, err := types.NewBabePrimaryPreDigest(0, uint64(bfcNumber), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() + d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(bfcNumber), [32]byte{}, [64]byte{})) require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() diff --git a/lib/grandpa/message_handler_test.go b/lib/grandpa/message_handler_test.go index fafb7eb761..f0caef4e98 100644 --- a/lib/grandpa/message_handler_test.go +++ b/lib/grandpa/message_handler_test.go @@ -30,7 +30,7 @@ var testHash = testHeader.Hash() func newTestDigest() scale.VaryingDataTypeSlice { digest := types.NewDigest() - prd, _ := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, _ := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) digest.Add(*prd) return digest } @@ -204,7 +204,7 @@ func TestMessageHandler_NeighbourMessage(t *testing.T) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -262,7 +262,7 @@ func TestMessageHandler_CommitMessage_NoCatchUpRequest_ValidSig(t *testing.T) { fm.Vote = *NewVote(testHash, uint32(round)) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -377,7 +377,7 @@ func TestMessageHandler_CatchUpRequest_WithResponse(t *testing.T) { gs.state.round = round + 1 digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/lib/grandpa/message_test.go b/lib/grandpa/message_test.go index 737e9ee269..8906d47ed9 100644 --- a/lib/grandpa/message_test.go +++ b/lib/grandpa/message_test.go @@ -143,7 +143,7 @@ func TestNewCatchUpResponse(t *testing.T) { setID := uint64(1) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/lib/grandpa/message_tracker_test.go b/lib/grandpa/message_tracker_test.go index f71c3ef027..b59b4458f8 100644 --- a/lib/grandpa/message_tracker_test.go +++ b/lib/grandpa/message_tracker_test.go @@ -56,7 +56,7 @@ func TestMessageTracker_SendMessage(t *testing.T) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -109,7 +109,7 @@ func TestMessageTracker_ProcessMessage(t *testing.T) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/lib/grandpa/network_test.go b/lib/grandpa/network_test.go index 036dbb3fd7..ce640fc355 100644 --- a/lib/grandpa/network_test.go +++ b/lib/grandpa/network_test.go @@ -88,7 +88,7 @@ func TestSendNeighbourMessage(t *testing.T) { go gs.sendNeighbourMessage() digest := types.NewDigest() - prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() + prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) From c9b863afd0d396eb6105ccfe4574d8bb12748bf5 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 28 Feb 2022 13:27:02 +0530 Subject: [PATCH 25/35] Update lib/babe/epoch.go Co-authored-by: noot <36753753+noot@users.noreply.github.com> --- lib/babe/epoch.go | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 5a2f64c00b..9dc1363b8e 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -261,7 +261,6 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp } preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryVRFPreDigest( epochData.authorityIndex, slotNumber, proof.output, proof.proof)) - if err != nil { return nil, fmt.Errorf("error converting babe secondary vrf pre-digest to pre-runtime digest: %w", err) } From d1afc50fe32521e50cd2948a7b5f752f89e8fe89 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 28 Feb 2022 20:34:42 +0530 Subject: [PATCH 26/35] addressed reviews, modified tests --- dot/digest/digest.go | 2 - lib/babe/epoch.go | 10 +- lib/babe/epoch_handler.go | 2 +- lib/babe/errors.go | 42 +++--- tests/stress/stress_test.go | 103 +++++++++---- ...genesis_two_auths_secondaryvrf_0_9_10.json | 142 ++++++++++++++++++ tests/utils/gossamer_utils.go | 4 +- 7 files changed, 246 insertions(+), 59 deletions(-) create mode 100644 tests/utils/genesis_two_auths_secondaryvrf_0_9_10.json diff --git a/dot/digest/digest.go b/dot/digest/digest.go index ca7868b544..ef273585bc 100644 --- a/dot/digest/digest.go +++ b/dot/digest/digest.go @@ -123,8 +123,6 @@ func (h *Handler) HandleDigests(header *types.Header) { for i, d := range header.Digest.Types { val, ok := d.Value().(types.ConsensusDigest) if ok { - // TODO: handleConsensusDigest never gets called other than the first time. (In development as well) - // i.e., header.Digest does not have consensus digest. Why? err := h.handleConsensusDigest(&val, header) if err != nil { h.logger.Errorf("cannot handle digests for block number %s, index %d, digest %s: %s", diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 5a2f64c00b..5be288fc8c 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -222,7 +222,7 @@ func (b *Service) incrementEpoch() (uint64, error) { return next, nil } -// claimSlot claims slot for a specific slot number. +// claimSlot attempts to claim a slot for a specific slot number. // It returns an encoded VrfOutputAndProof if the validator is authorised // to produce a block for that slot. // It returns the wrapped error errOverPrimarySlotThreshold @@ -252,19 +252,21 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp switch epochData.secondary { case types.PrimarySlots: - return nil, errSecondarySlotProductionDisabled + return nil, errNotOurTurnToPropose case types.PrimaryAndSecondaryVRFSlots: proof, err := claimSecondarySlotVRF( epochData.randomness, slotNumber, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) if err != nil { return nil, fmt.Errorf("error claim secondary vrf slot at %d: %w", slotNumber, err) } + preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryVRFPreDigest( epochData.authorityIndex, slotNumber, proof.output, proof.proof)) if err != nil { return nil, fmt.Errorf("error converting babe secondary vrf pre-digest to pre-runtime digest: %w", err) } + logger.Debugf("epoch %d: claimed secondary vrf slot %d", epochNumber, slotNumber) return preRuntimeDigest, nil case types.PrimaryAndSecondaryPlainSlots: @@ -273,6 +275,7 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp if err != nil { return nil, fmt.Errorf("error claiming secondary plain slot at %d: %w", slotNumber, err) } + preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest( epochData.authorityIndex, slotNumber)) @@ -280,10 +283,11 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp return nil, fmt.Errorf( "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", slotNumber, err) } + logger.Debugf("epoch %d: claimed secondary plain slot %d", epochNumber, slotNumber) return preRuntimeDigest, nil default: // this should never occur - return nil, errors.New("invalid slot claiming technique") + return nil, errInvalidSlotTechnique } } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 04c8afce34..5ba2ab2cfc 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -43,7 +43,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta continue } - if errors.Is(err, errNotOurTurnToPropose) || errors.Is(err, errSecondarySlotProductionDisabled) { + if errors.Is(err, errNotOurTurnToPropose) { continue } diff --git a/lib/babe/errors.go b/lib/babe/errors.go index 6100656433..1ff4e8878f 100644 --- a/lib/babe/errors.go +++ b/lib/babe/errors.go @@ -64,27 +64,27 @@ var ( ErrNilTransactionState = errors.New("cannot create block builder; transaction state is nil") ErrNilVRFProof = errors.New("cannot create block builder; slot VRF proof is nil") - errNilBlockImportHandler = errors.New("cannot have nil BlockImportHandler") - errNilEpochState = errors.New("cannot have nil EpochState") - errNilStorageState = errors.New("storage state is nil") - errNilParentHeader = errors.New("parent header is nil") - errInvalidResult = errors.New("invalid error value") - errNoEpochData = errors.New("no epoch data found for upcoming epoch") - errFirstBlockTimeout = errors.New("timed out waiting for first block") - errChannelClosed = errors.New("block notifier channel was closed") - errOverPrimarySlotThreshold = errors.New("cannot claim slot, over primary threshold") - errNotOurTurnToPropose = errors.New("cannot claim slot, not our turn to propose a block") - errSecondarySlotProductionDisabled = errors.New("cannot claim slot, secondary slot production is disabled") - errNoConfigData = errors.New("cannot find ConfigData for epoch") - errGetEpochData = errors.New("get epochData error") - errFailedFinalisation = errors.New("failed to check finalisation") - errMissingDigest = errors.New("chain head missing digest") - errSetFirstSlot = errors.New("set first slot error") - errGetEpoch = errors.New("get epoch error") - errSkipVerify = errors.New("skipVerify error") - errMissingDigestItems = errors.New("block header is missing digest items") - errDescendant = errors.New("descendant err") - errServicePaused = errors.New("service paused") + errNilBlockImportHandler = errors.New("cannot have nil BlockImportHandler") + errNilEpochState = errors.New("cannot have nil EpochState") + errNilStorageState = errors.New("storage state is nil") + errNilParentHeader = errors.New("parent header is nil") + errInvalidResult = errors.New("invalid error value") + errNoEpochData = errors.New("no epoch data found for upcoming epoch") + errFirstBlockTimeout = errors.New("timed out waiting for first block") + errChannelClosed = errors.New("block notifier channel was closed") + errOverPrimarySlotThreshold = errors.New("cannot claim slot, over primary threshold") + errNotOurTurnToPropose = errors.New("cannot claim slot, not our turn to propose a block") + errNoConfigData = errors.New("cannot find ConfigData for epoch") + errGetEpochData = errors.New("get epochData error") + errFailedFinalisation = errors.New("failed to check finalisation") + errMissingDigest = errors.New("chain head missing digest") + errSetFirstSlot = errors.New("set first slot error") + errGetEpoch = errors.New("get epoch error") + errSkipVerify = errors.New("skipVerify error") + errMissingDigestItems = errors.New("block header is missing digest items") + errDescendant = errors.New("descendant err") + errServicePaused = errors.New("service paused") + errInvalidSlotTechnique = errors.New("invalid slot claiming technique") other Other invalidCustom InvalidCustom diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index 262f484a6e..aa5e15e0bf 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -644,42 +644,83 @@ func TestSync_SubmitExtrinsicLoad(t *testing.T) { } func TestStress_SecondarySlotProduction(t *testing.T) { - const numNodes = 3 - - nodes, err := utils.InitializeAndStartNodes(t, numNodes, utils.GenesisThreeAuths, utils.ConfigDefault) - require.NoError(t, err) - - primaryCount := 0 - secondaryCount := 0 - otherCount := 0 - for i := 1; i < 20; i++ { - fmt.Printf("%d iteration\n", i) - hash, err := utils.GetBlockHash(t, nodes[0], fmt.Sprintf("%d", i)) - require.NoError(t, err) + testcases := []struct { + description string + genesis string + allowedSlots gosstypes.AllowedSlots + }{ + + { + description: "with secondary vrf slots enabled", + genesis: utils.GenesisTwoAuthsSecondaryVRF_0_9_10, + allowedSlots: gosstypes.PrimaryAndSecondaryVRFSlots, + }, + // TODO: We are not able to pickup the right value of AllowedSlots + // from these genesis file. It is always being read as PrimaryAndSecondaryVRFSlots. + // We have to fix that in order to properly test below cases. + // { + // description: "with secondary plain slots enabled", + // genesis: utils.GenesisTwoAuthsSecondaryPlain_0_9_10, + // allowedSlots: gosstypes.PrimaryAndSecondaryPlainSlots, + // }, + // { + // description: "with secondary slots disabled", + // genesis: utils.GenesisTwoAuthsPrimary_0_9_10, + // allowedSlots: gosstypes.PrimarySlots, + // }, + } + const numNodes = 2 + for _, c := range testcases { + c := c // bypass scopelint false positive + t.Run(c.description, func(t *testing.T) { + nodes, err := utils.InitializeAndStartNodes(t, numNodes, c.genesis, utils.ConfigDefault) + require.NoError(t, err) + defer utils.StopNodes(t, nodes) + + primaryCount := 0 + secondaryPlainCount := 0 + secondaryVRFCount := 0 + + for i := 1; i < 10; i++ { + fmt.Printf("%d iteration\n", i) + hash, err := utils.GetBlockHash(t, nodes[0], fmt.Sprintf("%d", i)) + require.NoError(t, err) - block := utils.GetBlock(t, nodes[0], hash) - header := block.Header + block := utils.GetBlock(t, nodes[0], hash) + header := block.Header - preDigestItem := header.Digest.Types[0] + preDigestItem := header.Digest.Types[0] - preDigest, ok := preDigestItem.Value().(gosstypes.PreRuntimeDigest) - require.True(t, ok) + preDigest, ok := preDigestItem.Value().(gosstypes.PreRuntimeDigest) + require.True(t, ok) - babePreDigest, err := gosstypes.DecodeBabePreDigest(preDigest.Data) - require.NoError(t, err) + babePreDigest, err := gosstypes.DecodeBabePreDigest(preDigest.Data) + require.NoError(t, err) - switch babePreDigest.(type) { - case gosstypes.BabePrimaryPreDigest: - primaryCount++ - case gosstypes.BabeSecondaryVRFPreDigest: - otherCount++ - case gosstypes.BabeSecondaryPlainPreDigest: - secondaryCount++ - } - require.NotNil(t, babePreDigest) + switch babePreDigest.(type) { + case gosstypes.BabePrimaryPreDigest: + primaryCount++ + case gosstypes.BabeSecondaryVRFPreDigest: + secondaryVRFCount++ + case gosstypes.BabeSecondaryPlainPreDigest: + secondaryPlainCount++ + } + require.NotNil(t, babePreDigest) + + time.Sleep(10 * time.Second) + } - time.Sleep(10 * time.Second) + switch c.allowedSlots { + case gosstypes.PrimaryAndSecondaryPlainSlots: + assert.Greater(t, secondaryPlainCount, 0) + assert.Empty(t, secondaryVRFCount) + case gosstypes.PrimaryAndSecondaryVRFSlots: + assert.Greater(t, secondaryVRFCount, 0) + assert.Empty(t, secondaryPlainCount) + case gosstypes.PrimarySlots: + assert.Empty(t, secondaryPlainCount) + assert.Empty(t, secondaryVRFCount) + } + }) } - - assert.Greater(t, secondaryCount, 0) } diff --git a/tests/utils/genesis_two_auths_secondaryvrf_0_9_10.json b/tests/utils/genesis_two_auths_secondaryvrf_0_9_10.json new file mode 100644 index 0000000000..6dee2c9d42 --- /dev/null +++ b/tests/utils/genesis_two_auths_secondaryvrf_0_9_10.json @@ -0,0 +1,142 @@ +{ + "name": "Development", + "id": "dev", + "chainType": "Development", + "bootNodes": [], + "telemetryEndpoints": null, + "protocolId": "dot", + "properties": null, + "forkBlocks": null, + "badBlocks": null, + "lightSyncState": null, + "consensusEngine": null, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x3db7a24cfdc9de785974746c14a99df94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195079b38849014a07307061726180d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0x5f3e4907f716ac89b6347d15ececedca308ce9615de0775a82f8a94dc3d285a1": "0x06", + "0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a00000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe70e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "0x1cb6f36e027abb2091cfb5110ab5087faacf00b9b41fda7a9268821c2a2b3e4c": "0x08d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d01000000000000008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480100000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da923a05cabf6d3bde7ca3ef0d11596b5611cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc44f9aea1afa791265fae359272badc1cf8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e070010a5d4e8070010a5d4e80000", + "0x5f3e4907f716ac89b6347d15ececedcaad811cd65a470ddc5f1d628ff0550982b4def25cfda6ef3a00000000": "0x00000000", + "0xa37f719efab16103103a0c8c2c784ce14e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da98578796c363c105114787203e4d93ca6101191192fc877c24d725b337120fa3edc63d227bbc92705db1e2cb65f56981a": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f5537bdb2a1f626b6772616e8088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950ed43a85541921049696d6f6e80d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e16903e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xf2794c22e353e9a839f12faab03a911b308ce9615de0775a82f8a94dc3d285a1": "0x00", + "0x9c5d795d0297be56027a4b2464e333974e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2b06af9719ac64d755623cda8ddd9b944e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950d62c40514b41f31962616265808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x5f27b51b5ec208ee9cb25b55d87282434e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc66f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x047374616b696e67200010a5d4e8000000000000000000000002", + "0x5f3e4907f716ac89b6347d15ececedca666fdcbb473985b3ac933d13f4acff8d": "0x00000000000000000000000000000000", + "0xcec5070d609dd3497f72bde07fc96ba098ef7dc060436e4ed803af07632b89b6b4def25cfda6ef3a00000000": "0x28f3c05fb6569b52abaef08d394eeba24cdac83fac8140dd011e5d2aba0536c402000000", + "0x1cb6f36e027abb2091cfb5110ab5087f66e8f035c8adbe7f1547b43c51e6f8a4": "0x00000000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00e417915f53aa010000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b321d16960ce1d9190b61e2421cc60131e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f5e0621c4869aa60c02be9adcc98a0d1d": "0x08d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d01000000000000008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480100000000000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19504a8e42157609c6c86173676e80d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9007cbc1270b5b091758f9c42f5915b3e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xcec5070d609dd3497f72bde07fc96ba0ff3ae12770bea2e48d9bde7385e7a25f": "0x0000000002000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c9b0c13125732d276175646980d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xede8e4fdc3c8b556f0ce2f77fc2575e34e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x5f9cc45b7a00c5899361e1c6099678dc8a2d09463effcc78a22d75b9cb87dffc": "0x0000000000000000", + "0xaebd463ed9925c488c112434d61debc04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3a6772616e6470615f617574686f726974696573": "0x010888dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee010000000000000094a297125bf31bc15e2a2f1d7d44d2c2a99ce3ed81fdc3a7acf4a4cc30480fb70100000000000000", + "0x2099d7f109d6e535fb000bba623fd4404c014e6bf8b8c2c011e7290b85696bb3": "0x08d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0x5f3e4907f716ac89b6347d15ececedca0b6a45321efae92aea15e0740ec7afe7": "0x00000000", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9edeaa42c2163f68084a988529a0e2ec5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x318e20706f6c6b61646f74", + "0x5f3e4907f716ac89b6347d15ececedcaf7dad0317324aecae8744b87fc95f2f3": "0x00", + "0x5f3e4907f716ac89b6347d15ececedcab49a2738eeb30896aacb8b3fb46471bd": "0x02000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000": "0x0000000000000000010000000000000000e40b54020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19509d4a4cfe1c2ef0b961756469808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x5f3e4907f716ac89b6347d15ececedca138e71612491192d68deab7e6f563fe1": "0x02000000", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x08be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e94a297125bf31bc15e2a2f1d7d44d2c2a99ce3ed81fdc3a7acf4a4cc30480fb78eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058543305de8806381552107855541d2c26fa78e0cf83b70a44352557cb13532c6d0da03c59cf642396cd44daa103555dc3770d003433894b7c7055d95101002568d5f5a28e71a5e6114909a47fa095fefffdbfb7ffde5bca2da54c01351574155015a0bfbfb2adf1efab2acd5757e1dfc7e139de65c2bf3f66b3b2c207e5b0b2c2372bcd790a6d0b5559e1df47551af12f8e05b97ddad8f74f9e83ee3b8ad91e813ef9f0ed6faf42e681adaaab30fc14f876d79d023512fa6483ef3816e0b6e35860848daaabf071a6a2f6ba0ac17c5dc6dfcbcf65e8dea93cb75a2878bb3e7e0fc274dc0a741bbfeffa9405b22daa7a08fefa34dfc74fbf3208d7f4fb5bf2c08fbfbe7b0eafef42e0af0fe6219807c5fac4f9f48f7af61de6f3c42f3e7d300f111ffc5aee004b20c01707007a519fe1169f96489260a2810cc0768e7f121e246705e02087273b89eb6a4c70608f9f84678ffa146dea2866dfa03c8e9804ffbbe50d580201d267121b7cf1f549b7bff8b7dc01da9e7d8b390584eb21e12379edd3861b3cf1d3b7b1f571f611b91db78225ecefbdbc7197b9378759a41f1c46204c9491d28f521762ee558c4af36dfb668bba60b6fd907c40c80de3765c1365d828d5e89ea9bb532246a723b2ae3ed337c144f8fdf7f8fb8dbfdfe67d1ca16944a5c15f5369be8d9f016ad8f821505b9f0bdbddc63ec5c638367e2f6d2aaad2384e05bd8d5f5569eac618e3272b0d0cd643bc57b320411c62360adbd50f603a2ed6c4a6b0ed3fd69625ddf74961753b2ee684103403dbf54961a56b25d93d47aa07687f7f3a15f6f73933fbd34844dbfff427fbb44f7abe31e93fe14f4b248fc4dc1436038a03af613a0e04b52d80d111603a6e09dcc66fe98f2309a64043124c41a6036b1f2c81a038d8f871089880e0b679380e044e92d01f7cbb1e62f3597374c28dc49fecfbb8dce1381038d935638d046aeba0b6a59976000ddbb3ff38faf88d5ef240429f6c3f29cd27cf0dadf974dc12ba6dff9640d4176cfc5fd9c33e7e1e8e5b8208fb7ec55f4b20be1ddf57ed2e534faaa9cbd4b77ff35977fd9484dbdf713132ec51d403c792de3e91100113f43e91c8c10b76807a2cd848fcc9933984f6a9c3852ca05ab04f9d5a0b462eec53a7035cd8feb5ec01e30a3cd867922af060fbd31e210cf6c160db9f07536c850a60fb42b16d14db65d32f8113db65d71f4548e8ae3fd67c7ff49247d527ddf5ef7ffa7497391d57022a76fdefbf72477dfb36f6cbbe6f3e79f6f736a780b8500cb93b4ebaab568262c79b91f893274f8470d9f4a93e79beac0465073b5a76bd506c9b75ea6ed96325bdb47948fdefc76adf963be8dfab75c6ed75753a8e09dbd6a9dbeab3be12baad4dfdb2cbb6d965d7ec9b669d71fbf35c5ab318eb8d49b77f64cd4e47dfc7e0cc64c911fc4b442f1e17fe5adef8a77a80b66b24a2ad04896aebd44db513fcf79d0a7b668fdf151b67268ebb6b98c170d8383379d0b3cb61e3bce447089e3c79f2c4857fbcb6d2cf2f0e21a14fb693d8bbb0d78f7e21f03ea56f6347bb4726ae7b2209b895d45d440edd317bfcc69bbd0c7bc4241af6089237fbd34cf72d6f0a60fa7fe510a6ff68cb1d7e855fb147bf5674099d15d84e73dd37bb1ab66bb3ae62b6d536b566ba79e80ee5f9ecc7030398f43fba6f7630ed7f311975d547f997ad014cfafe143602617e75658e5ec3fc1ec6762564c1643fccea8711b5eb027116fbc6a834674ef5f860dfb666ddf86ba61ba6d2600dbe0edefe2316dfa6627283ef48e813af1ffe18661733fd10a6d220a14f762571ced1c11b7caa858d843e41e2b2f18f3583eff9ac1bfc936ef06daa67aa4ffafe35fbc6da3d06a84ffb5ebd24808d7d2f77583bd2f2262419f06303b1cff5552cf6fd1f2acdb91a820197e6f45c1095a6eefb33bd7ddf466d59975bf1796e9bf639b353f8d6ffd17e242d79d45aded4a72510f6eb7b0944893510f455a84a73df346d94181cfffd1167df02e021022671a64f4b1ef8e97bd983e25c6119d8f42b4db5bded2f3c9786508ca21ef8b17d6cb36f07bfbe053ffc6bed0595d06db312bac3f031f50a3ea87ddbd4500f09ff8eb41c474b0a7135f9a39720f8d6da0ff78f34a7ecd3b75f73ca7e7df0c7f0475afe60b3dd639ce0d30f33385692963bea831fe6fab6477df043f06deafd1c7c45f17b38ebe08d5fc462be8f3112fa64873fdaac436efb389ff5be3de9b6a1768f6177dcb7589f3c1b3f984ffb43c2077fb439e4e7e8e03d7e0e12efc1605b87b4c5d72137e847927c9224c9de16dfa68e6346e2c37697a1db92f9fed883f2b6f8232823f161539709dfe6b3eef0ef8378dcb78f843ed9e27b29009e2d6af718e1db549b4fbac3afe58efba1b66f63417cf3687fb4a4cdf5e90ebaed7fda04d1108a26b5fa28d1f7e3577fa4a5d3914933ddce43290246d08fa23bbebf8762f8335b14332af4f71c747bfe2acdccf6bff9ab2bef711ff42328571294ef7bc903f4d7da5450f64d4b11a4e58e5044f7e8e58dd3915957e2870f3e2d6f40fae4d9a0b7b13615cca82ce6f16625749f5409dde28f940465f16ff6fd8db6526b4348ec4eedb03bfc50bfcbf8d37db3a887801f3e28fbfe4a24e1beefe5004091d7d5a9dafedfca9f963df0fb8332dd5eeea03bac2bc73985dfa780c1368c3d82f9043ffc71f452d427cf161f944fba411fe69307856d2414b7dd65401fbe8d0565fa62aeefe54d7d24dff93dd648e8be9a07a49f1a46011cc10a4ba4b082170801e772727417bf60a2ea8abe5957f47198e75372d3a738367dfa3595e66efa5f69bc8a13f86cfa30b5455dd4c6d37718aa8738ced6b7f9077388fd987d6efaa37b8e73665f9efb0368dfbfdf9f569f3bdbfe2906e15dd8573bf9fe3d7f7fb3026450418a272e7f9bcfd7b6277e223c4d6cf0cf9d7ddf5d87bb8cd3714cb2b075e8067511c76223b14f9e6cac9dbcfc7778a0e8b93e0d3b5ffbead3fe29eefa36d6e6983d52f2cbfe5e3ac0ab90b93c66db1dca536d85c2383ac96357bc5ce2b344b7848938f80eb3bed7ff9ad8f543d2b431de98f4bddef0f771f46d3a4e0331f84a53bffeaad2d45a35e0815dadabd65a8d8cf4737d87a94146df0e739abbfe48dfd23fc95d474b7f88a5f9db656f2b2189eac66d25b81c2de99e83fe79d26dc3baf2b761d26ddfdf4b1e56877565499aed2e956092b7959021cf9143611b890f9b7efd5a0af1c1609b3e2d7b98b04d9fac34be2bccdddcfec263690dc3e8db2bcd59dfffab4ffff4f7baf2bafade8659dfbffe10d75e579fb6daa6f2545a80d1b7f9fd89daf7672acd19e2a834a7b9aa34e7ccbe7fdf46a5f9f6ad220471d8f755b5555df7bdd2d87dd6ec7bdfac34f5ef9b2a8dfdfbf7c94a43ffbec35c3dc4713ba36fb37ea539bf55a5b16f1f5569ce87a934755b1c130f6cfb646d55578c5df7a9daf69d5222a3bfc39c33dbfee8fed595fb7f42dcf7b7a9a367d08f5e8efae4d9e37b3e7ffbd35c4ba7a3afae74ec061f5569f0db578d5814f5293ef8e22bcc66a511c3b74fe6f3c8f61fc54cf7e875453e2d79d0fdd515a94ff2c117b36f32ebd81dfe48ab531b12b36f1c66afabd0b696789757d6a9b3fddd654e72fbdb1f6d4843fafd9841efd9cb1b50f8213952d233fed14baa4f9e4ddfb32d9d8efe0c57e08f5fe93e22eb0aa6aeec8bef7515fed795a8437dfa7f6f536d2ccdf8ddacabfab4bcc13a05c47dfa54d7bf5ff692eab0aeea9b28cfbebfd2f8db0f6deb83c1603098cbfeca7358fa27ccccf6171e10bdb4d167ccd175988ecbc06c3b2e03b11adb71302bf6e8394cc7c19cd8be7dd7a7e50e260e16c53ebf5d3fa41f866e5b5e59a7b9e99fe63ec3ed5fffab34e0fb7ba5f9de3fac34befdd334e67d30dfafe497e9a6e5fd0b66df232d7be0bffac48f7fac1f10a28ddfa67e996e30fbaee5cdf723256fc6efa5d7d5691a472faf3e93d8f7c17c861b7c9c4ffc5e57e0db589c7d83f9fc70f6ede5d53a767ffaababbaa2ef3015d3ca1b4b26d3dff1e895c6fe196e7fa799ee919234fbfe2a4d7dffd166df35d3bdbf4a43df7faca4cdf4476acb1bfa63255ba6fd15110de6f7e54dd53426fdf192b5a4efe5a73f2f6facf6baaa6f53bdfcc1b7cdbe792aa54e46a7618e2287397fdbf7dafa2acbbeffe833262d6fbcaece9007dd5e57f66dea0db3befdd1ac34beed8f94342b8dd795bf7d53a5a14ff719eed3dcf6bdbca16f536d6acd2920c25d3fdc55a780a8ff7dfd4febd04db5d7d5f96d7f2f7bd0affaac4fdfa6564a9d187d9bf5ed7ba53951dbbe7d54a5f1b7afaa34f4ed7fb5455df6cd4ae3559ca0b7ed7ba5f17d9ab67d87b17ac86f7fe1a194c7e8354cc7c1607bb4bd0adacff6d1e82e7ec1d4dbab90f96083dbab90d936dd7e1a5d07d3efe8334cbfa3cb30fd8a551899c21420d10c624f3c835806310b710ce216442cbe265f8f8813a5108b201a419c423c82cdd9266c12ac0ec4208829105520366163604f606da2084426c425440e881eb022b032b045b04c10b90096003401c8047882d009a1cece4229442d5c9e0582e541a882b08970056107420f883591086214a210c42184340837107e20ec099bd836582cac8fcd82d54278833005e109c2598802bc81cb869b86ab86bb069126c6c41eb189b801aa825a85f089d00421094226c212884e4420883e106fe20f3e26960c160d360c560ce215c428884f10a110664144816802f104e24c0481d802b104e20744125c2fdc29ae14b708d7082116c22084518442c041a04ce01160125c2c280aee102e11e80c8c5532d427d42aaa13aa2eb4852e085f1056113601c7700b701378059805a113a108421084210865212e1c424804b0092c051c056c458803bc44c882b00521ad66516750615063506500e6c0248048008f004e011a018402ccc10d01386b80a5e129602a581fd820582a6c0d449e7d8138028b024b042b048b133b70db707fae1bac0dec8d01f708170937095709f6061606a2ec5bf265c03eb171b06ff860f6e7d38065834806bb065b066b06dbbb397b063b8630168ec07ac17ec18221e440b884dd4285428d42b5a24aa14ec132614d609760a3b02eb0352bb343b03bb04e2c14d608f689eaa4d66a0daa0daa13f5898bb359d819d811d816d82ed8235815d81e8821b039a024a022a02010bb4037409bd01e510c49824c00c80f1f11e071f6c0438de541e0013404a213620c4418884908e570bb70a70052f1f9d0157c535c2ed0118453c052e02c845008a310da004cc10e6da208f1092aab27a01aa055085980100410bd300005d804a03261a4dbe95d22568b9304c8047c1c018263840f1f23b54414c1f1e103e41487c80480e8144182023e7482e0e40821a288101f3e543e9e27212204880e0e113e70702810f361c18d50a088101f16c8c14102890f2147b64e119c232c006488ffae709c20458c14f1012448112304d029828491204136cb6705228c04c121c2e5a38227b100ce902416c001e200f9b3228990005860e70f0a373e1dcce7044f02a708e9a3c299e046043172240789d497f31c248a104281224682f8107264e34c00880be53bc211214624c9c1295201233e2c803324e693c289c029528490244590d00112c48812214820c1f1a19363e4084e0e8e0fe7497084e808c93162840e12407c14e143c8910de408114580e4f068f988e04992e01061f9a2287d41700a18319273e48801a07c40701d9c243e728c0839b22d40011c1c57caf703b7c0047cdc9210c12972e4881c237c1051040923132822c4073a458c04f181e408227ae049748ae028c1e181175144081145708ef8c0d101428410228a000912e3db81e310612408cba703374281952f074e0411214604f191638402497092b4f86c9e440789233a481871f1e1c081e80021c24711234288c0d1492224490ece9198ef069e0427c748101f16d0114244c80480101102440990ff9ef0244790309253848f96cf094f9263442789911f80e4001902f5d5c02b20e4c8cec1199263640142e44f068e8383040e1205400011384514010401303e1878922141708c08b2024fa253042707c7882242fe6ba288100aa4be99071192a488901c9d24707c5880c89123407ce4e01041440812ae21418c1071a9be12f8113e80e8002102880ece00461f131710420488101d214584a07c4bf8902046884cc0078e0e12417092c0217d1bf01c23002065462cc02a6660dbce333a0e06db94c7aae04a45a5821ea1e04743238346068dbbbbe9a3148f2abe16b37c2c57652bcbb59fb523bef5f47da6fd3e7baad5e26aeda5f6ab275b479f8bb5d5deef9a26a65453aaa21763fcbdbcd8175ba9add4626a6fd84a6dd4b018c498c55a8b2d0d8c6dadf77a1d518c2da595d25a31b5f6564bf14bbd18cf9851596a2fb5d8626b5556463575a823930cbeb7da5a2ba59762fb594ab1fde85763dcaf56d3b4a6b5d75afbd9d15a5cefc804adc5d482ec085b8c5d600ba35a8a2d0bb6d65a8aadb52fac29c4c2a1900d611cb236746d888e6c2814026dc88642a150a886eacada900d8542f7da90c5a110b676acd6acd686c690df6aab756cf1c51fbd95bab5b5d68a2d8da9d4528b31be2ef08bad2f7884adb52fd5666c4f2dc691c5165b6b616cc8da6ab1adb6d2cfd697976aadad2fbad65a2bc6d85a6b5a6cda8c2d7e8cadb578642db516636b6fadf85a6c2db6218c2db618635b2da6b4e25aadc5957e2e1fbeb85a5a2db5d7526c31b6d45a8bf188b6b853ea94a69c524c29a52c18d3d18852fa3956a5c0ba42adb5d452ea1f765b471863d3344d53ac42d45933465439ad984382009900112246725ea800c1c95929e10cf1a193044e9196924aa893444812382af308232b94d31042019c9c239a942a25c129a20810238268b108ce91234054a7234700d149827384109dd7090224491120393a3e74841c31012492b0469c243e8e304244112039faa493c4c7901c2315d0c12902034a9252c40a858822407ce0e400397284111b2620384482f8c02902488e119d243e8800096284c88b910821448028f191a4e4338e10a25304891c4da2800e122ca424708cf0a1534448ce111f419208396274444bc5c9a1808f1c233a40821821420488ca060d4b12462aa0d332044890203843686ed0f810078d194514116244122046bca993034427490c8d175191228424c960120be00cf1114408910920716495d382089c244970728e1c6124482b9483a3c448109c1c1f4092101104c7c78c213437681c09829324c66844101d2013f06144122145845060555a800242727094bc90383a4072708ae014e1638719376ed02002c787119d2316c809d2622482a30487888f24801ce1022ac208111f4514115244114688a88838497c2481434411213e8a08016244100a50c0880f9d24705e49111c1bfa0c1f458c08499283a3c4878e1123393e88c0c9c12122c7880f9a1b347cd0c0190284c8047ce008c9d1f1a19304ce0b254570acc9ab05728c1c817304565204c7ca1069a03ae887f3ecec88dfdde1017ff8ce0e08eef05cdfd9d9e1f976be1fceb3537f38cfce0ecfcefde13b3c3c3cdf8efde13cf8070fe5a13c3b3bf6c70eddd9a93f76e8ce0ecff7c37778ea8f1dba437ff80efdc14379e80ff71f3b748787c7fed8d9e1b13f78e88efff09d1d1efbc37776ea0f1eba437fec501e6abf1fcec3c3c3c3737f380f4ffde13cb4fee0a13c3c3cf647cb7a80ba3b3d2209100fbbd67675f1b36b6ed7d56cd79f5d6fbbc6768dd9edbaaaedeab36bf9a78bdcae31b35d637c765ddd766db1dbb524358c9b8bddae306cb55d450da316f3b32b0cda2ab72b8c598bdcaef44f18b35d7fb5b32b9e6db9ebeaf33f7da25c569fe63e57bb5d63f0b6bff0843b2f3c9fa54d68613431eaabfd2e883ff4fe4fba9834c1e10a5f048d64697a94f70f6d48648e4aa44fb962d48492f24c9aa05ca767d2c474ad3c9326a14be5514c9accb8521aaf5cd767d067d2e45d9fcfa0ef7e83beff4a46f119f455b2c967d047e592cfa07fca293e837e4a3ef90cfa2819e533e89bb28acfa05fcaa1cfa04fcaa0cfa03fcaa2cfa06f6690cfa02fcaa3cfa01fcaa4cfa05fe6159f419fcc299f417fcc2a9f411f94597c067d31b7f80cfa6176f119f4c11cf219f4712e7d06fd9b453e83fe974d9f41dfe691cfa05f33c967d0df59a156373acce952e8b68d79a2cedfbe3ac2cc91f133ef3d20f83b2597bdf75f600581fe75432f33fa25dff78c425a0990d813fa25df112612ba6d622e63df5d3d21512b315222447f88793a6e07ea9e25e0f7fcf7dfdbab7bee7dc56ab8b07eed945c15576dd7ac21dd130a85c6aaa33d51a8e2aa8dea4c15fa6e5b23dd33fa25e0f78c9ee46d5b6174d4afaa7bd19e6559fa3abcdb1648f7807e09a89558429fb89e98f1eeea79f25f2aa58fd548f95798531e847a14fd221f447951bf423f125f2667e667bc982b2f579865d1a86c26575aa66d0bb3300aca3fb287b56759b557655546c13c44b651c9b86aa33aefe1688ff228ecab0e46a3b299caab326a739dd7de48a4fafc4abb211df489a238ec9625a34f9307ea33dc363b0bdbf667e4234c191bf8d5bef2ea2eecb381accde1ef2f4fb6ed7f38d1daab5f57f7bab0d767b33c2bc361fdf5b6bdffa26dfb21ddb6a37fc1b67ddbb6f7ca3e9ced59dacdb64014f15f2a8f7af3573ef5b11a2e1045a3fc2bfcd293fef4ffb11aae52bf46fd4ad12f14fd4279f0537efcf24dfa25d22f52bf44fd12ff7bf2456f7aac5f57bf42fa35d2afd1833ef4f7f1db9fc1f9f6f2a5e56f943f58b6b68c652fdbf6c77c7127dcb69f92bf1ea9b7eda3e48f0666ab0b4bba6ddf94312cc3b67d51beb6956bdbf6c9fcf14cdeb62fe64f962dee936dfba86c71f4064d628023c1cf0a783a984d46db420eacb0830ca08005b6c7c3e96c70184318bca086190f767bb46bfb78167763075ac0220a2856e072d7f7e727c36268030f8af0862c9cb8dc150afd89654900821178708509b4000497bb462325c48b73264001b382ac0553a0b9dc05d2af580dd7482b817b6c10830ad40007274e5cee02b512d7ea6c132cd4a00382143697bb3efd0a6925463b2557e8a36d5bb3add7ef945c1fe81ff4a15020d39483cea5845b1f7aae3394918f3065aa96c948647478df3ae8245526d35d879838dbf87d2a22116fdb1e0e0c7921edfb52b72d080375a6b017d25ea45f98d7c3853cd9077a12b7ed8364db3ec8dbf61361a1add42f0cc274612f14619006f656c41007dab67d142e43d828d2421d68c3b45728d2429d65590cd2c09e280b3148bf4019c81361e1877b200e242b439ec93361a00ea481c25ea92b6526ef0b6da008c3389056823d33c47d22b6a180b63184a1429d29d2300db7b3e1d9d66b675be408d289361204fb21474daa90349511071a41321147da403ad146ca603db204a291b65147eab6fddeb6e48803816422cec7b64a3a56c3951279205b0a894b1961232fa54799d803e1c61ea91b659665c51e68ec913a9107b291b871e48168a46d147520d10682a9c8506ce40a4fc48164283412a703f544a20e44236de438c2441ee8f4a83f41b8526a24757f8e3d9498779749ff39ca44fa5483464336d244ba6d9fb76d48a34783a6428e3678357830346c24ef54c316dae8d5e8dd8091bd1a30181bb01a2c36643470252c468d1a321b321ab812562386ae21bb01237b356cc06ae06890bc1a367a357a347a3448988d1abc1a341ab291a6a3c1b32c1b830ad94a5ea913c1443a944816c2953d11afc48944a13254d24c98c816928578215a293365a19e0817a295325316ea897025cd84896c2159882712854a5b48240b953d11afc4856c25af14c1443ab157866c22984857eaca5e0827928978252e040b8968a25e690bc942229b092b7788b6435b84dba6ac94d5d3388e5fa291742418cae48d6ce338cab625e146bd92a91bd152fa5522e94826cf5622d9463c18133792fdeb5749861b99ba118dd423d146ba94691bc14e241e698433692689471ae14c9a4922d12ccb8ecc11ac0423d9463c13379299bc128da423c146b611cdd4956424dca837e28d6426ae0423d948b4916e04336da4deb69178fb46926ddc08b77366cfa4b914b01ddb3093ce042bd9506828bd4d43b1997826590aac8433e94cb0920d8586d2dbb314190aced42be94c34149b896792a5c04ab82d2bf15268283a930d0566c2957a293614190acf842bf5526c2832145e89974243d1996c28b014190aced42be94cb4920da5874233e94c3093ac844b81a1d84c3c53cf442be952642838141d0acc642bf1526836bc149b8d0f0acfa68722b3f931e16c76a59e63b14fc7d976dbbecdcdc676e29d642938944d0566a343e14ebd132d45a7223bf14eb2141ccaa602b3c9a9d0503a142c8577b2a170a7de8996a25391d9e0527a2a3614ef8443c94eba134c0587a2a17a27dd09a68243d150bd949e8a0dc53be15032151a4a8782a5f04eb6149c0a0c653bf14eb2132d45a72243e14e3d14ec644be1a9d0503a140f253be1527a2a361b990ace6686ead9d050349bda4967133bc168ecd3071e2eb6edfbe0e3034f254be1567a2aba159a0d4c95d2a5602a2b36952c855be9a9e856683efca86c295e4aa6b28253a5742998ca8acd879e0a97eaa5682bb0159d4aa782a56c2bb2159e4aa782a56c2bb2159e0a97eaa5682bb015952d9552e9adb8d0a9642a38d44a6fa4add8523c151a4a37c25664259c8a4a0f654bf15652a5144db5a243adc0f6a8c2e174da879c4ae5832e655bbdbb48da871d6f87da87db8acc07d9b67ffa70dbf67d98d996ccb6c2b005c6623ba978312d3a179a0f36dbe26ddb2263c1bdb8d854bdac5f2d30169b8aa773a1d56c2bbbe04e2dbd165ac80263d1e56fd1af165e0b0bcea6eaf940b3adccd28245e6a28365165e8b8d85a5c74273e1b5e05c642c3d169a0baf05e7226391b9e85c602c2d365c4baf85c6026371f953c56be1428369d1bdc06c2c38963f55bd162e369816de8beca585965974cf026be1828369e9bdbb5afe7481ed977797feb3c516f3270b4fe6a26ba17be8b5e89d92cbe54f171e8ceee147b3fce9227bd13ec0625a703ec4487fb2f8589665a199f6d903ce67dbef21675ba496b7df03ceb6425298658f23b9f44899a76df67be0d9964b18c6e49e4ba6bd4ee31ef62ffa95658f73e9f1b4cdb2ecceb658c217add3b06c63bdec5f3e46bf722feb700fd3d9d649b73c4dbf68d9e933ae25c3dea67b2fb24ed332ec6dba97759af634cdd3dfcb38cbb25aa761f965efe24f979e2d67d9e35ef7b0ac71b99769f9792fcb5aa7615a9671aa3fbf173e2d6b5ed63db8f853f7740f9ad6834d95753ddc563af7307b1b689f3cf47a98fd9c7a3030a517d88b4ed542d642d783ccb65c8c2d68ff228391852d782f3c18fd82d1bdc05e742d642d743dc46c2bd5e28506c38379e9c1d05ad05e64302d782fbc1e602798175b0b5b0b181b4cef04837bc1b980b580b5c0c1e05e702e602d602d70302fb6163036985e8b171a0cefa507f3a2d3b59095607429584af6d28217d24ab2120c0f86b6f2d2a2f7420b5bd84a30bd9d82b1c15e6c3ce85eef945cf94f17301e7696654f7fb6c0f1c0fbb3052ca579f0f91306c743ceb2ec0beeee9307dab67ff290dbf679a8d9164abf78a0d9d64ec935be6e5b1c0f4583d9e701675b598fe3c3ac78790593852e6c31bd950e17c3731103e3e1665ba7556f65258bb18d3134173818fd5aad60313217b6981e0f36db52d10f5bd14a3138151d6f6563c5e84e2e642e5636962c46e742e6a2075bc5e05ce85cf0562b594c0ccdc5b8c2c5f0487fc6c05668295d0af67fc6c4c8545cd856782bb2942d86e602a7b2ea9dfe5cd156627029173c17bad29f2cd80946f3305bd95ef3208bd1bdf010eb859a07980bd90f4b56a3fbd9f66b76b6f56aa1b3ad124be97bdbb26831c29eac577201db96658321cbbc18b0d2bf7eb158b418b45e0c994f49b62d0b17c2a09560e85ef0fe5de8d70b960d868c170356c3b3ada76dcbd26518b67ff1a2d7c2b62d8bb7edc3c0b578a183f182c583817ba183f182c6d2c1b0bdc0bde8bd90b170306830742f527fc6a0bdecd423b17a212d949562c09e7782916c245ac82bc1d0bdecf4eeca7fc2b0bdfcf9a287a33d4bf7ba26964f18b893ae91bde813068ca46b6630307fbed0d5d02ccbb29c2f6c35b051ff4ec905db5686160317f323af97b26d1b432703b6fa940e321d6827deb632643ad8587f92c1e960585cbc8ab6edeb80e3bd7898183d19188bd6c145a6d7222383f12c326c31b47ee9a07bc9f45e32b2970c183a86ed25c3857ee98093e1c5e85996fd175a061643864c079b0c4bcbe85e32b6183acbb232603aacb40e341d6032b418381d78315a871e8b47e2c16831703d1d68291d6432b6183a19301d6c3a15195c0c9e4c071c4f06868ad193415bd13b251749d7e42ccbeaa02be99d922ba56b709665655474cdcdb2ac8c0ca56b6c966563d8465d23c3e652d44e97a2b6dbf6cf1ad8b6af83675b29faf5f675ec6c0b252544914619381b34141aba193dd48f6d9950a6195a4a866e868d06cc86cdf424fd9a91c9c0d9a0d1d0f57ab62532d9b695c19b8113d9c0c1c61919ba19361a301b361fdb22c7199c8cde3843779ae1cd90adcce86660bc6d57667a3342fd9ad1cdc066f0667a3368333819bd19ba19de0cd98c4d066f868d19231b3471460feb66643270336ce39f366c220d18a65dddc58560a63f6de0666c327878860ef5e70c99ca9f33a3199c28a3879292f2e70c1e6a5cf973064d4593fe9ce9bd9c333a910b1c32dcb63dd5933a1a5a0a6cdb47b56c238fe55370b295f0491ff6b64d7d89b6edeb5a7ec5460323e57ff9cf2ddeb764279ccb9368bd9716efa2a583f9162dd8cbc3d0d8f4bfdc90dd70a15fad16fad582c1e8178ded45bf6e687d8397f5abc57bfd6ac95e34af1b2efa46a85fad5e2ba55f34ba1b2d9a068603d6b2bd68783758348d0c87ac85a3e9dd50691ada0c6ce54f1b3a190ddead410b8da11a3c14cf4483d6bb305b8ddee84f1b3d91868de4a1d480a5d4c085feb4011bdd8091640f45ef945c2b210d5c8ade29b950a6ccf4eebafaace1da29b9447fda9095b07d4327c3d1f468686437703860361a1e8d8e0676c3d6a3a1fcd992d1e06ef46ed052fe6cf1525a3a14bd6f2d1adb0dde794376eab06dabe3665b22fd52b1d916a96f8ab66d0e1e0df376d0d9d6cafd926cdb5fd16d2b43d16dfbbc6d5fa45f3a68397839683878b49c6da1b4e8491db06df18b3bc0ee63d9b617a7137d49bf74c8743bc870e8783a70b665d22215944fe96dfbb86ddf04dbf645386c3be054563ed553f9951c36d4abfcabb7ede95138683bd852fa956345bf72a8e8d70e28fdc271d23bbc70f42ccb3e8a7ee5c0bd72c05e386c3be05e3a603b60fdca21bbfa8503b783c92b69201e48fb68235ea903c940dd0eb2912ca403e1401ddf0eb0d1bb8bfc33072e940336ee80bb7fe2b089fec43132f58bf4b6f542a546917adf72d846903645bd713dbd5372813ab4acfaeec27ae72ccbfeb9836deb5db32cfbeefab45b56fd13076ddb2f62d25dff74296a2e856efb0bcfdd61f1504ba500c5e83027edb5c207dfdfb42dfcfe28dbb2adb262d0dffc5f06f30be5c3fc3afd4ec905fef7af2710403e88c7c73ad9f7fdfdd7130808fd870bcb0fffe59645bbe283fef50402cc179d77457fa9ee41a547f9d71308207d8907fa2674f4a019efa1e817932665ca9f98c47c70a17c13ea7a3d8100d3a3fccb2deb0c4ffa456d29ba0975a1e8978d65d937690ab32cfb25fda23ccbb24fd24da80ba45f3396657fa48f58967d51bf7e58967d5337a1aeab5f546759f645fa2dcbfea75f146759f643ba097585fa655a96fd52539a65d907f5cb2dcb3ea99b5017d6af212ccbfea8a9ccb2aeee93616c5e9af827c57d3afcce7b77e13f6740efdd7717e84fcac3ef2e90de29b9ee9f8e13f54ec9f5bdbbc03fc51fd35de1bb2bfc93dab67d1b1b6630e36c5a16fd9b519645ffcb6f5994f6b6bfec9878680575a3c865e88b3c873f4519e911a6ffa6faa448fc8f3095801b0985ed243c3bc7ea24ee32a7cb9c74d3ec7b88497f88e95f1d876454f11a263119aefa4d3e17af89c570d9120dd7fd26d45557bc26f6a5bc2646aabc266662f19a98aac56b62302eab5fe0c76a905ec32426e3fabe09765d93d7c44014af898952bc26763a794dcc05e535b11857d52ffcb11ad86b982c015db11957fd26d6f5e9d26b6235e4353190c86b6224d36b622b23af8969977d7f92d7c45eb8ac7edd8fd500bd26765d35b152f49a180ac86b622caeaf26d6c2f5e997fd580dea35b1b07a4dcc74794d0ce5f29ad8bb6a4d6ce5aaefef5e53f5ebfb9d920b042bc6a046dd8bb569f52b56c365ffead0b2e8c76ab85e25d7a75f4bec93274fac76cba2bf5372c56ab8aa7ecba2efbf83e997bbdb713cf071336c6a33b0ad3e29cc4bab91f893ad849e3cdbdf3d47cecc4642b7f5af36d30dec605391fd51a4eb3bdd63cde1d732081e22d44cc3b7a92d98628f1f3e7da76206fd984ff287883fe20ffffbd194c3fec8309fe3d7b22cdfa65632cca2afa6f9613ec3b06a27e68b2ee938bc8619900cb3c361bff92336dfa6faa5f50b85c2ec576c9be90ee5fa36f6fe90f0c7ffcef1bde4417f1cc7b7a9630ddfc3307c9b4acb1ee18f3f8ea2acf7484951254596145d5294cbafd96eb3fc112c0b6096efe51066f936b5fcd12fb8123a2bb0cbaf5b945d0d7b0465b2e451ea9c6a7f046552d70aaa2499415fda0f85422ffa5104025f643ff45e3512fac4d61f43a0ba41e087c03223a14f7876d5ee3140ff217da74e47589b75a5f7a75175559fee1dca53d6500c2310e6b71db702246cfaa30808f36ec7ad400af79716c460abb6e35ad0b347917b8e738667147d7fdaa7569f3b3d401b897df25d2cf6a791d8274fc2ef455d24d467f84478a0e8edab8bbcf6f7f4c3b7f97b2f85f02a643bd44ef0b8b34f7a5eb1080f4c70fb16f12a64fbfe79811d8a570f511b820c2a14214c62dbaffe5fb6efa5039a7081b0942c40b1240cb0efa91318cb0764c0042da7050d073998ce11c7623b81c9a04211604a7860824be202fbbe130d38162e50c31c0b97eb97ff4e1116b8a00a1988030ce6c21ac60406a36ff579645b068cb6908519cc61c993272e7f53dda93cd66223d8ef03c37bdf7e781fbc178f387b5ddda7743bae054beed31febfd7aff43429fecef6d2abedf57eb14ec7f9ee3beff78ed89daf6e9cf846fc5b7f82d7efb22fe10dbb7f82df8d6dabf99ee11cc5e572d807d6f53ebe3a7f853dfd35d77ea7b82ff82f8a3fb0b5dc656320479c31801b3962cc0e2871901ffb2929e837e7d9a06c7edfb9fe7c0ef7f3d07b551579705bc3d5357f7bdb46704c2b7adde84ed2ef3fda7cfeffdfdd3344763a66fd2f6f7ed5a44834973fb3437133385b66c64c00267f9b66f561a1b19cc7ce5dbbe89eab09141132e83d2d8c86006bef27db66cfb2ba21a4cda83edfb24a98c60f40498f6cff0fcf6f78eabd5f657ffab5ffdfefbafd2c07c14986d9a7312db3407dbd4c9b74b21686e5320681290c06cd065ec8fd491d0275485e7e0b61f561ad7275dc21665dbbeca69fbfc8adae23ec97d867409d37133f8d9276adbf725d0627b06bd6d5f75ae62c8c0894d737bb4650f9adb963e5d82cbf88f97a439aac3376562fa53279e230965b2a91397f1cf91640633d85423a14f767d9af31c49502e439feab304822661d747798eefedab5025780e9a73197f252cc173d0f7b765fdd073548d24dcb43ee839e85f2ad4d1b77fe3db16cbfbff70c4b6ecfbd3996db9bc3fc5d91605bdbf8d6d89ef6f846db9787f2ab3add4fbd39b6da944ef8fc3b642efffc3b6f2fbd3986d91ef4f6db605637aff19db2abd3f036c8bf4fe14665b31ef4f6bb665bebfffcab650ef3f846dbdbc7f12b695f2fe94665b7a459fe15ef9537ed13d3160bc0e8f92b5ee79d1dfe2473966f531cffa32679947791d7ecc30baa7457e980fb30bdd2383f2311ecc29dd13e3e25f3cce2a987ff9fc37b3e89ed4b37ccd2efac5b3dec5abe49e1e97573d2e063e7be54d315c2d2ecff2a2dce3a29780e1ea29dfe5530f4ae92542ae7f95ee5179d1b3e825505c3de0a71ea57ad383be947b54a667f910cb87dea497b0ae9ed38b5ecc3d2c7a091957cfe859420ffa2ff784f4123cb87ac67701e92554ae1ed0a75ea59730b97a54ff3d29f7c0d0412fa1e2ea093ff5327a89d0d5a3fafa36865e82ba7a4ccff230f412d8d5137a9747d14b905c3d282ffa94dcf3422f9172f5a8feb2f41230ae1ed48b7ef564ee59e92540ae1e528c5e42e4ea21dfe55de82570b87af0a7decc3d4b7a785c2df41231ae1ed5dbcf7a0996ab27e545e2e7d74f730f8c5ea2ba7acc67f9253d3cae17bd440fae1ed1bbe81ed1347af397a02e97d77a8996ab47fc94ee49fd12d495ef7f6f3ff7a874cf12d4a57a17d0b7e49ed2b3e81e95caa3fef4298ff24b50574af7f4f4f4883ef4e5933fbe8d5dc93bb8ad92ddb2fc51796559fea73c8465f9a7e4242ccb1f25539a65f99b726859fea53c6359fea4cc00cbf21f650ab32c7f33d39a65f98bb26959fea18cc3b2fccbfcc3b2fcc94c6396e53f666ab32c7f50465996bf986d2ccb3fcc4658963f98a9ccb2fc71a637cbf2bff92dcbffcb3f5896bfcd472ccbbf663ab32c7f9a29ceb2fc774c3c7447c58634181de6fc6c3b84016c3bce053bd8276f3bee05b45d3d07cd41a200f0ed0f61c35780f8e10f11be9737394814007afc43e01f7fd44a801e8fe46352866720dbcdd276fdb106d2366659e1831ea495103f0cc7078d3607b23ad1fad89ef3766879a2c5edfa57012905d80f3fd44a806f758abe7d1e97bb5243885e223180bb44d8ae3f44f8c510007e6a08daaeffe271d576fd1d97970848513d846cd7b71f035ea076cbbabafe5898659df587ba6e4e2900fffd8bf1631edee5647516db95566523ddd9d67d3bde4c5d36539d65d5bf3aa580fbf6ad5602ff75b9cbe5e5cd1005a0aeddaeaf271440cbc08325c05c290560bd635f033a9a900322d887d92bc6c004cc85dfcb9bef6d2acdd916fefabcddcd18ffad359cef8fb454c07dac7b06a02eb7ac93faecfa346759f5b6e99f14476f374e1ac567dbfeb213d24fb4cd98b92a96dc4651f823cee7105b6fb637579f74dfff9e66bf4fcf21f7f17f7fdfa6d27ce2077f0433ce3ca6f84eab28dab7a943ecb73dc4192c6f404d6352907ed9033fd5e710fbf5f1108b711e72fffb51f4b4455dfeb4b4efe5d55ebfbaa24f79426aa330d2cfd64aadfeeacad64c772de9d3f2d334576b750a33e9a65fcd5a2da51f6eaa5340d0ff9e5a0a031b3170880346f52a94c93499240e100521280cc330048561188e21280cc3103f05fd8931c62128fc50ebd81dc608297ec1eaefbd37c6be3f864ac08fe184d1613e060c0102ff144551c427fe10638d8021ea0a07e1f974dec63ffe605357f8bfbab21f827644d655006a461c36280e1b3375853d465de130eb98f5dd65c2b7b1b4bcc118c655e187fa0c77f8e283e283fe0441f141f187807515d2f246d43a768b2f6a54984da68e597f26c64c8c55153fe432f8611ee65528938e59bf7419fcd47ea4571a4a6f88317e9b3abaadd4bf10e932f8437dd21d3e0d431a862e83ffe98f62f8e09fa218be18fe1091de10e34b79264d898d1ffd1b7ebd35cc445cc67bdb7f4cc2881f497cfea3aefc21a004038650820c87a82b0fe2f583cdcb64da98353518c031830115aa8e66503162d0705557fe347f5db90a654299ccbaf29649c4793a0c5f7c9d1554f8143530abdff4c79649ffc99327dbebea4451bba93ec3074322cedb54e3b800f838662a7901b386da06cd33315675651fcc3075f5756547665df99fbf2df54a7329dd94078fba9d8620ad2b1c3abe399f44bcb7e983b46c83a3c407b5579af37ef8f4de0b3ece623eefcdfdab4d6036c9babae0d3f73c828fff0c43f043f08784daebea03755857f771feeaea7ef9fc76adaf02e9d76474a7f13fed7fd4d66bffd3b67ed67e9b7e349fadf6c993aaa36e7fba87e4d0ed4f9e6caf6fad4e05c287edb3711c5d9fa86d7ef8ef9fdf979130f1904f7b5dd16b561afc743ce9e3ef4ffc4898f4f1d70a98f5a9fef23e89a0367de7f9a89502fbc0a49be2601cf1fd6ca5a2d347cf489874f3a87a04f1fd6ca50e862c1a44dbab108112604e2cf31c3151b6eb9fa3965bd67967bbfea9b2fda9b72eccb22a3dc204dfa6d2ec9ec3499ac3ec2e53cb1d2e9b3e989180e1fb0ec14c37cda1f5c3ec04ffa5790d76017e0186018e0196019e81f94d3ed7c889d7c4be9ad7c4481a784dcc5403af89a96ce035311827bc2616e33ee13537f09a588803af899936af89a1a0f09ad8e7c06bea5f1d780d93d88c8bf44d3e5769075e13fb78e03531b2075e1333f9c06b62aa9bd7c4607ee035b11817085e1304af898551784dcc1482d7c45043f09ad81301f4d5d4155cf28196804f9e3c392fafa497807a0908be834b3c0a427043b804f4af980d90de800f2e53bf5e3051bf36e0838bd42f1e278ab081d22f019780cfa409e92245fcafcfe40291e28814cdfaa4263d599632fb23f14dfdb23c5c93182ed05ba00708312896b08327aed7067c7061fdda0143135698d57624702d01491a9b3aff6b54fd6be544c3e6cbc3a8b47c35b9701dfd0b46bfcc7fd133af7f0dc132be4abf3ede07734b334da44e66e9eb402dda5c7953e8a395ffaa9545bfcc57e9233fa8ac490c177e917e7d3d99b55599cd0c4f269a2bba9462d6b7a9e897f8284d6d9655699655751f0d5769304a2353b4f8af980d57a8ac5f298a7e81dea4698f5775ba6aa3381b2f0a4270836e04e957e5316942ba427aac1fb3e11af54bd4b557613dfc8623b4a10a1e3021033c3aeb820cc04005273b35093b8062044f88830a5ca3b6b09eb57d38dea7ebc93e1e8c16337b321b4e26aa5ce23781a159188d5cb9c86f82d2511cf8e4c91caa408525a8c0b6048cd9708ddf842cc314acd08516e4ace0aa38100a2798c20f36d004322c012fceb26a05b5006401b802b0095005600a401480e08327084d1096206422244138825004e1f76e59e187ef2100c1073cd0010e2ce133dc675c1caebb8119d76db272dd9e775d26f89ba05c7789cfc0d916d64c982ca14f5cf89b84ae9b019f51bf89e9ba1af019f5c31007ea1355ffb6c07320f127fbb6c065ead7bf30dbc2da9d45ffea3334b7e9ac13b5e95b7da2aa8bc7a08f65db5f76543c7587f27cdf4761749833062f095af31dfda93f24f7a93ef45663940121fda93ffe5e7775e63f346704aafad05b8d5159cdd51addd17aa33ed4c63c576fd487dad80f35576b748783c65675576749d01c8dd11f5af35d587f6a8cdedc07557dea8ce6fc675577b546773486a3e6dc25d61bf5713abb306e3318381bf31fe2bb591f3bbb311cb33fb6767fbedc9d7d37eb63673786633d7bbb3eb7f6c5be9dfdb1b5fbf3e5eecce7eeeeedf3b1b96f7673dfcf579bd9ddcd7d3f5f6d667777776f9f8fcd7d337bbb3eb7f6c5be9d65554fb9b1efb6abf5d9b5b4b35d716c7467a4dcaef667575bc33fb756fa769fbd3ebbdedbf7cd72773772d7cc9fd75dac3fbf1ff2ab956e5932feb43b0dc307cfb6ff0a9bf0fbec3ade441fd047dc614c1a6be28f38ee767d9f5d1fa45f209ff1e6837dc45d6e836262f88373bbfe6d5751c4bbd0c7b2aabf8b353106ca9df06d8c99c4196837db7534dbf5c5196837e21a6826d6c41828876f630c1413c31f0cba6d6ff151f1318d3790e853127762e8a3b2338d35d04f49cc853fa01bce8162a59b18cbed3ac640f856dbb5e5c599de298176bb8e4030709655716dd70f6d6ba7e41a4d3f600eff88a65db8f37f15180b73292614d30f98c3a65db8b32c7016de507622d00765a6d22f7007c6421f949a494aa1c25a4a4a2c052507d6c09f104a8c05e5278ca5c2d90b256659f5278c8533304c89a1e440f0070c6f28a00fca8c65b72bea07cce19f5055439952bb5dc1584eb50ba1cc523ee02c25bca962a11c580b6b3bb62b0ae54794d21ec64ee06d571d4316fad85649d78741b32d128c996d8db4364dd4e9f63342b9ed9a92dbb53e8c9b6d9124ca4775aaf9a4a0507c4cfd429d6ea71f945bce665ba22eed763dcd526622aab66bca6e57944fede483baa1f8d46c6bd4a994945a69b7eb8fa8594aca2d748a9d7229542c25e5768a9d72a8580a2a9772daa166293e965577a759ca0c554bd9c1c0d9d64ec9555152203257ce4a9fb136fecce8d3772d2015b93b95b5f28704fa217fa45f64ae9cf95856ad8d3f32f4e93d15d2a7bc85622d638e9cbd4abfc85d592b413f3ae8d37d4c9afc2973a1d968dc91b59432a652ee42b594d187bc95b172f4216fe44f990bcdc61d5923cb5b2836e648963e9da7442987275c7dce84e1a74f1c2068f5e938ac41f865f4e93916fd7ad1172fea7ad18b21b32dea7aa14f0aa3faa4b118faa4b27dc298c1d0279d6d508611832103330cd88b9ffca26759140b5080420b4be8eda0969bf98cb15a029c1bd2e00625cc403fbb5af933b36bf079c203376471cbf9dcca5c6846d67864e85991052d40c135eec89f4fc30aa09881800a579431d60c0a1e50414f19722e776110fe72b784212c610d19e880076a2e7785e19fa15ac8e6e48a25c4506082d193373958c18409595ca10297bbc0117c902836dbf5cd5b19baed2adaed4a22bd6836aa91668e0ce544a2dae866ee423bd18fe836ca993e211f3326ca8d76e64fe8c79c8972a39df913fa3167a2db2867fa847ccc98a836ba99bbd04ef4635975363273a19cc847141bcdcc5be826da8d2494d14f78c33f29b9128acfe816fa60d0a7943233edc21ade9d6629b55d0a46cd7645e576f594dbe84fb1532e05157bc5b889aff1e90bf4a09779955fc2d0e78f549f28904c8c5b69f5ad3e9859baccda8599c5cb2c9fccea59d6137420042134a108b7d86de7e33926be908619e08006b9596e27faa12a70028437d0000db55d6de413f3022e0a145041050f5c211fd1ad031c80826c04b82fa44e516e5fa103300041159674c0e5ae528f764dc8c063420570f871b92b347f76bd11cbb5e10b38b081199698b3294821064e7890029acb5d63e946f221cd4c31b35622fd906aa6d92856da956224536de453f229cd48b9d14fe9a744da9948b1d24f89b4339162259fd28c94338d7e4abb528c64aa8d7c4aa41f52cd341bc54a37920f69668a99b5d08fe9e6333363e52c47fa21d5c05bc987542377636cd7d2ac44ca8d7e76254db75d4b3ea0e974967e4a65e9f4ee0a4bb55d49a4d2bb6b749276af9e25f87b48b15d97609b850bbf12ab9d49bf94f8d394dbf45fd04a2fea1734f2c5bf18c1781822e945ed9615e3639858efae1ef14d5ae659f908936ad6bfe08d4aba67c9f83d3b2557e94bdf4322917ac85f327ecf6bf43ef4b41224d923fe9291bebb7a4afa45ceb2aa12a29884670f31cf17b9173bdb22e9fa2f78b635aaffa2fe0b9d6d895af422b75372add444955d2e154bed546ebb92566e2a3e291f959aca4f4c6a25a7325b89a9523fa9daca6cc547b4325bf149dd54622e5a155399adc45676a99f954ed5522a35959fd46c25978aa5762ab7959b8acf4a6de52795b3acba5351a9ec56527e764de57655c9a9f8a0566e29b1d4ae743ba9fcecba924bcd764df9a8d4622bbb5d53b55d533f2515d5ca4c45a3567c52a665d14fdd7635a962bb6a95d8aeff82665ba49129a3cf9044c5d0a7296a18fa448dda2deb8481dbf55fe8f3ebb3328c99cbd437629e2cddae7fb260bbfe0963b6d3b9ec7ef63e2eb3965ccfc5e76b2d37975acbce65f7b3f77199b5e47c5c7e5afec7e5d6e2e3e2f3b5969b4bad65c76b99fd2dc75c5a7e3ef6b93c6b89b9c43ef6b93c6b89b9c45a667fcb3197961f979f96ff71b9b58066a7ddae3f4bf11173e3aeaca17c526abb8ae3ff9c7cc25b8acbcfae2db55dc7dbaeb15d5b7e767db9e4766d99edfa9aa982064a30852a68400693ca7f6cd7974f01051f98c0c908966ca194a295f81c4abf7078c00550c8404f930e904ea23c7b89b2a005243071456f032e97574275bac448ad846bf53b25574a6dd716b1dbae4fb6b8fd4e0e51b8764a2e25607e742ed7763db598c1d454a2d06ed7cf3798dbae2a189f5d5f7e76d5af162b398702933363bbbe48fbecfab2db75b5db350666b6eb8bcfae79a77f56fa05b38bd12f98990bfd7a69a15f1946eb9f57cebd60722f98d84bbfe897dd4bef5ef9067383d1fa05e647e772adc52c6b985a8b5a8bd8adc5ebdf19c10cf8cf96588b5b2d76fb5dadc5ec2757bbbdfcc0ec6e303998d8cbce27e762e859b293021684e072d708fa1366e70635cc00b601180d5cee32957fc2cc6c15b72fac00e68620b8c23f5f7c724db2680307c8f0c4e52e17bd53d23f51f8810b52e08533c020ef767d56ccb65e30db1ac7afed9adbb526b2fcecaa9aed4a1b1f35dbf5e5b6ab8965b6ab4f6d57927ee9da4b8ee567368bedfa5263898dbb5dffb62b4abff4ece5c6c2a2aab164b6f5b3ebcb4cf5b32b8925a7ca9d7c767d89f9ecfaa7ecf31253f9b0b468d52effbccc543f2c39554ebfd458622c3b158886062b9c98c2107e6ab95a6dc50d5440810a58d082cfec366389ddbc670637f4e43ec064a763b59799ea4785041e44c1830dfc388125977f6811cea08122e8c6900297bb48fab5e2fd997d3e58131b0c34b0860fbcfc2566f2aa804318aad0062a5cee22bf2ff5a9f27123fca00d70e899200d5870b94bbc0fd2a76ab76bd5c00d052f78a20136b8dc35ead76ab7537281ca10c4b3d18b23c8c58f8bda28e549a394cac58e45bf6254fa15f363597545af7296555f45bf5aec2cabe64efa15334bd1af158a8e31e9d7aa6659d587a45f2e6e23fd8ad959567d53c7c448fd8ac989fab59a8dfad502a45f2e7e2cabbe48bba85956fd52bf5cf85856fd50bf626e96551fd4af55ccb2ea63fd7231b3acfa21ed22c672dbd5c56c57173ebbde765dc57675110b4fffab34200ee1d84104e950fde9629592a241d1a890a65a53fad3a74029c1f76f71e33956de7f2c334845e553b213d2a7caf24685aeacacac80b682d6abb5e0bed88e2a923452b1561be670db32837b5491a9136a248272589f239dd5e768777599f14ec9380ef8e7076402c2ea5b255499ba0cfbb7ec51475bc77bcb7c7705b6055dc67d5cf6a81b5bc08219df6df768c9cf9295fa0571798362c1d2d61204c93257320cd91af2302c49f251ca1b52a4e3388ed9eef123c75cf728b25544fdbb6008bf63d0088222482c6f40e2b7514ce498457b4409892a1616961339e672b3b4b49437f75b4a1e15459af208a763f284bd231cbe24b9417d8e782d631eb78817865cfecb1bfb7f224919bb461449cad735aa90a4fcb9c6159294ad6b4c91a45c5da38a2465ea2a65ea2cd08f40a05bf63037f923be2c60687c527617254790498589b775bbefdad197b8877be498c52dca4b72a900fac4157e98442e7b84fbea0ffbf8a4c2ad3116bac43c15396630a7738271b82b4a8c59c80d53f6f876feb1851cf3dda28c6b96856d4e300dd3708b1263175267df63c8032eca577d48566942b2baaa287f3acec59f3bc4fc3983e54fd6be9f3da7f44ac26d9f099327c05fe2d263b2c4075ef84d665c4fc0fc29daf774b17fdffa3fe82dd1df3f796b34c526c91c9285626630c93f43311e210fd45585c9b1952bf4616ef2ae2522942bf4e36de5efa3e8d3659fe30de55de813b5f231fa3459f4caa36897bdf2579f2e4ec217c32fe558e80adf051422828770e0211ff82ae543351bb2d996e8eb876eb615323f65f7e94fbb51efa7477d288faca8acfaa23ca2a2b266a8807f33088a23dd20e8e98be0837854f9a45bf5365675baec33543b51fb0cd5ced115e7080b67488a1c5abe4d0d79608a7dbf7e28169291a87b536eca14e514a5c64db828f16c562a59e8aea0afff8dd465becfe54d8b1fb5a3d410ccdb54172de8c3e4f266d42829f54b2aca2af04ee9178c42b55cedcb1cde28bda202e933047dfd728a933e4757c4465d4eb1ebc3943bf026f58bcea3f24b1f500b72d42650bd01ea1b2eca1de51595553fa6e4559aba52fde9539c35678cd346a80653fa90a76adfd39fa67d9fba8e1093943f2df9e747335e7d73c92b77d8a7dc9557846ab635de4a1f1b62427584624065d457e9f355bfa24f144a9f26ea533af52aa58fca9f740a13fbf54331a03adc6588291d8aa9e8504cfc938e4188d267b8a255fa44ed529fffe2457943e4457905a5bf8a71c2f849c4da5cee5a26f95ede8ca0a7250ffc0253c4846856577883b448f6821cba737945a529e2b97257f2542cb6277bca81b90d6a1c5362998c7cd12bbaa9135649ea4a5d14027fccdfce602a870ed2a90efc272e6dff8feab8efd5033856e98fca1b6aef9571df963dea067face10d65818999601886ed5a5bc896397e4b79237e0be8c71ad234b9ce5fb4fd4bd7819f94e3fe49ce88e59f381ce739dff17c441ed58175d83357db7f6b77199137de2cab8e2ba3d2caabf2b7574c1155a9caec755586e8973bee2e75a806bbbed6e44b7963ffc582b21351a84665d48781c0c6efabefc36c3aebfb50067d3f367efa81be231eaabd843daa632485cb187367dd67d8ab1ba6dc71f7d52d2a75fb85f0d34dbf05299656890ab392bf91c8c57551dedb825cc9769bff2edff2e3cd86a815d497aaacc4dca0ef49e5cdf79931650fabaf1aeaaafe4a4c797bbd5dffb34b6ec92539c68cc07234635c9065a6bb3cd54d5de6f4abf226f523cb636a48e56dea4aaebbccf594d227cf463d7d95ec2e737a5076e2f26076623ebed9490ce5327f55dea07e3465ea4ce0e1c1b63c7c759f945b251ff67d962781e707a31c2392b16fab07abec616ed48f2f4cd95d5e694e28172e733f94539c75bfa56563170e109dc059f557e6d717cd6a0fe10a5c07ae719f719a247e02b95db2fb0cbc4a39b7457199fb589f232aec9a8232c48462225232958e2095484546a4911173641e11992224215128a70c9549c892d419c91109d008522282c40a84629804f8a0057012f0052e122e06be237c2f3b9ac273e0af6f95a8ab1872c57cd38fbd5d9f54c3ae3f7a512695b2cfaeaf2a412d59f44d42179326ef62d2c4748d92e033ea8f8ee035ea8fa4f01bf567531d4e659c2418480270458bfad333ac66bdb8b5050f3d90ab4795cced64281c6fb655d22299c8d4e3ed66bb69be595c9feb4369be58d4158f379aa2b26adb8aefea2cebeef6cddddcedc107d22b8d687bf524f070239471771af04f94ab6e5cc7787319b5754510a67757d0b74d7ba7b8b87bb3dd22996d8da470567d25844f30475510c9cc11eebbb9ee11c87e3a2b3006c1ed03689a427fa23e348e18e31da3ecf1edf2471999f206f4322153441bf168ed0545900c98eb16f38d4287f2deee0dcc748f33d4b10de1ffb6d5a1bc29c17c775057f56594d7766d3333e5104b7c18b1989d840f0ae53bb3ac2b9b296fc03b53deda38e3b395828eebfe2a4dc9b271956ae8f52eece7e77ae0c66e2c0b1f9f2b76bb152c783c2b74ba1415b9dc6e99f7c12ccc4b2fa842fdd91283e6f4a70d1ca3485a1d78a57c57797ae3d38eb715a06a0535dabbc9fc395157159595985bfcaffc6ab5ef6659f5bfd2c967fbbe29ca0f87fbf6989d982f8a5eb5821a4b502cf31783f206d45ff9d1f0e5e52e06b330c11faf2a7f4c7c3219087eaabc01f1d7c46cc937ab1bcc9f07ca2fa6026d189637487c78f2e4c9267fc4251076abfc6833dd2a19cb3082afea837994045fd5573161d75fb1c2659c2329ecfa258f0a5a70426a53157df2a4b2bbcce992e50de8635257f53fd80773018074cf41a2fc699a74a4fe6c59f933c687667a7802f527ea89f24fd538e610739c72a4bc3fcb73a8deff05d5a1f22a1b946d1c6a697f7ec88c32f3139f597e2a2b317739ae646a2ff595fdefaed86b4fa12fc51499a629ba170563d2b4cf11ceb441902473c91499a6295ac9362cad15416148fa16310bb1b43e3ee228bb80b0009596c70399fac72bc6d2eec69144c9e0935904827f9f5a10f8be41204d638220107cb2ec016a6b05595add4892640e6dd2ccd4595724eefb2323db3e1d8d42650f73833faa5419efb192aa7cf7684955fef6f891aa6cf7784955ae7b44f93018c2afbaa0bd66285492641eb7680c9164066d50b6549436677326496671342245d95da8ec4414ee24ccfcf90dfb28d989f9a048f4a7ac24dce293c63c928244229164064b2592ccd8348a27949c14a68042319129658f6fb33c99bf3da688b2bbcaecc47d064a4a1376fd5415bbbe2a5761d757c94e659c232becfa2b57ecd067a04ee58e8a7530c5a9b4381c49e6ba51b2dd81cd6651a5b5285476327a94eca4f4a9ec2436e31aad5ca3d183a53f896f664b13d999136b455069a452eea095b6a2526e1619248df28608b9f1d3286ff0eb90bb243708aa4a250f7a23f777eaec1bf6f8c224f65d7daf433900bb5feeab4f8719e54df963398ee0575be15f7d122137f8e58f60f903132445f2c71a64cb14f18baf52de889ac6bce23dddab2d130cb330101cdfa6625d842c4fe54da969cc5b5e948b428ee41eb5f5405dd59f51da9855e5537983310a0dcbc4a5515a1988068d123f4823003722e8817d8e70166390d65a61232a44b2baaa3fc2d996686645b4dcc65ac4c4072acc9605a82e115886ef6607e9ad106757c07b3f55dedcab42cb1e56d738d0b2fed41fdccea1fb1ce1e87705933ef51ac27507f2945536999d885cc6082e138652b29358e832697290a78cda2ad989e851238e1208c7628f2f66baedc551de7c9667df562ad38b818da9afbe9bcabe6f0bcc34a601dbbef8ea3e8eb2c7b7f18f3b38ad21d15f22a05de6be2893cc957dbf55de68098440fb928ab4ca1ee646f9510779caa78da3863ce5946d9a2659eeb0030fe429a3ec9a858f4f55438eb2f64ed9c4db592755e70379caa55d5363439e3269a732c9437903d2235c1a4c1ec63ddaa38b24b313f353aaac24dc48ec1c607b147d282fa14f5c21bb62c511344fd9dc61c887eb0300c85316d9d01998958abaaa6f53d65c00427bbc29f7b883dc002885702f6cf14500f0183798eb1401282bae92a00de61ac54d596fb75d7fec419eb2b8c9ecc40c73b912d23b044086f212fbe4892bf4a71cee71ac22d1f7387f0f821f06fd07be3dedfef489ff3e10e50efc2baf8db36fb1da01d84afdde10b62bfa5442e63e8ff206e54720c853c63bf54379036a3204410ac0075043f84ff95250a76e20eef7286fec7d9aba831e65b5d9405800658f6fa3fc297f7b240079cab64603a2745267b353ae9bcc4ec22f732a252b0937483b09750da27452c701902d53e50750dea07e00258fbaf2a310a498bf3d1680cc4e4a0fca4ecc0fb3886659b4c629aaedfa657612fb54d64e59e76809bbbe08065810a1c05b210fa13f452ed8d557e78837835ddf4750d8f5a93e453324d0557d551e1dc165ea8f793485cb788d737405d6398ac2aef86fc66ff3c9b32df8e77dd0e38df5793f056567dfec1b9473be028c0620117043f7cbec9bf49d4a79faa74c37cf4d1165dacba6cf8a0a6abc8db70110e09482622a91462031047101ae4a08ff29831b947da764af289a8607e975e7310a1de5cdf7e397c71baed2dc11778a64f7fea76f1e71e34d0ce6fd73bcf96cd0833df450def450de503d46515795077e6d53ed1381f9eaca6aabe9838fef83e3adaeea75c21845a529e2bd8dbffe78ab34dfd71f7129fc6115ace23debbd6d35c5a2aeeaeb28294f47895fc70fa4d3169327b0fdd3fcc4f14f1c9bfc33bc7f9234e09f31447fbacefc13d50ad11ec23f57a33f1d57fad373a43f7d67f21741540749fa5124fd28d35809b64bfbaebbc11c8a22249a59a73504da1fe82ef36991ccb65c00286fec03c09264fea8ceb27234c702808b6c99e2bbca1bd0bb4a1ef523c96c3729d39bc966b389398fd9eb0af4a2ecf5c6f7a3ec965572891aa43f1d801b3200a5fd9bafbc7142495994e96cd3199dddd8df51f2a8982433dda0ec64f4df38d23fbbbea88f18814be0b37175654d2a46bcca0a4757ecb856033c7ce82100d26b8bc913a06ff2ae27be3f4de1aa65fe4986c2cf75dcf76fe139e828e68bedf5af86c8b7a9f4db778f1820c7ffca1b7224f5f9dae238fac4af627c3f507622fa2f3b89bd4b046aaf2b295ca6fecda3225019f5713673bbbe48b7eb87b25bd68c7384cb1d748f704e3eb0ecf1e117c0080419e61f9655df4b270cb0acfa78083bfc5ede00417aa5a9f6cf1833366813db9fd2680cb6ff78a3b5ed610f07cfd4db55fcd9f54f1891675975aca8d114b525925956d5a615ad9b7287dd229addb70922d94db9a3eed841f2009f4779033ee82302b3f14360dfa7f984d9f447a774f4efdabf9908ccbee3adbea886da0ac544de29c661d7f1cf9014797b34455d7d00b64f520e14c5ae0f52d8479a6257c7e20cd5acd86628665b23dca8cf50d43cca1b3ba262d7bf55fc50a9db10fe1a8020c09334a9b67b0e3107d501caf84731e3fcc30f3d7a08e0871f3efd402000887208ddae570711c400064080202c09caf8c5fc6d6b61f400821840f9c312cf89d952d0d387296f6810a020ca1b31f4e50625096551acc0f51ba01f0001eedd200c7c2e03fa20ca9b0bbafa7cb9af401f44d9e3dbf61d5b3d04fffd700b10bf60ac03706d96b8982b16029362a6e7b7af8bf2e66a1ab3da76ceb7eb0f51ee58d994b680a46ff310e58df823285311922f8fdf8804e8abfb05287b7c5bfcd1004e6b680491fa04457d5a605bec32f787286fb006872800fe1e0320bdd250c7eee34833e8a5bcc13813a08600250e1cbbfe2804d932412f447963c5eddf6b834fff66f71e9ffd6f88057d30e50dc65a88b287d536ae10e54c38447903820c16a0bcc13fe23cc28d729506a44fbaef9fe1f827b9ed9fe626dffea74f22a80d7afc23288f72190c82091a4d5157f5416f53ed9776cca5f6b7e41fa0bcb93fb6ccf1692984b5ef7bfc17e5cda8694c3bda55f983f7b05a5557f541ed250ab5eb48e651fb8f07205b266833f8abf206045d1800c600e583c4b7a9a3292a4d11d4085769f0d71fe55c7c304ec28709f50ecaf5440a08f1ef5f5d04b5bdaebefa05285715ef308fa6a8acfa062877d48df508173369bd2b1707301da034ebc78a4100898032ac7683946c5b9d753f0163186626e1377957a89fb8e01010ffb822aac1bcef1b3f8c7b590a287b5cfd6905947689095a402984bd620c4c6460e3c7e705aaafee2fa0ecf16df04706e0af3b419437e08f2a2ba8938a8a4a0a8a49a5441aa9a8a8a898a250498e2a205125546911c24fe9e3ec2ef3e595ed25cb53ee581e7107e4b93b940787d50a2f187dc6fc7aa135e9b6ffe9339ba10bccefc9bab24eecf04f53cbc46fcb1b22a4123a4a33f1d74ca4daf65757f65736d615d70293fe5971399f2d526d3bc4e1f6123fd64eee7be924f6aeab77aacdf5440a085da4daf6d7b328e001167420ab5fa54901513ffcfae153ba87803f04f4f84fd316f5093ee8ad1e621ff4379fdfbe2fe621e2833210f5c5fff2f9dadf83f9a41b0cf5977936ce7ebf6ca24780820a1c38415d00a6e370d08409cc25d05c454206cebca90e9f2203dbfffbdec1b2c77dab3d8b6a30bfff1e3f2e6fb0a6313f9deaf1fbfbdf1fb9e9575b260c06cb80cb1f2c6fa8a631e91efde290bb0cadbbd167cceff15bfbd911d3afb65a1bba4f4b608aef9b8aa2187e231deff7f6c37907ddf7fbab4397a1ef9fe8040a73620abbfdbd44dd694c68a5b4056ab0e767b1e0c40d653bce09183821730276bfcf063d1b6471f1bd36b8028318db0077da8eb381131b90c0063011248a35e8d580278620bea0d00a231d410da8a8944641daaaad9586ab81cc7ed6d60046839fef7e9f8f0d747e43a06de4e1db6405cd55320a5be2e02361906930c324cd74fb1278b0040dba0636ca654aff8ccb1babbf1cba4cfd15224cc7d120b64f92143d87effae4765c0d0e1b555760693baee6b3512149b3b91d57db6d542886523dc46d1f03dbfc5230d21098646d86f1d3ec2e03aa60147da250498ef482c4bb232c912ebd75e432dff5d3fefe7bffbe9ff9dec6f77ddff7cdecef5ed365be7bfaeebd579ff7deb7b137dcdf87b665433c2cba9fb6f6b31553ea32d7df7f75fffebe0f733fbc4f5e73df7aefef8b2df66b69aee441daa0e720ed8b31c6fac418bf8dc5a109beef47d1387ef6cb34e73275bb28e432f64b97b14fba8cfd7bb5a905ea53694eaa05caab34f7ed532c4c13ca84a1bc4ddaee325af01ca46d7b379f74093b0d326430c347b1c89195a6befd714687196cf83284210b3478e1bbfa0ba7bda874c7d4d946332d071933343224c2208000531600303020188e0553511174f614800d60a4826c5a9b4aa3184e521832c6180200060000600040301a060042a03bd37e140f8843dca72b4f6aa713830d52be4cae7c864b822a0f140e1b9d7ab14fc206fedb38b07450c2f777ddbf0f0d321ca670913d90928a7e78ccb9b0a513016718f2bdea0af455c1633791e1f4ceefb6b355fa313b97b52b4253baf70aa2418cb97a3f55e3f20eaf671a3feab5145f0e8bfbc66372a351ff1c5592e3d7093d4dcbeb85f83a9902db30f77b12ad6c0ff99cee50cb35ae4b3fa4a21c700e584aecd989e08f15c66c835c0172f202840e7d2b34b5af0caed1d5c8c4c2e949509a72e4d6226a58718b2c992684581045f3ecda318dfdbb06d69d71b45c7de67690fcaaa4973743487de2f82ec2edb07921d9c7c9c459f4318b71645af2a7387e1d28705544abc4619b08a185926483a20f587d7b45167c8d4782669791bd57e38445c0af1f0d52c3798982e99a525da2d7afcdb6bcbb11505c8f33624d9d7105313eb9970751f3ade5131180059b6fd8c34caf1d3dd73388170f1ffa601fbfd249e78ce5fe01ce27ac211093700ebded53c81380594319e31d4a1ec7b78a017bff16fcab0eed4e4da1e849c5c9e3c47a760e0695aa6efc204ce4d73b92d10783b680139acd99cf1dc06ba3af9f2737212d4e5381012ca8895ea09bb2201084d5d8a2d7989680fe7149f0f663016ddc87bfe7bfaae48f11f2d09ba3755fd7ebb17fb3646911d0d8a7db7b8713269d74c550c1a751a95dc84d73347412ba269c2c4b049e04199312fa381628b0a19fc199206c97ca13b69f1114eb0c129314ba40933ca1362d60841fd6addf7031daf5c6f6b89b9f303845a5a3ce2e95b2ddfee8db7b3686fc07ed05bb05be05c0701665f60db5cef8ad475a4c0dbefecec2c2ec6f4d4632fda9a41f08f5a311322af4fe0321b341d5baf97ea0bd9ae063aba56243ba1d43cde4e694fa4d11a685a0820c6cc6159b08d78653990bd55048cbfecd1f61f7aceb9169c96c6d24a5d84e2f02441e5c42c2c6705460d14a03edb390d7a1a2a9cb93d0cbf244c2a562263d91ddce2aeba994ca29e15984ea3cfbd2df7f39b468a21ca0ddfabdd55eb622c253d900a8ed9bbba4f50b79e31fc45b1a961dd502db3211b3b3406418348c1781111be811061e2e11c458cc52a3e2126829a90969e6e30fd8c48aa65957788fef5029401714baba7feca3f3795d56ce59687b7be56f7eac86a5aaad1a22c3c6d76b1748262e9cc259a82901e780c00568879b7fcc72785652cfd62215b4f3c97fc4dd082f28b676b271cfe69cb6a0a7a1ea317189cb450df8e731097cd409dffa7f9decd344090f051d6f5b5fe2c0b7d8a75bbc9cc6759cc35a9d3714ded8609f34249f9b4c02cdab85ff801af526381cb27392b75ee71119c570912bce26d167aa6c16e1dfc9bbeaae7e80170911756c8d4874cc07bc4744582d45abc41113dc596a929d9a90d038707c0f8b8d284743b5080169686c8a24e5f00f5e017954637277eab7b98edc8711c83d2a12dcc1877a23541601316ebd4331882379102caa87278c4dd0214eb04ce3375a1c818131acfaeaf9dfbc0a113c1a57db97d7df05f4979a27cae9d84383a8ff4d564d63784d3f436688c05c1b08caafe2ed289fdef8dc2ec6eecacfc5c54aa3dad94bbe9f25182c730fd53d5e32227fcc8fae7e5edae249f81ec49dbfdd305c87245f4473c5f46478dcb4aacc219fd6389d5a30b4bb312e082946b1405d01a77c78d451de8c06dace34c526ceea142eab8df196174c144fff9d30e42922d38271cf58cb610ff58fc1da118b5074ddfa9154ff90af10c08a26b414d3b70a449cee9035e4046b3ef86b4e3221d0671f9887e84ebbc2fa02868c479693baaac92749cb8a0247aec0ad88a45786c8a2fa0a7aae664a8a4161878dba6fb9e71881592954df847c3687032808e833204ca770eba7d881bbb7045fb825546a0d031be97fb189998b2656e1f9ca7a3b914501f0168870150e3371da35b4865121d8b5ac09dee585518b0ee68d3e021f885b8826a22cfc249a42742ee73e9e1a2d44e7820b05bbbd5aa199e76b3c39011d524b8f0e633dd53a6ed0cbbe9473fb7e64c53251dc3f74d264287e90b00a14cef2c9d096134f417c99ddc0e0ac9dc220720ece95c87bda3d63c7098cb6a294cd2ca75214352b7c9ed8274128f91537eb9444d6469b58cae123e45b1d827dc89d1cedb7954505badc7a10794d4144ddf51de8fc1f3b7e3854866928e6fb45c5356495560044713b070f31f0f4e076babcd0e497ad21c53ede2a7c797a1cc350b48000ec06ac9c17c264e62346325094ca81b617d1015868c348469bc2476cf5de13c25da0ece2422c1fde3d7766d33815389c144210c36e71afc58113f4e369eb796cf4aed61319efb3990c888631a22ab8c4c3f3581a3588036ff222579b2e2ad3d1ed2566ed03c275680c9c814f11310e93d1b00d8fc7fc6feef50c6bb9e3c5a0d1d73abef0f60e3a3762b26785388014e1b99f56b9aa45dce9eb36172c5ac0b5bf9ff10f9a21ac9a742d3d3eb26ad2ab7a986e0979cab53d6dc26f1a8b3da5a65b52077c861fc4ac72360acbf4a4b40d8d47124ef46ceae41e50db28b92aa9ed4de90af41a2f9774e21533104dc0dd1f16d4b9d35c0710ca1e285722795c1f9a7ba30e54e9b3ee35458cfb1b841408c13c2ebb4bb1e761c8743847ed58a967cac5dfecf55bee54aaa9b3dcbe30fd15551e55d593f3f99d68fa29ba1caaae3367d97d71f243a43e50a96567f33be1747833bec6236d5912da84b415ef81f47ad95914e3dd6c40af0e235bc2709f4b301808355216da05983364518587acdd4c71b93934d0c91e7a514b03fd7365af24b5d176cf9555765bd86166501628d69404fe54f7ac7de20863a5c51bc0c3b78723d56a4a59477a9ca9b72cb2e14a81bb63690eb192670b2d3423e8f58958d0c06eea74464d5c082ed547aa5be28b94b48a80a2041af08beed704edc39912fc3cd90c1c06d5c331d9d7afba3fbb6d474e7d540be1d5e8623eedcafa92dd26f125c1d49843021b1899bc729ac3370559e134a0a885c70a94b1501012a3772c44f4870013cde6dfcb1ec47137413c9aa171c9fabef6af7b305fa85ba11884db0ffedcade38090f45413d4ead36b057f8969c6958f76b6a6cfbbd48bec0b79f7088cb878f4f87fab140dd192fcebf1a0c8580f910fb63fabf799677a5227184d3a830a4b39fa3b2fa1792fce206347246961f043b52b10a7b0ac8b65b9cc681f24ef88c7ca356f5ae63f62eaadece626217f18a70e3334fe150dbd32ca4c4003b2ff05de2ad788c557f920e7ff292e58476e1d6564f2c1a3a93434a30be06546dfec564e175a9f9e83ece958cfdec47c2c7d0e87f24de3bcc2f10501b2e82c468fb25d5cbe57c210f11dfad1f95419a9cfd04138125a3d8113910624c8bdc41ec1641c34703f8c5f36648e2be89f3b793ed757b16b804707459d2c47024515486de87f9e5dd66dc49c052a60091ea0e7b53a5ee6751fa4ab6a95469c75abae1c0ea1c8bd9cce1fff630d51d5aadf498a5cb4e482df57417c59e2fb729d48664508d6d4e3a021032f78d6fee179694a9f7d643e28023b8d7a2089700b79edc116d7fee8c4ed8b7f0857906b7014b2c9af079d48db0a5a6de768ba4a0a7e75bdbab19412fde05f29f92e948f6ec9b9e191238934be7b7e9c73e22f198471bb538f37ecbd4e5e041935b67a40a1f91f14ca93b098fc3328fb223d8bda4c294c3ab007488d1f021cfe2e94f89f85f78406a256013f4bf7a1c202a386e0e189caf891d783def5506ae0b87a9b151f606d81b2377e5aab004440b8682011c8e0ac40c080e28ecaeb6a381616f0712459e86129f541b6b5f88a0e863c0a5ba2ea5d6d2c58293b6971ac66e42149b8b164db33a51c56fc93011b61c4d775ff22c7146b15493568f5e3efe349799f654ef684e895067850495a165b957fd669e3f1b1c1b28f892adea6135971b72d35d93bdabe0f468e9cac73767a5016bafbde394cfea2bf0d014bbcdf93fccce023a4f837d8150ac45c165c76a38008f9d50079a3cbe93a240cc1380643cb351617f0829fe3540e6e6436acd43862db5ea8cb440e96fe199eaab288680e85bcfd5ecdae40a476a7c7d3050d99b205987e5258a1ab45cec9e45c122a1a55ec1abf068386a1a64b515e60922a0f98b0784077f8cb1968802c84e43353df3c328d1cfa89387d33a7aaa30c63004458e5115ee1c53da99898ded0f8eeb9cc64fce8dc76632f35227e1852903e594a14e84dcacb1b435d2b47f67350b37cf51dce1e9231cc638738a5591c3162de73c768927d1423e79d662c11016f7216b71e1f2aefae6d9537474850141769325738e5099fd8fc014389be5100e439caa754bb69dae3d0b574eeec4be0be5f82a7abbf930ad3f0601108ec35845f3ec4268fcc70b53ab5b8e51c9dfa06493a2de40179ad5a2c6c481f3e4e1c987fdeead5ba92eeb7132c283ecc8cda915945a29a1375bc89197a15fa579b903c385fe37633bf08b7b32e0b0fc832cd79acbf77fa8896a0d1dd8b347675ef99d1b7d46a4cdafca7634d646106a8eeff8aff9a361fa220738b7dfc9fdca3d7e760904848570a9a09d3057d1269d800867aadc314676a858312a65f0e599e9a734c29d7185fbe84539c32ff0085062ead3767fcd9ddf99e5cd84c6237006db11b31fed34f454d10759baf9c0c454d6a4106630090dba009117ae7f4885d0b436b61e45af8cf7d1ff559834ab86822c870de0b28e103725af75a2f9042cc7d9c18207a6147c0b77d453a62c7d99d44f1d301abb554564ba43ee0f3b02039e4193e88d99dcecb659f102ae65f548d0474bf91933558190611969c7ebf9e2ebbd49c6243be03d3ca9c3faf3d84890a851228155510af5402f48f7ac26869c38a30aa7d651124caaa9b3f509670001d23665afcfca925d120f54a1b9dbb270afec0216a4e74da56738a6128e33b64ddd7346ccda939b649d9226ed7b5a5eab1154bfd4853068f3e42cad4ccef6aa63d220655310c1bc77c56fc10899815423c2345317e6e8cb582ab33914ed794d59295d89929a8470014fa4c8f39e77213b4fc63a09d4293b404332bae74712af779d014e609571af82d69977537e764e8c3690fffe0bd1c1e378c6a9a1bf991593184c469e7bc069636cf378488a0ac317df35e5775e6be24b9dd21af3ec84001bac8a69a3120e3ca2d608b08da22db3295d2217688b89685a7202ca952b25a9082af2c44361cb53f1a76d2d4ca453e81046b9226046b0f14faffe5c7eb1f9e9461160710c02bdf14cc1b9a44e4cb70dca1be6631e5c3f8153ab06c1586c5c013d19031f3dcb4227ed4f9feb7e75f954bbace16e2b637570dbc3d7f81d38fb14a2129810379600e20165e528cc0d4a46432d2ec5988ae471dc03c4e10dcf35cd8e69f5dbc28c0fd42aadd1de46e87fdfc9cf356c4a8a1f1675f333b9eca8b0ef157db90f47553bae5123d83f5ff1e46bb069b345059d321c429e2a6318aeab11cdd301e19c71b8e764b49fdc8350547b2976739e1cc4014c2ae9390391a7a3450c2c5060201eb5597bd7adad8a4eecbcbd0dfe45dd62c103b43b3d4a1ee167d9ef8b3fb9e5f58f089fa1e350ba24493d6b9f5c57002befe965e4662a58a9daacd97faa50a4c4146ec0c1faf390d07d9e7f59f90b133c8a851177ed6fec133cf1797aec081997db41a29f6e1692d5e23690721e889d0ec02984ba56b2efba13741613acbfed7b9348089977b1af719339effddc962fafad1348ff78e7977d5ec5e48cb54b3e8fd7242efe0a7a568cc3f83e1022e18c641f0709b45b893beb721892b483c07fa64f6678406367891daed636a0ddbcbd1e5a32b664afe6f0bab7772131f1489260f947b731f959f35aeecc39e585f231600e245a981e92242bb924f29a7c70b785c6e390531469b25ff5329f78df79ceb039b675726c6f5bbd7d0d309bc744844da39f86f021b390c2ca8db621a16a5784fe9b652320f7077c6a383740daddabe28f9720f324008220ed776ac261034b85abcb5305538a0fd7ab82d15eeb013f62ee98327de38898cca39c9fe10e8769eb0e75e547806ac7fadcabcb56e4da4a9747098640c9514e17dcece4112e9bcb904fa26e3a2a5e148d53a34c58bc0f903cf6b993adb36376115e2c6797c720d28ba63d2b09704a6b14c596292a6b9e8b3f7cd32f7c32b6c55fbb965a37d12ff35eee43a0fdd0cb170d5ad1f5b6636f78b856254ea7fe0a13359f3cf39ab32be892b6dd2704574f6362ae3bab2aa50a1a93e2c7da98dae883ef08824a1e886eea35ef605c4e44b9b059b4a3bbcd860f5ed0880463295a163687c4298f119ddca9d2ef855a37d3583a86740bf5e79000e6ca8f1bc07529a5d1d1aa1fc96896771bea1a9b76c918c706bbf235bfdee3b0ffccc369962a18a02010eb00d790b1931bdcefc5edb991f92330238aa030b3677ba7fff524ad5f2377f976c51f5f842f32d31f474ddc10c873c7fabb091368052076f4ba9b191af813dbb6813b7c1dc9a424f23f487c1b6429b3bdda7bdb62a0a8a7e3db08164d36e529abf42b571d72232a8ea544fbf8d5436f587c64cb1c533ad1440d1a9b309434dc34b330df794af164a796126c1e8d544b172d356355f4da26afd67d1b2d03cb78125342f714c0f5942590950d262a5977d583525cf3c2fc3875bb31c825831003bf65c9e8aa8dd0e193060fd5d6778f21e9d911ed5de71ff9fed7c2feb1aede2b609a38f74d6011a69221aaae7aab28025c51b2875dc4b11c120b6143798577a9815e4ea83c231ba65a96d6ef1a7ecb88da3c7d03ef476f30cca5e3689454c9cea93229323f26b2aa42a45711597854f9f8df1fbbd0e3f56cceb84e5b2411ee842bea2132a01d15cdb2bfbf16773b3e964438d45a6a215c647f44a26cf601e41f3ccc84dcc7b0b952830d173407d83d90c03addb98b482bda29f4db793b46cc702c1c1328395390565b32c1cca61b58092ec97a183c769aaf29d96a4d036983d2a4886dd361d34a250212efc1ac9afc6a222e131ebe2f67a1f9cb47a1598ac0a9627249e09ece5bff537421e757779846e7e394e7cccc1eb2cc7b7e5f9e0bb02ccffce27da37a5b343ac7121341a20f7ea3c88bf8b5d962e289d5c43de5cf9f17abbda8949879e094f9c11e21cf8ff3c74fbc0bda8a350a970d8cdc26da404bdfd2db839d4e82fd88359a9f391213154da64991bd52d2fbabb07046bcbe4eda9ab6fd8c33436b9ef51557556211579abbb9e3c1f0624a5ebef1add976ba3b72a371220fc5b385b76c497ba5d176439e707420a038485db7a8cfd4fbfcd67e7457645d0aff8e9742a4bdcd9ada6545de7704b64e7fed1ffe7fffa68ec8ac3cf12c47846331a6972d311b5b6cd697fb2908840efaa146ec3993ffff32786c476c2e0c3e8f64f58665c5b9553deb07df8cd4b7afb8f543b4e276318bce8191ced0c9e11c1cb510b3944f07dc2d929b74c4ce17cb48889272b83d6a8a69a8b8aef1981a415b1db46a12f4471174eaf1860b7be8ecab6862f99d8ef632528992bf4ea20567674a71be0138bf44c565c05a0fba63d93977d2288ac722eacf2448686afe0c2cfc3216f8b34620a7af25fb26a31e26ffc98b5023aee841e315c35d3ad9c2ac037c646e57b43407b58dc2f58286ec653ebec45873cc8a2df50ef96985a280f2f907dc902d75385bc4d4eb22b39413ea2f091322212f22c0d7c144d3acdb9044d5ed817f764c5db3bb26672d220c3aec4970f1df1d0ad231a27039d89e427bc38a640a71e708bbbde6151cb0da8ec88b3a300736e36f1d74337716a8faeb0110907bfcdf96a3954e15c68784f529a82b033f7a52fa831770b07019061352b400fd73630f8c1b8100adf8d6f3751a87334451374c7a9df9296c868f5622bd41d0f1290bb2d83294d22567bb3b15706f63d61075df48e116bb3d9daeb179b46a28bd8b30a6eef2b5a4bffe4230d17dc948e40ae70402ef3c473ec5ea5d6e9599fdcef9b74dab74053a04e4377147c71fe840a96fc5b184a05c086c4f2f1bf8f5b3eef922d7ba56d8874ea1c42f6d18f0d8fe8a370dd2d683dbfc19cbe463dae75076c637bd73ddc4f4f162f9e1157c4ac1c2e6d8b1f026ff5a3a5ad5c0916ed12c4ad34ba635a28d9a943d3b59f6476a0e632ede43df2fb3c428e597b9d04ebed5205b148bb9d6073fff0c5ae85bca72b2194a03387ea6afaa92c74da3148b03a72519c29b965005be9bb607dde9815d40427f1cb558f2aa7a34fe414e8eacd440f827c6888630315a5cdd209dad49c0cd0e8b4a8897e1da71dec7135392f37ec8f8cd3a28a7c75885689995d3b3ebd9cefc08294720d1020d3d0376b7dc0d2d917b80365c5533a09a24933aa21d34ea474543bffcead0f9e8b9fccba80d25b0b7825355a074de73306b5faa6cf1c90bbf98b950269a839ea2fc59d583c53c31f503dfa2738079caa66245b5dd42640a94913703cf5222366b7e064e1b5d73afd3a22203a967d53e46517b26d5e7a8770e1c928ff266140af46b53fa59ca398ae186704b55fdf8d69ea7bde712c4b12520696f0eab2c64ae5cd139be706b44dfc23d1859fa0eb3f1afaba4f2ae1878ce51babc8c2775a1936d73dcaa073a7e45cdcfb7e6e5979272c925081b2fcdc1072314123da6285500239723017f1dff36f9aacaaf09d2b34b44ced8f94701fd03985145c6187b479b446a580ab747a6f805f06145e47e35143219dda5547613ccd513cc483ca04f08fb295f39b4db7e07940b6280d5c48cbc1ec9ebd03178aa5800b69ebc0ebad90694b87efd28d037300fd51df851d75b8aa3b60544f6604642970273d07289a862486e86c2acc55229ff52e1a3e7bed652c15bc4aaff1e2f53270297829cd469ef46d98201db67470235d0728e86948886b8daed880faa984968ffb5b8e9e5c7663904355507d21e68a3e70d8b1fc288a4c59b25a98080844e6fea9579757048200429b59d3a2763043deb68489d1792faf1514fd02a25e2bfde93b1ff9412a9eca1522a11f87d1894ab14c40a3b2e52738d5540b414f8b71ad5a5544a2162a1650f1af970099487841e1b9d06f6db2390049ef253fd311dec14d2f9eaaed79aea5128bd87d9af651e3c7a1fdd902e99a19c1c11d85a1c822a86f2d581ec6e7d856b8e78584fea47de3de9523977743f160dd6eb32b2f7613607ae2d433ecd773026c7a8bb3efabda0cfaa1ee7f7542acfa7927088d949dd3ef6deaace029a834f37c3358d35832846fa118548993dc8e008165942b98884ffb230f46e0d737c396e9c6b865fecdaaf9d608e041f46a01a6a68e2ce07335df7b1e94205b631269c16676ad463736f89ef1eefa82b8133bcdf40e764f0a3e42b8af7711a3e93c47ea30c24a2713baf683c146dd0c03849a28512103f3e4ccf4f297697f3401d15667146e588147f36fcb8118362494440bd766f20070abc4039d2bd3547021e90ff2c7b519f05c214c3913799070b4b9ca5ffd60021c7d1cdaa6ca74ebd31a9479ad0148ae617c047277ce7dcff9f7effac19f27dcc54b8b9efa36dff1038fb0777b938694d630f4570e52f7fa4534cac5530d11bc34ca3705f7472ab8cd47951a88cd45c22b3bc0f8c80a3dbbcae9c07a305d374550c3b266c0e749e54e37caaae0bf7a19931b7ddc7c6c14007d7872715633db09aac5ed603e18ba1bd5a66086c189256f732be34828a9605aad2228cbdd3c816c29465f27f3e8b1b2afb7ae407f306c76ed0e96b4dd98ccf93a23865a363d2df6a867e5ebb5f5b0a0cb8ccef2268b4e0e219b5eb8d23bce02362f2b905e965110fa341df897a23890d026ac7cd15beda387b738d1c7caf2563ebdb61e969e763db66e28358cfa2df6dca6e8604f59ecc415d1a06509a069f1104526ba4160451a889aaebd06224fe106c2e1005c9adf979071207af3c1a17f5a870ef8001a84f1401f34dbb4230c0ea733888b6eb0d73e9cc27d0310f73436d7de23d65f09b184d4c4c61db2828f22e19e0a4b039184e66cb8e92aead22a92942d29fa696cff126dba4583f1636189fd12c35a6310de1f68221ba4db27ef8ee8cfa8f790387e05fd1616f496b7f673e6e08d3198ee7758ce4444459911e554f400d70b24921548647e413222075583d281128c68a26fe830a53768dcb416a11b3fbbdc138ae9fe3317cf8544fc99f043b828c111bb8349c0ad22db4f9d63ed68ca3ec4460027ff4197ef5f5344e3821addedfc8b04e54f29f27a8ef4f676d8fb3f542fee3f75fa52afacb2107f247dc18c600808012158990fc9127c002a71460c73198f2a086cbf60000314e116c2e8bdc7fa7622a86f59de546fdf3f3d7fddf88dc4f4a466f50720ffddd0fb6f44845a876883293ac7f71e6d70d9d2cb4dd0204777b0629ba3eab8b78ac8530a3a0e58189dcc2486b6b43634d2430e94252f1d74bb4da17f154f49633e551d884120f9b6650de0e36777137ac4a1b2b5a28a88681dbf382bb647ec5d84b6a25e99ae235ec83f2e174eeea70d871aa18c718f042fe04e5e2b852a0324352a895bce60b563c68271bd0c44384d45b092430534e76a963f88aa00b22774a40fd7e4727e3f24b8b1c2c68669d5690d906528a19a94af114f0294bc7549ab3f2b4f76b6126e7bc3bd68669e121555022be5452d91643fb91ba0bc54435f97b41ceac77b526037f7a2edec47bcb21d1d25936a6e004a543168a9d9429b3e59fa348397eabe0b3aad2c089506438e94369e6fb5fe8bdc1fe79bcdffeca2b2f24059969c762c93474f58861880435ef83a6f78e545f77b0dd20d46b06c57fa5ee7885b28c6d4add5a4cf5398796cbf496bb8e2a6b6b2da1362c183b98435f6d0878242209fc249b03454c48a6529e3bbb392bbeb2902c8a44ad05b2e21a0f1476f29646388ee103ea28974e71cdd542e15a603a80f243657e8a7686f37bb953b7beb1d8909ef9e1da0afe6ca1d0bab962bbe8087c04f8a8eb358e91f184e348f7dce15aef49c9cdc20109a898f1bf529f4560e5b086b9fd5676939ab6e05e52b083ab223486297707162af05a76ec50d4303872c7fe0f1e819f8833051c13b91353c891d7ddf15c265c831e8082952b1e15e65b17dbcc080bf8a31f15c9431103abe8250764f410bb1401df7564830962d8f58d08eab3d281127a5545a143376eeba091281654d1d267e28ceebc53eb6438465ba69ce487f2fb0a2923f60c5e7cb7e15284cc5f78a6ac2c4f47b60cf9688c04de4738246121a5fc86a52923ea0853820fc0131060e74bff3fc14ff6106a1eb8385262c918d7c6bf8f599cf77b7f273ee1b851aad97794e45770a8f31e3b44e7284c5ed2cc2398877b990e69cf13d26214bdf3ebdd9be37cba7e80852104dc6292ee1da3921a79e043f323e505677215ba052976265a2b1b62c648d1c09e3be55417e2925d02cacbbb88ec9b67529094873bb10ca1c48954a0d7a8da8ac8c8864b1cc6daec973e7c23663ddc69800755b9a082a171c1653b53872f7955c9e6ce2c0e2978e0982269d68723052c11029809a597216be01675bb0f920f785e2e7391eaf298fe21dcdf6abf51851cee2bca6bead7b2a981bc64eaa9a980fd9dc241a90acb291700ac023bc80da014e3abb0c8c41bf1aadfe2a6bb33ba0db71b6989f38d271981d76ae2127a8aae9c6bdf270df5c2c830c46c6b6bae3791943ec341abaf97d2d58dde2a2e4ade4faeb05d0b91b0e8c148d3e7409d2d123587388a05602a76699c5e717d942c56f42ece840d7d6895c98d781998ae764e99565243a5d700158a9c1237414210bdadf4866ad3b8fb6080e020e80b26f1d3e4b796a08e7428d7d7216d198a8d02010b102628e5c019fdb2e6ad3b95ed287b26fffa102d55f1abaf688d0693c2793a7af605387e52582bdad59293256584f99b990a7069b8c7a88ce0ed1ea74738519b70519fd0c0147068a6ed4143418629b8746b6c6699bc2a35ac139951b5c8e820777edf1dd5555498e7fe2b7f33f88cbec3819d050291c5037d4e0e59abddf5a66b62885c1abbeb8214da9cacc325708e8b91a70149016279aff5ed043f72d09514056b4b05a4a39db5fc416a7611515be5a2aadf994ed25cb3d602f763a489e5524388896fe3d7b99d50a39fee803dca00f395d56e586f154a4da9e9c58bdc7959829ce89bb5a400141601f08082986ffd6c58b499f65229ac243dd96909540d67802ebec1fc215843bc3802205d5260645810e7b7fddb9d5e8162b9b7b2093d1ae4c3bcd8e5e569d668a841841fbf10b5444d6463b08edbed69a80ce2eb3d236b76e2d735ef961c6030289a48529e0082ebb60f3cf552d8d891f319f1f9882de51e6ca55393ed275a9a0d8f2d5191a477e5fd0dde1318f4ef98f9f4fd0d642e8cffdd9772d3792da0a69c141396f5e1b685f765be6f1f2e736d0594dafe90e88d495b53fb6f0f2061d2698ad9bd34513fa5b5c49bfdb5359852b920752b8e3db29423f3d0a7aede979faaf5aec2c76133b8fad2d360a3e50012247b2333463b627c122c0d516c72cb6d36a2c930455ad1309f41ab82eeafb8bee79dff3f203a4a56f00f4616d7061e6eb69a3c022528e5501ba2a1c582baf09dc3ac2b4d82a3b8b3d425f6d05a65ca7bfdac57d7d9873b55173553c85da25a5e8d87599d9e5a0027c0614732f23a0fc38d6a24e96bb0708865fa42066ddd2fbc01a816fb338e14bee51362a33fda80a4fa7ee14658405700903d7c9ffea66e871d6862660a785a61b90711e58e0b604bde89f21bad533a6f7800edbc8b6e58a45da7c97bae423e4082cf9973f3b513a2a1fe0e948295d9d5795c4815fe1a38769c561321d8c14979200c3be5f0654cc2c563ae13123dcb23f4e1e96cda14d2a88dfee2f4b4436ff457e8bd05a14efb5b71372a23d4d2bf816795f899c17d1a67cd751100c2c27e2eb26651c49a0043f51858a03f2e82e4201fe7decb47869e824f4498755853a7559130b91b3db68d10c583446c581c48c4ca7e548c56e4e0169027142d9f32ab953567fd957a942d6209b0464814ef947f242a6dc1f448527f7aff2feb46549b3fb9dd46247bc9dccf69f30fcdc35a25a32a327f2042867dae40e2e2a45be5966ec884d07f0dac4f19222343a3b56ae99991a151f8ee039b0ad0b5b7fa44215b7fe8a2209928a28dc846d53a91bc949e42297d1aedc4ffedd032530f200b56148339a3909b2ee7532cd77de4f1609141516ab84ac5a8e648b50a23db89b3281d683adc6e2a4eac82a22ae31bc65aa89381c414e85ec92868a5ca0cd74e7987873bf0c1ab1adf0f2efc6b19c69359196f3206780b96ff2da61732c7175f9fca8cf521f87868cdcd2f00bc8c9e461d863204f244daee7f4bfc1335e4c517dbb85bab401c4fd7b9175687d5e6337c6aeb18a1eaf4421b25437776d6ec00ab7708c6a22614f03289e5266b768c6f16a09c5088e9fa4c7394b89b3f364bbad51c12425d1092e89b2b710f5c6661746ebedf2231df59bf25ca5ba4e07fa2ee83110e03eff72326327228f0bb84100133db23c92136e0d2a1b3404da8ec07779429f92c33a91325d7cc3514fd180cb4a63660bcb9d05827be0006824a3b7ba609d14a364b3a502196d643cd2334349f1c95f019dc035efc6e9577316a3710b91897f415d11720def2dcac90746b60c46709adbe926f33bce28649d0b33ac9766fe8118ff4ee6629288973323a908dce4db0b90c3585d1673c29bd0d4e3e496c055533ae3d6953a091bad94f794cbd1448f133b52280b73e5f522ddb58c35b853353fe835eabb1329586d749ab41a73fe582d8715717f909140b99625bbac3e38148d1dca195af583db0d8da3282ff6c0e33868a343740d3a64dad4cacf84f2fc18c5e24281f5f7ad0a2f8eb579fb78b1b9bec743ae68725c111b3c55aeded6555829a05428bf2a55511e604a0d562718d53f0d2bacd44eb3adcaa95831299f9a11e5589d9091ac3ce405d32e24a433d6eb937f4132821062190c0cd82c44ae3f0c0b42da032c46fe815599a3501dd44a7be5773c3f9d53ac9fac69adad5f9fc08a96fd9a5cfb505d167382198dac1739da90a3911a7b5ef522d5d6ad64dfea4aa5cbaf4cebe89597474c7a56e0310831f02182b8dfea3acdb1b2219ae65f805379ad8d4bbe494063fa553dd710ed9fe662e140a72a7f6b94598fb5872f0cca2342fe2508f1585af0e81a59b9681195787dd84be3ebbac5fb6cc17eb75cf722a490f805778e4ccef46b205b687ac5fe55b22c21d5578bd44f84f06aa603f7fb054af91aaf50b2478b172eb50b7bb1eb97d0e40381db62d1c281ecb4fc5529eb80b37403784cbf1108a42696912520f1dd26dcb01e7b523e97907ac561fec1b671b683a09df86352358249377f4fba944d7f67f5fad4671a73b4a4f3681f03bf8f3e272c5cdbb47e02061539bccb97d78fb512176342c88b2dd8cccd560c94ff2183275d3187ecf5e6fde6d5b9b11db352d679c9c69f47a5b32293e07bca30039d0b91be14a1e250db6393f85760d8df98c45f7a80b6f8b2bace28d76bc81c0ddc354f59d8f9bed2c19c1a405644baab8c52237d9995d037bf15191df1e43cc127554492b75d30c75d44126831fb49d475f5c5a20a58d67700113eac773a49fae89bc3d320ee25ea4032c19d4d1750c13b7f2dca6a6d2891ef79e28ef0254fe2352a7dd1e1135640ed92086865f93b54f2464f0a0d9ee024c3ae98a6ae5a25f18b1947d66eb2b8dbea0a915ff3f7fef1298ca240f72473c816080eb9bc79dd5499e6297bc3482e81fcdd0621978fb8572d82634569a45ef01fd98d0ecd69dda09c8aad7c4846b500aa6474fc8215512ee5f8941e1c6114d2b19a16573d69a0599c875290010343acf43c8aa20a490dcc207c7c00cae757d4cdeb7d8dca0fcf9253de8d7ab7da0ff20ea61b327d4cf35d35c617b3ba05c154a0b8da31c981a3f428cbdb4968c62cd2f9e9b644185bac3544b82c2b9167a5f24fcb9cae0fa76b6511c931aab0bcaea1b6f0f8578e5bb057cde0ce866d12b8421f302a33c0ee5fd22da18a5e571ab68988f63ed48c1d39945d5400d1369b47593b82f10790bc55fa323ae8f5a7abc6f9af984e4d44cf857110c63c72b2634a51fa9f08bae0b8304be51c714b473fe366ef5d12cb555176e4970ddf56934263a3af7b4235b13c17f29c76c04500c6da404647ea29f422b2d67844733c8343efdc00b109c32d8d400be6de038751e9c72960e2b1539828bf9ab1ab205f1eb91f44b0db3a9ad3a4a1af59b9a46127b6b7af0a3fcc9d244529369e2b977404af995a03884f260170c7884e3740c37c861e1f9f43535094b044ea565d3a0bec7dcbd05448cba30ffebcf85165dbf314613efb80769f192f66b573fe8bb36472cf94801a674e81f0018d31e789086bdc76e02995fc1419c8eb36a0abbc326151202a1941c604e4aa3268c2c11b4ff7b8959abc3a2a82415169286073c2436c1ef124fd289e45737b49421e8694d999d9d1f01b6c32028971c4f826f19d4cd2fb9e1c206a72c08ca530c4562a12192b4fdc2b3901e862d5bff768133cc4a08799554a3def94065faf1ce4b166e4153800bff5403f8cb1f8ee269832f65c859926bdd000ce0d9479a2458117b06e0d924b029a1f25d38734d3b04a3582fd0969413abc2de11078cbc3bb57f3011cc846ed4e59d80565d6e6b119e798c1af4bf28acc61d04247f2053c8e9319fc9c97037f714cb7bd56a4630c5b8b7c4c07ad83b0ea455549b76220c4ac49a5d4009c98d5d4711a685423537b3e78239247561401de43878722eb706660758a80a5515a3b5dcd1df222d88f81c06e4b22276de0d1ca89748a7f738f198ea86713983b64b9ac7458ccc5b87d632183c0ed44e87a9a96efa20c3c10186dc83366a9acff5220d931590bbda0cf44cd7cf9386b745547a3aabac22fad15214830464ce3bf684fd212490f8f2093ae816798b8b52a364d012e626f5362c7ad4de1c75e80ee5584d7e374718f0a05243f751ee74ccce331c93639afcee92cfdc91c5126d7b556a99b6046bdb25235b5c864869349fa5f27870a6e638e9a5ca52380ee0493ea13ab4e5bbf725f47a2d06948441f0c9f615cdcd6d7642e4b867b2c430526aef6f5662ddb739e733f971ed18059ae5f4f9076faf1daccd829b9ed27504933084028195ec9b741b1f5d5b0f53c8b5e64256e922c79951a19a78edca6dc6b6b3fe63b14476221128ac25820874dfdcf360fcd330ed8fba41ea169777d0afc4c751da72d7804f30c999f2e893dafd155386d52ba6307acc3a6a759241ff72062dbee536ca7ac5cd38de3488664454743648c22748e045012b961b641d067d1a6b1e22cf53d9e2105c4f66ca894b46653ec57547755590d1f78a4a8d25e59f8c09d925f153f4a024be3329a12c63ec4a4fa5829016ee05726083f11d92e1be1586467191d5a2d2565a4781c0c21f6b1eb4869218b081da9f318cca26605b70cc6ada19dd758df3da6ef3bc07c4857d68eeb81ee4f45bbd52641d9e9c88c642978029bba7542e38640768138c6ddaaf7d880c1724d844680bc4974a18b4182e2a022712f95409fa743f5ec866b2d579baee553c974ba33d0f8a74baa0ae241a026ed4f7abb9016bfd5f8701b53bd9534d3c9c650f84fee13e99562a403a2f1095c5d74640fc6734789578bb3c46c99e3220de87c7dd08d239c7d2fc608529c114da61207745d6388d17889d2c4870b442098f04f100e0d5a79aa9ad18b11ba32e37f350bc8e1ae2f84b95d0c92b42e8e88da44502ea87be92c1e07fefc15dc8373ee7be5e99847238ba69c5ad0aa8a6e9c47dad4a7c80055314aa1fa3caf5708e60cd48e5defa298ea07a0a64e3c8aa4275d19d820bb31eeca8a42b3ee3bdb063aaf499abd43dd93bfea37cae05674a06ec53cf4d3c3c06fac39345e724f793f1f772433d90a8dfb45d0e97e873c582aa3539ed86eaaef30b1ba1ca45997446976e8607a89c56e22519ac8f2a4c502dc847262454247cb056d1657188ee0cbb8461aab47264d60e6cdb2dd063bb7e81dce43e01dd9a070285d5e1d71e347168701408154c96b3426a2dfd72707ade7951a3ee1b4a4baac43aad7f901392721654efd6a6f0c893ea7ac36be3a925e734640c5bfed29ae6fe0af3407a4428985e31311f14defdb8436077424d2e00fb042655b988941762f3668322f19329fbe0612c47ee64a1dfec264e4e2e3b0379c3bd5f9c5265ec49e10ae623016a18f134028ed2d6082203077dd2b9d2270f5442e6e9fdd8506584907c6f58d2e557d8f133f0948e0275590d2df3a00f10749bd3766c6d0d09082981a935e3d21b0525f84a340a384a3dbf4f341729d2ce6c9c15e5966dbe5d1bab02c70376ce6e9d675ac583d3c24bf9c3d1450a808bcab143618d9894987c0477f9b93ba2f30efafef8b96a0e83df55bc8de0b42b2a0c67b381e9016537439454cdca575a2bdb3515b7098017bd3292afdfe02372405669830f213fb9b29115ed431b964177a2bfb3e25817bf74c6c8c61f8fe3a1353f66870b1f6866fef0e45dc2b2456ae6b4eead8d1e4c5bd9778ccf04205ae3360d71070a213bac0674ffa1f00f43a7d28c39c44776f994c8fbfd660fa2e8c6f3cde51d1b0963bdd5c849c9354ccc1d663454dce6dc1fc0c9f2058f9d1176bcbc475c58a13db2d5d8a6c0b86487537d7ea2287d3be1ec5b075aa7099f71cfac70d18b8aea0d6cca560014ccaee5e9be44571d9f3252574ff2a9fb36b6b1c10945516cdbe1a3aeea9af463bc323c24a78203ec5588a64cb3a51020186d20d8dbfff1cb418e56a41e56921a34547517f7789f915f2938df9b8e03ed686e3c261024891c78e4b927b98e134f0d8a2404e9c70d23ce2a19e84870349ee1f256f85d0098074617e16219fac106f72c6c064f713f75b1093df361b644fc63b9e0471cefab97d50deacc632be840257ed91936d6498a5dad3994a21e8983d54b6a7e0df9be6c47fd4536fec847c99c7f46fe6290de6a02ff222854aaea9d76f17b2dee84be5c0408fc0f2fcc928b59713a109132721c375d9fee064405c4c0b921e45aa76915c149ccf1079b7b9c5ef76f88a00fa10b94480c518cf4799168c31e22ab159c684404010ba9bd302809482507e55a0d66f97df1aa8121243726d384e221845eed75697cd17c6caa5ad72b99d81ca72deffb9909537e7100c44731da9e5c7689c7d34fb69b8b46f75b98d5c927fb7f070be7a3aaa67796f07a614d02006f25daf9ca6328d1a0b8681549827d352d5bebe9f2a708ce49a8f91a13e0c34419acedd2370f86cc9070fb0f6f5b594ef51953e06d4cb07386481f569032bbd9eb897aa045dbb33286e08e2c3a3974d509d6f31d4875dc441fa2635647fe3d7c904dd7ae8e2777d3cc473197cfbeae16886949c4e127b4d483ecece41d31685f09f0d3ddc4478d388c982ca8785ff790c1f4b194c88ea463d921b97a11ef4d301ba52ecb9979d20ddb1563f2337cae72d1644a35b0082b3150cbb85fc5a0b4ac6b42a56b58774028ef4b95d48b03a9892dd5352d97f8cb69553ef6bbe37437d6d5590a0946bab581b88b15c06640d3c0bca8912a43678e0de1c02d46a535e90562fd6e08cbf457d4a876e21b918a13339a28b31495e49ff3fa5fda78a6f548a1292421671beace295041ea4b8f331aefc239c77c8b7137ab2a2565439c984c4cf64aa38cfd0a8994e0f4aa89dece03e090cc4d6496ae939b8732ab54a5c83c601e6a1060f5229a24b6af5448b5a3305203e6c2d8f7aae2a12d39cc44590dda55d8b754273507a0c19ecb0a6e82ede5fb0e9229a1b410846b85b6cf8ad95556439b8ee7053aeb25e949cc453ee49a45d53c00875efb0c0358ebcc6bf17baf28ef65e1b9117977ba785d3ec3b103597dd87f28e12b74fb62f3a5ce14b07a977db04c0cd47cfd47f2d8f479c8f21b3be596266a240715c8382754eab70e06e3f7bc55cd161a2026154a4e44e470d7478b18445de2692f3793a37399b0d4004dfbbd847036aac537bacd4953f99b61e64249d7c67b720e4717bad08f920f1c7ea0a5a843e39829aebf8ecd6609a29addae7c38604fc741b5a5a0c9f2b7e2a7a92186cca7917308e6d8c290e8d1af0761b7ee24ab493aa15e3f81aa7c464ceadbce7721c8df2840235900bdca566a6e8565681275799a2848355bac9038e4dd0177c24ad71e799db365b17015197a85b05ae15e680cf935863b8b1b13ae32c45c0e725782b6c664b737db61cd9dcf3f66a2a197a437fc21ad127baba7b82f36ed2b4d3e5b477b1aac71400c1530c877b7580d819768ce1d81fd60850166a6c339500f7edde8afe44791b6e2378a3232b9d70e195e76763252d2e5df16d28e2c7afe546fe59438841e1c8899b533778a9ddb81f661cda59927d5aa69bd26d06d683342e608ba0d170b82b694fc624e66f9158431db1c0221922c66a63f5e86a9dc831d28dfb4f89d18513d6d0b0fe48379132b70d7c50e62f91fe2723a652763eb57b083e6491c27907bf1170a12c440b3f9f2b0ee5a5df6450a539ce13952cd2c3aa5cdc269d8eaeaa5bae628663963f1caef333498798c356afa6533944d129cc9c6f968738cdbce9fb1810fc15d391ac9edcd6157f48c2f37c69854d85ee71610697ce6a33ca181d1034224f65693db4c0d91c5f03fc3fc3f9997d28a1b44d88a601efd844e794e4012f74f0aeb6e1df15350cae2deb66f83bd8f1455f32031cc1902f21e0fb6774bae0b0b0191048b46094ca6f677532e8da35b6413bbbd450772121adad4add305d658a3a46ae6c5e1d31e056011d0493d6d0148ac50ae09acbc566ee87f98e699aa6b3976c2d846129d419c1be26aeaade10cc2c4c6587721db487d347f5114cdae24671db19ddcf860536947c10cea8dda533895bf12417575c54c90e2eab595f5170283bf23ed8835e5728c2746dae8d2d3b8be1aac44a83af6be8a51dd9e75f105387cbb2ad873cfc3c5b72feb2e18a1361b6247d66c6adbea66090e0a42fc0027d07497046687093b4091480e77a36791e83d9f4b73f86b5a220bfd6b4f74026057618cf4910311e1d58249caee853ac234da1efe545de1501d185c063f90ac78457da7a1cb743d67cb07fb153d40dd2318d7b69763662ba517bd237bb0bd19233d781da122ddca5695fe27aa22cf0fd9f0d846c2adf14d5d618f76215a43b7d53046bee00c69f3fab75bb1d05a4bb185ec3cc518067601973373e7fe462d64835d154c0d72e28315261617398cc0cde0aed434f1661c42061221c680f02c2008940fa76db68183f4c895803ab5a4f2952d2a18b0682c8151cccc0fe24a9231c558e4f3f8ba54f0750209a0576272f4435b147bdb1937cbf59ba94f3316ff8338e63b064076e129f91412ad94b4ec79e82e6029160a3f74003178cfb05495d2cede9752e7ae327bcf312ec849e8709abd51c987f53345f10ee0c4f5898d34762d2bd4454e6d40ddb7a09d57f61df7f33e8f00b8570033272347319917386e7c7008152ddfab7c30c0ce7726b137834d2d1895af353449f81d92cf74cc5140f10caeb9891ce37c575ebce7db7703e83a33a80d2f5e0c41742d7d007649bac766ebbce03ce17a2b4f9fb092d2812f52ebe8c35a2b05ab1f9602f1678297b89cdc5b0fc19d94c65f98ba411c8bc59ece5e3c3f9fa9b3f09620e1c15763aed804b70c32c9b9eed46abae18837e233f61513b33bbf289ec95cf645eace6596655a73157db84e294dc87f5f59c961b3c1b43515c3831b6d8e6faa94c77d35ffb2b53e076e1b281cf33c1411c98203fa972d8ba46a4ff0cba3cc5156714baa62ee8139faa9fc49e91fb11be23a9e0f027f15079b3ed4f7e74187bb0873a176baec21536c1bbf03f410733a16077933157188e6a8cbc3c47733e061ec89ac59869ca2fe56cb07364d0cc983ffdb795d1fefa903b8be375c4530c219e640ce924234827194238c918e2298690fc4979967649fb533afe4bcab7cdb0aa35f23d29a1512bf4cbd07fa31b6867bb84db2ea3d6a43c41a1c1fe258ed591a46d2282311da64b336cc46d232dad0f995ae1e21def8fa8f291a43f8705fb4a7bc13d904b6e8448724364521b2291da10916492747a3ef1c8b0370a91f7a3de4e950b570447e6bfbe0ef90d6e74079a99afb3b4cd35551f4a70a266783ddb665496ba2941114dd64b596dc8a959cd9da7a15635b3b5f78b37a379b4fc9cfdd9188babf53785d993fd40e06a7ac3484d62ff1a6a52c4698d9ec8fe4ae1aa51622924aada1bfb7969efa7fdcf4d61b3091d4c43b23f1ea1aaf2bd1325dbc8fc57e921afe79aee44af5fad7daef83c9bdc8a475459af659e5bfe2c17d33cd165bf92d5e69c9ad4de7b998bb53aecb579eb1ff0fcfe504c3303ee0b56e291a9e1319f335e2f12a6b01a3cf0c5b42df863da221659bd79a0738b4b09526bcca5f9d4f27f747977a125c5b5473504f20aa53128750f50390744349e288a62bfeb921939d4eab4577c2aeadd950d8c8818c0545f584660572b4980f1e25a49aca64a525531be28b0a89e616725934d43c0a5da520b1dd47c23c719fcaa40581756a9e25f0a85010ae3c34d8a80e4e3044e1de7520ac1c1b5e69cfbf85511139a5567ea79b97f04f3f9156cf3bef2d058331abb7b988fa253ccac3c719de7db35ab9afe64449495a4257bf9c05da96b00e1a235c669aaecb081a6c5404aef2867f9f0cc70c4c0b6254b1297f3076681482bcb7e4dc22c32a410a404a18b7053417dea892060aa5d95c252108062d5623dc8f5424afccd56775e8b5fd604b3903f556de4663c7d212d6606e9380846ac5ec30fea3119d82bac07e419e6da40f52966b8f782e09c0cc06ddabd2a50bfa26c1308ae58802e811517320aa771a5b558dd8bf4717b8ffdc4e2c8374ac01bbca0df8f878e571dc3d5cb98f197a6add312fbade0e81fb7cbcf6aa8529ecbbf8b964de15f42a57ef04549cb693b700b57ae1f563bb97c68048401458b9910825d12b7ba6c42460aa2fe70f342798045f6ebfaea9b8b84f3d5e1afa78892e0695571c51051e4ee6dffef66ab827e073db392e941a252b0f52a18979ed573b593934ab4c0369ea0c069a22aabc5e7ecab139acf1e1159c9f19927f96263c7de72272b2054aba48daf0f4f05861997529f13029c954320f928f6f7371e0508163eb8ca6ba65937fdf25c52dabcb332f123447a0befe24d596db5e47927664fd345a62d0efe96ab3d32f4c402db190c09fa431274a28831ebb721603f3c378f673a03390293e04ead06170ee16931256805713aabd77397b4ec054cfabd355fc40e985e753943c902a4aaa3ef02ae91fa6d90dae3ea20224a855976272566a044c5fb2734307107b79e1871dd5a4df81a28557beea2c870f0d4e8f10d1f6e8b411268aa20d0b163a20c21a04b1204775c4ec83048d869a574ee621eec64ced800a6e4eead700bca0d4f915b4df1672d9a6f22b5175c66db503cccee98eed110d33fc4d9b33fb04f489b276dabaf3a42f46e84d5620c2f2207dc2d61e79357377f6c2c1563baba19ac249c8e888daacd700e7cc3de02cc5386191229bbf500fc52c20b69633141940c53088079138e92dcfa742962d93add3fd0a33e59230cf810da3953801af2577d84b5e4e43d83d1262931d2a50bb1864ff2f2ad2289efa00c4c6ba74ddfe9a637fced46c4a72cf8a488ac55a0c9c474bc3521e347adc531acab00451e5cc422ca3684cde212c67a513a1fd3712b57d67503c36640bac2d2b0df655326a6200002979582a871c41dd3c935789fb583eb49dbaf81e84e66f5300c8df0fa4bf4d058fe7df14f10615997862f5ccf49430c9db130363fe425401da8d28a7333f41c9fbaf517534b74fead9ca1e7068efc183a82c79523f603003833d1b9fd5ef9fd16d86512a952461c2cbf2a7964a1915b0cb799936f93cab0487ce9319b80bb065af937969800c0d311940c09bf8e6455b0e3101fbc09a4780dcf44bb4610190356e0ec9960eee17a6581fa07fe57e1d4699ae3aed3b07ee2492d132b494b86a703f59c73271d7be1aa19ac24de14860a9f49f3e5c1bb84e30d976db3daf88f5a7a1a3a40a837bcd5377ee1326b56652f53cbafcc4491bbc0637761ae0d4a7ad16b567f2526043a8dd80b3a4a6e70d0a97b7b8afc6af041d60b0c27ac44cb451f6105e9f18fec572c7583444672f15185096ca485ae87e5b9a63352c8390cffdd876ba110611f34f22abab63d31afa587d5517f16b94ae629f82db263030dd3d0b9b4d29aee9924293de1b10997338d1f5760b945f307f6e1dfcef8afb0784c1b27f5c779e065a9316efd1538682fefd6995425fe467e36504e24f9221b644983194bd41b3d4443a08e705c05093748ee77ec72397223433bd5a42bf1e655b2d2ef64e634226621f89c0f291cdc8f1a43a493079cbbc4ccb119069afd8c51325f060ba91066a6236a2af50cc01730064ecaffad02ea857bcf62d76c86fd4e15c7039adddb92a3acd4f034c70d15c202cd030f96d2d826a72e02837201a043d7d6e7366ffee7838b51a7fe9fff95a4a9c4ae3b3068c09e123970bea7063b1de5eb1c58c3b3ab1c689f2335b09c8517ffb1cac6acd417831bc8ed128ab358d52f4a55c85cace44ec06116c0846b292dc67b38895ff4453f573c2c11695e63f23c98db2ea55771d59143277720f79072adc9a631a6c398f14af81d074955222f5d651a26c171f667c55651099adc7c9061902ba3f08c50f9e60c925e393c2368711703294182870bd51a9905155b28c2b51d5eeaf0d80e1be0abb7f8d0072ae1b6b3337117e8e196e222005ed36cbd5fb5a02913c4de9dc90cedf04cb598c8e00184e061c1f023ad962fe8f759b0b451369ff5c2b2b23f6c7a9f7afa0ef31918f547a01846da27fc44b8515d699966cf9dc6fd18838f307700f61a7b0dd7d0f3156b38f8f6c7d63e0c3e7ebe68ec76b959c4c09f366eaf7347d97fd322e8bc7f3c6ce96cddf8cdda5e7b02f5a4e4a7a996abdbe648f13f57c2d29ba99c6354874cd587d2966a4e8464a4184c9479da21952d60a20a09c339920e99752c5c82d9c6d8b085c4ba464c5c361bb8b613a04374eea8bbb451c5822088eb5a4782b6182d089f7703c74adeb0c17fc43e9c9fb03a847284587b4d8fec61583c447df909968a781b0b82ef0cb284f5fe467b92f96a51e613a3fc868629062687df2a8fa7d2b3e881828e920b140a65c24649da2165e2be02fd433411e7cfb1912bab7c8a7225a119c5fbbe1596095d1d0d102e9ada46b52f367f31a748973f3ed6621064fc205158cae8c08b191280d4540b72d8a2089a23fe029ed23eb0776b4c3094f2c13e7c7adad28557434c57f3718b135259c8b41a90d2f349ad255c0003c8cdc0612133c24bacc6386ac1e637328f5cfb45bdd8e6d8cb8bdebebc936716f7cde7a81f1b000ee5deaf7c11cdee7670cdcae9667a75187a32d241239fc07af7c8dd80ad2b58420705ce1aeb0eb9870bd6438794fc2147d258c6ad10f28c7312672dec1dcc29a14f0113e6c499e2ecd6f4a53666155ede45906a0bb350625d8ede5b2cfa6b2dbd1d618d2dd10cda2c9923449697c272c4815a29ab659f444ddc16853beab566f7f46459a2238681cea4f1fc9677eb4700523dba2f692d112c9dd55afe6ae4b63086883c5726b7b64e80d36699afb38e2b00fa8e8fa7dcb3115cb6edd4a7e494d2de3c7566aa48f8541fc656ef166842ff7e592f9af7eefd384006db9285d95f0969600dd2ea365b8933bb926e0c18dc7f16158431b165e92f6c5dd1322378f4b57eef2c6722273ad1f6bcac2c45dc82c50d81df5227e22c273ae478026dd2c63ccc1a4fa66938548022a4e4454296cf0b6b731f03e414701fd057225bffae6934b2ec190550dd5edd8a538b1cd4c10134954f005a0565af7dc781dfa32a540910709102352abd09bf0296401d2ed81c06e8821184f3a383e4542c0013bfa79e4689f423a63ee508d754ae5527af92c58fac19af3ab8cf5e977f3a600603af77514bb09a14a9211112a639ad324dcdc6024d2226cd5fb7956665ef27429ff98413b19be46f4c202ef0349ea0f7c21cced7dff8fa93c4daf92264b343164b04ec3c73fd01bfbe755bdb2cfbb2d251e370d05d63e876791b5eeae7dd47a144f655a45b2a8258f8036a4385566e10f0427969855439e648e61a82990b457322b0bb8803c9b0f079b3f00f6632d693a3cc10c6f052f7c42edc42eb8aa9cddcdbaf82564c25c8856620fa4b0d5ae8919c1761da0a2ad4ec59801b30cf98308bea1a7422b2fada6516d0d57d5d0c0205c1897c17b9af599207289364444a86c63398181a4e9848b840f4641331af2343bd824576a14ca2171ef2190c43adfb6319c43886b83f87fc1da8ebbf5b3717f994b44b72004f39c9a0635fdacd9bd649866a088cf30a391765ddd53f22e0f849eaf08a473b064bfaecae866010549cded65375d925a72836d897143184a2cc8b663045718233cff2aa50d1e31a4ce15242a3a5c1f9f543618df1545c208a35a886d515165488b560153767a19707eb0154cb2e93da21516bb86807e5528189df8d17eae1c1c5592b645288f970e9ba75082fd68c81183ccbc99866412997845ba18444d6a7f06602010fca0299214221c160fae083ca10272fa50da1df290ce81dd5fb0f0bf0ff1a70e5828e84c879aa6e6a821cf45970a3f572150efa29cd50e6872e8b9bf0a96b4c3420635a33fe0022d5324f2bb3b22a2ca38396b52f1df3088199ecb938418f36c797fb61555b5bd69aae1dfd05430be17f312e289efc054068ff3c16d2721e9133f36059e0c1c96b85d85ec8f144368ad9b64cd8c7ae8d047cf69c6109f0dc958a5e3ff26204beef13e51a92da2c58e0be74fee835a1a799ec33d4b2e69a492379524022d112e77486b8c191ed102b3978ea09bb5b88ad58c2f02cdd12f486275544b5fa7d8b0dbf03eeb3e77331fc2d42c26f70fd408ffb12968212572a0bee343b54f708ab7552b4e6c000ce11662ce4137e873198f89f8fbf0d99dc97345a1ad9b52dccfa6eba7dc2382924494ac5d820b4012889d4338ec15374d9026c928b9a301ad04ff54aa40902e64ca1c860217de96fd1b1f8243a66550be332f97e7d193b54d540ab96cf91fc1eb5056f46604b12854e431767c46d9da6fe70de009f4049eb7bd6024dab2b3f536811de2da53993c179e7777ed44a19c3cca5ff406a95f1546cb8e40c7a8c12231471b206f9c9fff2442b59687e440ccb3994034f0bc72f754cd8e14586bc0207ef8611e1ff2177686cf321251962c9568260552f821176212666b683e5aede9088460ec78e9b2d31c3edc84850123b10f5bf64ad7344fe23db966a242a93b4d71c64284fe468d146c7e1799e39e305ac52fbd94b7aa8b3de2df3f1f43d0470c82c14cea97275a476d155d9441b98d5fc5c86e0c4072f07fb51871d0cefe7e9ef93b49674cc05447cde47d67ff822a460a593dff21927bb41d647dc2e8a3ab018509c0902ebcb9cfa7906f6584cad267c855cbdaa06950e55748318bcba2cd8b901bb589143ab4ec4187faf520b96d370981479d12ac39bba77311da2fc7524194c2fe44a24251108717af21eeb3265949c843982cf871e95c920a66b52a4d5437bbd91b7adbf843ccdaf05bf4b85183766ab17969b75fd65c2826d47f1bd3ea9a216e71940000cfcda9882f4716c517e563c750b15177f33a3e6edb9a6476bce387e7eedb11ef848e241651df1103920908c128c366e8d12c3644f48c294d6980f0ea220d6df78de3db526428d22709342f497417ee490cc2ebafc48a5e829f6706cb6959b59c43c629c117f1f18894671f3c394032154a680285856cf3881fdd25f5962cb945b7a96aa5ead1d1466ca68c72af997b210867692fcf8e22c4bed21aaacec4d1155f92a07406a2cf31db0f9a368fdce26e3ae171a7698d0e031b4c059c46cea0887291a2e11665832060007b77de6aa7cf4087f1be6e1a926c890c41db2ca838a3530c38f578a801d7ec345a94e8e80a4cb75ff4cd7ce864c07b5a04d3e5f45a94f652ad019edf0fcf82bc8e4107645d20f837f5ec163e74626dca4376a3e02fba0153bb3f727a8e02dcb102bdb263e4934679cc35ed124897ce35f42136fcb0b5188f2825d0a50ece1550ce011fc0c15d7e2283ed4b20b8e674fc6364eb48e9c9ff120d06b8022b6b062a4e3c9ece4042bed0adec41892c56b666c50772c1fbd23a3c67542e911a2c83590b3eb8c257f3ec9bf4a7b01cfeb343cb8bf9b2d04303606f5ccc93f8358a1633c90936523e11382fbd581e75d0197ef20281107796f79653682f9eb1cef578927ba756c5c67c7ef65af76e0d9726c7e599312a8573b71bb14cbaa9ce723cfbbff5f0aae464448a92a97b5072ad8843f731ea735e85647977fb46c9d8851f0ee3affae85cff7f61d0a8a027a0ca66a0daf4c70527778307f6f701345f46a001bd340ee8ba1432a50c5e7931f4f930a6343d26813e1ffe0213bfcc62b47fcce5618c188483e769a15af417f88e5d5cd15adff7e4abaf3113ca0f24ccfd02b591eb90b4ba6b188daec566105a6889237a0ab03601363a980aebc2decab4bf988514a5666747d33cf43ff636426881914422e6d29f9cb04dd2553b5d39cd6279caca16312767eaee8e469375d8a738feb2625c4ff89be22369364e616674b287bee9e7f67fe4284885a709770b43ca40b94f54eb363947a1bc5f96a798cf2e73820fe392d46427aeba0983509b48d3e1fed85aa76cd2d72e241048f3c385f0a5b49f8ad105923e0118d72b53a054425657e2daaa383863f70c96f3c4d8370d853dc52acffe53b7ddcd0f1f1bffe8b65160efeb4469c77b4dbe29a7fe33aa0be124fcf1c89f2a2472e294c1db071ea66b069e1281f5bcd43fa4145d3e894307dfb944b36d638889d17990f98680e53f45e9264c0803b095b5fcba4a27f727c4e1ebd29d33c93dc80c0c76ea8cd8c314a0cc8932c7d151fa88fb72e6bb9955ee76359572602779442282f16f3fb9774afc14eacdf00b9d1f5eabc6a99622389490d173a7ae85b9afe1e6c2ce52897b5b64d6acd20e0e039cfeb6981451b79050d86dfc41a7b9bd31bf5dc18a4d806a3d2ffe447bf94b823fb87652bc2c03f9148be1f25b3e53b106506ce72eedf21ae1f84d5e0f202d9fc8d522e142dc7b0e705fb3cc8d62b0b31e784007f1234aade0e7ea1a264b3a65cc04a9437bd50f51d68a9e451bc2a31feb2561edb9acf96aeffc6d79472ec0d6fddb451ceaee41ff032f41b5324908d0878f1f0e66d3e9426f45ce64dd613abd4429e9e5488c798d42cda04304d0a9e26e9b30921a5bdcbba4469f717b2d074cdb20927268cc7a548dd08add22f8053663767bd68f0de6983ff32d328bfda1d8192a069b82954e3e75301e673e8cc724c1613fa6c91d5745b15b9bc02725c74fd8f43815e3ee632467dcaae2922fcf67917ee3940018f5dd32923a26a9d54d8cb22fc9526eb4a614ae0cb5489ae55224bdf8d40bf3a9f608496587e4159e1cb96f9675e2fb4418ca02fe01a1758a62560e7bdf83591e0fd06a30ca1e82dcf414e7b25ac237df65278c9437d77f1062c613718b9ac1f1049c39bf7c6712fa619e0e15cc03a860da6b3e750e2e94e04dce56207a1acea4a4be1639f1613a9bd2706c97b7906cce0d8077f57d2ebdad5c9aa4455b8ac8ee037d1ee51bd2f51740d681ab11c99febc53bffb9b991a437e755233fec90ecb476c71af08a50799a99834816da37663d3d0cdff44e029db320842a83b511a1436dfa0c645622ca5aae99bb493aaac4315eecb2111554d88105c85231aae4ecc0f62cc398529902a64258522092e5dd668a62232a43117c8560cd792cad4cb0af7a2ed62605349b405a6d2d4ab1a91dace85a2b7d71c3b0cc1e9e64c84014b3eb8de43c028a928a37c79bebd3b33b54058be09b0c0cd39166a77b95c2d1c8f897cdb11d1b0e5980d0883f31105865382c790e502e66f228ba59bf1e6c3d2a16222584b692e404817a26c834e798831e557109b2c2c78c8eb9087f18f7e2a270005ad21a48cd7a86b673db06e5e9c6f3d2c387f6f9464b0f868e751b0bd2dc7dfca37cbe909e07093f72612f3376ed7c14ced1f9fdeee1095b24bb6859e9a4fc56cbafd31e1365f35d2ae04d2287f69bab0d46b50352c19d07db1ac14a93576fe2003603daf0807a3ea8cfff8dee0d467760567fefb5e161fa01a3a2ce1e1ac33e93e0551df6c51017f03ce15e949ec21ff442fb418048ab693ba52205e55491b2f4e68ba038b50c3d00eb4ccb6da481eaea93799ae8b2db17ccbc4390d1d98ff8673f4fee0e106bf64cc3eedc6b3e35d41dd9204ecbac9afa8d0bd9ccab765906d8d9a2422092122b4b2bb7b07df0b140c640b0be0904c99bab26accbab7c6f5352efaf3279528ba2312381a2181ed2341814aefb4b9bb4ca594d26b25134f0430fd24a6d51916b93563f24f6ef1c42cdeccde3a00f19b8404308bbe0488e29050148a914012496056f649dc928e40293f3f3f1e9157749fe411cd9824e8dd4a2cb12981e92f3179a24f36c28d44234bd067625edd93771533268a1903831cbfd3aea4e3d581cb6702f7a87c67020fa880052c5627d75d54e3713fd39567de53be79c0d310ca7814f7a8df3fc0e9ee956f78ffa8dbeef56f660244d14ae23852fda9eb5b5babadd5ce2ab9d53da4e7c936f96ffd61bfd3b90b98b7a802133a7d0de470fb390a9e1d722bff4cd5f5f233d0547139a8a4935b5e11142eff9a1e914cd9395fabd8857bcccf82f049efc70f4488bad9fc9bcd0b2de0c475e90b2cc104a2a939b1a1689d760a10255fc39416043718e1732ded88cb2099c22d390598c24480282d3611e19c1c9e7c3ec12909cacc5f02b34850703a39c0698431f397c03797db5f02fb88bc46bb04665126b625301392098d896d0213c02cfbd9a5734e0d0486cf995bad8ce788f39e1001a6b0175a32e5154d14948c4a4db87ceb958ab8f4a270e91979445046fe84e21d71f9d80b30e5154194f4c400278059743fe1f229169a5002b3e805689d36bbb078e76b51db1a4d34d144134d54a0a26e582002b65a00376008e584134e38e1c4474db9add6097c33230f341750408d17c006109a587dec79c02ccc89ea44adb53a8159981359bd5f519913f886f27bbfd64bff02f8c6d29dca93cef918c0377313c0624048edf886769b5b19f6d9dbc0accc236af560e158dc411137d33ecb64b29fdab3465cfe0fccc236953fea9c3f80500003f3a2da8f4d95670f3e000900102119d822a618b7f461bd6febdb67b91b7e7daddac0ac397fc800bea13b889a01bc43c88efb0466cded115de1115d5060d6acef11ddfb9e914c619e11adaa5a3f0dd39e9147847df788bc220cbfc51bfea577ae2b8a28308bfe80599ab6036e2a51f65fa39b8e6253e58c521a9a5128f00ddd362c141825048541b151ed111971252a7a45f4e57b449e91ac37306bd21cd7e7b8ee131fa71275a1c03434965fda2b9231f2a3f088689063ad3429295ca4c09f908f5a1f545398a61092510de09bcb67b673bd156f73ed2331befd6af7fc8b6fe2d3d7ea433e1f0766cd9dca310281836fe2dea8c411b26d60d649a9b80066cdb961ca100e65e4d8209106a1393388cca141620e1664e6c42034c706893995348db80061dce076e9cbda6b4ba01d14712f6aa3a5145e61a2e69c930241f1f8734a947c3aa58c60d020cc456df8f3fc0fa6bcafef025324fbf553e0ca4482a9d2d7cf60ca94f2f539b8fae2ccfc7ac1954b9c99f93bc6eb96bc3e8cab8f3313c5efd5418efcde0863ba37c515ea8b2b1b71c625ae6836e4918232f3e77f5ce58833f32767e27e65779977af82e7eef3fe919f3e2afbf9304bd14440d47c93ee1151f34bda08889aef690548d47c926e8044cd4fcdb7a1fd7c9aede7e7c05e7bce069fdb571a3ef3579d9fd33d8773bf43a6f29e5dc73dfd9ac961dd23c75f3371874ee0f335dda1143ab4029f8fed40f17aa17d68771094444152909833a785524a7a7bea4f8d33398bf2f994cfdd52c47cfa33068939534631683028da9871c229659e9356286dbc938662d667a79cd847e4f129beb9bc07e171532853abb5d847bc7cc47bb12c933242e1f0b5281cbe76c4e10b3159a245cb27f2c42be24e91110c024a7a3b1018b4b72d42ccf520d775f39528285b317ecdbc59c619f835f2baeec53028632651173e398a50723d041886611f916719f64139ed346dc311630c2bd76d36a42082a6e7701d66e58c599bd7a53075dd6772d972def247226df9f3e293209528cf8329619614d3644a49d960a484a1c9f1d5effb3efa7df3fbbeef93df17bfeffbe04aa98459544a29a594db644a49d1a08acacaca877d4808655252b28a8a69cb5fc4221ac1c28644411a0ea584b191632542b9f219c950a2e2ee3010d2295b62e57a0ea72bdf27e576c2ac1366c50da5941ac8c7d2e2d2a9320c5b698c2963c418982a7f9825c5cb175f7cc1610d9740347c7e0e0e254a6a1c5b23bf4e0ec93dcb9638b99ec3213c9da68c278e072f3408d34bf3bbc0b7cd8f67d9d7c869b3d7aed58056be5f4cdb86a6c0b95ca5e57bde3e8ee5f47da7b9475abb475a1097df6597cde2d7e64c51b922096fe1900a57e0806bdfc6f910418147f0098965bb3062c495cb9b9a70aa18df51414270882358c6f95c165db949effcefdcf8992fd13c36bd8beed9b1e2b379791e948da9a4ddd052c786a4495d5481cbf76834843866b41579ce68687343439b1e16c0438cee065cbe985e7e870398b202979087fd14debb21422f3726de633291b6c0031231310c40a11a50a3860368d078c08c1910808189800c1949ec2d01ad95f85fe2e58589183126000346132ed685022d412d1560e982b258e004859313df13be0bacc8150ca8b044181606f5745577db73653cc4ac7db1b86ca795ef35554e7988592a2dafc16cb20770853191f92e7fc0e177c9832e7d740057d8908def720735becb2230becb17c015d6a487ef320634be4b223d46913a1aca21a8ef5168c6f7c8c40bb8ca78aeefb10a510b98ef7109871f7b0057d91571467e8f3f883cf10a0ea310b8ca86f458820ec7c0e1330157199138231f1a7ddfe38e4993b1df9a7640214894f31d82fb8e02c298c45556448609978f0dc55586459cb131b4ca8cc419f95d6291199136e0f0b1267195651167eed18ce9016bc20346148311698ce879c7887c867c887c8c78e22a5372455c6545170f974a829270188484c3794566346386dc22d990b8d276322271a5655187f0d4010a11de84e709873e3346cb7ae748f5f44e2ee99d2332f66745e20a370136c1a75feda324aef0d090122ce20a0b09616124ae301326f2b32ce28adbd9c92268aab49f20ae6545718597c499255911979f19656d27ae70509c09dae1f2359ea9e27878b2882bac44f3992a6ca46521b9cf3dba47f7a8dfa37b310b0854c2e35fcc8a3b2709af4a405005ef280e95f0ed6be4cc78bd3eeb9d235343411e7a98331b94a98cc3dfb2c93e4c8e20b8a0440c4bcec0840d4de450d46d70f8dab6a932ea37cc9af11bf61139cc67d887e5284d52a277cf74d3df60b01093b8c24371a61b1267e467218499742d8032f275e435606818519d4485297032cf1ec2999e9285fcae059007090a5046c61549499c913fc465ca0f53490b2620252f0ba50c782426de13a48c051214b9bb428ea2e3acd049c161216e0abc55016b60d3a8b0e1689917da06326c49460576a78071e05e52b8555c360afcea80e5d603b50b5e3f4027142808b826431f63967cc20c01d764e86b2ddb87af270995565a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a268e1c1be5e1e13d2aef865c6bc8a1635395be7b6df5bb8dfcc147ddfba49dd25bf136a57d84fecf059a3152dbba22f70ef5dca1212e33cc695dc5ac9e6b67be6fa3a51da5987e876fe8be4c6687af9090cc12cfd7ee65b9bb3b2231f65cf622752424247c5bb7e5d94a316d2369aa8d06b543822eef00fabc5dbad76a8c731adac8a7581bf2c498755d9ac43773df2cec35728d68c1e1ebe3132faffa62d1e15ba488bc78d597c81d7287586df91522010db95790f0e5e1a195577d773c7c75ae4ea5bceaab0e1215e58a62326156cf7dd3ddec11cbf9cc1879115d43d7d0bcd7365d5024eae83aca1adad88b09be842ea1ac77f25bf136791f99f4a229935b1d794905dfcc7d21b954f0d56a5d40dc15c4e5abe09eebe7fab1afa9b2cf25fbce0387366836fc3d88dc91bea35428b673647b2b7ec78ab72129813ee890ef82238c71794c5371b9f699a62273edb5ac91302d91340fcd0e0f8dcd0ecfb529bd153b9a70d21e03972f061d9df4851d9e1d36795b81b239127fea29a8f878dc3da5cd003e797d19dc2387631ce0564f4179c778ad1885a8fab04e0851152369812f1f1fd265faea79b4eb8131f2a7ee6e0051f2495d102466198004445c5ef70ffbdecbef7a5064aaae91a93205d17def7c5c78ef869094b8f04e02b216a396c6eb9a82f6907cdb24202e8bcb8891ccf33cccd25ea3b8888bb3bc4631eac2825d32ede5eeda0feda9f69896358dc302805c7b0fdf68fb22720dd9bc59c2e22a721529993655ae6f9af3499835a109b3ea75f1f070f95a8afd1a323ad01949fee961f9ddb9a5832cb73621b0e08a70465e269d416704d920bbeb104252dbd591bfee21fd95b9ae87e792481747e2ae9a1a958cb0e3ec53fe03120ca0f38a3f2514296405b3e6ac530699b135ce2c723532d2a14347032af5f0bc58a65d5d36e121adc5b5b4156f65e54d2bdee315af5bf9bc8257b0b65d5e1415ee5139cd4ec0e50301c4c603b3e8f3c03e249f57eb726bc6643c39f368f7fe75efcdf7bb7b63ce3c2abd2d4f0c708603f2c60065245fe11e95cf1d04563560839087ccf78b7ddf52f87bce3ce6fe0e99c4267125235583c67768861bdfe1932308e5515b8b105d082025424c81a4a97cbfe23d7c22208f1e461400a6eec347405cb13cfc05c0947ef80e80ab180f1f0290078c873f01c8e31f3e06808043740fdf071c8293d19567bdf3f23b303fe35752b206a3a58ecdf5bef0a2b0c18915d9c688eb801147f7e0c0e5c3a8a3f3d6e0a16107421d765082c738e95f21708f1cef6b66d439dc9b42c028394f439b191ada78a6946f024cb1814bc8637a44b9f592e295b64734634c253864c07bc313242850643744d1b5410a8e0d53e0230d6c6bc0d1d4b0812c0d54604f3870d150c5e5a403964b0fac88cc40415086190232c82035e6d56ab55aad56abd56ab55aad56abd56ab5b1ce5e46539e3dcdb2a79a109b2a63599661d94bf641e09b6cd72084c8e8c94da6b7e2da94669e46e669666efc9532837b2bde06e686ccd7484d86e6c6b360d68d1b2f04be89bbca0881ebd050e9c655ba6ec0cc7849a1b5d24be9e6768859675ef1babc99aedc5d5d1e624547be22a3e387c02c205e230256c9a9be46ca68c957743ccd53990262f71c3ef334afd210cae8d850a268be45f7945ee51b02b3666874b499ba27e5b5f6ec0051f2593687c35b030c4dc5c7e7dbfc54f7ecf0ecb049d961733dcfb549f992cef5724687c0d41aa2be8793db2418f3bdfc7ca25a8994efaf6f3e090a22f04de62dafd5c02839150d6dbef756de7b150da1ccb7a144794f320d81592b1ea63311b221f04de6da6a6a33a5dfb41be6ee5e1cb80402870cbce1092850b8218a3648c186298e34b0061c356c200d543ce1001aaa70d28133700f18f10f9801046508011982dcf78a8690d191e7d2772fdfcd78ee4d17e4118730b1015f7846c90aaea3974610717450be803a505970f93472c0e5d7b00197ff35e0f265d080c38001971f43c338d34b44b87cada144ed15a4804b94e5e1f22b9d83e7861b08c427a5d3ce26f0399b80754ff79beee15ed33dd7673d1ea772fd7775a4abcb57ee6a6a8070c003ba9c799edc65dab9d5ca5d6e71adc9444888d05c225141415e9184f224fffc5c402d18b41e30b5e5ae38b3a9aba4bcd35e51c6b7a9275f2165eae15b31c5d9e5ae2e7717476d3a0dbb7e25cb5c05809d990d80fd0b42209b955eddcdb4b5d5dad800000098451f009573dd05742f0066d5a2fa08f1993d6800e8d4358b6aa41a51e5f93db00148408466abeeb99e5e43ba223c5e116b5e92880848003f31328a72745477aa4ed5292222622224f44d8686960405e924287d4d096a31a6a97457f566b6ad5c96968fdfb1d06af14ab67517172faa957eea9efc1ee957e8f609e9988009a99964ca2652b5ba27e36ca3daad1733c233f7c45a8b8758fb1ab3acb554881542e96fcca2d7bce6c4b49608c495c8989c44a290c8fc23512b5d88a0050a90c77cf959095075b5200f2a04a8ea9ee0ade10866803165803264f08aa04c0bef1e517721c126b716ed1561186bd3327de255d31d213eb64c7f9d3e627f7af9eb25bdb6d10ff478cd078c92ab4f6f35b130ab2365283d567af8c8b40ac7483f754ff75e0b5df9b6bc858f2e775900994e1140119b890f00d33d5db7df34eb30003ca3984abce7568973579729cddd5584115ea561c3082846e07974640052ac2153802705c0d3c8e80059a26e1c51748410046c57d3cf74c769a5ac5a670cd0c4004212b0659ae39a02b64c6fdc5a8b005b69d51c1073641080595dce5d0228d66d99d67802f00de579cb74c6ab9e0ac0534888015ba6b1eee262e4ae2e4322d337d39179ba87d4e547225a6b49485c5da634771703327d3520d3967bba07bb94bb54ba8b8b91bb3a074000f778c0cc5436fa00ae25b165d0e6d29ed1f48ea6983f457c295c7474b88d1af68ea62a6f128c997fe2f3b5123111204111017c93f9f5d80065da1067a07851668cfcd973bda77ba29642ea709cc8efb75cd9867b1e1a9beb3da3a9e2f6fc6bcb2434ab3f1d1d6ed2d1e15947876f3a3a5ca39bd55747876b75b39aeae8708d02172705fc82dfb733c84d02b3ee6b1288505e5bf58400665108e0191424812d9b497e7e6604f00402ca48ef914a9ff22d2b9a8aac627a1ed4f4c9467aa691947a5d5ae2e645324d13e99200c52470fa96c01c004a40a22b09b8c286de0130953d7c24e04a0b92810098c21efe1170855b1d5a81c32f02a6208cef500a1caeb4a31842c054cbc3e70157198ffe1e04879f822996d7c1e1e3802bae95dadf67f20d9e5b36ac67fa5c1e061bd2c1bb4714032effb7167403b74a2518c2e5cbd826e0f25d5aa51170f930768ced116d96162851251270f958e9042c0882778fa85424e7d8ba2182d7dd7378a6d5c74740205eb747245112c306b015807e01308bceb96d1ec49986403c7e2b464c8e610d210af3816f28676d5e11865d7a3dbdbfbd76b567245144f77e8dc4d9d7d734de5023c0a6ca5aa52f98a5cd2802dfd03dafe0e1b995ee27b60d06666d3b95e9466550191bb6617b122902cf219366f7213e627ea5f76160d6bd3208806fe69e58d0598400d81200b3e8124c4c1a3da2a9278f514a2939ef496e114d559e9815774641fea15ce416131b94a90bc4f71894daf1d3c513e00afb01e2f0e312e00a1b82da11b6802b2d28ae702bce483c8438040e3f3601a6eac38f4880291a8980e3fbcda995efa5d4f77d45e57b0b0ccbf7193431bee350b97c5fc9f80e95fc77f8040e5334be432c707824f31dba81c33864b5fa1e59909af91e5da0eae17b8c818eeff106aaef5107ddf71a1cce741184e93bacc2165429df61185ebe43330431e33b5c03cc77180755cc77f8050fdf63096c7c8f2b50fdf03df6e4f81e83707d7fe932b8ef4474e8040e1f3ec9833cbc87ef03e4b11ffe0f90877ef8074000e451e3e14b0179a01efe1490c78d87afe1d03b38de8ab7c1b18fc4c77eb4a338131457194f9c1902e4c10d01cac415d7fa91413c0ffb3c82d850a278fce9573af55204d1e13d5a13a7e771fa8d59a7136acf1d1e42f0901cb87c8f0e66a09e1adec0e503a1a144ed38f2da90f17868e043803cbc32401919575e519c910fe5280d3c40bcd5400001c40e2068740f8edfa1f2e167707c4af35c1b1c3dfca0436726e4c0f13df8f0038e1f7ce881e6ada6a1b134dfedcfd0f4f4f033a81efe460f2fd3030f3036627a8089e1a1071e6260aeb65fabbd28da03f32898af01f334609eea1e79b79fbd9466c094525ebee72098979412d5f66bb594be463fab5f3335195ccabffcd69a8a9cfdfde79e0765537a8f48bee81824183a6f017312a0092395b89c04a3b944cadeea2cb3f6b5cf760ffb940810f5e9bc05cc49c82d97deb1e26d9cc0e56726401d727b4f5391f9f655b35c9f5b32b52191aa4eaab89739c823ca49b8fc4d7b451e919d984521a7714279d2904f603bc0574db9b6806d459fb89db78031d7773fb9cb4fa0643343625bd11ff7744f9e34b3d94fccda68dc628c5f76330dfb326df71c8c524ab19b35a4f5e26a149c7ee60c980da0ba67bb2e97392e57074828474732ca03b6156d3222b2b8470e0d71f91a04b6155dbaee75003e22b39bd60bb3e8cf5c5c8495fcfec53eee4b31bff8e28b2ff8dd928914a2496c5502db8aceffcdee71f71a899272175cce722b472177793ea5f6e65c8a29b1ade84ea34aa84c6c75025be5e8e7d0ca61d66c62ab53cb253248481005b63ab3900a6c2b1ae357f7743fb7cc2bb2c0b6a22f7f4d9339672a19a59fe7c4b6a22dff4a9885860b6c350562a0d2398ba6490806b6aa614dc13794f76d45cf96cf8c91467e6c2b3dd76f972cc2e57f2a5a8a203abcee9e6bcb15dc23258f2a7bff7d3f36aa29d73270758fe96b06ca415cfe66fa3acf09979f9d908f0055576e0214b8f4da907f7819a24706afc8a383e786fa94deeff1b597b8477c9bc3a386dc6afac446a3a89c7dc82fe49f863ceb188574947918d7fa4e19a84d6c50aa2ecd214102b3eed55c8bfb91a9f923a1d1b5dc8f44c9f99d6b7148666e79440ed820f651e99c94ce4937ddf77e03306bfed55c4ba2243d413892e3ef3892e7fd1c8adb1d47724a84d767c1dc9081d070bcbb0636e522ced4ef34fcfaeb370de7f5daeea80c02cdeb310834afcbeebba91152c4433a10f5fb0f44dcb8d1c30e2ebfcbd4a801e30397df697c7f183c70f9fde524839f78bf5c5e3e53b8bcfc6aba830c48c055e1f2270c0e637fe0f223105c3e03a01203ecae83f77befa45cd0e6e7383f5ebbf9127c7e9c47644e3fdf4ae7dc3f20d011ad7ebf0f6bd5e4434e25adabf9b4bea494ced944bb3075252a02e9e8e85c61d329c472a7f2c66b644e8c4168f25519c6c0ede59d23307e901861685104197e3032d5bffefc9fff4d554492e5d797bb532aff08f9947ea5f4374935e414c2942c22de69370a57f6fbf5555ffa36421e3892cbaff22b9d9dd24c28732a91a9682f7b59abfbe6307ed71cdaebbaae1a2d6649f664adb5d1fe65a3b55fad7db92194814a38166b12182184104218238431c68711c238e3c308618c13cb5d8ebac32188af8fba3f8f18566bad9b621886533986092163368e64198590b18dd21ecb1ebbfe461ab18861d8eef5efb6d70e6eeb10bf24dde2fa0b55f16fa431c6eb698cb65e578cfb32038ac3fb17bdf4deb75f23ffa278ccb132c641a3a131d2181f45ef8dd1c6f816080d9727d02050bf1cfb7bf11ff58b7fff4215f699d7973fea4f4cc3f9bc5ed4a5b93beeee95d6fab6eefa97a61be2581e83c81c2b6716a0120ea38d1c415055d61ef6cc2df6fde3f6f9f576f70bca7abdbc7edbdaee37db3d635b3e8f7f37a43cc69711e6647122d1b499bde010422d9954294497745cde9b73ff78841f779ff3f9fc17fe6346297058a3c0b52983a00c54225194cf97956a200e9fca2468c8f1e5119431428effc3e1cbd68ef35fca96cea1b1eb8216021e3e1fea2ea3f820d25aab8f2a65120e4446e133462ea8a871e2541e5fea1ef1e36e2982c6f8f2231d3ac1c8be7f508563df499dc7330eafc6e147b8dab8197be0f2b34de5637405ae62a0fa0cf957e33d73c84305cac495696563874c41888abb9fb884c1a54c5df29a978d53502cce30f49bfba7fa66ccfc6c779c6a7d72e4dfbcbbe7ebdb0165e6d7c8d833a788b65a9ccaeba6a2f259246508fde6fc38f6547b4493cef9da85c5ed1e7148385389e299bfbb5dd97794b7433bd2dc1107c4e5cb6d457bfcd354484e5f7bcc7a5edd2805b255ed1151fa65f55295edea32e6cdaf45c30f5fcb74add8a52ddf8a0a4b8b4b0bb7e08c7c8871401dde77d884d4fd9ee2f0c60c5c653cb4d7c83a0dbb565c2bcecc6de521775d5c8c97b8a79499d299655c96468ddfb46cc5c32d3ddc252a4aaf908ecd7299cc683c44237303e502e30ed16889719bd458f1be4b646fd1a6e1fb32664d296159ee2ed35d1257d748759770f95728aeee131d57e81e491b3089ab0b453b9a31334c38cd9e47791edd28435188a2180dc51546a4495c614868ec2e8b60456adc26d8cfcf258a2b8cc92d8a2b0c8abd44506e11368445e9647c49ef74ff26bd7384468dbf4671c58900cec8e74470a3a0be0846e4495c7143863ce1442e94b8e27c7c2e942253c5b58a14411257dc155720f999aa8ce727733c53855b434371c5ed44992a2d088ae44151eed191966519464229d553e38c677dad4603351ca6529c1dcda4abb4730e1d71c70665ea940129814150e87e467d3441a522a5924774b5f0f1b9488460d99458a6caf5296e2251724e4aeb4f3cf443d68e80d068502e1ae35f5b7370bb7bfc8963b9d5ea750d7dff72beddf7c119937f72dadbe81abd7cbf3c8471ad8b8bdc4b434a464a444a45b88c1fe38cfbda4b293709c9d4f6a521b8957d89e77bcc9a78e8daefb97fad247c0aca3bd79adaa65d3c3434b4fb37f1506e615bd418e78cac4ad27aefcbdcca2d2a0c69c26114b000d4038754d8c111c77e200fede5c5300bf292ce9d259ebbe19ba3ee455982dfaf24cc823c0bd13977cf435c1ac0846f807a0e5a82d39f2eaf310bc66bec23f218ff827d7845fbc646ed7c5fc7e0867044e28a2b12677cb41842844ba975e49b85d2d7822bc21589f1d75482830948c97b4329031e098af70429bb810445eeda90a3e83836745270f8889b026f6bc01ad834356c385a96066d0319f624a302bb68c038702f27b78acb9ee1ea00876189ba6714e3af07388c6a06fa814acb304140279489f11bb358de23830cc194502646b7d5ee54b1f78cb2d290ac46e1ed16cc9ada6f8f895ea62ae53b6a853e8d4c6dd5657afa2b50557afa3f552f4f77c7b1bcfedc6cc89163228992da8aeeb11f66eda7324557bee5b52891c3f898ffa9e27efecf8f7055e3e74f7841d58c9fdfc112842a181a0ee3f76b30b416456b474bc891c3f8ae1dc1f81ac9d5e03e86ca14a5ffba877b18cd7501b92db8ce72f826f3cbc17433dea5d31e14e93de166d8cc663df296af992d1a72181af25823557011578322534fd0f02953fbe56b512809b3f6d697fb151c84c6e6484b112b4fd0acec9be4febca49434d705b7058c6189f1dfc5014d555691b1fb9c1c7b8fa17cfa446be6d63bdeb956e782bc3a74ef09d69d8b02978fe121996a225394c3ac394d3896d3dd52844685d5f655822f90900bf46941f7e6ac05e5961654ba42a2aecf5fce1ac6d4ef59884b1f8ee0f6238c71f18ea68a04636a7dbafba79530a2e333bae01b18304aee3ed46e0b66d996cde22332b79f7f32914cc528f04de6acdc22023d6116dd063840366595daef36549cea7effe0a3389eccf5983ebbdcd11565c648fbf29467bae7fe4c95e9163119e1f21ff7dc215c37af4ce23247d2546b1bb3b4eba8cbddd4f762dbc5624e46374dd348da437ca3a560966dd9f846dbf78a2d44e69c61aea97b489f5d1a750fcfc721c95dee321a1bc558fdc9f212df60d3c280c137d8be60f0657419d94a6584d605011e11091f116909b3ac3d5d4daea16ba8e82222facba7be98447c0909e98b4f7d2db98282f63df2885a57c9050424a3f2a9af24d7cf0f0ce5535f485a2d8b593dd75b1a5b3c52339ed9ef558434e41a526fe6992a6b2f2d2e9fcb8746d4924f7d5d21a446a777ba7d847edd5479d2788a2fdb3ec1d6c8c846b9747aecd111968079d1ba61d8eb4cf96659ef1cd1bace2b823ee8901efee86dd86b309b2a63afcda87676d9e4d5a144829208ae6e7b45de136ada31cb4080e78c1935e5e7ad222633a14629a594a2c54bb18edcb3b15adc69685321a7bd226ca341639b81317cefbdf753d84bfc03fbecef7b1aefed67e01bec3e0b06657b156cc35cb0a7816fb06d8b6808d168a594ca1a95ce488e425d2b9845612de24a944c5154cc56c002b620de3d22add22166bbbae31a0f5cc59123470e1bdbd5986737ab3974e8d021b3a5688fc844da3962bd22ba6dbca4a34366bb5ae353e7e252aa7c553d6c251b5b49662bddd84a335b89662be96863c2302cf3e1e2b42f696883d594920ef78ee8b52aabc27668e86a8c674d821dd7576a77e09bcbe90e6c85acd0d5b72375f6298df1313a79dc6981c03648880ddaaebe5a3f3dd6c78707b6f687ed6acbeb8ae2d8aeb5457a2c8fe5b1590481ad11233234e4172311c2e296edb13dfe1a897f646a05ffc4a032a80ba5afa18a6bd5ebfaef1da72ffae947c8237bfa92fee7a7746545e31fdc5af98e5b18c9cad7c8bf38ef63ec568c97e1bd0be73d8ced7d8ced3dcdad9e2bbb386c76836c05590c206a7fc6930dc98ab0a8a8785064cc9396fb54dfb7f66215cb817b509ac3b3adfb0b4bc6b3d23d3b64389822fe808bb88f91e016feb1316060aeede7cf6ddb1d21b0d5b13a25cc4283481da14c8c4f6116ea35154c919ccbd7481de3ef539942ed9ec361fc8db1539805e3b6a85cc1712ae0f2555e91cc7878fe7760edb6bc7d3706c223a2a1bda21a1add98e421a3ce98bbe9ee259d15ee61b947c46131045784332253943382a947e90acd78a816d45d383571fa115296ef93d3cb29dd946ace0857847ee78a60215132e3992aae3563a60ab7660ca7459c918f777f6ff7cffb95ddb2557690caf72c1bb7a60ac2182da457bf05ab6cf969715776bfdef688be6df7278208ccc29e08ec23f2fb10fbb0dc2382010f71112f53da38e7bf742e31bb5066ce392f0b8d31466a218d1b424b29a5d2de93bc379ba4bcd454e23f6636e7948fedb877cb2f4a1eadad347fdbfc171b122569a4f32a553a618e5006be67adad92ca79c404bd4b2a651b124527a5d25a5a250f2894d492ca49008912000bca44025c3aa700240a7e9fc1a1c9769004b38451e0308a28f272964a2bb1dd2e9d73cedda9bd1ac621845b4e4d0089824fb1acc7fc0bf62f2f178332f0e9dcf4b215422a237cc1ececa4f6b2416c775f026e29a5dc1742a8214ee5f06360d697250ade7b636737f81ea7e52da7556d903bcc821b0814e2504609bd4d4620e48f42c8b0a4c149216629cc7f3178ed9c745a6ae7a4d35a5aa99c32e6ee51954eec6617bc81325bca4ba9a5f7b2764e3aada5954a496b82b2943b77d3007088d339e9ee524a29f7b5d6c21ec3e16bf4526ae9953642d5553fee4eb3835b0b25bcecadff025112055f4a085156524925dd1bc8ff62a5ee95c30fcad0181c3efccec7e52e59a220dd52c6cd4e7ae129462c5029a5a492d61e23e9c438d4ffcd20474ea6630e7f833231c293d6e4bcaafa727e9c0f615c2833e79cdfc70589b3c639c840b391778ec84f8b98255b42f30a713ae3c434b2e2f621b966abb5744a1badb570e37a8e7483a602398d3e84e979874299f815c8d08b254960cdd4e206f5433ca76ae748fcba5b9c508328fcb3c93a3a3a3a36f2731434cc0cb9068c7c4d953f899a12355fa2e60e3e73f0b9637e104bf8fc1c32d5bf8ccfff34e42e52056d208ace4ba1900934558e0fa1849794778e44f970081da10c5f8b3132c953158f664c7cb8fb121cfed41d0b19a73edcd188444d1d8b5c216b32c62832158f2214898a44a2ec18e508f21e8f6a3c9a318a4c41ae83281fad9029fdcc0b09a1dd768f40b148c44228f7cce3d3dd02395d927108851c781179acbba5c7943c46223cdaf488058f3d639a2ac720895a12ab90a3501010193a410d49788f4f78fc8f1fbb98c2101edf149f04110d15c954c6e3c720992a40111e89823c7e5c2255d026629a8c14ab2c6d472810633b1e79113f0ec9548fb1894c3d8497e3100a469c50292f7be392fcbc479f1804851ca42106c198f8f1e1a51fa7902d875d10f180f718c4e3479f08778f405c6e456810e58267e8c592267c7efe96f0f92e9042aa4f47baea93933823bf66ca8730b30addee39bcfbaa23f614eb6cd6e94e798761ddd7cc4e7b6cc3b04ebb6cfd2cffe63cb9fcddd778a49db5c75205769da9eb9e771d0def5476bf5cf7b2fb14d9bd49765f92dd7bb27b92ec3ecb6e5b6b6d4ab477a01a520bbf5f1ffa1d6e3a29a5246aa21ee53ea32954859628ed28dd7d7bcc44225d95dd7369f7af83f1f2974ae9a294aad03795e87b172dbdf7579b543e1697184f6968086366c068197a5f7aff7ed97d070deabf14132d79a42cb1a498db389553ed71b6ed7eed7eb54d2786d99c1561dbdef3a0f75cc43e6ebbc7eb63ada73be51ef7db56333dddaf16db767d2ab75f7a0855353386fecd25524d4adebeb47b0dfab8e5f6fff410aa2ef732f73eee3df750dca3e1debd4838f6e9b7a202bd4ff1dee47d69771a4ebd6d07a76fadb59048255e5bc44ee30ad2ebc32d8dabeb29d4fd6a913d7c787d7cb22ccb3efbfeffdb67df712abf1ed3ffdfbd4b7b0833272d3163b09f31f27bfefeda41dfdb4b4c5504226d954da4f2531575ba94fda6cfbb3ff7f8b1e7327f04babe12c5a13ac4af27ed1e8578debd0af18bf4f9bddd6310dffff210aa64bc677a0855335ee52154d1f8ef2154d578968750857a97188fd210c6d4d010c6d0d0570c8c96a1b78630e6da5d6f1ccbb5ff1d755e768cdd2110bf1ec6ee3b5c76dfc1af6fd99d86659f76477d2bbbbfca4ed9fd3379a4dcedebb9dd2fbe76df364ee55a661fb3d6da1caf9c97da8e367f0999a21f63dcd7dd2214ae76637e2d6e5de49ef3544591e151ce4af28feb2beff0488b02a70a10449b1f47e6bb699c89f9da36ced41d91e8d88a3fb125534864aafec814f6f1070afd39cac699ecfad82764ec610ba524c7fbf3a2f41f65af16bc5b7814054e36c1d8386329854443a62ab6668cd0544531e7cddff728d469788f423be6db5a797eefe3c7162c61efed5e83787d526c597e77d7404ec7b13c4731e767bcfb07e16bf028db9d86777814b17d77bf3b78874736ce68c8b9607256e3b4e7360f7bee3be931cdd69fb263d8d64e49a6b77124c724cc61ed4f4e4e4e4e4e4e4e242dc2b5a79f93913d1d9d8eb0a7dad3ebdeb9affbdbe34d5ef7ce0bdb40a48fdd389263b40399a724f9db2205922d12e9f473323a41219d8e4e4727272727a71fd29f8c48dc93ba94ed49df4dbf7115eb57febe3b107a4a72a56c1cc9b3299332f72727272727272727b245d570e9f04dead3cfc9484a2de5e9e7641457f204e574c4afefa72379e9fb1d88f4b9feb2f2b22fe5457f76df4f49b26d93f82513be9d9248ad6d20d2875fd92909efd87572727272727271b1be408330fd6a4989447badea6ccab10919ce22be362e72ffe450ffbec884fc43fbcabb1cc2af7d8d944332b5fd4524535991914c3d91473285afff2b8b9a966246ccba62c5b41db75c22513348a28482e41299a24271a352a80934272771663b1d55a02f880939f2fe693fdfe565eac2b09f289a939338134f5078af579443724836f95c6c9c9cc499ba4f467146f7c8b1d38f44d15877789743bdeef0f92727711537953e5c8b1f7da44f9743759f9cc419faf5afc7348eeca724578b4319395ad492406bc5f571bc915fb6faf851fffe9569db6398f618635f3331edf1c6fde3efd877bbd3a0faddf76e72de778cfbeeb38612d5ed8e37a7d9ef539272c7610ffb4d9264969de4a4f658de9fbf69197677bf2ca7a95c20a1091288701c1c021d81e83e84f4e7dcd98fef73433a91b084d7e010080959cc79afa7737ebc3f9fbb6b4f61b8b4b09cbe3bbf9f27961697fb2befd2724f1ace986fce39e79c1b47f22bfb893dd5581bb2b681d0f02b7bbb7f641b9b337f2ad2161d4188f3c021d011b2d0e191051c0221e109d73afa57a63ae4d843a8ca35ef9ec373d4dcf65cc43e5e8f238db89fd5eb27f6f103fbcc88c8f1d748ca455cf51cfedc6b5af7dbc67d8e9fb9cf0ff111dd7ffebe05e1486ebf7bdfbd8bb471244ff9be6dd27b5fd250a2bcddf3c6917c7b120784865fa6ef4ad95d03397cfbee3b0d8f1f4dbb5f4e4bbb674e2969f7e7346ecf7dde1dc569f6d7779a721167b84d256a2b42e3d8b7c8bfdb522f563a28e10a8ee2d00b380081ff64b1451db812fe0387404986f0dde3759d3eda8f1bea4b43dc2387dfd77a844f81e2ea7a381f471a41dd903be5f0eddb8d23390de2a7ef34e893d481a338044ac2846b3562d32651f07ec71efb93bedf81d0d867b1d7cfefed772034fcfaf914fbf871d5c7e6cb5ffde3fdf9d551f465d3cc18f970c66cdf2f9c31797f5c6e38634c1bce1895eb4f1a4a14f7f8e154b1b47cf770aa5c9ef470aa607ce9534ebff231f4e9619cde459f4ecfa2e18c39edfe6d20341c7bfb345b85669b76ffedd170b9334db7b98df7b689f09e6d1cc9b1bb6dfd79598d4e982036e793d7113408d3a39152cfa4ef5f470541235332b53d3442467db79804d386102982696df79c4b53256455d49931f32312f28ffb95f7a8a3bd8e4c65cf2353d8154364eafaf991884c1591298d3e8ea4d895dd8f436a64bcfbda3812357fd3515411058e5685262356ab90a9fcf36312ac6241bce3484e774c42b60f7987404748c891770814000110400132b5fd9c1bef9177ca459cb9f612dee3e3484eff0844a24ed491290874842bf8fcb8532353d08b254cf8fc004855b4814c281771267e8d048a33f56be446874854a55c8af9459eaa59dafd7abb67d2ee5ff6dcee8f774771ca455c5d01a6f5a8c4aa9a299b1e656a66040000001316000020100a88c4c2e1445355dd07148011749460625a1f0bb31c495114650c428618600c2186c080c0d08884010a58f3882e6158ed039c7b89267e9f751b0c8ea08185c2d4ea4650747b33d29bf32ab23098ecca1aae71f641ee93936db74eab0527b4aed9b6728294b059ce93ae8745ad55065c29104cfe8e8b394ec447ddce19a233e6e293ead0941ac5d67ef9f46709936527ce643bcd44429781b2fa1b38dc1e1a44d6cef78462dd1a346bf9c96ab4c375a421ec050970f9885986dc66d0e089b18497fea5a9842eb2cff4889cd0d6b03b8a7a301ef44fa50169ea7a8f18d4ecde01477948510626d868e4da63b722b782e249b1398f43f2ef4eedb1c1f27ca3c9c9aca58b677509c35db1096cdbe4a18722f7f047c0a79878a5d16a27a24a487dffd1d0cbfe79c78e8ceb00e1b17503321dad1e9213f8a11a636e39da39e81eb7022637a3f5e984bce8cd60b02f53426227de6875e98646adb7ba5fca90d7cb63ca1fa7254eb44aecbf45574a7b559c7beaee3d4347a6ce0aa356f4825f5b690d140925fa6a52a2380b2b14bf5c5c630fdf9aa42311f58ded6f4a88b81a4b7fc57e04869770f197b96b8a6c538770d5afa77046a3fac63dae6102b8e9ca9457ec393402548e3a66092acf14ccbe6ad0b8831add7fd2662630f44a00de557152d244c58dd58473b70851b837e7bac312edd460e8d502d32ced47d911347c978482661f836ac3ef17106d799daa529b4551b51816c08e95f266e3896a6ddf4789250b4f4710c785a2e0b5f41f0587c188080c728088d5e0d97baaccf1c47fee3c3b4978c3590136d0ebb5beeb1414d551301736c54afad627cbbb0b0637cf388e0e95499631074d81feecc30c940134e111f359346c5cf42d730f9059d093aeb795c8f00b7e2305b011d44ac047d1ca41042ebc1150ca251491806464faf488d2246eb675e042677f2329bb86831b0e7b149052d358ecbed011476d1fa35bb55bb54713d0efe1a3c3bcb3b525f6fa75304c311f2089d2a64f385d097cbfd7e4903d1fb8662bdc65a09ec0d23ff3bf051554cec34a0ffe0b8cbd3e41cbcc27b7f0082bfbc041ad89d1c0676b1572d6160268d7e9ca66fa037dd61c59a874a538c8636d0fb05d2f1bc152347e3cc764500d356231c5d739392ce91902b5daa7ad5bb83c44b7111ea2467b27ca4dd4306f6551aefb087097ab6227c6fbbc467dd6e78cb2214f5f0281a73f0fd54e2052067741ca050e0562745eac4e58b94f5fe0ea29dc5aa0f6136e7a4bd5d0a4492d217a83cb5ad94d9e042e3d1ec1325ec1f54a5fd45fb5c3fb7450e4da62fcffebc51e24b1804d8b0c082a1b0f89aeb867f51efb4fc1ad4769e6dbe81fadf1ac16d9d7dd29b5476a633fb33e2e2adb4aa993d049b7c3c82cdcc8275c01d094cee92ed6c13ff7ab097f0b84717a7d4323042d7d2c68594fd794c82370f5627d19ca7bf040a2b404074997fcac967846e45aaf0311e7014e0d3487b8a8cad8ea21003f0b72c5ab6d00e83047456ebcefa7f9feb5d4899329f0ed0a7789b44e3043e36085f0c3e88befa670a6a375ba259bb5bf75badbbb465ed31002e4946a9ce2dd2d6a89d2a9d742824299f3b1ac76251767b0a7f1fdff8a67c4bc3c35e2ae6b32af02dbd4a35120cda721669fbbf1501faba860be46cd3420013237f0641b19c3f5c74a9c0e2da76259af75f3a8475c50e78fd2828b4ddb2723bb1419c459155688ae3be705be9d8b0750afc234a1b3ec8cf1c6d8ca496ce03dcdf7d0dcccf6b0e5b632077e0ea7d1311dcc9367fc8f40d0e2851894b672f3f3af125f9a4b51dfdf514dbd094b87c582c65c8242fc08d04af8fa8a9bba94d69a3f8a90084de52fab6a64f30fabc5323a3e08b7ab5f2f0dae7f09170fcdde1a578305707b183f71d31c951e196919820eaec0a0b0cf85f0786a50e8122c64f48eb70ee3d82ca5a8b5343715e174e94c63b75785ed81ddc70d48cc85b00180a26a51541e1437e232ef39d3adcad0d255da31f51b84fa1bb23a9cbdd245f2c634072cf41a4e80d0c2ff5a015536280ce98136be2b09bec5f4624fee0a309482c129a4e2071c763b05cd828612ff4ad2152e2a1d588d2128510dd5f1d7685548bd0d0e54dfddaea6e05c52724a0cf147e0781291e623cadd860351ca347c7414086859679b406513d57a4073b3a189dae8a4d24a48cae379227dd77526f4d86cf17300a834aecb20717b90556c9028ad663a57e4ad4beeb2868d09b32e8012849838d69597b46db23578c5298db1ef896b4f5c6aef2db0feb919fe898813bc6e465fdf1e5ee6092b638bad6e553187a359a9c4139c7c27a5ae2bb386a52eaa820fd435f2b77f0013419227ed48f741fa607501776fe92ab39a3c12101f403f70bf011223dff381f46e3498e855833b7c90b25ae1e42e052c23cc7e83936d1267df543ccd3cd48aed993d6feaf83595f8ee8aec6ebc3f7ac23d1f8d2686a1265abcb90c2d63c2c6675986579f32ce34d923348a0c4b949438616a693f3e76883e0391657c184eafe65a295c873cd3b00f4404fbdaee57b6d8fd7eacd30b046cca9d7487f17016c12cfabc901fa53711f3682967d4f590fa0b96b5df0f3182642119333e1569648667e2e114136e896dc88db5fc3a56192d4658089a2fc87e18a2cac6a41c5b8ab36346dadfe0ae6be67fb2637b1a61645cdb56a052fe624f893c10251076b0d249e879541d461ac21538740e0325ea0ba438595f07ce8632b4896f0e827d686b8e913b936ed04481ecb014a1327032dfdc8c0aa7bfda26690c30e4e4b107b2cd9a1e929324b231933881c6e5b671174adc92dc35244c3ccda9a6f9dbc52ab3913388b21628fbc50c91558d5dad65f38bc0ae63bfde661cc0c0f7bd9df81db23a52d5967dc0ca7839858c91cdd632ae8052f6be6663e9f52e5bc2279c7815a5b94140a16cb141db91a714b763d2ccc18d505b371c46d33a0351ddf0398e17890f941cb8d3b4e12ceb919062d27856ebbecc4d50289418169f0a209e084e154cbf113ff24d5bab921f717520863187a142f05b25a373146cded8fc06bd3a34bf6885a6171187b8cd9b8b3c2c40e4decaf42274f75a7a43db25daf71f5d10f649f7313f9938bf141b3922212825a84833b768a286112c2a9775bbc9fb2ae9af4089082d09431d5685ff293a4ff2adcd3140eb28285a99a8e59c0370a0a3c1a70480a772571074866d1270a087ba697616806c2e0406d2c24d5f49e4b0963a71fee89ad7b377d763bb4092e2a7cf879b44c08f331b019f13582dc897dd0e7dbcd1064df69a02af54547eabfe5c7b918bee714e6e6801be470d71d4bd5bbc50aca404d581034607b11ee8da0709dc46854e80569d89a89a9c5c7f62ac6abc1d86d04b22a2792b5fbcdf00a15eb4d2e318c4f8a3510b0d5ff4663dd8d8c1f67c473e297024f4e64796bc9519bb39ec0964fdf1a833c46fa7084a2b4652b7d2072da6a6bd2ddb2e01289d8f3d6f9c09b04c44299d9e80b6f589ec2cfd06e8e5fbf6ab0c834bd3fdcb6427dd249def21977ad9cb4e00956d6b2f6ff266f959b3e9fbd1949eeba1ba95dfff08352cf6b0e7f16d6fad3902509c31dc62ac00f6ca1ad2c91a82960c861393f1c3f0d7ca571fba6f1bd06e30903b95d1654ab26c9a6d1a50afb6833251f9c5b84e811d7944bf2c0269a97fb725785856af72b725037c3794f2128f6e9d97680b1debbf436d4b1390e45823e67c17f7929f32b797aa2d1d0c18750e13da031c00a19df38375f300d6dd4941aa211e16cfd82e4968daa475044a6703067e1b0302e7812ae2d98e19495a907187bce132988aad124a6839366cac25f8e75ed95d8a6d26e428ea8d046c4ea84bbd8de4e0a0f2af6a42fb635eb5b3bf37e820121b92fc79cbb29fbd5585bde10014c03b3de0b13790555f7d0801ffbde15abd29f5c11fdab2f8e7fb1eef33618e2252901ea08b72664c10612020636d481af7ec76e941ab0090a3af815e877187a157424fa05dc5e9c21b8ec3ef922c9a8d03210f693cc5e9e153e5c733c75c25ab21711e336df1f1416ab8ee71484c2eb18737c907a08e3c2a793b80cf441e053c248a3d70abab4a3833ee70e462cf5ae954e5ed3e13128d3d8caf4b5d250ff4c25a8db84c7ecf7da82b6984cdb5a2d3a6e00d378fc54b35442c80322bdcd5282e58dc714fa470486152d9b3a185e786faa66aca05049bebf6d2da4915f1bdee42daebef2337b18986253e41ad737786221b33c5014d9890294394440f8ad52fd10e3df3cc4c312ec9eaa69244373643c1c9cbe2c992106bfbb93deae3789a8e8a49cb3499b3cd569d299fa33821a46266b05da3094d10e26271b3b15a53e16476e191bec46aff71e199fc7c27ee2017ecb7108a4df22dc2af04c7359d71eb2d74d15401051f8646022a6003f1b71071dc274e9f5700fc2d1b1b805c35b850443c3c7dea85206acb70a10a82d40097bb0d835840508d036e7900b0ac55be9feac28658fed4b2f0acd69732780f3a8069c4a92dc8b612a35137df6dcc72f48ffbdc21200a2a6c5a98c13129ccee029667da0d2fb0217d6d0bed7f7e3957439cb438e2ad56ea8b81aaa4b27f26d4fe4f8693844d662ba370f3ced5b5a198df6da68462a014dbfd26004ca95d8ef3db739649f543f308fd132a00a55c38a05c99e1b8ab3d09061d8ecb04df1521064146000c028556afb171749f33f44ca995a0586e340c2c0f87b42ca70ec3a05cba2be8cbe5fd277b1c7f06254ed10d4d1e86a051c93c674e01750cdee367740b5e141f963e67e6e81a30ea944e87f4788753990e3534f22f567975e7e7289a211cc04fd152f80c1c468388100cded9e60a780d65264c9ca1e7c96c998fc3b1f0a761c21e3aaa161a8ab37873e65edd377ce3eb8d88ad1157442faa2420564f751775caa93e20d99027760f577a14a75b5c653cd7e5e266cfef439da62086d69f66e213a27deac1e9ef8732aabc13efec96669f73b061e823999800aab83ba8659e6088658a98d83916d03fa50778036233e77cf2ec774381791ac310c4c812261f629989d6621ceb9f05e5e8d5a0af49b3d4afb0b6ea1a7fc2b5bf90f8ef6bbd355eaaeff7c297d6b8ac1e20356e0c182d85c1fa4d41ff370004c5d9bd0d20fd6888a16fde28cc9ba737740c1f73ecc0041735139872e8eb1f9bd6e1ad169c70e1eb010dd5895f59be05fbb8a43098887e29d83fba4fcdf0717c391fb14cd3d196c6eba44bc2bc680a4760c3e234837630f01d8d007ff929463b33c651f132c5b3d1c3fccabf42d2c4810bff890906317352ae41356ae8152845a197765c424191978084cc560e21715b510c66d72e4126ea39e1a3b708f5caa07743922a3e1ffa390bd0ac1c149cd6cb164f307415b346dfab4fb6186354ca0195d817fc482e9ee6cdd805f800f2c2e9600e0134336a0f736cf242156eb3457c70cd7a57a06e2d685d8ac678610e00b092f5ef855b860869b588eb4059e8c8b0d86cfd023d60d0a174b4b7744cc37498fc032cae0950817a0af42dde690245313479617443682cba24f70aa226b5ee2edbd4483d3031e9b045edaae2b6b989430605f0d342e6cc938cba59861df2114d91807f36ce21d0c705ba9013afb2e91f416bf4fd5ba6e97ca822cdbb2fd7b9d5d984fd2f4e47ed7e31fdb70d132de10a203505c9392f9532a2dbfcd8668d8ea18bd4bef4110b38459f8050c32b4364e45b1e268422734f1789cee1fa16a043b767bd3b16dd8dd1593446ac201bf63fb022e943767b72409fd808544b7e0df116b31660b4e3e9a090237c32603cf3738fd05e6a856e1d04c001cadb4333cbc2ab5b658dfd34d76774458a6b6b83dd82f8ecb4e2d2e035c95ae4ae48817ad798caa55ce79fa0790bb8ab053511147b553ae5d8449b8f52c855d9a0249e3d45f2a554c67f01ac494db3a0b41dadd6b319b9d493a57b31822d970b61d075611ee0a943dcadb8aa538f6f723f34b32a08cdd5f140c2483c30ab148e1b5a94127a072d0814c72da840a31023f2e221facdcca8ec4e8ad08508c087e68abfa9b9e1c1780df6788aaa564182862030a046a68de39502bc66d3e1bab1e144195d5a137b3a83143eab7402c17c925f312c9a20b4492bc1e3cf2f500047abaff917e5d76279b97e614ef97bd60008f828f98576f72b8445f09844f40c4d78de2fc870ab6e8f113f8a1637f66d67c27a82d84c8fb612a49fbde8977a8eb1b5e0633494855f622af139f918da2c51372c705be9efb889a686ac081c625c9500fa68c42935c46eba91f058538ba2fb049593fae06cd9efe5a66c3949759fb1d47f4f8b67628d0e1b09ea006c345b3e67f1e6a760b7af681cb39f56a90c780e8edc86bd0114e803548fd9c128934eba85435f8691dd9a6dd916ab083c3234642770cb8037fedbf9926e49d12e4009da68fe339cabd74f775734d218f3194d99259224801522ea05f14b11d392e5bef7364f533e36ca2590ec9119b86c867a577b072b68fbf4ba4fdce4ba62429eaeda42e2fa22db8e91f6a2a7e10fd8c51dafb5872b92aa8949be1837b76ff140e797eb8107f612175fd280cad360ebd711f0b97313473cb208d7a1ca25c5742897774288a52af09edc735d73c9aee702391ff6e825ae65444dc89d4b85bef4fc934ba24f337a2e7c788e66177e7298a2dfc36453e4a3ac8a51dc7cd66b22b1cd58099bd12cb416cc9d12e1860327c638bddc20312eebc8cdaafe17712666e5435ae4e0e3a604fa0a314f23537765eec7762695f55b24ff9be4e36f99e6b917fda25cc9a2caadf0a922edd1794cad1041d923dc50e2a23cdb54168a48505608faacac178c169c1260e3a9d1cc45395b8be25bff22f2ef98555301ccc6c9b7383cc55a30531589f0d3ec3a8c032310bdad67923a3031218a9150947b78910532cf753838e48e9313436601668836e89b29b0c20e5a2b0898ab063b481c6edc9cd520a27a8113d32ba84ab4c8d1be7d3102440789b11be4ba78ff8c135a1e7aec913da887320966d64a8972399faf5f83ced1f82eaea0ba110860043812ad61f718b726247e1c7366a75180f9a8670afb50ec86895f1b258ad71a25219f57dc83a1e3a16549a20903f81489bc7f21c522929090018017184e883caf8c5ae0927eca52e511c83261d61cb708037dd7a586889413bb01b8f4def2fb44eec861c6be542fbe96fe00b59a2307be20ccffea50108806759f70f49099783db79aa33d15981b47123dbf168184c338896dcc1eedd85f49509e4cd397446c482e154185f638054b04cdea78f21b0f09992db40f4dbeb22df0dc0333829fbd00924c4760127f00293029862a5bac1349541dea8ff7009a0d51ccc51c83b400e883b842d3289764b7fa7b42f696c39742783cf1e96522dbe3276a4b8993fca9b157e8f4a85f769928fe318bc411be0f1d6d7c245c5d941e4ee9f2e541c0fb67c59b5555c9573089122688a477408dc78bc3a7099f10ab1706592ecea860962a3b1b8cb5926a76403772b9a5e8021559334c10c8882098a3e767a55e81da13f1bd840756a771a0b4c294f3f76ec1d25993fcdb1abf0b67091bae2412b54379ea6d4a897b0802459989816b217602a3b495ad60ddba99f9d1839cf3d88481a546221833ed8235958198d09103f3048640f931173f1a3cc2fa8a4f1ee0b2cf716803efb8d9ca09611552da6208db0733464f2c5749ee3ccd68f6a8c9a5bdce0f0399c4796d4eb4f6ea2685bded6cc87f8f62763baf903d98bc266f5a70f3d0154779852238b015e897bb3430ebc4ab10f862a1290303ae458f4ab58925bd85ece470376ce058b0730b376000d551c7f12919ed48f360196ac137571cd9c2e58e0c8d13c83cb5ba72c7f4bd488218d8059cbf490254e48c6cf4eda0bfd01a98257c6ac68087405dea7ec4751337fc25cf49dfdf28a20406e2dcad1879eb800e6a307cf6d2c2331a1b1da38e8d25e274a522c0eda6b8dbb0624e023837e84c67deddf23789b7f53a1492ca1de520bd0da1ed89335845c3149f917e16275e284e316dec672b47824a6003d42f163c6249eb498a1b39a7a428334317c50842228caaa15e24f3b17c0c55845098fe50b349ec5989e4747688cad8b8d894a8387e81426c8fd920de37a9a8aa36d01ef87c99114d612a02512dabee7950ea10051e02b99a8c6475c5282191495ede5666f7b181b5309187566a72bfb3977edf40281861e82d9e023c4ce9cbc13df57f154ae20e00661b0020c5b84a1d565838d6c8b4b3a330a08cf97842922e211581d8e0006c3b13ed1e0ab18c5b41e867d01fe3a25dda66f088fda76be1eb68e41b151b1e26fa0691ffe1f24605a999a15743cc902509b34b7d91b975669ddde1c94fca064b8219fda1681cc9c6101e8933aaee0a7e0a2982073c3524612fcc7ff06a4f235032afbd70127e3f8cb636125cba8f26397c956824d67229d461a23fff91933f06c03fb611763e389a7cd329d835b3d4055777f94ed6592a04671ea09f4005fcffa2fccd7fff34a9afd2fc9e8cfa42907cef3acc8ad825d619cef8607da04b7bcd87df8b6e3a3a5df0e2fc887101da7b5913f7b83e25f4c76526d782dacaa37142d1185073a9d8c7cec145b7457bee57e163104fda3610fa9f9c2c01c5154e942120284936c8b679eca4abfa830e157e67771fc1cb2b79acce997d7dd059d31cf94af7e7622b6833a068939c7bea6a7fd270717dbad401805d4bec8325381321632406bd906b01146cd8b1c2a1bd1121edaa721d846731c61c4ee033ba48f4de60812a4b1dfd8533eae016163488e7af88e96955497c061ddcd2b989479131a3f926563bd410abc659de9fae3f48ae685fe90d9f7fef9ccca1b15d651201f101ccbca9057931925db8e1ed85ab901fa0566f034e43bfa7635b7ceaeb5e510667e819efe573b15aaf4be513895964017925e22e45d0d12765ef4f3d63e9b2adac50e7417c578d39ef2bbd0632e2189edd854ad29516d44dec6ac5ed1548c11a2b812ab908653b7e0aa2a90d3c84d4c59585c7b9bbf13da79f9f9844c11d7b0abd1107697913c6e4f02f1f34adb1d8c60e742c987760d61a3bf019fd1414771cda194371abd0d4991f44d1ca98363225040700099d0d2af7ceb867678f028aeb290d28833c0b8d311ce4819dab93e8da9633f9c1dfbfa38ab03ce2fa9e32ebd3f36eb7083d936dd6e374a8f1ee196d54ae8856f339176f9bdde4c875d239b12114115a570547cf8a60c5f5ac79da502db3663e128bdb2aea41aa20e95acaae5aea7659d721e82218d4180f8e146e949264a77ce5d49fb2009834f92e6c123c20a379139d3100996843d26fb41a9c1b178e96725f6b4ab4dffea9dd07a3957d2a8c995bd49927fba377db7d5da433c843b2768a41cfbd98ab1cc4c60119dc280621e50ffe0530b2bc3ac5b8ba764d50209d8f6d477dd74ef1281f6cb411402f1f74b4a3b50320c27fcb321c19992117541448744351c6f0b040c762d97f9afebd992ac08fe4cc2869f5d66005d55ba3483e1c29528ae843589941b1a05cee27447810557391e3b9554a89e024f2cd8025b889d00227a70a389e9d58f0af8d572b4280d290b66d17a86e601c283d7f8f634b3e98e23a184de4f4bd7ee82bae643524bcf121e60231016754d09b046b902f767dd64056ba2a075024f5162a2bab4b6be52562ac7a8de054603228c75f0e8d06c062f95c856001e30731872ec8d5b5a4b7148f248f813e51c24e1ea4dc5c47d60125db4a8eb294ad7278be6749b7d42d453f1a9de112c8b2e1ecd0102f2779ba4a9ea0fb1339f2bdc19e790c73d37e5557ec349dfb230525eaeb02b07cedb13a7c9320e1c68a29cff657bd5f1abda602a14b5c9b89d735bbf1a7f2426c04b4ebb55dd6a6f97a201bd0b5789f66269e0477bd83ac70e5549cdbfc2ab24d76ee52b2b63433f7e44add74d6e62a95df23f911183be446e402d7cb250a521fe4eadc248a8ab4cb290e22f213727708762ca0a1fb8221fb4083cf58e875155de0d28ec5b6bf10cac6c61ce5abc7293f5f0f3796fbe825e700812303b1a9696c1b09e83060de61f4d86327e0c2f62c582621d20234d02f0a29e339e01ec8b4c13e27c74022659651161b84dd5893555097d7d1685f07fbe76c607eb2a297857640f9018378d12fa1799d82a19753990f41cc1b417a4fbe94df1f3dbc572df8d9d5dbde2fae2adb231e69fcf82ca91b18dbef22174a89dd6a7e70cc897f22bebf2020523007d15196fdde8b9866da58a95547b66c960821169eb82705156f2782b85e289a42b37616fd09784bb8b4dc3e8476a30106f50e2f24b429346aeb5e0034ce611db757737bdf351ffbd4107b529bd9d69c7952083d2fb868719026c94c7191ed8ffcfd325cc8408220d8db7cdb2327d6c7c48e72ed30f3e21cae22353e7451ba07c899c9de774608fc42911d675b4511b2dd2c0a867e2272644074bab16cd86964cd3f2fff651dbe38602ad327870bece783a73c1c216f5168246dc822f8e0400a7d70155a4335b7dcf92f4b741d16bc0f7571719c1f3465b25d2aaacfc73c1bc4eb402f5e977ff68650681276c3a7cc1dbae632f47e29001fc0dda11defd685243ca09eeffa958aa8078758689818029cbc63e3d62fdb8f01006ac2967fd513e1f1639b5d0997da602428266334c73e7509f22bb9a1ab870d7917f90b9f07bbd9bed98f2e0a47d6f1267a595f859260460429f5fdd9a424495f1e631af634e4ad3a409100649967d17f801337d24ba02c4d780dcc90bedbd546fe6ff78960f935fa8c11218fee15bfdb02af51d3d6b9b8edb27d8adfc9dd5ba5025d41a9b0a7b79aa57e9db696ed1348585c1ddb8f791ffffa217fd3b8dd04e5b61815bfa695faa534be67d4b797762f2fc4fd0218ce2e3cbf821302afec5eb84df22cb9f34b9267dd5cd5ddc506ba473b9d2b9431f29dda6d1c64bec9b49810e05706383e6c55f530ecea86e2807bd4d07e96495f8e99227a6bf7e234f4db808b40f1598b2ff9445e643a4ebf492d4b1f430b009430fb08f154eb5bc3027c06d1611f98329655e323518ca5423a902a91107d2f3144b643a08c8ecbb0c551f1e407d124fc4126b1e141e8188008e4be93167b1037449e87cfd6ab03d9d3e18a019f6dd54b7b90a743a227e7f3805093213a02c5ddc71cea568b9962195b60f2f3c1c3148889042911e1120936e6a2d72fe1ba1bf214d0a801884f03e97a5212cad3a5168f34f84ca0500556bf2d7c7b3d220bf52cd2a36041987a2a60c72dd58d256be2991e3fe88168f14c7d02c5b6a846d32195e37e2bd8dff83a7775981632eb56b766a4ab9b519cf8a8f54f86d285653f990da1e5bbce6aff387c3c05647b56aab64a3898d86f53e8aac54fe9d172848e81f99765294d86697b3f974562a556d52e5b902d76d58ec3b30aa6a6a25bc42f5bacb43d9f6847fdba0e39aa12d8310e51884d4d4c943116ff80b4e3873fdb2189c13467699cc2f4f112114b30c5eef43df9647f3a9eb6e9b4593fa4736cf1ac44332f33ef939c03b123483ab8f095af44793982ae526b79be5ac571cf0e5eaef1170c47cdd98d6a31ad2f5e44736eb014da4ce0fa0595d2358489252cb38a6549a8e6d25237209c8a4c8ed16c3dff65e4cec88f5573c70e453b8504195a8d5589e276c50ed9ec559c14068556b45c4a94009b9e9250174fde8845e3d00d1d24cc6ee6532427a25bd37183f26d5989aeec7d6694070e284d67e09ad39274c56f1bd38714b9001e2d8b3a7da20d64e02f5f259608ca75d5adc0dd89e04dd92a911555a3b8b802580d9593f54c17ce67caf189a6a035badccc1d1043970ce0e02d95659fc47a268fd66b23af28ce84dc0837dde8ff69207128f50d7fc83326a1aa85df6947547754c48e079e43214c39275d6f627a0e338d30ae3707fcf479e511b0fed20c8b764f344474c8ec87bc6102728a318230458ac8e0c8eb1344314f812e212b23e952a7a626531d95ab5f2b418825b4efef61ad8a29a4b1cb15e70a0492b29eb3199584700f6b2ff05584366a327b5ff825c833f8645aa47fc4da6eafa26f39e82573e489fc2baacbb6430777fe4d37f63cc10076977bd4a91c8d4a5c1b5d3d0874f9ebc0b9f2ab68b7491a4e7194870759680279d999cd58ec0426055385e25906d3cca78831527e7c38ce1038cf8d71792e4d6a58d44f4e92263080aff76ed8d3ad295643963fe04f66e82f2067604c95d60dcc5eb0dda21dba2bac26a544203ccde31fbefa1cc5faa5605ef6b16154e410632fdfab9e87fd5fedcf769a65052c602c7ae3f470a28cdc58e96497e16ff40a777f220b5567affabc5b981d4ee7aaddd0904239031b8fd23f46fb6480cb855ef048ed78a52b7f5adef58036cf036c68819db6d0f9203cbe7ca8ec01e351b81f385c41059cbdcb5d975f0a95341371639c7c5bc312dd3c25282bcb699b76a019125afc8ba23fe6342303ac975869e7bb1028ed23312c332fdf2c719a595a08ff7550be36458a2198427360dc35489ce0826e7866082b278626ccc257b5161370a9c51e068ac4a322e253b016bfdb9bbb977f9a94e0d3c84f9b24bd665e4f09a9e24edd5138caeaf9b6bbb014b37d4989db235c460e95b1045c10d2b1bf2d71e88246953c80d4d37fb7dfd9db95ce261d700944935d755a8ef411ae2486533f37a90e734eefd07990c213d626c738b7e1a6ab9481b6f6d6a60926eb008817de37be5e1d2662d341d786ac171ccc1f7e694b89b3c057ba039c3f8446834b1b3ca37978b24e039f7de21b85844d99c4d251610f67e7961ad89c283918ba7183b172eac6dc80498d5d3821ea92f7ea40495220b786e525b30389d2a27b0eb79a640d028f93eae81e862f841dc24f6b2bc192578ee4fb8fc03e90a5cbcf3cbc62976ca38190694e643eab0b15813e0253120734c0563ec2277d832e702476fb33efd619efdd3be9d463be3c463bb21790b2baaab71ec91c2a965d6d1ddc8703cc0f89a8b80b25be6f183d20d023e0e9af68f6b783fc17a422093223d6ee3e023f52a4134969d4c403c2a1b251846e6807e89cab95bc7aac1dea134dbb2d09ba439da0f3ac5ef055a176504bb66d3634c80975421da37a9955c7da433dd96edb50c127d419b44fe0fd11a7ee1c15e3d43e20f4204015e69ef1c949e8936d26aedb3125d87529876a8c0bf7af0ca036603d8f6c8bea9d3fc3981c881566629d9fc71d5efd68f2a6e3fb59e00842507126f89accc0afa8a1fba55779bc84e1a473e4013a17cef513a2d6f8dbb9619d27a76906e1bf2dfb527682b21043bb39661f948085d331943f1d55f73a1cb9875287e56d8817fb6aa0d44f881da296f0c3e10d1734b850f60fa6f226106cb418ceffb7fa43ada93f0c7c3dc2928032d3fd28c99427239c839e861d10662e4eb6831a711e4e449454530a2b38c974806aba201e2994214edbab0235deecd9a35006d59a8067d5ca13575a66dd9f30df8108761098c942da791d54495d2891eae3c026347d282425d13541e3687d986b2c43265885949c4237006cd8c6820508d7ab20a5cc1956b3050d6026b48f1fba0d480bf8375e3748c914d56c718dbd991904efa10e873e758be17ede0ba8bc15a541c19ae156e16165fa267be39414472b50b8208065f7a48397dd8241c8d0bd5afc93cfe2e2300ddf97d182656ac04881a038601857b1467bdc041073777548b7281d9474d9871c6c0f160c2946cae1138272f98cb156f040b694941f661be8d967911ff73c6d2d3d86a871e39dc43b6377d0d7b828229f018440501c394698e52986b5472aa1874bd438c6600185286d160697db91077e4e7709c5ebb4f255fe67f8e513208305668a86017f94995aa7ae3e6ce1a1446b51971634bc67a85e6667ab3da7b9a270cf9769da747ee8bd15dd87557ee365653a155e1b7bc010b5148b01227b54fc6af83be4c8390fcfad372bc3c9d184d03760b1141e25eb05b8d8191071286e7306fd6e7fae7cc0a0c086aec4d03c6a52fb0486893a61add779b6f0542e3f416ba13ec6d6f8d1c8746fd31cd6e9ffc2b4e64d71c09be9860693c94c5f93fe24129678f56612b47e7b18a821bc9884d3df0c05a492704ed9918f64ab181ff511050f847f22107e145a9a0b022583eb81135da9633b393e49c232e6eb48d3d4fa68f75cd49492090218111a83bd0d5ab85dcfd148c3e669cea23b12a54846768c9375102eef2d2343040eb8802b118db184881fd75625352dcbb5148b0cc15e009b562cc5711e374dd321f7427babd8141a20a86e35b805aa0761042288bea4fdee7e289a1075a3e188962f30f2ce53c3231e896f9613ddf88214282301ac30be94e43bf371350614e7108d92b6276637c4ece2dee44e3c49042dfbbf5862e29a814447a8f6d89c40c8d0e59534c96c8da36a4af87524bad8f31c2b96b2c6d998a9c980ebe39e4689ffdd566bf22a06b0889e978d9f06a2533606f14a2700821bb330d306a8cbc3aa6653b01e00ab17ee660852ea117f9a79d252bfb84362eec049ba4303643b2cafcdbf6d4bab43151da15034d808087c510dad444f1645b68161f58cfcbcec3c63006ccc13175f8568ab1849c6c3990635e7eda306fe7a11f3c96dda7d9d2ea8edd63217e5184900bc9e8ab185983ffda28a44269341cfa0f930359504700aee4b84ae35bc98bfc8fac3287e107f3eeee1692fba7b0c98ae2413bbcae94e5cb3a49d0d76a0c4cc6ade3cb00264f3056c51c0a90e75c3a7a5d5dbe358d82307d69435b770744bdab8eeff0f14e7085bebb0aba6594b44fc9f81de82c42e2b4dff0adae344b5badf5d3c8bd06ef04f301a0c8eda693a67c3e695dbede0b9e60f7641b407fc65f021726d0116d57461991eca9f16cc25f942d7acde35f8a99f08f8cbce1de4e3f67be01a6aea3e7d743ce1b0d1df2f81734a9fdfe333b407bd713dfcfdb0ec5796c2ca94da4c0dfc0f963221446e168cfae3b0befbad93e175e1112f5ae62c11ac7a27c4b98d61dedfcf4c75f6c1c61c502b9fb23f83a8df2d6190add691614f1aa8d1804658bc39c0a1c887e91ba70ab7b4c79cdc2cba9689332fa415c437ddcdffd56e42e84f3a33a0f4fc7180ce79993e3b6a47d04480133ba3af88c2dddcbb00b1dd422a17b8dacc78a1b278a18c06c1afdd4b0769c46615990b1d2396e381c9c01c9383b967df977171fa8dd6f9e70dfd5d5091d40ea982a9aba5227887d507e1ec5f35b20f0cd6acae660b6a73cce8a518040159feb053270482f3abe35fed4e7b9ff14142bde4e11511bd98524d15b46556f681e19834430ae0fc4debe07d7cf4d2d3fa081fc901aeacd7fc59b70c19d0c9e92ee166fe820b4d02c91d3f2952a54bef94a65a0f4c97fb26b72495d5c874763879ac74957f828b4d9d02ccc41a32000ee05c9bbdc4dce5da53332da32fa10188ec07f344f8b50d206cddf139be59751cf014d938cc7fedc479510f900f85ed705a0e5009b0b24b7cfc765df7b1988db35cc76dad70a3df14aafdeeccdca9c0f97d1d32e9a6c37376e12a2573b0f500d7eeb97f11d0c74759f7c856bbac62821b22f8a93ed5bf49abe5c70f89226aff8c963109f2426886868bf2d99dba6913bd935a44be89705ebdfd98f7510feeb0918f85be879815bb4d7e8b1c181702a22b255daf90db519365e8e6208b6b6a557707f859c6f55ed3d5f5ed2d1350358201eeb4507bcc781cefd15c85dd1d2146803d304b6030a99366345eee56ed30acbbc6919e901a4b2107f3c9a9e9a21e4216530605afaf5cdf7c0f06d8c690e36906952eb366f9bbb1d80c6d99bbc57801ad81fe4e0bb5be155e36d0917907f89de23d5ad3bd06d5e2a6ac01de6ba0241ccc99780601f966b7d7e084fe5271ee162bdd20450867dc4d527faf41d130efaadb37ecea3520f264a754af018552063b8c25021f60079610c949e14f304f0452320e00205ba978a2c37911e68f89e7feec690d041613c51e67a4c3c4249e7d5881ceaf63763467c43e745e1fcc410366aa2e13170b377e3a4e4a13ecb502ed415a830e8eb44c4e98f68665c21a5002a9243c12431fb0e69b58b67c4d3335386dd135b3b7ea27f10523360d7a82e60ed5d353df9233a5d384e78cc7ea641a2c38fffca8b7b0297bbaa6de4b206b352030d8c67dafef08ceed692b9de40cc739130e6cee587095b96d5fe3728c8d5893f84ab6611f633efa13f4ef13a9f3aeba8848050cbef921c2c0cf93b96f45ae184c2ce65f7e210aac862b258e4692a8bdc7a52839b183ee053677b0a64e395d89923ed240fa2c71402898efe696c1cb7574d2a53088ae025f133e20e5c8a5393da421ab2ce06d7904ab85110c36bfdbd3f3e5bb75dfaf2e4a4a6984bd1f3d300f16ea98649cb673fa6b63ea4fbd0f7380060aac495320802819d0cb3c6c83e6d7f40f2e4618d3f8c650b8c24ab1e54f55fa287580062c771a2c089e3702ea944a95db8776c4eb8bc01a94042ec906e431947bd620b6c088307bf3011a905a47a93622220ec8a13df5447996bc9b43426a40d2402a9802e450b01c8afefbd98ebbac9ecdcc84b2d3326a00d7a7bbb3f2cd9dfde6c5df8dafa7d37f0d92a6c14ab0d025c9a02bee94a74ad23b43d84a86c8108c91c000c844fe6e6460663b72002d29a5868300a3b4f61384975cb345059203078beb4593ce7a94a194f4a5171015fcd74808f44ac3c6672c0f51f21aceb59abd175c66dc93adad101bf8049a0d77c337b7153b85da8bc15667df26415828f0983b5f45def4f6b14d2c62b0eb8c792d1f34fcd306dfa0048115ae2f5cd430d51b005caf45f9992d28f9c6c05776c9fa0ff7be40d692c88c934bf96fa2b417a80ca765c2fbcbc166537a5c4c65fa70b188d587b724c81b1f5aa47ea7e5a293597e4c8cb29fb98ea925867092a88117dcbe166fec8e2cc6084508f00497ea687f94672e7955a28f49052fc0c5e807202ecc4c02daf68117c47a75bc0711806160454d2e3bc7d6295cff336e17a0c4d67f3cb867eda048b35be0d3745bcba25d27178f5265d16183e2e454b60bde60f25f873feb8b288e89b4b87cd06588eb022d0ba52ad7da2e90e9be939160488eaa106871bfc86b813c4484b06a24433b3a8c58cffcc906d73c65b0943d5a4826cb826fb2760fdc25f0b041ffba81e40373d605e6bad53ee5d31c2136fdb78ce2776b82cabe14465c38f319cc28574b093f9c733ba2b0214cec8e44da34b3e799caa49fa6c7afd15c40845ff3229698732fa58c494b36d5bee6b035b2977d03d241e3c06b7080eaad311f52edfa4f6ed27b24d2e81eca012af1e18e35f94fc03bd75c0cc1ad826448ba303680686cdc82c955900bd245c216aad7d2e5d6d8425369ac7dce8c97655533d161364b4bb2b658f6bf6f7cd6269d467402df2a157e292dba0ee2cf9ac1e0fb64472e7d78a4be10f708f05fc23f8a554d60091826ffaac0ca39dcb8bf2a55512619c004903d3dc4f6cde13e405121b0bf407865e013d73a811f99e393655d606f19f9c6b722b077a6f864ac25e053463eb1ac0bec3913df586b09f8c86cf3e19eccf0ad3ae32a02a30aae38e67781b2380fa6a71d52a3db874e35dd61ccbed76c9297e3f9cc749bd4c9e58bb6257ff1f1ef8ce9b86157d0a77159ac7d3697c4daa7b99b587f8adbc4f6877159ac65be4c5f26022cd3f646768504f0d2518e1a52b2578a697d4944c62a05a131143091d1bb220273d3e64921d1c0bcf8040845a75d682493072422095c9a3e2251ba61c6a9af808fa92aab77467eaf77b62ef7461dcfd983d15857e650660071d01b736fcf44399db4d94915d3d40ed9063a4fface04fad32bd0ba4bd5599f9d9879c7631f8b8fb8ec268c41b70fc2f7cee4d71fc78b1d42ac737bdc4eba1e2ec57fa2b9faf4b89137f8e1e6f295a42d8778b967a79ffc6abcbffd276ddeb7809a542745e12d1a4ac3f404e953c78baedd495d1cab6d39ecbe8be3fec673d583bd91cc6d7ca569abc3c438731a5df08a3066e54c736268f89abd9584c19c477089f67c9f0f888ec97ec9996430f59ef429f4c727ec43a2745cd49fe11f17b5c8a753a525125f7b814869522fc9b2dc148de7c9615852037a0740b8283cc9ae05c37bfb0a25216b00a28215231abcfd02e3fe5b1cbfc4fd7b387fc3edf7b8fd8eebf770fe0ad7df70fa1577bfe2dabf50c1d1f6083301a667d3de5da2d645545d79d4954c80245d13bd35c628457ff4cd79c1ee32cd98207fbd9814d323e29d098bcdf63404be6e467d4a7b12a6aacedde7136a231485be2ab390043944ba14d0b2c8b119ecb9c8d92018eb62102d63bf66cb3f16e5eb94d768a3427ac7845e6ee7171fc9ccdd72cd7f77e8fd4ae5b77b76e0d79dfa8593f0f8b2cff53daa4eb981e30b424e42b63c6e34d1023fb443be73cbea2213fdbb686e02bf417b98a13683c2fa45013f264d876193227fcc4bc3b466bf4049c3c67b88c073dc2ade52ef6cb96f7031ed3329b92592fa8e78e8ad98d407c744478bd74f5cf80c533ac80c42796daaaeb7d6c3c19c68f9569d6a9b5bd8fd43ddd95275913566c6e25c32d1a5e1ed54f78794e5b7641a31d03ad3b244c72855464935cf8ab9f9fad329fee6d1c7aca8764480289f6e4c74dde56258bdbcb9221f2bc6c476271fde0f9eb032b83284085796d97426e75c39ecbeac08a41720cd91bf7211dfab1d7ba74990c60121b9194f024eaea3615fe5be9f50f79f2b0555113ce50ba97d1f802cf23f8a454dbef96b1aedfeb9412bbb52df4198a8443cdf191be48b89f1f275c03203aa4b198980e0e048b935f8c62f4c9daef4e946c321aa533cd860debb0a17db25b40a739adca5be7a600155a8b14c9bf0dcfcaa1df5456b4577ab8a306a2c642a735b9d10f0e559d3cedb4319a45b6c52c25618a8fcbee25b7444d0313e89279aa7ade7fd70cd326e61a50f855235fbccafd54f8bbcbe63cb9bd77af8c7e082b5c53dee19481d271ce1cdc61b5a5b8a4c1bc425f7ce930b02c5b0f0cf23f0b617b5e5e9e1bd204e923b65776ef1f49a09ac59efe1bfb31884aab97caecb0ff7c23f149412e82c2d9c52e40a344701bd7ae9cbba6dd6769dfb2bc9317d89e60fa9c4c7a1fc411744ac17cd5ff2d7e62e54d97eb485a72dd84663684dc7302a4e9943e2b74744c2b713b5ed66746be024d8a74b1c7bda6803412bcc20c95952930c320a0429258940ff79502a1fe4cfd62d5a0587baa5c08d8fbbf1c1d822829e48ebb9430ba353fa72cf36d05f6506ec501e5c643fa31976c8e347806dfa4b75f1f113649633bff96eb5878864a91875776cd1efe0cf5c0f5ba3d904b48540cc444d0429179b266f4d632cbae9d625d53ba46fb1027bb1d785db95ad1c4e55a4bd68ccc67484fee94720085121d6ac056f515287d5c72bf0403199bc7fa3d636007ed3e6994e352acf7d0104292f6aa130543c6c9c019ac59d9a271b3e6eaf00c1d37a69658d7a080f907325d291f7ac3cb17f91eaff8f6b885d9c6b056ee7c382e1b5bec2f44ee0feb14686c7797ebbe968dbd3f57794bd05817bde4d9567a2ce914c3ceb004820be8d2067466916564df8a5cb96c7e5d9e9699a06b074ccb84374ee4d58682ffdd6316ee71e2c85ed19ffae1d149307204d91349f96e8e5648cddc46b18011d209e7675a107ce2961ce51efa8658bad3c8b952c6b43016d15fffe6baae60edfc4e0628fa25a415757f6d6b1ebf66a88330783175b293163a8c13af7f9a16ef98beee5ac1f4e32f28bed8329b76e07080476d1f5de1bedd375233657da090059e6f7b940ab1e2488029f4d2039288ea5470b0020463c9a6940705c8728e37d01610cc428b3f8749b90988ee5b893266643eafd7d0b1da79a1c7f1b07ca15e969e7097f8e5b577833c7b238f69fb93c1f10663d27d0e7b38c7d05f0d3fe854bc81776cbc2fbf4a204c39a83226851382bd02a4fa81f3b6877edfb0c080282f2f346e7eab1de4fc182cd65733d565329107ca368d012ae99c5c46bdc34d9fcd87aa6ea5de34c4a95fd2757913fab2c248a274ee99a929453e039d1392c1554a4c685317748e34dc7d0b95313189579dd11208f1d615e92ed64e31b9a217e6d9b39c2fb3c163590545acc851b4d619f07a9b27f8ad960224ab239bace3b07d15ad729e2e9066da9d80b42960b9cdc241c60d4ef784f409018fe550f5cb1bfc0a549ac81e7f50cdb6accec95e01b814991144c2fb62361b815e5a65e6b6fc2937b3ba95656b3ef5bc5fcf17cdc6b3fde0d7f1f047c1586117c09591a6a44b4baaafd5e9df80d5ff709d4c5939bdb3510a490bafb995a6c2c1ff05707e8efc688298351bc31e98cb6982f35240c589d855c829a485596f78eede218182a4495aef890e4a55886a3671c0b44796d0ed267acba3dbc41ae3b880b23ba1d973b44c5823468a5d3f2d36136cebc10c014a7fc2baedb98b821c3fe516c6f14f45c1ac684f9bc1effba35b3d422c0617577f05dcfce75e6dec9bb684a07ae75d385b4fbdbee2ef42d8a0765e4030eaa155b239c7ddc32bc5787e6acb3ca17e964d664eafe66403e53ab2194b39ae457936467461df49e386960308cf076185502984d4b4e44183513a10882aac79ce1499038edc72a6412347a96042b65d5afac04624c07d2fa2561cd14bccf3201b787f7fa85070195f41ea18e4c0253de19f1b91d494a77a72076c7dfb4f83bbff0ba35bf2d9a4a67f621c5a5edebc2f4849d534c27e280dc9d6f39d06995823b0fa3031480272f6ebc60eecdc2548e351514baef3fc409671721e9d7ab1b21b9043b56ed640f3c55c733dd7465d4918cf418d12af43534f840222693ba0d71f8513fc5cf077b49ebac1888068b6d74b9d74b14937adddecd35bc2edf7a410028e05ff0280c3c8fad8e895999905c1e22bbbd3ae5bdc8272a0f8cec59b3acbbaafa1c4f8d480a66bba2ea7c457ef31c686e30374fe2605ac4848e4f3a7a05b79a0330fca16ad90557daeccfd95d277d1fef277ddc85167aa56239e742b46035c7872af38737caade147cb3c11ebb96640021ad9aa59161660d814c9ba1a490542eca936d05cb699a2fe5da4e0ffbaf0b3bd761d1367aca88f659a9704888139e5c4c76b982bed890c40dc59f14f6403c4b2c151f6e6283141513e4dc290b9318dcd5732c6082186149190d539874c61df169604b6f1cd8b783abf1397a76c39c69b2365db8cd0cf2d087edaa3bfee4c0053151e6c3ba9d915fe0d082f2005fda85fd06709d1bf74064fd0a98fd1b070684b97f18142b27dbee7b2578d95dd30adf8b8ae1f8edc1c60302ab3322cf9c80e8113ba51619363593c7cff6ad6de4ffddf265e14362088fe589de5ab8d785651f656f124d1e1f80309487d1c5723f8c768b7f013997fd9aa3c9ee443ddb0347e3fae8c58f2fd4e7461ed20e322d1ffb15edd7ab4fc519067f2e8bd13058e55dd021f497e48e1b2f3fa75ddc61fe3470941a709cd87ba372cf0d2d725bec9b6ce541be17425645c84351558bdf66ae2a83a6c05d59f816384a5a34f06212970fa31967927632a33f1617cf1560f5fed70b3a16e562b67a02ffe081303004ac2a1f6f8e6e24998de61ae7959e054c6b2bf767b7cceaa4cc847da51171bf9dde3f6b92cb2f3eef0b99778b0d3381ae38bee932394ade51835af6c394d35bcf1a51a9a96b8ebe4beda02b8b7794a27894c1111dc347feb034189f603a3ca7c336db0a5bb32d075e982131454b705f22de7a25cad07f4b5591d9f912d76b64124e45f9f5c2932e83871c1d2c7d076700b89b91acddbb383e6a08d7921493a169d22e0d5334cad2cb1f21ae634c20afabb85b32f0ac158afdcef05c3d309675ab0dcf1762388b52c028bf3d827385245506472410febe7dc2900071ac28eccf326486663c75426b7210f79402eac4e764f557512c76605296519b912f51cdc051bcd0cc8cc6f76405a1f910a0f5d20151ebaf688a51629e354ea613d4d9a5f915cf607c62938a2700b3e60183bde8cf3e969b599acc941a93103bff4e1ffc412a3139f312c18963717a508da67457ec05e10a5560f08c338ec95dcc01c3f1895a41711ba9bdea1c6863454ae23ffdae0f0bd58d3fe747e1c9aa5895d574476414b63dd63ea0cb0afcec10c5b58e6a720632807224227db6533dd896275e6f538ef953130fe752efa21a340ad578b1c3eefffe1f5eb2e97c95f5ec493237404fb75332187217045d7e4bcb89ad40ed620830b386e7729c1f36e452f94a95e804baaa7f37cb030b303437bf4642de98342c23fd28ee741e5e62ad596f543af02fc29e13d66e683cf0fcd7561f436b023f656a7905b0985cb7cb3a4908a12a70139b32924d6c49ca11860ad754f660d9c278ee623748bb05cd1710b60cd126a6bb015e6e1acfa3687369cb7998e9977d8fffce5daac631c013d9ac8164cf690d89f3ecbb70add2a5e45a8efdbe9c6149db1e8486eba1a9ddab39c717d5e963bb7a9832e5378dd5e3999f7131941b13c1ea25591255a8429c2bd330fb5f15bc95946a4578d63bcae9644e47ca71632b150f8c68b7e28ff0befb43ce3c5a879d634d2628d18efa05a983ccde13b1ffee41d7208435310ec2f4f4961e393569010432e4fa93023bce9a968442d1b486545ca106fa04e70837a7483e18da0b54183089f1b31ecc06f4ee66bfd61a5438b3ea77ffb5c253d6405f3b7bfef4bb0dc806612eaa5743d1e064cd3cbd03ddefe4dfd009533f853d28deaf938081929504088ada9cf10b48b466e8f011cd3761b72aa2c6f031a657f0416218d9ca86cf66ac6dcb722714babc3dbad59696e2c373956726373aa99b53627cc37e7a0c185a658cd7aa2d5690402e277c6c8b80ece6fa6fbc9b545cb68a5b90d40aedb3898317f6b346e18d8bf4ee8cab1636b9a4a3485795755043c169cd196c8469af2ee73cb4c059bb54cf998fcf1954df9332ab36612756c191750998163225a90499e36da0f970afba1cada0ae027339628d5e968f1b62d92ac5e6ba3ad2e02e0445966257019bd51e202515556ebe86402c58036d10f02c84c75fac430d15098babaf89f26e465f775a07e4832d3599531c33bab8a570f4a1a99c8c5f0fc26d112bd3eb9f77fc66643b67b1afd9821597ebda962280dc2a64ea026925268b3e3ff3ec4977b6f34c315bfefffc3c71202c88bec0fe81f6da3f35f3aab8e8ff9d6fafa58948f29be6073176cb19425adfc1430e43a99ddbcd001f331a182e11742c114c12b067cc3d316483f19938810d2904ffbbbe56200be92b15858a88c660dedc911c3698ec92a2debde4945b6a943658e29ad8495a071cf6c481bdd3af9ac22c18df827019c34cb7dbab21488889d4e7070ad6674470038263639735fe43037a6aad8bf0461991c7bc12d5018fa8ce4bee9976d8b29cc50c7ab7c962314d7a1cc18323f7ce1727022f1ac90faea270027266890c04257c298e32e356db6d5fe4e6d760233d6f92bfe987656ac17ee90b251e13e9d14af19eaa3802da1c6925e0f50cf0cc2fad87c95bac5b4db3ae597132ff4418c10c06511ee4e8e846296ba048d8327b0ea9947fea10f5a49adce0c322d2feeefb83ddbf9303f4f4945d8eb3419dff876e9bd02f5e78dc88035b5f93053e55acf87fd59d86f57a58f79c12a9a70c4d130ce0d2607250161d1d7765a0bfe8706eb2b4746b826ed25e02ce5805b6d1d59d54d6433e3e4307fb2332ae295eda5267e51c861b678d5becbbe9ccaad65c04c0c0ee6604e1e6790c03d0587aca5d410c8394c78b326b14990adb121ed1aa8b36362f8b680680e33ff1af60e3ed5a71582d6d3ea3e389ec394a63f24f71e2c4902aacd2512924a239e7a33b6ade13fadb685be394cd401a7d09e07e9aca75ccf673c6ff3280853093288383a4f3805c1cdc6ef767d31e668d906674d96f741f1adad3bc95bd9e4170dd00c35984815a64caa60ab46989b116b1f514c2bfa11260fe2f1354bd8137df73c2a6e5c273aa5bf082abfeb0620062211993ffebd9c42d793f8b7433b242d0eb5194545abaf69c021f92915e4516d71772a0dd963d1923c8934bed90e62796b3633fe0c5fa0a453ad520b7f089e8709529483cc4245a7ccddbbb3a1e4612a5e129f4c757f514b11c753e41cd6d1c1fed080bbf5c25c7295df7a36050479c40d0c5e02f1eb7176251205827f8c33da3b0ee297e44f8408cf1fd8ba2af1eaee024c1930683ebf4c05059892a252ebf5ddfdb0b35062de11fcf6d1d8beb5a8f79442bcc466d1a6c44c2fb5f9b86ae9c668734ac0de0036410ccb73c32cd31e07681f13c8fbe7ffb3295f9c4b39f13a9056cb718f4f214a805e1bbad054dce2b8d7be504ecb8e0ed40d11bd7d694ef0204d5b3f6b7fe07b725e39e932d49b9c95c509a9071ff821fd9ae7a5af5aceae1f1c49d29aa0b29c6db447ff0e15ab1e9806cb63254e9dc5252328c7b81cc1bb2d796744b5b4bcf457cd00c1cffae8458df828d7532cb3cae52eb8272e74177575887a36f5822a2012e9e3e0c2b429c3dd0a994beaa6272f248abfc03625215d1c222be6466c89c340adb5d2a0170e07763f9352bef8a5391482394a4b531412203f81017cd49deb937a2e320bae61caab3a31a6245097c1579c288175512bd044a5917be32fbf56ad6ec0508ed0c4d31b8923261a78379cde15311ae1d9422724e18d6ed5b85b9c4cae5a45cd0cc267915077f6c8c28e2142d513e56da33cbf1d05a9be95a8819e00cee9bef47cd47c845b0f94e07a95e5f45d28d2269e5477b7442441b1e655a96e6d3d37e7ba6421499502927fa244c0fadea4e33dea151476bf0f25864af40172f890e9a63680c5d6f93a6588a2b588ddfde32d437ca4378fc79dc88a70934b19b687892efc41a576b6751c0609c55347981ec6a5a18bc7aedbd4c48283aa15497cfb01710cc82dd14565c089ae76bf7764378a0e538f26fba61c6489403274dc3a424c455269541ae756520e7499d5d96d785078e9ff77ff352842e79ba1b16f12cba46996d4280106704ce7b9875b66423e28f20f9a3690684602fbd03aeb6029a173e6f70cf9a35bb045328d945a527f2bdb215f5b0f152d1ee74ed7ac51c82619298d560222e7094ade2f1e0fa8c4402b5f3c28368c9454edadb8d00ae92accb713a40426579c59f9ada319d649402a5b239147fe5068601be8a34986c252cbd81bec553c0a243b20137e5d668fd2f72913cc04a00d89261ae622a38c6060134dbd2b4cab5dca7043e9bdbfc0d53b249ffc86f4c1fe0dda0c4a84723c083f125ff4281dd031ce1b485ad60cb873dcf1e24692c812a3dc9a16eb63b8ccffcff294e0f5c74d56b535885a60c09254aae4f089229410cfdbb6eaaef9b8c4f0dd03c6bbd74fc5fd8122324af2790c67d832820ac7a97ef48b11fd9908f43c7fe85c43cbe88618b722e9ebf926b5df376aa3db0f496e8bc257cdd0cc4d3e8d28afc91e0f26662e3aa3459ec94fabed4b0399257fe372b107851e8896a4f596747cd63282bbaa2511aeec501f2bd93b4f139927b3404fce6ad4c7a986819df591d9fa1406021e49079b93f2f3f9221d49ce40d22254b441c995e72d18d7933474eb1916f864504b325c7843e45d12aa2c497752e093e6521a384c2a9284031f4955f0b730fac0dff12e5426869d76d986f19f40fb8500a790f3c310905b0c6314ddc1b04370fcf2c1c3a72f6e47917b317345d0b8b864d81c4dbe98f9df21a0e331884c7c894410b96175d9e7f2a07bb7996b557572fea647f433b9d26f430d23b86018f5bbd5ffb9c50d207e262773c390aec00f7b614810aab429746e3bf31b302159a545fa972aba23a9bac2031beb7116b05349d4a1b79996810a9d5d4363aa49de1f5f32269e45fe7a00bce6603b9d302f65387b3612c16dd03d018e25b8c57a9fc5a209186d4fcc243eb1ebc567229f689f8534faef95f3bb0862b040282d03b27a626630200c035500fe9963b01a51983e3efa979528b1fee2d989b4f251e0b4f904d0152e41aa13602b6d52e10f8058794214903059745769589ac14e9a59b1cc12c1b35a57777598068b9263ed7228aef839e986396e80df6e0b94a19846dcf786e96999d988e3b8c66dd84b0928d4ec1abf6dd2ecdd406b9d31dfca0f98828998cca3ce2b8918c2266c657a69e4cc1b67f27783e1a216b5c2dc5640f915d90fb577872039c084ec5c110571292c96f678120fc6057010936f827cbaa61726eb0241f042558d7cda63f074c3a8d6b9cc16f9ac09fc4ce76924571cffc5e21ea24a3152415646f4f7fa93024b457bf1780d94dd9fff510d65a25918e80479d52535edc35c36ad1967fd95aa0a7349f9cd278c2e637fe1b80bf8faec38cb2b5b79d19d8af001621908a8cb753d9e2a9392d7eb2fd2a78ca01a833271ab553aee48f2b91d90bab593188ee5e0a14568292aadcb88a527e3c0e487afc7e69c732b1b26086028a70c14bf9cf73a1c670717580a41d9b9eeea0fba8601786433271f27f835add22149a4542821c214374b4240ea410c45e7e3c4d2d6de8efb44525fbf2fe516f31886040ea7809196a2abdfa812d5f17e1659c1499ab0b93270c223fa54e35c0122311924f2f8324d627871b5ac3dcbdd55a3a18a07871aaf2c4db15ef7a74194eff2a9c761274b563338f45863091fe4f5ae289944599bce12c9e4a9fd2659bc1592e6af2c88b05fc3a30dd0b42bb31d40811edf025300a268fa2ed4c12a8a23e36dc35b779bca21ec5d485f1e7a5caf936dbf20649541cc23e5a06261771a249be400d427f02b9a0a45824f74ce6977f28b59e088aea294992b01e685916792ee9c0c18bcbf3202197c373a0055fd569a427397c3145316a4a1ed159ec4328a530d4e747f93ea942397febe72695b108443d7b0ec7dae180fa2587bb7e59f832ff78cff32e8bb9e0f12e62adc632b3601704c110ab9f8ad467032557f50329380b03f5e5df9d83172e13c558225e4a15264c19e37a5f34e103e410e8c07d59be3b05fc6a4341905407cc7936dd51680bb0e569781452a667a5ee50828e61b6a1893615add7741cc87adfc489fb13380ee8411a86a4ed0286097bbbaa571903f5a532ea0add3dca56596b2dbcc1cf410b7d712ab8f57c4bfa93a3b166ad44607ea77515104a65fa3a8f1fe132e86ca0123cf7191d54d6c880e5177c57a81c098e9aacf0910a2c6817b9c8871e97870d24b4841cb829d63a631b023ac089d214072eeab37e2d808e1e9208019c3b2de030ef0f380d6f5d086a958dfc8bd055a276197b802d472b058d301022f3d49d384fffa96267d126903c60e6ec414c2677a98b9a9abb4421718eff70fb58ee56b88c19c236b39c8ad85b85d6f9e9caf6994903821c553f363472197e13eda8988cbc687574dca55a001a708c8c882acc7a2765a11cbb7070a5b46e405bcc833ed2c00808ea1ca7a9d7aad1a8fe8575dc2841caa6a5a7aed835da53193d24582cea2492e14e63123cd3d2ed00625a5f69ad295a39f1c72d2ba674cb5248d665f1bbca2e0f4cae46f3cbe88449a49981fcc5d9100f838fd6aa6687f26f9c52af14ec938a0223061d3d4929225612117e99614b59fd3b4956576cfb67013805d0170e63eb991690014f81b97560e06e052c1940eea808fb3041fb2fb12fc27df7519cb4c511e63838825a9155e9891949aca4b0389d6d2995ca651151d1fcb0c9daee2b310a7d3355e9ae20495ce95238eaad25959c89115153f8a099dae63a610255215bc9c22299d9aa512cf28febe9420ce7011a82062fed46ce4f69bfe4c0a2374f5da593368c005668a88be9bb0e1b794006cef29d6ab1b65a602fedac06e97d4ca2494bc6c9a78072fbf77d1097a98385a92dea02f9c0453c9b0e3d4d93b123814f89cb828f019d3f4668773dc6d93f98f4bdbae960b8d82109c4f717677fca7af3bf042f60271b6d10d6e1c3472c8890058d7836899bbdc79d88a6beebe80c00714eaf1d013fb7a0c434cf1da732549883d8ed97c0eec3ba9e94c31e575b0d4c5c1946d9de0ebe08129037115117aee4d641ce9ab254d78eac8b359de8d42f063c7e6890dac6a7f84b13d586a43eb6556a5f21cb06f6d41076a77c4fabfb30167bba93c8468a20d400129f65fe512195ebf385150011069fcd120da613dc231b43f7b0657815e069c0dc71874e161b88a92c3c8fa527fa5764c8b37b14c83de6b32feeee95a3020b8e6257afd8dd32ee5c67257ae40a962a5ec256e28e8008e52e1dc5311569889542fbb4b805be2899ba417df434eaf8e3a5d64b796d17f6c063c6cf9351ad03681bae97b17c04fdd602609d9a50e2b44e4e460b1af7ae7c89096b25bfdb4227ba82683c1bc9e62a4e29473249b0e396bbb3e3826923b75e0852743917c45b75c478118249c3fa5ae5222babd8f94067e419054e75746318c858f8cbcf85186196958bb4c16ca078552a074de3516c769f637bfe4116852f1ca1d42a07d0a50f192263b4756e391b1ec64bc98e888eb2f143dcc0fba7b0084d0fd021aa14e89c665e9c4ccc87ab1ca7ba91883b7f13a41e8ff8dd05c0cf2263057842c8b1aa058182a8971cc68ce2bd5ca97db3988aaa1ed137b9cd0f174004aab35b9e5fee7ac1ec0730b53bdde08d150a2d5dca22acb88f91b4df42b80d2b816014826e06013244b3d1be2bc6ab32b4b6024c93506ae88e9541eb237ee41672b89e21ea9d47328dc019903390da55acb2704b494a524c04e5da370ca6bfa413b4e2b38d500e7039f16c5db487b166860699180e40fc73f6811640ecc9aac61e9bb18d24d3a2b000bd8ba0f997d823a9e0e0bd223055905c80dabc54e83b7e51fae5db4b669adc4cc56243336fb6918945b1412827622735f5341ede866702ed692ad2adc0ed8c88c5b4d056ba29ab1a35c4feeea707b6023656f3535a88d6a8ece627d4a80fb6726330712231eeb7e6d50e6ecc2d278eea0a1b1cd7777eaed9badbdb82612afcd58cc14e13fa1845531482f2bf861e4239d1f24585f9d39afc58d3f818b62f8135c480c3ec01dc4e2835c28163f899b62c17fcd4f3a833823444dd46a433026823dbe13356de076afa6db180c92180611385a09469180a12384ef2dad1ef6d2d4ac7dfda6841d8991af0313776a5e444d99cfa660e1b88b4f389d3bb6ccfa02c58d8112f6ed748429ef416c79b2b6cf62077f206d666762e349672ca8c03cee9f64ad6ae3486e1f9c682d2948c8bfbe734e8cd96e222d9d2122ff2ae5ea52e4bd7dda3ee986c2a122abadee8df495c7860b0e7cdaafe7398a7b93031aab74910913944484ce351fb5f0f673fd9b589eac10c5ca81941ad95654cf842bb8fbb4995e168b7dd5470854cf8e6b39214f2ec87bcc69a56eb4bdbd21610468357d0c952a0a16a1e782947cdd04f3bd51ccaf5a0f3bc12a24c03317d70441213571932195489700d90af7f01adb526388df4872027c1b390e37df6776e0eab89c9df040084203f779fa73660f7fef75ee70b55ea39244e1b26eebc0416d3153da05e7955a3297a9afffe18b62042e5db4b1ca378e37d55368a496454bf9c5c43766d58260090405d597827b7de76e0784cf01e55da38ad1ddfb642a9ceb41e3a057f14fd5ccb40a718adefc234dcfc8695fd95c650c6bd8509d69362cb3794772a57bc00d06caa123a05ef33dd5e67c5beb08522814251b50d28f3546d362984c73abf52cba6adc7684adc498c35af887d2a3f1f549a11f5779c80960a78e2bfad4b9a2ee1c17e8070e7f9132b1756f80413d8aa320eb6327d36125cfd7fc3b39504f46266ec279c4858a18b912f792e2e6225efdac107e26b8d93509afe8fdc826215542a12cd7322b660bd7ff7ed7a2d11070d3e862a2351fce09da3aa2c0f2fbd8be8f2993e3adae430232b6092c2abf5ac1b16a677de9c59023c53dad409c9e9074cc32b7e99dce56f6ee04ca5dafd37588a0efeb9522d09944419a61d8ad5faec85a2b4fac4c96c0114337dbfbc22069ea5d01c70b416ca37208224b5b86bf4df133d243c5be1e1bb0c90f99a8f1ad1dd081946a7a13d804fae467c6d8c81431b3d4bc7c34b11d375a67f91d56476150d36de5a5050d4dace37c1785aa7ff45a0e68ce8bfe320627dc4b23916f09e5ced1d68cd9c018d1a9a1933313453cdd5160da5660799240ae915150391121db1fe901ebb56de11d9d5ec705a67d5120f846cadb98656c6cf2f1ef8f9554a22f64d98f6e69c05bd3fc0e1fb2e18225f781757239b8851833f82786720bb622552a787c5af14011c06bac3a4ab8fb9e21f91346da424efa0a5f2de60c61d693a625967b754990653dea2b2746d08efc4ef97b0a35ccbc2d3549ba6147aa253f20d80fed32aa2b51b92a40530995cf9fdf960a686619c0bb7ad925cd1752d515838e7c32c4f17b5d035c48048ac4cbb956309c15a7038d48a2d6ea74bfb6b39e6e1d51afe2fafdeab663e1565c2f8fad96ebb5d622c6e620ea05d0785ab62008517d08884a3ae23dead55517f15a2adde298ab08caa5877548ee0d1109697bb735b9a59429a514a00b540ba60bad09d12f7aae1790abe28d63db6b4e862ad3969bfc50774d656925860ca865a286ac176296dac5201931564ad828e3101485585e190a00fc3efb823d778cdca26ed6197d94acca5ecc952be6fb4e952203c1f77182809dfb8a3981ae5e618ea250e91a611bbfb6396300c8d655d7192ea015af86344a3e29862e84ba00468ca118c2fcc195180ab11673a57691e5d2d2d2e280538e2262ba270b1e9acc0e9fe9280f69324924d41c707a96e63c140ad11f21516824fa0886df9268fb4186e3620c854a1826ca580bbd17221821560cc260cb4914268c41359d8a605c443ad55d3f5340e8442362b9504754b4b126fa98f6d9978553c09d10853a4de6d79f4e75f1e6eaa2535f630807a219a29d499389ad218df227228bc023efd1181414640a8a485806c5a0185b2d96ec64230cb3bb807601137b66392aa391a9668ca7517a1a9a4ce9198c29e317da54cca431fd50c88bd4d664468f6157080df36b87a376fda1c75644cfb581c0ba4209c0374291c9167ba28f8cd8c33d7e81117d7a3ab5d1a7b6e1fa0ffdf5f2bfe3cf8f7c1ff27f3a25f7e14f6b6b075b4e5af047eba611078ad9c19feaef1718af762abe377142042b692694ad663545bf2b948d518a41a50d1b66c4b959c3bc9478bfe8b92faea2ef2e2438df3ada473fb6f1cac4945487b83e3e6f924ad1cb4d742151d22911f5317aecfd311aa1334cec7d8c30ce46a38f696cb4755c47bfb2753475e531cf46db564c870ea6effad67488ae6ee5f94b2f3799d18fb6ad2bdb2e365a89417a52146364baba104d5249be9bc8733df9f97914b61ce5add68c781371a2cebe6cf58753c49bb5e191068bf21f420f9e441cfcece834c7d249f2dee6418fe5cf4f3c2886a6237e889e74c8d3b3c1a2be22cdd5181a11f1e5b3e1ce5423832c58e3aa0b28689a1ee2b8aa9b18810267e52f59fbb2cfc83bf28cb434b15cf558733e1d1d53cc21871c9863641919976a9afe35991fdbaa35fe35991a9176f73251bb0548ed966a62354c1a1fd3b0a653ed33558423b7ee55b9528a11fab1addaf918752cbffdf0c3f4516340d36ed4f1cb98f1d78f6d5519bf9a03647c37e3af1a5b92f732dec321fdfe32b6ad90d529136d00eb091c52c34463501ad0304fdf5d403ac0cf588b395a8d0829bb4744d719cf5bc73a64cf4708aff131661e8d30d71cf0c36b28767787babbbf9fb95599b75f5ab1c5ac1e6364e6e6f8bbdfc6d1c84e0f8701dc003bd4fd8d4216dff077c8ea0846a3fc218b61e21af686bf37d3d806a909216bd3180486797d5709e42ca936042de7df8402f82f49bb24ae2037991813bddc80c01aafa0f8d7179dea27f5432dc7d6a64ebc0a04d6a8d5adc2065090925b5ed7755d9728e4c22e07e02f66d77880974e07012a13271d6c45189599feb89e89eda2f6b31561d41fd72fb15dd4a6468e18911f9939b28d8d5f60baeb4f9833b6b5cdd645daa686280c107b7d0dde10233b119f31d61eeb4c52acb7b94cd2d4a55c73dd7f01716de1fa59932c32a4e3f319661799cd30bbd8e21fa61ecc324c9f4e7597f39874701cc5b476b1157f3ab5ac58d3dcf361d685b384a3e2a74072d14e1ea1a62059a47ac72057c9228df2c7a1e2e632127424c88b19bfa50d1766a4fd7c600b0d6f8aa72384ac4f676d3c9d7de9e75b48213aa14e615f1536c5c5f36198d8b385ea5a4c1dc91e6ff625f4fe9106110735b10757e86a49f966ec8195df74558e3d43580a783f783acbf963cd623147d6bec84b046b202bf4d715ba749e8f0f94a11126ba9cb01692113ed64feb260102b871430cd7d58590e8020a85545314125db4bb74640c714846192f01b4b4a4c40d3a694e6edd57f93834991f669638dfd1d48e5f7bebca1750b360aba113bfd620a1b8cab028ffeb676832176680acb7ad986ac61b9688a43947a2b2d4ed1f2c358630c05299fa681a7194906176f146a7535d6c4dd1a91b249d9238ada453ddd5922d1c3842b0e5a419096b6d5c4063981127de7c176f744caca565000308c5a85d64d1f8133ff1e28968c69bc0f0a3518c95a7b1f1170c04249a6112dd4061148376516785767167345a294dff677a1ecd729433078946a59268545a89210366988986442c23c64a6994a2c97426c24250141a894252c6bc036842c81a5b5a4c7ec97a7b07d0747818617475826b2f4cd61bbd80aea04e2d64c11ad8a91311fdfc4c4f2bbfb5f4348ff9c6958d719a538233c254b210d1eeb8d32c86e94573f38ceed818cbf8d3569e42e763a864f1a68da9d8e19d954151a658a118568a3bd8081bcda0dda5c3dac908f8ef7940e6e1c13d3ccd390f361a61a3d24a8c4c83a21725c758298d308c352845317bd8b5856425fdc2ecb55c45a2b046a31d6471cf07abcc1049abae2f1ad26061ae32ec0dff3ec3daf0efa00d76c561981d6c35bd80d60618a6e83bd8c280c8b28d57334c851e2c79b212c245e059e588b287df5d3a186ba71d282958a9f4d74da79a62c0547d849e59473a3582522e06f418265da53d9fe2bfdf55b69d223d1991bdf647c07f3448909c20da6744c80e7d5f5b28f440fef1a6f48efd05843d46bbab96687721a9ce489af31a57edca9fb5984c7ab84dbee11bc9cef261cb55d74eabe52b316498524aa1788382f5c82423c6ca151a121aa5740943893735acd86ac5566c8910902120632d26c7c4442c6ef1d2d98182470437dfb4bb8c6cd7cd17667ff7435c476e4e4ad4ae46fdb14fa2943aa77e1b468307e9275d47f1988fcded89244c00d1a08a50ed62abce8d6dfcfd09d7c838eb565103105c978c3b5e98fc5146d985c9b4bb74eaa97ffeae9a9e7690260da27df6241a2427c87bf8bb7ada8e218f9e5aa3a7a62723dec3e7a17df6da67fca49985a0e4785d48e2ccf8c88d8c2c9c8bc69b1b4781a45acd226b5f6ac65acc5ead588ba99a1712990be732721d8941cf07e53128dec81b97da5d40a71df3b7f220cde4f0809ffd8cf60fbe53d2cf3c7ae29fff3ee5fbaf1a484f4c4f46bc9f7f047c944779f82af4aa71941b41faf947907ed220393cb29f1f447bd21f311f8506c97e7eb6c5a049fac102d451d2d7147d51712da9a5ef2e26d5ff62b94afbecfdaf1a57cdf7bf90b4914ee9f8756444751cb2e4f74727d2461669ee029297917ae4a6fa6bdb3a8ae44b6ea8304d515d49f5e7c28c3fb1b5456cedcb15ab8a528beaf365a15e27a8fe150eb980b6ab0c41aebaccc028bf804e203d105419d55d6ce862c21ac88a372c28aac79b4b04d57fc382c83a3a69947fc7125b32d9c628aacfd854642de7b1b5365c8b89228fc8dc3467d39cc7d6be6c81b53075f81f70d184055c7ce0c919565790abdefb4b7f89e32ad892482e20c972157c874faafb6f17e9422ffadee2cbcd01fd31c67bf37122e27aecafc77e2b6f1d90aea197471810ff6a00eb49735bb1d026390bb37f6b278f546f7964037d2391d48ae9c0afaec64c81f410ddf4a4e3f211fffaadb0e5aae7d3f26727ccee02da97574fa187af7d276f1e3d85e8c988f7d9f380af751247423145509da2a0ba7c3ed71aaa6bdba97f575790a3fcb3edd4d4085e5d40ab938eebfb9bfac0e8897fb138892aff48c6c2ec9e4f8fde90686575ab4082c4455b12156032df7f9a0629a8ddf573f948fa8479d5b5e2470cb5bb6ee434d576d29cc788e48a197168bc69ceaf30fd7b832df86385d93d1fd88252363b99cd5c4c59bbd83aed78ff805dbd3f82871b1e5811c60a7e4cbfdac5d616b38b41910dfbe283da868d61ec15c5aaa04e0c6298a7038d50fd77aa7f7791a07a6b5fb8fa727cd9da97ae5a4caf5d6c55ffd664fa31d5e42f9a736ecd2b885e405598cfc755710d8bf20fc9d2f3793e31686d7816b38b41d5ff0292724e93e99f735e147f48962643d60b4316ffc5419d96aad3f150f997a732d4e9f7a1f277ed43e35483871e7c40e968aa9c429c85344d14d2342cea296001c354739b43729682e057b20dd00350cded268c31c2e734a66920b31518069ff705f9e3dad8c8f29ebf96210e6d843bc45dd8e2f2bc43923a5c336c19ea3e134cac0d1d5ebff7e48bf1c5d7ddaffb7554a2b9fde81ef93d1ee47bf1c9853187d78187658247f7e7b15fc3340bc137f6b1c8b0dd3be32cc21765d6c63e0f0c656f5f3884e47bf149d951be179fbc36c21734e813d9d532c3ace6267d420cb36ba9bea8f9729b8fa3531d132d73567e26b2bf80d8081769ce7f65e3123008689673eaa35ffc8168a3f777c15e7b94d197e891eacd75366dd184f08e2b47d1f1083a464150109d5a625b95df3f26878843bcbcadb8ad7a511c2d2d3838967dd3df344908d3c02b7b03477fcfdfc763e6c7ccccccfcf8317b8763793a1c38c8e05dc078f92b3f77b36794a3df1cff7bae534f98b26e15347883ac7d04f3dff6df67ea6317eebe85bbf0c1f7dd2edc85cf1deec25df8dca9743160dddeff1e74fa52cfbb02e9deeeddfea58d04b3c2043d3555d70a2248a8d8c625b333d5b6a20435b5bb770c81ff1e9b9a4c28b411e11f69c7357208085c56f06be4ea5d7b25791fe3cc448d903e1a7a110d857c14a05e9b8f4837e0757fd6d574ac17ead224a7f833cbb3eac0fb0ec0977ade7f84871146fcf8476c1861ac1ebf00e99ae4fd6aa7a53be047fa805d1da180d513d234edb0491659f0d4e655b10d64873f5d25fafe1cae1251b611fd65e36c23a236ae9a8bea3799e6f49d828e45650003fb635f425f0639fb8b1caebac0a2fa198a9f35d4f67ed662aa2c4fd15c37c1355b1bfdfd81c93bacd35c3f7b61766ca303b3d560080df33d096716781186f119acaac5512ad897d0f7730b36757d3fc36053f1fbd9866164f6460af66588b5d13ca89d64c28f6959e5b7f810fb22b330bc379caf8fe9d0c675d786bf7415a7927964cb14fcccce7aeb8aa926f703b73dee92a30827d5391720b81fa0f7e8ad0df92cfdfea16eca5204cd21c57ccd7914b37b96b92f9dfd3812b0fdda4d7a8abf15febe5997f7d75beafe6c966d23603b345479c1f421dfbf0302ab8ff7f2e17b1c439b68ebde4522231685d1181775f2e1bbba59e1746a8a463c0a66ed4bfced9144101143175e17bc80c4f302cb4873ac0d672d66a976db0337c7be48d57c5ecc9626c1ecb6d5e3894e3ddf6d35ed68bcc2ad6b4d067ee87dd7b73521a4c6507c7f2191448f11f4d0d17f8acfb5ebba81aedd4c8d54898b56400493fd43abe21ce5df955c0145f4d820b036fc3957458051fe5e060580a1fa772eab851d344773ccda429bbadb4d7f8519b96bc48d7b57f2f970770d7844395896af698e08dbd4300eef74aa6323d559095351fd9949a7bae5235ca3da55e931d3a618b03040f886af7cb751a8fb446c2aaa08b1304ff00d7f052ccc0cdff0df5fede83b1c756b7e80a9fbdfa9d2efb3746a62af3d1086e11bbeb1f245f57f826118c90cc33013bec1306c846ff00bd6867ff7525925a8a22c18703ed464e6b7c638f10ca5c74a1be3b092e646b4a3a923d679e69f9d9acfb42be9e0e02869cee796c994cd04b524138595746ad2254c7596de9f753aa5c994686aced226eb6a73274d42fa258d9630551ef203d79cbf4791b5b4ec10f524c9b182d931eb2609750937cc83e59c8350fd231ba1fa879654ffeea9fe8c8489c0847ff0827de11dac0d671856c237fca940c240a8ce4c42cfac21389d0ad1f71dfff54c53d989f79a7b25f609f7fb08611abf2e4c09d0dbd11c8f1defdff2f32c3f3ad5ad4f1215d8c123142a7d556d8bf2ffeeb68737959901b516b0a7d25c9be86c6e565e6a86b9fbc354e143facd7119668d4ef1b78f69552e8b82d4d45c4f57f1aa7ddb62b2f4e3fe0aaff882f9feca666c6ac672f0453f5db52f7ad3bec417fdbaaa5ff4d2552e987208f9cf2bd500ac3eae7f977cf821d2bfadfbfa9683ef676c4a4e5765ffdeb42fd88fb4cd7fb4f567db3eb6c5276d5e31ce485b7cd933eaa6462223f6338c5e2fdaae0f6d1d1058df5f7ffd6aefb3e620fcb89d84e053135cb7462353db31c4bfa110a7b9dcd1d0fd1a485721f89bf0309c60bdbf5ac1bd168bd06fcbba2a6651fcf2bb349a8bca965b8e9bf5d12698a85985b042dac44c7dbdfc4c700d895260af1b6e7bf3c2a679dc6880759b5861097c85d3d47c0960fbcbd2b10e6f752bccefe12722e0fb3ba5a91d23511277498db4db1fa88471ea6e5c6984be98bba46eed66e51e8ee29fb9542e1626eb701a587ecee5bec5b1984f0217605d7714458c239cf9b642244785c8113cf32d050af56da18a42a40a302b71a16231f36d26818818eadb6254ecca7c234551dfb6523199bd6de4841d2854df46150b65be694644996f590eeadb68540ccb7cc396d4b7a1542ccb7c1365a165be854aa08551e69b2c011948996f5709da50df362b3633df2209eadb4a152b65bec123f56da38aa164bebd1cd4b765154bc97cf320a864bef5125632dfb655dfa6556c5754525062ac8c514723ab27c1043e95c6f9ad0013826b0fb3f44373fd1df37bfef5c16e32f95f70e1ac70a59410ee46dac9bace9aff6a39b6d296e65473795241742a0793daefe22a9e62babb7b132d7c6a67aabd3efc668031ab7ce729df3d94ef60ddab2e0ce9bb50ddefb0170d26fb4ec36042df9552eaaec8a86b52f97733563e468c18313ec6cab67c4325052556fed224892aff28e3cf46a295ca37ba18a6655447839f264508d3b03f2fb065e924e68f2f383fc87bd2771267450074c15610ede777f2e63de97b90be874663d0c734265736c6407d05f9ac0d772cdb2dbd88b94757778b36c88235f434e3b79a9e46c433366e6deca42512a98061859923c712738923c7d28f36fe69ae8b1f9188995bcd7914fbb28159a158987effc8da9721516e4e009915fe606df8c31eec0d7fa650676d3874d21c6435e72c48d4d8516e1860a991fa600a6b88b4fcd664e4558a828592324df5399296994cf0c5800f3e23780559fb548ffeeb7cd0a1763148a3f30459c4090134e940d7513ed4ee026a2f7d4ccf08e11380a00ad6eafd8c1098263ee059bd177212030b67f5688efc0eda60ef31ce82f685e58dabb21761ef555ee4c387a80f9bcab62dff27d78f4eebc09dde691d1d9dfd19e3b14d76d71aba1f2dd5f4317e3519d3c7344e9d51b7095efc542378f56a667701015d41f206c755f0b34f72e3aa471dc751fe1975e83821983339333efcbff73e85f61348bba7739c9c7e143a1b0493f4daa3fc54f9ae5bef7d101f68e641323a93d36559468564ef3435857690a3fc09cda9a9e9a01a3752fd244457ff626df83b10dc1e9dc9e9de27613d2ac47f1e52e771947f7f80874ccaca59427ebf909c25e49f88f87ef7e149031be6ae56f0337f494f3aaaa4dd105b9958c29d84a108abce78ae331e0ef0e637cb285c56c19333b056421c043eabeba60de0dfb954f74b54bb7f4fa2f0207b7867625ad2171528f1e648cb293e8fece1f398ff5e65839fb2bdd748affd8c0f8f82b2cde4f0d05efb19f8282f5d45fa20900609a2f2d9fbf0411e0d92f2f349a7488dc81e7e8fec217d3fa3f23ed01ef31f9d4979125ded795b4fd976d55ba744ede4cbab078d87a0a0a0a0a06ec599e5b0c3b63090b53774684390ec8ec203b33fe802826276b3663f8731fbf90db39fdd30fb639cf944447cfef8ac83fae0484fef06497335a6df8d48b67c38cdf9c391d1bb65d4010b9fb7c1cd72feb23e9fb5e18f2de6b32f5874a43ea8ce1c83583e6057434efc8113e7f0cf64ff9e297c9a55d4f87765c3278e41ac20ae3996df7667fcd57dbd4e2f3b5ef9517f0c6a0ee8f2591b527ea9a9f3c7eb8bf79286300cc36a6c7f05d5a85163dbb6187fae2afb986d73511bf262ae7826ea0dc0da255131cf307ada6878898e61aed09149068d413b53dd8ce2f0a26ddbba6b0d9d7441f59fb175fd38008135a671c0e19944daa09346394be4a6cc98bb6b32d7cb8f8c6dd65bc7e2a463e990a8a5c7b695adfbba12e3656ccf52e37dd6914a1dfd68f42cdbcb766dd01abed5086942c05a83ee55fae914f6a7108dd08cd0cae3f0180ea1ef682ad6ad1755fe0a8fb62eeaa0a3d9a9271a339af7468fde4d4fbba903eda46c59947c0454f939509711d79cfcd0f6430b012b4659d686eca95284839c38e0f0abc9e030a21865ca302bef1f6db0a91aec0bbf4cb2a9d09b74b0aa37fa2e16a1fa771109d5e577f107d5ff6dd9a2e40df9a54db257f9d8755d9accf5a46d57384466661a2a3e2a2a295148494181020a4aa949a93499cc497a02893472c268a43541d3b29e2cc3acc030511522518809a1905c22e5b584eb8a4a88b13a4358fdf729605fdcbdfa27605fba11b02fccd51f887d7176174de167093e757996c0c3ff435d9e25a4a0be56b9388a79279b7a267fe7225bf3677faecad4b2aa2776ac6a3f260795bfdba1fa8cc8adcabf2d0ce3ec0d66a7dd0f96fade658ba9c17cdfb95420627c5c357a39a25a887d42f4e128794d83d97dbd8c547ed5f4efcd74d127213539b34fcb9fd0826553f9bb6f66c7469cb20eeff40c66c73a158be6b8c53e2b98271d220ccca08a7e6bc73e285aa8a28fe996c1cce128fedd3af9d863be7559f5ef5e75870c432f063352de619de6fac8bcbafb9155ec5deec80183297f6ba79a2e91d57efe1c3bb0d3f5dbaf364d120a5121d92a47d293ffd64cda800b974ef533168de277e954035ad043d9e705735fb7c9557cc5a2f8b59059f842e537b96a57d2e4b336f85dc03e2a4ca218acc0cfd98bf9ece3e3a3a3235f4a10d6bbbb81dd3640104ee0a42e144ec0a40aa02e144e00837af5c6abc3b9d224f2639a25659943723ce30dd6d929aef07953fbb2fef033f8721b92c3173d452a04c31ad3b05da0055094e28af995869902d892ba0c739fdf7ddf05dfbe2fc7df7577fbbeef2efc22feb334f75877dc3d7fee9f85ebd7fbfbce79777bb7741758f0b59b4db2f881a8097b31aba8c1191e6c9522d344e70a6691797de8e6e782518af7e09331a2f722246ae8258ee61ea4af690cd41c705197e6defb801f4473af4505f3e5682e470cfdc152af54fffb207234b60498f065f7ea0f967a55e1bd6fd9085baef9229c757994d0aaef3b05f37d579f101bb02eea2e79e28409103e3c2e4ba6c0b183d3a2e4c80f37365c91212c5c03861735807e4c5d60a1d2da05a26e565b9adbd703ac4f20679665281926ea996128a20e75cfa5c4b5ed90a1ad47c6f55479922865a28cb04c53f1146c6628da48d4a34ce443720caaa47c4c43df761f913ea699e4c43527507e3e6b4d9c46f3576b02859e461989e52af93b5c757d73131a8110a634d79f1f9b1f9b11dd91d1d3e8b3113d19d18df233d8373d8dbef4daa3501ea1cf3ea333a20fd1d3e8439f3dcd2a87f4723bad7c3b8d68a9e48fc18d74dae1df3fb7adfc2468b5957ff8e767e5d1d6b5b8a469a8626353df634ef043de2877d1dcbaaa676907d686d9f14fa79e7c1b57698d83e98216d99916a844bb0d6ac92669c4cbcbcb90ee884ed817afaf69d038a8af7b50dfbba0be1e8edaa184a3def7c62c261cf59634f752fabd8fa3504a93d4354fdbf08fab42b46d249512a3d3649ab4f987fe6c2129e73499feb995911b1c9dda3b525b61ece3aae7b3de326244b987e74939a7c9f40fbfe3ea134551df7317f625d6578592a0cab4e327f5d58ebd80197cb56bb80db36b9bd526b3ea7becad3f1f9584f05aa25cccae6dfa7d6b3227d2ff0e257ab82af4ef99e5aafea7c9f5a9cf645ae92aece1afab46bfae8a5bce0376157f6e3b221d3204fbec87883eb4abb619d98c6c46df99487487a427d2cba75969f444a22723b297cf237b496772483f83f108897e3ac50cd3213042fbec79689fd1999cd1cff86b3fa23cb20fd199e65c8589fe7d8babe4bf8f7155fcd7b9683b865c1f7fc810ec43affd9021a2979ff1c8b636b2ada32e191261da4d7d6de3a8f7ab6cdb15b6ed4ab4ed2ab4ed4a6ebbba76c53fb3c78ee6de7bc6c27349d39e52026cad30bf87ab78c50cbbfdf1d26cee047f796ec0aafb27487b20d1a96db28591cacf35455ac52db8a940a7b68915b0a8bc4143982709633639db648b1fd48e8954fefda2015228d91a20c54d735b776b8014481a20054e731d4d7d3490386ad5dbee3d3fcedfb9bb3b333333d3ce99d9997d76f0e0e7fe1c4e3b8af916e3d25cbbd406e2a1c924258d7169ae5d6abf0b10ad7aab7ea1ba4db8600392264e94647f65b355a1ee98e65a894e75dbd3a31f89f6a2f6f3e87e17205ab5ab46a251fd3dba9696ecc7e16fb9b791363153fd97a5b9fead4d9edfe96c6e932398fc40577b0cb053e770d5a9e9c988f8d7f75f7426a7298feb4374e6a22729fa99484f32f4342be6e721ba923f860d3831cf8a9f26d4e77781cf5f802d4be73af5cd1d9e656ebcc276d8a6e9615db413acb030bda3c5a6b22c18a6a99002a7b47fdf51d8276c8ab483852bb84d30fdbba7d5d3ea994220d1027af293448f1d7cba55dfcf2d6708aeddd3dcdc72bec08660534cf316260f3f3f8b1befb0ed94604e1e76a03333393c587efe8cff0e1ffb5928fc1d54bef323f57991fa9c487d3ea4c1e82f54efa8e7457ddf6ff4efd21ed28fdf464a28293d6ad010c9276994762e3d36dac90fd16e8a68677adabd0eb4e372d856d672540dda49498376d3443bd33fc7d1564b463b1714da4d8c762ddc45bb07d248455466e448fa89abda8b46b9aa7bfc484d91661109f2212630667fd13d6da47bda0817a6e344ea375bccce6f5cc5461cf55eca39bb676dbc6ec2a2de6741470b9cfafa8afade7317937f2857a11531d5846ca4b9d53d3b54b47860c554d34973efa739ee75ab535d1ba9ef9bc96b27463ad5f14e7dcfadf7eca455bb7a4618a677f84653c13778f8c663985ec237deef30153cdc5a1263157def308cdf50c130ccc3306d846f2c61186ef18df77eb3c354549efab6581b4bea7b0c13dd64a1bedfc27bd2d65158ee71ddbfafefb5cea2becfda0af53dd65dd4f76ca4b768233d85bac5be34149e5b0cd34cf8c6fbd74eea33525f53a1be36f261781d7400830e39e4f0851c70c0e1090e356a78a1c6e9d485130d1a5ca031634617334ca62d9864c8d0828c1831b2106365e5674545050b2a292957484141b1024aa9e4a43427179344da82341a6931d2b496966555c8302c0b4c24a2822814c22224e514e47549e18af18a5843b0c2b5717dd73eb086bea3b02f6f6d5cafbe0705776fd2dd35f4cda47b3ac5f55def9a105c4322d115f7a73e249a7bf1a23d9a7bf1e17bde612a3a1529d7dcfbe6debb0e8a10a6c99e0e5b60495839300a923fcc36a10c476ab757a80b0528505073746aa10005abbe2fa253a5fa5a63e9543aea7d280d277882f46404bf3f8ffd1d5b79486a72d44bc3bce809c6eb1fb0ab8b1ec1abeb7975d1999c07ec6a08e7a8f791ba38eabd890ddf4e4ff077e5dff404e96987ff0376e57f04affa79d5bf2cafdb7380e07ee8ed1eeddaf8e658e0a6d29c77f6e385ce4add2656b8696205204c220e860e8a0c3808164cfee567fefef73442668026d37b393af5284bdabdcf11b305b17537e5cf9fe3adef3677cccc8fa353fb8c29817d9e07b0e76d9bb7620c3599dda51d4d3552bb7eacb37ed61c4080dd4efb5ea4fa921ad358b7f00dfedd1ae34b0401f806fff322abc974a7f6456e25f03001e40926d8c6e5c6a6c80275b2082680803173e0d84e318d4883e67094ff7c0ce5531ee38c06dc629abe639bad2934be339dbe9b2a1c3ef44cb80a07ca36279a92b29acccac774a9b78e4bfc291fe355be2b6f5b553620b0c6a004e01b291fe3393ab535e5fd09c0305b53527e65db2a3599149a9a5ea4629cad6c399a4ba145304ea7627c4ac67b57110d36b5f20256c1a6fa3d09be91827da1c0daf0efba62d88cefba66bf9b7128332814d81727d686aba4b4527e06edba56fe0a98bad05172839501730b4aefef84123f48efcf847c9527a44f592f505064a9b4e188f10983ea5f031c3871d58e6d5806d56fe0c42be25a676a5299cbe28f4646633de0e661e24c357ea8c00e29e73499de251631658fd9a170690e88e6bcd9a5393374917df043ae39f78be5e5315ef28a1042eafc3b7ae4609f1d3d786ccf128ec8c0e1931427905ceee41eccf71edb89577f6cab3e3ab904371b13448ee59a27668e0011b3ab209af3ee6766e6395bead5ba5473365405d1284d2686f4393a95836570b751d8d164e5bb6d42e5b15554ee49f90e46e5bb55426553657efee92a1dbe07dfe0e75f8641826ff8772e1360ae328ecaffa20f3d26da72c424618abe5b9e2076304c123c18a6023d18468909eccb124830cc0fbee1eff3b4ebaac396c3d6425b7030c330c137180688120cc34796d897971f0ce352eaa2961e07dab57f0dd5a4f1d895e1d05a73c0ac4c71cc341731fd6c3a55a453f1fb7a8cda6ccf667b45de8b2fc33a083760bcceb0d83e27530dcdf45e8ccdd25c8f1ac81054dff6eac7f86810790c136d5cb55f30811bc260f5457985bdac3599f559e55c5403b162949fe8c8267415b3eb89877fe94b7426468f1ac810c49a8c08c7090e8ac8ba4d706c80bc881b719be6fa9b09f37dd7ce6d9a2451d20fbbfe34faae1d57edb58d9934f7bc876123ed4fa3497ab7e994776a992c818adaef3ccea4550c041d3fd2a96d0245179d2ba9fda3efbe0e793c5820a18e584c9678a076bea4f68aa4f54da7bad727f6a98c4556bb95d47e9f9116a5d0aa93e6bac5adcda8145dc4f7d809d36df64546edf722fbb2827df1d997f7cee34bbca781a8105e1f75266b63c9842fc913b7a151d78a1f22b5819ce5354b98cf4788a4819a10a6e190056cb0dbf26d65e1f9d625513d76d33700ab3373130a10e234aff90b5cb4b4b4b44f85986a5edd1ffaeb452f5795bd8876fc5be328690e925a890ef4f792764c5ba769e3f0b585b6ee81ffc3bef03693c36334fa19d267a4d77ed21dfd6a323b86484e3a2a480e0fd2fb07d1fe7dd359a233930621bdff45599a63932c7d673a5d257abae8c988d2cf3fa2f4737e90ec4ba59ff0516890d1cf392715d2c351f0e7d3d41275e1a6cce1d203770c8142b44f52c32b8d32893eb14fba0d3a3589925efb2348a3d73e48f624ed8dfcfc49838c5ea333395a12166b4f534954a35c1b8071708ca401c7770cf9c07bed3fe04f7ad64e46bcd79e873fe90b6ddb156924137acc092166153d11b3869aa797740f0e12238dd34a9a0a249dea9ac708eb48f3f49291b665426c4da409266a4d7350fe750de994a41c746d0c049f7bbc33d1d75c0ff7b4cfd51a14d8498857f9d5dddddddd5d97cfd1a92fc265d7eb1beddae8ffa172938edbafcbfb3beb027101dbd5ccbe1f23bde7c7620e2e9bc9959f050453248a9126d15ea35347fcadfb401a1361df4decb3d127d1fe47ddcf7eb72534ed471a15b25784c00dac550e13fba7ad5ff7615d9abd31ccad9065f7e3e6a3fffd6e916e80af2dfbb865dfd96f4934ed555af4fcda86a3513c3b25a22a22da026d3037f4bda4c8939645f147dac98d8933bc92cfabc6d1a8ad6bd7d53c08b3ff0704b55b9e5df5d4f56901bd284a437777fb73829164a762f5d518d08ffa907f3ddc4252e663bcc28d01fdcf3779314fd1cca696bb6d2acd35bf29466a7adb3a4b90c118d873748ee6ba97b3f0d7b28846ed88ff3a757da49d7cdeba27ea8e8dc98cdf6d4f111fd3d77fa796bbe8e760e914ffccabdd4c65f6d564a0fcfe227a47e4c8daf50bc4eb454f3ae0c767cab2ffcfdf14b0f8bbeaeeee760102c70fa61abcba36b82859dfeaade45781911e92b619140603659b417929a594d725e5d6b5fcd8967c117b31e58b927cb39aeb9d1fbd0cf92eae921d4b9500f8aea54a1c55feffd0a91f5e4af9d355bfad19d2a33c26da9a2709f37dcfca0cfded513621ec83272de059f1f0d8db92a0bc684379f8bdd3a9ad99344a9443ef50d1aa95a2e7a0e6e896237fdb66b6a7cfc396733591e66000be7b3c50fe3f005bcbd8f96de61fa559dbc91a80df0d002b686330568a64443435651018cd5ada36cdc1aee9f1e9548dd3c3e7a0f910456f501bf4870d005b33e1b6f6e199ddfaf4387c114ad4c3c6b2750dcac6411863bff5b6ada362fcf0fc7dd3a98bd2ef4c3b7c3779f84eca5f5709e0e5bfabb697b4a302d8bac751f079d876d8e8865d7fa46fb6ad7f5b47c9d81eaefcba4ae5b7edb75d14f7d0037516184141998defa1871e6cbc9deb01f05c0050d725dbc7551bfd9fd9fef47e57f49fcefcef404f8f26e101be8c3c6c391c057f876d87a3e0d3edb7937cfabbdab693a42723b6dfe18ff8a73408fdff1d68901c1ef4ff83503a934329a542589e3e4ddd819a364a5d362a1d0557fca49130afedff29e7dcd3758971962de7fa1fb6ad8d6c7dd31cfcd724ed23ccf84bb7278787df4796df63da3c54ececc4f47befe990d187941548a23968040eaa09000500e5680fb287ad9934f7dfc3cb556d74268707cb3f9dc9d961fb24f4692acbf3f03dd02e5259bbeeb159c187f1675a062520c25a915e35db8926f3d33b73f4a21f6e91603a4ea7a44b499d451b8ce66007bd60f60862d8f2b2371533a66bfc2dc21475e1ea42f4225e6ee3852992d489215647fc190f3b6e2c3a35e3e177173d3cb7936b6b1fb9f5176b037e1361bed7e1877617cdc11e361ff167d0c6a239f8333ea6e545dda68730b57fe2c58ee8e13750f717fbb2154ad90d7ff418b75ce512eecc8e5b15bee8b9e5a453a587cf3fdc45a77078f8fcc4555ba44530453b3c383aaeda9516dfe6359bdb780d032e7a7ac0aefeb7faf0f2a9c07cd8dedb7cf827d21c74f8ddea9e66d24ebc86c6c377223a48b59ba93dfc6fbc5aedd15deeea815e945b1db7227cf871eb1d214cd16bcfc3c6b23de128f8812039436c8dbf2bf81f0892136977048f01084e60ad3c703a02a6890f9090842504e5d988a3e0d3d45d318ea3e00e9b07e8c61282f24a386a6787717867e3aae89fbea34430473e771b948647811f62c353d1a3d0967dd2361cd42cb961ab7d1255622fb7ec455bf7637f425bc76ee21db27005cf0ae3ac6b27157e0e386c35b64ec23f6dddab5d079de4d3a00d3052f3337c3be9f0e7df80c09aa4e657267aea20c0d18aca9f84e02afaf9f1e58fe00af73093e620f7c4a85b0512138c46538576a69ab29db2df3ada110593b60d03922f7856da16b7ee896ea67ba29314885727d227f9927a0d1096d05a4dc79b4fda160b3c18c25a95b6938ef915a8f3b7721466aa6e1242f08566d21cfb6c8c0593d93eb47b9a83f03b8a3969d73d46f4ca6b1c053fa6495b4f31bd66abb0818ed41e3e845e53217c37d2a9ae83bc06be13817ea4c2ef9a201c303a25aaf0b905198ee82e575153d11cec9de660e374aaeb1e259dfa0a7b6751f0af58450d58001b6751f021fcee81b07f2afc6581d487eb088950088bb0973404d15cfb338d69ae1b7eff7b07f824c12d474cb7e70802763aed78bff501342b7f9a95ffb238eab4a7a5eb47f0ca9f574e4d17cdcaffad2e962e8eea8f5b0e1fcc8e6fea0deb869134d76ba3518bea4f42ed3f406d1cca37cdf573864e0619b72eab51b4855ef470c31ef3cbe6def57e89acbeef5e8d5de1e6de54367735116c5fe6426104ac7afdf5a2f6dfd07b992c7bfcba67f7ea76ea7a78d5fd8789b6ce5445cf479eb93b1d6dfea31fd1d4cc46599651959019e663224d26cb1c4a4d0613bdbc5e64aaf2af6d0953952f65486a39b64a9a24ba6995035bb58dca2414c1d0c362b36bef65d9ebd46b214cf35cbe00e32826fffab4a00bd68a5f062d931bf8b0582c16143595b9004c410d57d061adba1697f5f979798113707858ab6e9f008daa9082136c58fcc4512c1e9c656d08afef6dddf2dc14a91d3fa9cc95c755cb4f8038c855304d7cc0b3faa9ecf344b0a383c33746d8866b9815c4c493245a9e63795c5ae4dbb89ca3fa236f9be445a7a320958eea1dcc1216b0f87153cdc362d58e76ef01b158b52e33017bad5a1e168b352485f2f36c60bbaa1b5550026bd53d7f0f0d403cabeeedd675660f60dba906a239ce6a7b74786df65e4c53af70df36cc2eef83bbcd9d84e0fa038e96caf5eec2df14cc7dfe0b0558e360f6af1147ed8dc4993aa69de7e17a1cb54370e1e3a8ad9d0ba7007bad7a168be581d5d6feed1a8037f8b42aae3ac9a30526b553b1e2470a1c4d08122d6945966e96cadfcdf25cd0e7f25cb480bd4e7512fea6496a7ec534005308770cb62def0179efe1c7ed47567d55f389b645a63a87e45c727b58a45d56e34b1aa1ef4422d1b788cae6421b7cb9753fb2e5c0ec2723e497d57f21f07ead1a1269cefb6fceb1a7c940f87e8978f4a96861442996c8de8fac72675c60dddddd398a6820b81f36874c8e10cc67f1ee54778abff60fe1e759b877d28244a7ba6fc1f12cadda55a72e0c25bec7988202168b26d5bfb78a9a0020f8860b89c92e13aaebc0850e3ae4b0450e39e0a0050e38d468d5a871aac2e944230b1a34665061c60c131626938c29c89011430a3162ac5cb1b212a591a854cc567551ce3a8648068000007314000028140c874482d1805c2aebca0714800d88b65268521bc7598e839041c818438c21040c008011809191d1280191d80740342fb913bd974e44534c80e3c4edbc10af5417abf228fa0b8eefd61c8110bc5609bea58bd516ac7182ad52e9e64431f32b9b967ecce4a5dbfe78d6eb5f2b0c0eb890c3748349f576c2ea8228852d421427c5437031d1999b36b84e9de789311022a9b4b48829b4bdea82c4c0568dd309dd6e616ea0c740c36658d56cb99dd1e170daae393bb501e228446a487d083321c166854f54508774c58714a2cf13fb1712b2bebee50b013722c31acd282285d1a34d3b0b82f00170061d5eacf08dd44040471a0e4fd35a47a865aad22a547d7c182815585129696a5d4c0c17c538916a585b81e75b5b5602ef2bcf3d1a59980a3372028d2c76602913cd6a8e5011406db2bca110f711590e0921a03a6c9e5eddfe1b220c1feb9fb18c25676d68e773462b3bd03901d4214bf64b08ab4e7603d3ab7c5067616be6074fc05439ba9e70d8933e0c27aa057863f017974cbcb45f1728f6e8e380b2ecc1dfeea20cd8155eb1bc50f6fd535b1c04f774d396a0120c95463995cec66147952ea284e098c1aca1333926061e6f79157111bdd527599f81725938ab7ed65921fb25d92831f40fd8e423ad92790430ec0ea462ea81ec698b4d4610d5a4a9c9c480971ecfd7e99fbcb8ad36e49baedd43a0882e64f4206b99d50b4eaf2cedf0c59ea6065ff3e51ea9e1627b21e817605f16f5a5b744106d405667036a29cac88ade5cd900896df381bece136570dc7fc3ea8cc971a73e2e9d1f9072223a5f566fc9d0668f358c85f6fc410ab46213ec325deb33a2ae815dea3259428f4a01e0e7b58f061108ef2cb0a44305a2c5c3f099f385b0c0bf7e56aaefd32bdb892213a813c5ef2cafd4a152d665451ec1d621e3e74abc3eccc2bfbd1af32a431789222994228d5d6ec224f42354ae9e6ce12e2c816a088771c5e9dd43e95db9f9d8991931980314dd6608bdfbfa06ae03cd6900257283904ce91915f16e15c6ec034cd19c182cf1f90f743bcc6ecf230a5b5d5375b0dff44dfbb26c77378e7e2199102df7958346d12b80cd5cbe006c3a4ad4b42a91b63adf02ee6ed6d0a7c5b723c01daa3f716bc3b2bcf7d99b8e4d3ad836951fdbc3832b1ecab1b6787b58da4795c7cd20bb9d61ac1f217bd36113e62a35c13e7c69355648052fad81da53e6c6e9a2242946b92b56b5b0166aeae6531a5fa37eaf5bb3b89a62a966d278ff5b34ad586da10812094a12d5c34c0dc31e37f79c8b29fc26f854088518fa2f5c8ba89aded4b82b953db8161dbcd6e10138f0c05be939b68a220cbadd402b121d4567474700e7fa9d1dabd5bc6937e7c3b344eeb391ba1a9e60a150520da6c74e780582ba438e9119806033a40a3de61871ae7603758a02b5797edeb3661563d0a5fa5d06c45f8cb0264bc7e44c0c02a95489d212dde9c4526d8734f9839e61d8ce9ca008d2c81b33172fddb82280798a8a8858a51306d94b87f05649496b77d97c509542eca6e4b5c09adabaf38f1bc4ff17f15db525f98928c09b91d8f52152330d712567447e69e97f51f72160a589bbeac783070a85ca01a3278d1bc7e54b97a455741b45461d1b2a4360f472eb7b48022533fc1d12806f70af0a75d6cd91f8c54b383ff6996e2e5d7710315da07e68c8b2d95c0421e8982ef38c0ae415f598eecd0c7ac73baec7a228281bbfeadcb505416bb877e4028893351140834f813fded9ffb36df059c1f05d84cc5e3eb0307085d73eaf360091603bde1118f99980dd6ed7ddc1b3431bc254ff02e017fda30af7a95dc5b6bfad79b70afc72aaf96a644cb61890ec1aa141d6d82767657ee8d02cbf382c210a70e6c256f385322c5609038b08ec528085739517f97f70218710afd18d8d11eb1510857e07c17eaabba370048b2143ae318aa5c0f6b13f0b93819de8d04517019fa609bbe99459d94252684611d9e0ec8a5cafcc9453c419104aeb0c0d9f1488c6f45b149342eb010a57e375692a542b8292b1334a220ee79a59dc7ab52acc48bcb4b8f99c19fabe3e2500dcef371b174812a6087095e903e1a500f1633c3acc1e398974d248594ec98b7a80b86b29b2e2a039dde544e01dcfb15d312a11b47fe6684057d02531a3881361331dae14c39bf424ee9534358bd124e6149e2601d0184f8ab4856fcff03248ee69866261f56420887187687fbb53fecec4bc6de28462c8d8e068ffba8cf4896ea80a229cc9147aa999084b3a9f9b0613e122ab31da72b14541a29fe81931cf888a7b25330e1f665cbddcaa464992152dc31257fa21f39aaead9400d582fafc64446248658b09d1ee3dbb3ba4f81a16ed804f8f8e5f973d047b806022dab7a8134c41fe655bad242c37635d6b87c97f7cc50709b3e75d87da621d26897cd41e4be461c4b3659eaecaeaefb1ccaaaeea8f1f6c0042a095cbd9667daea31888c3b0e86be5cc34706c5dad9376c28c8cb2ae44391f1c8a2aa71e46c04b3091792c0107630c4bce0178b027ce5c95e58447e1f3540668644cf33bc722b3f60916d8b0a69e6b45c820b4b633e521f691c96fff047980650d44c65bde208c83433e4685c218da099e7f8d0696f0d77b914821fe1475344be741a69af20dee93005f9eff878efb6269ef17c6d5a5cafe65c455dd650e3b2814d58a83089ab12112257f138e9e82feed17920ae486fded14a948dc036921d244e1903d4bb6e896decb10c4833c4b96663c5e6702262d95807961c248c3b829b2324b8a0af5d7434c8a8495d19abcad9d6ee6507d90eb6bc3d70f3810233c48de3162ef19d894df59893b6a0f5443b514e01b101620ea6ae4307e14c0db5794c59129efb4a2ff366d7b81e07a9de1516983e9d9af62f088074ff7c8339896edaf48044b9b716c7cf5998144128a67fed2024a31ad7c6295836f331fbb39e9db4fb89e03d761045ac5982d4cc1803aeff083fb88805455698936cdf85a8f11f37a819e480f1c8301a53d983e68d4dd2367f3ec0273cbcce0d35f21f9a926e4d86882330753c974b5c5f55d00d98cef095ef68405a794f9041eb82a0c117e190d45ae2e8a4a9004d8eaa95ba4f9a0b9325ccaf39041c22f26254910cf0bd302be378f16810fba48e351b64b6678bc9d33c56a12073193d1025b33b038b1b2a452c522ae2d9425d70a67325c0abebac8730b419bfc1309f481d6a21d386a723177aaa958f55ecb7887bbaa84d48b870f22c6ec7e3e3142f7682dba683b61ce1b807efb238e3b46f19df1a0a60684531efd8a7b7f96aaba1e450a88b4932be564fa6e4dee7ca3f00499cf183f738594deab055f55c419befd47230cf40ebb35c3d78de7238a4f6a9d29418f2f94e44530da6b9b2c7de57bec1cba5a0e0cc12e7d703c64debc6bc5142f01a7b4fc2b38cb1270cbcc0e60e3e7c12bca6d4d4feae0b6b390ef4022832594f1f172603e2ed0fa0be5e8dee10b5fad55eb92c1391e9244ce0d3c780a6c780b51a96313bb63234d930fa3d07724891c44f809a72047f9288f54206536294b2478e818412fc04c14f1fa949c8b1dc161ea42c9bee3484ef93348f8e19a01c3299938062205ac86ee39094295fdf0918764c722e4be29ee920f4551bc0a25f1093a130a486a65147e75a4c80e58d78d1837c71370fd571db7d3c7020a2520430463a9ee1317337fdc0bf819bdb1c8e789a5d2b9b7ea4949f6025d576561ad5b5e4d79e2bcde2e0c5e15e4683edeec1650899bd50347f5bdc683c7ada52edbdfd9ce0c22c017eecc85ca899bd77158f6b38e8d45e516927f2e08da5691ea07bbccfc672423535e503261480656e4b706c257bcf5c7393a1aaa507a2ca2df264e3dd1a17c9569ef6e4da079c7e4a4a6cb01f85e7302b271e6cb2dac7229b3522615fc6b6cdc00f2946209ecb074a57bc14c0f1baa3164877e35fad43e39bda9096d45a75407d1a3dcac7747531136b6a901e386c3b6c834369991741c6490fb31dd2d42f6430c9c820caa9cd9264bb61ca34ce853701e1998718f83fa9af7274f6757e60a58f0553891acedf65b0b755fd7070716ceb43b172c38f8146c887e9ddaad2c8319195893effe5d4e3a87100cd9438dce4ec4a7eb3bf7bafd3a6e1af60526b3b2146bde56c8236a49720ee1dd1e3af48a0349685be3f39520645076aa6b21aa0adbb4f104ce2a372212e22b96d3df50edd2112551f56451a641c85fab57c1fa87bde143350863191e26ea9d17ec444780910b868fffbf846fcb9de88429447ae261b9d9a7aa8cfb692b8812f919d531f8f6770d8046a6fccb7c9868254ddab2579bcedc64c49524ea0fd0e04ece8fd9d6f15f3966944953a7940c686d2235d07d73c55c003ef090e2cebaf47a0ba291cc97b418c8823f7ff508f3db8b10bf0bfdd9a33748a9468030840732f6e4d0628021e629491398b9dedf99d23635375551abc150e72ec6de25f1cb3c394ecb1a1e41bf6565ffdfdabefa228c75d928b109d7b43c861aa9eb3e7580e99b019c3864590f6372c6f9a89dc68f93b896bebf196e031806ef05646bb360bf39a11e1317640dd681c13ef7b1f2aeb26302c31bd79e0f1f74be621a9995f467a1ebbb591dcf94d3aab41cdfaa9d4dbe9d60a93370c87685ec10c16dcb48e5aec0d9ae43c2615d4a8bfaa22137fd63cf9871ab5ed517bc0f47468e572c1add5ce34f3270cd777661843b11100e7be84bf894954a2b0e5cbe8bf150f7c22d188ca4e2d075d0a2b8cc4fc79af3364698d8de18679ab37abed06e1a5ec9935d79b8f39f3d80e67cfc8d8ac12d34b158246f4e33ed072767a20744062449874502354fe58c3093c6240e3340c6407a434d7f036db4fbeac39ff12662afebd120a21085f899a42d8b650dfba292524de57186de064c753034fefd5c2e155fd19f869c5d7ba4c0653c628d9ec9599eb506be8586265961422e7abeeec051f29e196c1776b821404102ee4ea46e78e3781645a820d0ac35c71cf5cb4259ba05421fa84b4dd84cd368f79a890304c44ad719b4e19cbd1693bb26276441782e17db70a804ffce7a494d8d51a83cf6443d02a088b3c9da8fb664b0151210d6f74367e1ac0f54468a2ac10a5ff80865d813b3750066050ba0092bb16768690f256dbfa6213438b8a9a1f2820dce098273580560470b82ac4e83ed018eb84208b1862a55b1cebe20b8f22548540237448b8ec379c2f257400f591c6e8a4dc31ab2c0b1b4e8329d6b75d811ab9a4b6c25c8cefc20080dfd7e95f504ca54950fa3269f788590ea66ae273857189773fb7123e4c1afc160581288b8c6bd99ba2efcda2d4613ca5042f4f2a88c098f48f11543aa54b12f146bb45fbe04706a17ce5321e3428ee3bb9a398502fc974ba2c56df34dc7215c7cbfd104ab09c1056e0e5cf6827fa4548d05cd72f89c1430c07254a6473a6dfe732103b8297e02c7b092343826e44898f4103064d5d3ee413546fafa71b4bd15826a4b6971530b3208de90813e551be30e3dee36ce8832a147249a778f64ac2653808c8aefd660f866a17d1238870bdc56b16b98e5042c097e9ff20a0ce31a2a605eedaf18a61efd5b1b55999c1f64305dcb43e4e9d893b747f5dcf90d174906ae6b57dae42d21dd733864e8e29531306934018e9a9cf3e8190efbc3811efd529d61899a6e4e0a56182d7a427ab7036415e5a5692287b7c3c34fb1a57a72f50e50c9647a1299fa3d828c71c61a19c14c94652909e68de33c183bd333eb55fdf1f8152a4725c10ccbf7fd64d5b408d1ee1d0ee8010cc943e3d761770f7801e2a6ceb9489e146ac91aaa257a0c675ef088e93aed05c4dcc10ccccad8d631cfb0b4357eeca4e72653d2d203ddafcc549e2a4c966e6617e4d352f6d41ce10d261f95e70eb8578b0b96b316558b5f950899e00cdb0b927111fda879fa50493c287c7ca36834f77020f690c7ae0ff368cccdf83297d7b113b1610b1eb756887b22bb15980106c49d690d4954d8df16a4331c36589f407f2e20a3b29e4aaa987c979cf0f81f6b3569f021f35853a5980b9df0780205af4b980a765a1bcfd50be256f4090c0ab208e8470e093bf78ec1f6a2b062aa4fbe8550f40009e59b881fcd84f630d96f0dc6cebd07d1b65d453def85d272117142883661972e904dae442ec5af08af9256504e885853dda2fbb9d5be2af58e24b028dd5d17bed36d3e153429adc62b883d7585a066cd8344d1d57579a490963cea5f85e58376328c50595a2579bde97e85851840e6bd9c32f2bd36d477c223f17929a2d80b69174375665e3613cd8fb986794af01f2c3b1da300cc14bc806552fc4e434c8987edf2c8501fbe2e9efb853588bc567c2bb94e839ca56723b1e85ab0e0f3c20e882d7f79dac0eca7028089898dbf20ed7c00d6f1671f880417f07ad0b633401fa4ed8a1db1b32e7c71621bc2cdb2568ac2d10f631c8cc7622e7463b5aab0772a286331866f205c62a8667d6073082896a1839e3bfd9b2d42a1911e5006f153b68c99bd5c9e808a22c605d36fa04a0a4b5145b04038d61205672762191b62263055976d83b444255862571685f89aa0886abbff17974935d37bc2dfc367e7490b6bd23c2182c5bd0ef5ac79875b2c51e6722f1d3762ca373ea2514b26356659e226bb5c4485ffdb7476ad5ea449e8a99088d866a4d09a1191eb44d01b4d5d523e06b193fcaa2a0b43415022f35b392c038ac91288ad67494621534613d760b8f3785c48843801e8a2e96d2824416a73e42615d1800c7006a561167da119a1b401f9b90e7aba45303fa2600acc821333a255b61ac4f2dd730dbcbb748339a660faa0f0ff994990fc06d9150bd25590dc31505546a2e81e1e920d9d944a39c7bd92fca1f2e3d687af360b4d2cc890d84c2949f537c6fc51ee08b3425bdf6ae95859fadb176924b1c11aba242838457550aa7012a037231532f0dc8dc0ee864e451141a46fbbfa5676db0b612537d2db8e830367476a9418ce931b46a18608c9f8b91209351a6a7f4399640cdf8bd4869a90483deb13336210fa21e236a4f1e302ff7f608d048b889c2277d5cc12361f9239d5635716170f9008acc140a7721095a3696431485c265855b000c8aafa7894b9c0c4c6a8c12ffbe9282fdf7bddefdd575171a3cd83b00f4518b6f2611214e44f79c5e89804bdec00605f082dbcf74984b54cd56a1311611fa4841519126deb5a757ef846be2de5c3ea2c5bc1c96509791044ec3fe1fe71cfe4d221b7e6fd0d424667c618c2798a067f6989769713438a575e609c53cf06a602432bda69a303624571b482172a55c4ff01e8fd50220467cb71c8d6ab89e683ed4f5376d3dbab517f68cf8ca93884cf0b28f3b580c80b743b1e337307f0f30d817004b2dbcde49810c13642eb6df0732df38db94532fbbc8584301b441269a970fcdc2d64a9d93f171e5d2e4e26d23dedf184f143dd7545cb61b0ebdd66259d3b7d5464e4b89dab0c2126eb49f7b3bafd3111e7bdc86b904ef4a03bf428ed49cb5ac49059c5412ca33920a574c55ec39a28ea7e1b1c590783a3900f0dfb1e24a8714dfa8329874fb6112739a9e01bedb1a50340c809541e390e09ac8c0c34a980d2daa0bc35073e48108005c5697d6e495e89362c2718bcda3a2db1bbe5c96091050b28faaea783ffc4db0fe37e2a85d2b94f2b8300a4412284991f97b022a3d01dde76dc0db3a6ba9ca70061ce256001ded52c74813123832c55be27eb098edaa143a21b5cd6efbfaf6a148bce6bf53bd17bee9f81bc77e43819f600d278eff0daaa46e8b55213a38022ed85448a9729236c85bd160a0a2832d935e5858506fd9ad5195dfe073713cbc6084eca464282100da582f3bbaa720c62534d84011a4e506df4194ab04cdb509f00c56eb20c3e43cbf67b903d787ef5b6bf19bbb4fd4dd9a5696fceae4d7f13666bfa93306bdb9f8c599bfa26ecd6d4273376b39e89b5dbf5ccacddae6762ac56bf3373b5fb9158ab5d8fc4dced7a25e66af623b356b3de52fab2e1715f5e00efa0675f8e7bebc8eab4b56ef1d84ff43a257e00e1660b88e0274e4f36dea1523f8b1c644c893fcb1b32c2bc872f3731d8b9ba57e55b45100d661e02b5fd3453b2bed735d259ec36bf12d3e16344b75b5f530e5bcadf6477aa9a659cdb1c53119b84025cfd2a3919dc346bcb805b871d016d192ec936e98dd4d473ac764ca531152ce4c00ff3d293674ed809edf37b66e6b5ef29c5ce614ff60b29214929a36756c94fc089f0308980afcdef66780d44bcd97e73eeb5001d584db1bfd3af7f63c8ded75511a2bac32112354572b2e1eea4e0c08b9a30f7e6019eba1768346cf90321214ac19eb6cca28eebf214efa78c9eafe1b0a67115d19814eac9f6dfcc7c8099373344da96e3eff5de877717441e38144f8b4c0f7bd37ac71da68e85792089911f02e6a1b0a11899a398830e4c6f4301ae9515d3bb6e2b63c7537807e74a0ad637934490f78a8f3f1bd2051f92508093b7e1bc55afaeb7b114b51bb347a5c3d8149d63e78a61262271f7d6b9065aa090d876241bc76edd69730ed7787e8321c602ba8bdd437634d6d1b66ee23608835d6925e6344fb66a89f7eaf135da14874e6f089f716900217548b3f6c541b342fd51271be74750dbe9404a240c30e19f40190bd9646a7b7900fccdba72acb49f2057bba2097a7702953920ae575164f0af557813ff518fd403e3c979c7ba851e7255eca5859377e9ad1f68da47679287c9c83e0c307345852130021ba5e341662a6417eddf05d65fec545142b3872f3daa1c741e73d09a53cad36dc633bbf08aa0f0614642dfe2efa5dc32da1f4c8002e096007c155c34637ab25524b1b1a2164e16ff08d296489483b9cc847717c486349d9f6df366480e286c27000bb8c9e7c49019d626b9a0a1e9d7fe74f2c63cd1c7a9f049c1998c90e57e2089823c874127c02a7701e91400fd8ae7c3c404e88eae7b1f8c13ad191b6b679ca216e5fe8429eb5484b277e5a7d555a7282ec2290e45aed13061f8366e63c8aa5397b507a73e73f35b52a79c75459d22b984600a97b0025c9a96ca4f8393b237d46506cbc4e565ef2deafdd65482c4e7ae5c53d08930c2903a13215ce80eec7476eb9a27da042c99d24b295bb1ccd4b5c7fc0e6be7b7975a7f8fa7f6d70c5622ea881ff03f5eede176b464d9f704400c4d2d0f437a09d77aa7327ac4185b71cbe60e98c375b5fb14ec18be04943b4b67be7810fddb3dc70b32fe03eb2ce7842c29e26f221d5a6c239e2fd51802ca5e9e9957077206f419420f2689e9d1aaa89f537e839749f971da3c70587152102051b2229dde84a33270ec40bddd56a8e4b849266ecff2f3420fc818f2f9b7d754b42012187203d9eda33cb9075a01441bcf6bd50e74cc4437678c100fe6b57b6f840ca215f39d0e4ba922794893f520837756027b7dc33084377c8e54c17eea1675da680e29cac18a5ab9099dcb023781557d811486fa83de5294fc24ae768b459a69136c3429d45a23e90b50a51bb6447037ca0effa16210d0b6fe9337f4cf953320019422cf46360a637d68b1de5e870a43b2be957b53a8c43e6baea8e4477872d0f4bec0e0c8b9daf215a2c374a2cfb7ed16555fb1bc5d74d31900c03577c6c1ba4d747a3b633033530a18310c289c208c9c871ff0a0def0e5fede87f0d21fce32928ca3283f5bf5ec64296e568e626286dbff80a7188edaeaba633b32d349c970e5a96141487ec4d525373333615b4a0789f20aefbcccaf184b98633b89a69538ea5c07da02c31a94d7c958d3ecb9d920d77058263dc74b4f4b83e082f4631fda6b676eab68936341e400a9d75a5484a9fc568eed139e751322c2c4ac7a5d5a9a3da9fb82ba782e7f01d07a52b36935f00b0b8ff269408a7e3882036056141f7bfb8196387a87971a087a9e3389bd675f44479f039c42efeb4fb4d35237a1c0c86f728da773234ec93d9ece953825d768a24fb837dc34263a75072dc23058c96226fbba9c635836fed08e3d1d43263b9a361d7d2e8769b12ef12d1e795a714ae37c217867138f216d72a0f4123acb43306fbb89c4225e96113d571a565ef95707a835f8822623ce8b9fed38e5f87273714e5ad93f81db9ee806b283b11fdd216832bce0ba5a2e3233562151dd08a87c68a839c844f9dd21544aec63899d851e4441e0246c2469204de34e4be59002503168f41f23adf94c26e588d925c4961171ed26194e90e94908ce6b1039a513a0bda9059ffd83f6dff9e20d167db4c8f162511ed05b463b0dac9e84d1d58367d2628a2617334469a6db23498e5a562a5700e57598952455e12de90b36218ca3629c57d4578f507164e2429c0372a5cb743f9137179360a940159fcfccc4b154e9afc1519233864702cb3005444233442fe10c969b26b2653ae361eb466cf8e23acc9f0a29e95680340aa635ffb4a6aadf828ae5dd436dad5987d0255d4c73cc4c8462d1a5e45b8b0995d5e188c0bb8426de89d81f32385e7a0cb805cc24ca14f2b7cb728a7d24d7092a84809a6b7dbde2a511e95f6fc528e0665e4eca509f3bc804cd329cc8a7e956db6b54033909a24645228708444dd0b3c990c9c9125b9b257ea6ddb4a26ece9eca813e584cf2cb03c9e7e4278296ab2540c798a7d82eb1328f15323ffeb5c6f1f5d2b9a1ca49b69da38c7474ed5d06c0a9c45821438accdabe79861e0416c6d7d1606a2ee66f6cb4801949f440e90f29519705ce0ff51fcf863b92540d04b009fd2ea254f329754074933e19f0c2ee780d6f2a83df0243683187942760706929f812c1cbff402f0a4f826f655bfcf242c2617abd0d82d6675eadea9302ac14350da95c975e2a0315e2f82a0a07a4e5b3a5f8654d80ce7040ef4fe1eb7fa27f378c3b9f4668128f8fc84de49557a1d5be07c5201b094929e818d1244da6c91a770fe499dd1e96265d5d4d3b80890ab636fc5e441579faf728137aa27ab27fcdd44e03432920a2fb1b7992872bff06051b43a1624e0ae1f91041e3fef7832c72f7975a5b55733582007bb5a354b016bb5bc053b28f5933f296184673b23f55cbb82b3804221d392db9b2e8f2e16422710dec23853da5996f710e76cce5cfcf1b849cf3461e38773016cda562e499f090374b86cae3525415d4e4bc0beb861c005415068df68a2548976ceb4cd4ab6cf65ed03d7d80c2d40b0479936c7796ea07abe7177f9beeb52347c086bd9e5e4293e698f8ba8b8954357563ece0a0ee746b2a9687b7487cbb7b50b43938bd1d8c6cfca955d393f697055dcfe1f540eb2a0e75eddf51e4112c23b00aad00ac34be0a5a5168a921725833c47add27286da238c7036128c4876b32e8668151e91d2ea0a9f798f3656052c5ba56c6beb75730bc9ee9203aa6e2c5be7ea5930b666a9d7daad916380dbdbb24097701da71334292aedc2c1cdd6a0bb3c75c396a6b041b82ebb389530c5eb82650ac2e75a1a1d596df3b32c1a1d0f62057a784b06706a0c32e400253fb1fcbbc368f4bd274f7a96e5b3233017172340672997e4238871a190a8c820ebcb9b4cf196a58a264724e830b4008a6d54dcde6d08a2bda73f9078b257aa0e50cdbaedc1c080b6519bfde1d91604717df2f9f1f19e3d063b38c98175e9db24e94e94a86c6298b3ade131f6fd375a66a0289fcd8869ae97d6c587a462eb7a1058402a0b9b1d53a1b4016624bd37301dcb92237f68fb3bc314c86bcb171924b819d30a647beb179141368672ea4eb0991c5fe42701446946db35ff1f42ad95006bbcda938ca74c49128d86581f3d74d166dfabb74c174da7dc4e2be3e66db7d627b498e19ac5d13e54dbbf7670f9504844da1acd66a8c77646b7ef5a3ee18bf8eccb4b97fb5aef02df1026765a50eff09d9387fb3a4e1ce6cb3dae6e552621435bd8554da7f8989fb1d1a194981c2e41f63e8a9b567b01a14aa23d9b8f80a54ed024d5320f311bd1afbddec689cd98e71a6ab6128c929e9832c750a83e4fcd342e85e18cbd2b9826f8072a7f82407ceacd4ed1f298d5b129c8b8e0f80c8435b6205a40ee7332a7520b6398f883eb688434087ad912db90a61c6012deab87836f0eedd302624ff464633de8fae7afadc495aa603866010c44309cc1708e4bce067ea69d42a2188fd66230c400c352196b34fd227404907a809ca2c18f94549b35cbb0065bb7062bc4649052d137b3f05798963e78678f84a423994bdcd81eccf9579ceb5ac228edd66e95f606dd89477c4d799f4dd90e0da841d6cf72a97485c5b23ea086877a123d8a5e67904c92fcdc4e407b12fc43ad7c76ab8d3fd98ebfdb2560d10bfc31cc4bcb5a68d89f14608f2a5d39f23a7b1dee227aaf3bbf1937291f045f0a31a50575627962e8afd7597fa15a8303ead85dd894fc8811d974a2044a9a5f7af2248ff02dae3ab5332ea39cfe48749a2debbdc7887f883e5f295aae0b251bd6422bf921eaebf75a6ee88c05e863bc36202fd38bf576075cb7681e4df2ad0b0123e302f1e3d3d0f0245d4cd0f1d605e5569c854b46a4b9da6e58acfa704c209ed9ee3022163b1a97e4f02c64e5a95c863ba739e0df28ccf4b443c4c9b0f6bf28a1a9dea161bcf5d6616338eda3f888ff8c8d45f6258c5b3273727d0cecd45c947c350f50d9bb38c74866ce65bac52c1eaef31ff1f678bff68a80eca5554aa9e734d4f0c1539e4a29fb8784a65395f35e14a840ad757dda35aa770cf3b9b8e81b2b7a3df3ca614eaaacb2fbca76e24a3a574d5ba77461363660576e840c0057ea12b007f0ff62818e8725a7b5b75e2a39c349c763cb5c4c0982eaf0956f49b33343d257945e065e068c06293e2ad512bbf95b22c0fb232abb0bbd09279fd7994fbe8eca3908a4b9ac25460c16ebcdd1f7cdbea07025405734ae29bce86e3aaff69c334bcdf8fc635d9a36781672a49d1e2064b8c5f2fd867dd0b1b43a309221ac0621a8e28a0971a45b3bc389644181b4c955132fa1305833183f74611b67077f930d2bd876221ab2311a971818009712b3c6bb74661ad326738a93e01b6166cac136570ff0c038557191ceec83e997913c4425d65ba1220182e39744138bd9a6cefcd438c99627ef725ed3b76d7052011aafeb52e5312a512a17c18ac28f830f6b86f037dc7f265a9b9524e51dc4575390b0e9892988a1c8a0942cad34c6a5abf2224ef3a4a2c1f10abe41cae26273a586207cc3f3d3b5831d331f3ec58a1ee680c925f9a28c2f89f1df1fc7261da1afcdd467b0f8d8667e4f1776fbe34bf49da96e686e6dd63e4abac27923f7aeb25d93dd1db843b5a7f1f90df6adf11f6699a2fe5efc9daa79cd17afb80f894fb8e704fdbbc29734fd536e1876e051c733d0f2ac369d5529f15713d0d0fe2c214e80b77cdd6235432711e22cc4438c7d3e0e2088d273154c96bff3a95ae1b681e81801d3a4e64c6f3b37c1a75f49fd176cc8356dada767fdf0657510b3b07e3d2e1e33e673e2dd7424a9d72f3ddb9b5d86d3a3496ba65804a0d7790554790633c4b08a7e776d816ea886ec10ca3c1c74a530ad8844b5457e1e20b97775d990d8f48992ed9fb9b2127559cb9d00317b4748136e133f2b75baa73702855a71a12ffe066145a359ede82e74848361602879a3e6832b1968d2afc8548dfa6a4b344d1c9cfddc4d05fd6a5dbacadcad43cb5d5c40cf8a0ad24cf5a1606bcb4081bc200df3f8952bd6bafe2d7aaa719244c6f23bbb63f745661a50906fb48781bac43d3ecb686aabd1f6e7addb7c1431e50d9c88f794c17cb46f7deae2933a5835a8c2c5c7fe72a18f7d9bb0fc498f8422cba358781d04c1d00bf7ccaac613cf3246bf08ea33d3319adf5f83ac83224da0032ae44ae722d12191c9f7ac0a2f7c73a655e5f79c8b28975dcf9d4b6a05a25c375cbcee11c8cacc61263f59c73a21fb9c31cd98ea45f32b2f2936761b6667208e983ff283c5b57c4f9319a5f7cb796bd355abb86420d20f2bfac8c5fa9b99891bdc31b2ed320b16f51f8c03afaf2160f29a4585c5d1accf353a535727fb630bac0f1920b16cff20764f024ff9d38bec6523aa55f8868e91d4f799a08b595d09ec36d78a65c043e0f529db12313d30e1dd83f85e8421c18464701e619ef01af6c920ed49110fcecc9937e2cb5bfa33009f8e3ef874c67423e9c264520c6371df4cf4b8a79421056b3faf20629136a762e1fe8912c27e828381ec85632e1590bdd16f53b4313df7ae06c9ae66cad2c0f8fdc0e67db1340bda89278c5ece830cee9b6213da720c3a87338aebed7d508b5ce58dd7d62d4ab838514409f96dcd50a0d82315d325bbcdae9cab94a9fb9644c843872393dcd12dda22d1c21ce763c9066c4da08497a453802e8d8cfd29f267f3e100f28a8a139589ed055dd33d495c4dd20afc1cba6210f72798db49b1d1c13635a8e19698108c2b84d741e6ea827e13b0e7e4ccf69969c533c2bcba1166df72055fe766907889e5eec755a314a8054fd3786ec7c5f398840abca63e9ec4f932df9be81d9d316c91e29df48b0264f7f226ca32ec0516120a2a7124c75775e30f4dfd3af9c59bd4ee06944f239ba86fab5be9c6d05345cb994cc969f99d26981da82fbcfbc2d24c131bf64229c594ab53e9bf8d90aafa96d11f7ac7393a67db9557f9ec3b78136173502da75b6537de61ce0f0553adfdc7cdeff12bc940312d68884c79a615cf58384fd91ace52ec84a7c56058ed03feae68993ad84838e645a4843076ac57bc59beb34f3cd006bc1d2d93acaadced730e1d441241d6532cf38ca035ebe847114b14ee520da6b37b386a7b5c6c6788dc5acf540b9663f20ebcc91982964511e30888f7db0126ccf19c367d906bf7dd3770ce15916338070f8843d5ecf64d2301c778b13f7496f98b336b9440874f24038613c400a2060f34da188d0ad2f30c820492a6c0a605bc6b75a42d4c84575822183823190514f424b017399a3ebc7c962f83e063904394847b7b24d9201fb207861eb320c7d434547f40a23da233edb5cbaa3e0fa12fd1f979e4e4a8635333d036e7e36082fa5b36e6fbbb735a43e908aee635a2362bf7912766213ddbb14febae12d78cc773998a9a89140908e6958259d6646eab1fbb76d66fb26c0825f4dcb1bbb5f12ff1f6a9bec7b00611e870d901408a264b6ceaaf802c2400352a0714d5b1e565633c4e69c09641c54207787eba3bce20a9d104a4e25b73c286581a01f45ce49e5d5461bc3d10a0e14a7bc78e237ce7d612fdfaef576bf8a454c8d8fe4eea13211f8e43b58b8bdcf66984971130ff913b569807d0784cf58a255c8704cce71fb9cbfd413faffe88e4b774c9f8fc513bba6dbc0e56947e2188061f6e979d5e1a455b0a9eb94459516e536d539531b655163a8cb9e03916f9c31f9ba3a09474932690821fb8670f57d1a9920371b1c2f9eeb917915f203f92c45f134c922205ec4312732e30678f434d9b218dd20efdb8f1f0a730ac1252ce8690e950a1f7ed8f7643071eb0a038163e7ff32b4a9203eb974e7995f7d4e68387c106941881fd8a2400c9e3f0e2f84e385bb227e191cac212b9e34712dc293926a3dc4fd863083c368a7f634c40023d2d1d9b563b730614591f45e3b130677b831f6003766cf87d3639b7b68385654fb067e3a9bc6409ba38c9bd55d80e2d56ca70c33ae9f1396025a755c9338a576893d064aa898618544a019810e8a4bf14991fc1548b8c0c938649effa8baa4404cd0890fe9eadb4f9478e031f31ebd5949736d00eeb7bacc3c7e7d2a6d58311a149bd4a50d7048c53c41829644686a5be3028067e2c6325a7594a3ac1e3dc1dbd6f492a253763fdd3d9dd888137d58973080ca55fc95a774bf63233d2f241b67168a1768c90573672d328e39486b8853944cab7ea4b9d48715bb889284584b5d2cf043c7da3400341a7a87254d3610d96b9a74f8a70dacb5b74b5f554a7de1fc87be7f4fcdfa273da2a0826078d8c1c8f2c06e07945a26a1c2e155c27409f3e84fc735005e651c6d7f16f4ae6a40324b42533cdf3dae6a3d953e38a85dd79852bbf9d09b8e4036bc31a5b5790665d7dda334114d50fac1065e16be34d1878d55b3133c8f90437ba1c0f6a0a24efd0ce6ead995e11cb143a06d5ef429401802c3050e6dbf08e1dc0d5ad24511bfd65c5e4d4bb8c70cc6b51de81bdc9315567adae0b70e8024902c8b5ffe94a1e252d35b2904ac15a28fb274eb478cd5dd52e52222ec412d1ae4320d99dea2d2002f7c41dd6ae3fe3f30164ad2fa41d30b89dac42e5f23bae6ad4ace551e57a44216d5763643e9a4611e6c81868a6c39bfea367e58bf7bb939af81985e85db242c0c2e5e175421c2aac961d5b3f5baa03d1ca2af86022e71aa2dcbee92a15d0123d5ff3f8d097cbf8bf88c2835661834b881858e78dbc522ce76b354d8e251a35b2ccce36aff735a9dd69d0fcdf0c24be8f648180905e3ccd91f64a4f7817085e234f55cdb57da831a89cc601972ff54979343d907c97bd76515d6f3a18ac0eee4ad53ce4dd44823498308ef8580e45dac2cc4504daa8903d2dee84d3f7d8ada3c248c5be21115811e17f73861b0f8fc0a1d3089021731e0f3a33d26906ea05f7a839beb62775741659548f09953acf3ec6229c9c1ed23d7e93d358c812c817364dddcdfa0105bbd2443013c5e3b936516b6c00d027c03483d889c74ba359b09aef7c5269865d9ddc1b0056f918819c6d1062ac57dd74adabfe69f5a1409570cf67d59480c48cbd632f86bca4bdbdb8a8172b08a04709ad19bbe6d8b5cc04861ba1875588014119c1dd4627cf04d406922aef53f084caa6604b447dca158c3921d14766c129dd6c678a1b722ceb5f87dba7c3b08981089a6b62d8f9bd5fd486f3b7e7c300f9b27d3efadf603ec0615ccf8709b8c8b51e0d604bc0c9bf6698b8545c2892e14163a081e55382ea6485b1a009b4661e90f1ab0d32d22584e3ddf77eddf573e6377e9732f43dc9e5206dd3594d343b3540ca5a46a750f0ad65fa9bac364ee6492c4bd2e2f0473b4eea9a1c912e1802940a1c7ae1618ef29d2f18261309a70541f56beb96aa4b567e4ed95554f7d4ab8ff695494400b2778c2d362ab61e89035132af1d6212b2200e9d2228a9666038ae353adc6e6079bce709d1102d71c64bd53283425ea9b96d47534d6a210df543d005530ef8be8af7ee10e622605f2176aefce7952a9c5d71c15c18e6b82ba83f7a27c8454fe204ff3afa863b8a03139620e991387bf357381b8de665e4721fb1f91ee7b48ae279ec11bbcfb572b418d54642c0d9281cd82fce08e4cc4c11a5ab627d18af33b9da7c4a5717098d8eadfed3f09671b7ae8c10d231efd153ca98ed7ea111a275a72bd7f45d6b0a62dab76dd74acd5d3fc72aee2ca566ce7a25faaee225bb2cab394368315df1638c84639939422167df1a3a5841183a9c19520cea91cc36a0468abc05615da39e0cc67fab95a6a875dd3cd84392515fcf69aedbd121958c34fbcc63515cd35c03daa657f93fb545be206308c7fac9e12cceb6e16fdbfebec8d3bca92c437fd6109dba341707f62846fefdba43f5101000e1eaa8474c0ba59d21fd296a3d7c5609ef1e160d4f72b5201deb975a4b93a99c8e690666d450b26db281886ccc2a8733797475ef883c845a74f863b3bc68a500d495c2ce7621a815d51234e93160be0505a2ae7656fdf89b56d7da030ce4281f8efa35f99ddc59433ec208c8d93e12fed7cf70b63c28221ba1bac563811b85e814e5fc16d666d9ca453bdf2e5e26d6a223f26ff2dacd6ac0fba31cfe49f351439ebe189a569d3dc5fb00099b1bdd0de628bfa725f5db45b4b7b1318b501a2b0b2b79fc6edc171dd9aaa34e0f02a2dee9630d9a6bb82f2d1e09dbe75f413ca4768b75d9fd078da07e49bb16a3914d12b6275fb46381566a9888c5503718d5ed596f94c78ae40aef1e5fc197753cef640535fbf9ae097b580d81adaceb67b2cda93e59a7cd279405c7b6ccf64908b0e52b035ecab64b386eaa2a5d43d9f44f6ce5237825ea7a183588b7367c1597bc4d340fd8b753cd64a3eb01e25479b6bd54e494d755d1adc1e369f467eca3400ce589cb58633c64bea1065765a3ec34591a606e3d0b012f16554d42d3cb81027c92e158d58fbad6c34e62f16d30bab657dac11c832625a50c8649beb9b8c5db427116997afeb7fcdc8d75996d47610dacb94266c3a34515d349e1dd65473006f4a67aea19d3e03c6762d1d60457755344f9d1c15c5bc470ba312e27e85c286fc5a164b95065fcab4ae7dbcb0edf8dc5aa1fbe9c81a0b0e38d022c0bd6d3a66305189bf264d7fb44ea2ac459913c41451716133e9d188cb76a3d08d00cb0e9d70843b7df20e224898aa557d1a2345cf7dd2451e95b444ab0d42e9c15685a0454e3ed247d9ae31381c5c81ce6ca2699774f8dd46bd211a34d152912fe83c309afaa0a4d631dbd5cc15d428b1b10d4e502f0811e432381141d1447e141836f5f6a62c9f2c77ca3bc1307078d79e53e36a0ab6c188abd96fc8cf6fe0438f51626aa58c71081f3cecc40228faf8b408bfa60e56eb83709c2798b37379b0436fe363b9a575519451f4a5b14d8aad86bdd9635630974aae541649450cf54ebaf25c25796c9859d346034ea70fe49a2930b1fc945627e69206e87509877a257a751cbd8e7e32179a52c9b3f4526c7a350c77d07e0165f6e740da964843fdfe419d129085e1ad37d4469d068b4f155d56ad149429260394527330e66f10f1bb42b8c4659e56737b23918b3d882b8e19a041504760770f1fca1c29d0fb587a7cf61f7d496fe778e0104411d8ebbfe5ac2982f9a310b1f6a50a6856e13afd69a6e2139ff4e04ec1d9c5b78b9c589855a194ce44f71ba60b32b177ad892c6c249d3841ce326b19264110af1f61f19e21050dd2d95503e5c58174ec8905e1015396a18e366522e158c97d2b4e7f8eb1eddcff607284e558e877706f19e96fe452a7b82fec3b81e821ea53d2c0e163dba33f17ebea293c7af25b2db86c1315971d43b1e9b9c43b30a72cc885da39d9ac64558c3e7fc14410320de191915cea357eb9326d83ec087faf0a536fdcf3795b5690a87d93b30aa2a607ea6a75ad1ad6e03987220b29f59718650ebb3bd701998d0c36f97776ffb53b722a6bc5842b6d1a94822a76ec58075f1ebc45e644de4f77e09d7f0af81ab3be5a1fff0c8d95a2acc278f33452e391fd968da7170fc6211c8f2035631820483c56171fb04e9aae6b7e6ac12288ce3c035a6c9bd622beca6c0efd9de157802638588f9d5990e429bf06276c8315a10d6dcec52463ad9a66a20576b66ab1b44abefd9101bc4a3759c44d60776e9090ef12b67f8155e1a5bbea943cd547b571f558fa66ee6e23623bc233188bfcd74e0e3364e68ab735f0964485774fa0f8183ccb44e91bd81e485471478ba70575f206ebebca4c4f89cd43a7001e4016cecd25f768badf2003c45ae4912d9b8abaded95e471cb4f4f16d7a47e9e91f2582d1cf06a8ad8b8101fdf3f961c27297a29f5e79a73a52346235d90a5f18109ba1a8ea67752507b00ac628e0ccf95f5d635d5a4ef543c480ae7ae8670afe4367037e0fc76a5ac0244f6dd52f5061dd1aa8bd25e48f11aa94680fae8f57922e5d2b2b75f91da3f758421cd63877ceab2de7a129f7c779c4a8809c75842fe0026034616ef293b6aec2732a251c49053c8595e8bc574aa8e9dfe34d00cbb0c79feb96ec5cdb0986e0d1a9d4bce978f9aa8a2f02f0baf0432ab591a36ab82e5cef5c1b0d21382be256d89feb3d368388a3570c8067624d0776436a514ae9fff4aadebcb0c40b6a8f1275d1bd3168ecf5707bfddeb443de3950bf88cdd4c59346990878d4f0254d6173a6d2875b7be52b2fc60d3e86704c1049cd9bfb687d916f87b78c87ab3b147e46394db7c9f2f27853f491fe3a0b0c8f3ee0b0cfd6de41a4bd3e22031d640c75232aedbbe2b5f2176ff9d26f05c75c9ece22aba09850371c9a8751c460d4b60c52e8ac3f2ef96b520029e1c1c80596182093ba72d08c0b1c794c4bbf961756c78d970b7457bc7897958efa28f5b796173753ebe469ac9f239f5dab2d9ad0eccd7262a0b129b21d885688dc9895db63ee101915378272d539444cc9ccecb4931095dc4be0ede5c8c363d237fd76854e3d4f93f9e609a5b3ab7a59214d7cc477ac80b743e626f6db5ee947604c8f42b148d11017306e9233f841bcfed511b583975bd9c2b2cc0c1e9c4b22de1e58c8dbda05bb42453ddfaadc28a8f85e96106589eaffd49505f619d97baa60ea3d40e1928fae4f0f084a3a5c6af763340bb194ea27bbf84bec91c8329153f17592181c8d644739ce8dbba4b70b8aa97803f92227fa0198c85c9cfbcc005f2869b9a53ef19a5b07a8ea16c97284b3f3a3a86d936c32087a0b302840cb1598121308c7b0e09e52ba4860b4caf1228369ce604c78ca0ae369f41545cd439a0c3ad48a17539277ac2a5db889f65a3d5ab341606141d7b05f939f11d33b8c61218216571a6ec893381280617b4ff0029d1689e5c76d74605582475aab8f5449cd99e740f485f84e693ee9ff7b47d53e74a9820b422e4c356c7c16bbc52a2adfa902577ae5c34a42a4355c8cd2cef3d2a72510167bc0f9ca516e48ab879a11df93de871d7a7960e48d09422a33773f80377929ea371247755f2f8d9d002d79aa3007e2bd59682302e91f5362f7b30ce19498b744bc97d7c15689a013c345ae0b4aa3fbd6bfa3b575c4965d51f31b37e01136b3dc8470a5d8cb9979629f11d38ee6bd3918c1212ae826b881e0abf95c0f78729db9c492fb3498d0e0b982f85b3d678d467cd20c2797799b9cfa67e5d53729228f0eef9de7e1091e325398e200920b8e1f4fe495433910353caafaebd629c9c94328935ee5b0b3de90e7637b89c739d4783ef2eecf2ddbeac4a6208d409978a9f1454ef9a5fef1bd66c65da9d0e3bf986b3136fcdbcfcefbfc7fdc36297ae05d85dee70ace898b7e19c9c7ff3bf7c142039984fe5966997790a12a51a4377fede66b7bb91d63a1052d63e7ecb72360d34d552c23fd5e544f3569117ce261cdb887ab6ef5659581f35d91804f02d6dc0361d2a110fe91cbf2c98b1e89f5d26477182e62c388fd1e6bcb9aa9df477ca9f5f0c59031e5abbd028c82e19a75ad93856e9ddf65512b619b42e842860e745d0b32d4e032e988061f261bbab9eb121442c89485fcc13fcc8ecaac7477e59af5a6de8f8d91c01199f24900fdb2f0f74ce1851c21acf6313d38caa7c92c5753c8d72ffd5bc32c6d9818571616bf982e2918357dbda9939bd18fbba6bb022e409b06855fc1d83ff2680948b59428664d1ee33951ac26d0e3ec7a6de16078a81b5cbfd75e120d93858a8964a1fb2f305b95cc5b225de66034221580dd5e47ded0adf114c458e80114c9621a8904111dcd3acd79b9a65e88b84a2165e40ffecc0a1bbbe20131938071212c2df5530f3deebf465c222d89284beb80879099181d65abf33a425157ef4479d111f53a056cd07100a73116e844842cd3c0dcf37a3eae106d28ed663724a021d35aa4688590fa92510cbcbb748d6bc5ddf2a76b844411cf49eecfb0138f55ae2d3a2ce9af75e5c3a6cd61a1000542a240b068d666e51f578b9ef290fb2c24b8fc32b1f0a7a4d63c64271c2b0137b1022828005c1fc57250f24e0160c00c2bc31e4eba2db31209670ed573877d48591db732d8505f605fd1360047ccf7e3f947cc92061dfa45b36d0c2aa9a3ff7e7b0f827de8cc576ae7c3b34f2ce9f31ac7eacb24e47bb8233bc78bea8919a40e97ab03cd1bed9531506d891c9bbc9b8164633414e51750df006d09d93a2a98bd7e86e3a3ba4f0406f4a87b6ad65acac5839dfed8f75c516ed6319af680286ae6e1c18e05b2b718d1fc4da291688880e416cffc3e45d9e8884a103b77798e1d78ad6a0f3b424d294470b4f64b557ba0017a5c0a6018fc816a83ff90297c3a5b80cd6b10718223ec6e7b1e8e08e919c1aa353c6243906a41907d41fc656ae2ac23f099a39966e4cbf44688f52803fd4244fd4f6a5e361ae24cba752d9f50d8705eb31e4ffbda781404e166a487e436c4b64485654a5f9532d14b68c48afbcf540e03e0e4f360bc59238e27089689753de52fb56651dd6186a7031e784c0ee783c9f7e46dd47130cd379df7f773832cf422f01968837d308c8845b7311d26a68e9bad9bdeb3346e4855a0e6040d32ec4bc49057f9276413df4953aa8f3cefe2fc183b9409e19ea0ee7e20966b40269b0606be8d79f3d15cbc18ce1e3c477fd8343f9c7e4a05b595ff614a8746886c138a9250e57b2e08a30dff4a38f5cb4c1f28cfb15e27cbbf90e115b9f1740a810bd190a8b69ec3eab07c6d33be91e94b153e08b4ac9c5f5acb440786ab1c919e1780748126a85ad16ccf0be2e2abab11f03424e08e9f855d9f82e694dc61ca3f91cfc5fbd29552a617a5720e00e6e259a967a2600a04b3c89ad23f5c204a2df850257563265a0698ea51d0bdcb3f7eae0cc09d82e2d2f49194eef7a298c4f2e69a2e601d66923b7101c965bfdec65f711fd77e7e1bac086e529790614de681821f8051955231fc9bdbf3e4ad658c8fe0095bf2196efb372126301ab73fd150d22abafd22fbc4b3c26233326f0e4a323efc9c0e62bad4826ee304654dea66579563d5809c9fd8c0b4c7243fbc8058a7c8bc0775f812b491179c8655404f94834e83fb4a3063837049131097af857f238704c6e579c9fc3998b0f9f359e0e887c1e9ea335cec8013b4669e84f3ac2e0da6ae7bc8d311cb200c30db5cf0d4e3510b5ccdd79f960cf9b5d88323408f092eeb61ff94423c1c72c18986fb2008b91ee02ffc6264cbe080920b0e7998146f6ceff57ff517445855c8fe6165a18122ae6b0a8e7ca2bd9e182fca7fe2c031efed81c6ad740276bf6266259e926bbe7808d9557691002b2e16e568ebc471a86a0a84c5d42e1c313ee3d75c071c38ac3b999ec723710a872d6a69e65bfb1c84054fba75c5e190be4d89eae382bf7cd26db01b19132a10324f83d0a3f9a1fc812a6edd3358b30e0dbee8dace4962883272b312182af5b33b6d284c540e735ea45e5e570e5faecfdc3d6864ca361be0990a1e9af0ac1c5e081f4c9b21d97848ff82ec0a8ec9df53cdbbb09c429f6e3c8090929336cf52d3fa440dafc43fa8f2905b36bf4c51a3d437788484675aad174754949364a7183cd2e419dbb5b596b248c32fae4511dfb027e01d994bcd0332d6846c2bae557ec5e7a114c088bbb8d5549320225ad5e1a30bc4d0cd168969d3c6760eeeae13033e6e00b25bc96ff148ff1d55cd358c5cb1b27c46b1a921498e6755f92bab97aefe3bd29dd8e7c04ffd8434963f8685c8226adb7b21160a64ab5e2799c313684759dc9bf929a406069830c5b5d6edfa84c2cf5942984f2077c83398f700792a4f81f27694c2e7744c792ff4538abcac87f5116543644eecf955397886befd3eb1eae99aca085ce87eeea0b23223ad0a93414cdab07db456b5fee473f8ca1e16abbfe76f8c3f7e51baaef8c7113f44c5b054bb1e54bb46c5f292d62a5825733e64d92f2b23fa146d6b2bb94fcf5fd19644838dbd747c155badcf8b7af241d849692db51d8a272540c0797789412a680302f2a04ba9ade828e20d99a32a5c4c9d0c301a29ce94d9edba28f3b5873c15f43851b080f98a0e5d8a515775ae86f16d9e64c61828bb2b790feb0c8c8b8c6be3d185fe99791821b0a273e8d8af4b5e535ae99bd1d0675942443eaaece04f7dc563769a992ab1ee07a316c51a46fb217c5afeb4b532cbfd5852faaf546e1d4a1eefbe71eaf42227e2ac12b12026c2d23e0162203807eebf03bcfe01973c23f9c3fe713dd68de92dcc4f75caa5562e80115b2a8c9fffff34bec457c97090e9c34158536e3710f62932d126443e433aa96509d6f5a7943e2740c2c8dc8f341224c38d835276f639d5518efbfab9ca271f63bb799ac9dfdf5c593e259d9c64f57bb4ab4aaf1d8ce233cac4f9720aa9872fce3f25607ca8d6dc37a71b38f2276c0fa09e73c32d493a30c1b06ca46bea056c4cb80b60949feab47f27b4d53bcb89404ee7751c1f56ed620dc0a56311644d51ae5380daa491e1a2c3306a9bcfd42a2b3a7923613510c06f6d869ed12868e31f0ea759976c710d7ba848e03d236cbcb7358fe9b781b3495241a053ee365e4b68e5cbf1e858fa7639b13732630786d9b830c066281c58bc4097ac5fd67820c00f7bccca670b4b21452ba151d23f4de541895fc1691c1cadeb4c3b0ff2708cd33c6c6a5e97727fa1151dad9b1d650f99495c3dee0834659ccd05b8e5fa04650814234c2c4991eb53b80c8781f63104870f0ec667facc891a27ca2d8f6b2fabf3e221460ea3103ca54dc8edabb0623f8df1e0357ca13642e42422e16b04a14036d12baa7266e87d669d20d9cff0168413f04123a4c64a7aef8ea9fd252f40caab20b097f852a71b8b46fdc2b3b6550d2450a9cceab252d377a0578e8b4608a1527fb0eb2d03295c0c8931462e3d20777c7e1e4dfd8bb0bd0da83bfc78ab43d3b57941c8c98bc80156e0d44d951404d236a3f1114a1c1b2792e280b2a0b24086c8b818c24e0f6e8ce6e542b884dd882f52da49cad65a305aa1c0186cb7b3d972c5b7f92c58ba61ac9eb4082f47e13679c68fc6d29abe2fcd9a5aa09dc6ffd2f89f697375bdce5bcfd04316b33f7345ab62f6dfa0dcda161c54d4b681a00294d845382b0c8c9c0c56845867b7bbaa08592aff56f46676c78433c97673d21816861d6f78f2925fff324ad060a132d988b62aec8bd4b00cd369904875d03e6296e2ca789dcd85134eba0a13b41a4873e9985a692a5e3018db81729d427fe181592234f21f3204c581ca640e635e43150c9ed84494db75717abe0868d51bbe723f1fa4d0d030e2e7424830472cf4da0c37b52b7c95b0125173bb4e91367b8324ce840907ef6830e541844ca53d11255f3442cd2affc7198cb24932c715e3b50eac80612d8aa94e7211da732d2c054f9c7c033414e023ef3df3bd0643d658ef40cb0c2e7bc5973570d2b59cfe621ff8d4d34100a18a1a8b6eddae2239fc7d98a5a783e9c331409825c461117a4305ab388f0df54c26ade10c79c6b2840b4eda8f6e2ba8f3736178b2f33108fa1c2a87c26733e122ce496570b7433ee290188a55784a4a3b59f279b1e8cf080d3217d30978dc5c2d540a3b23fe9fa01bfa126e387749a1784dd4975c4c4e797c3da885afeb4ca22d1939f3eeb7ffbdb02fcd9f821e8f76245c947287b502b14ee24777e45ad526c5b4ebb83661d74177f00811c2063fcebf5aed24475b22ed41b17e7755d87730d2181470c68d9086b94dc20241296f7998989b451b0d249400785b818619be9fffa997f6704a0b951517dccfa2bc2e5438da79410055a0e36baacdbd4250011345ce3091ee527648997250da419db9322ca2785a78ec3e7340100c34d958ad4d4890869a2ca99704cad6cfba87d2ff0ff2aeb02aefd170fc0c6ada31a83d15108490ac850fbf5bc5825bf5270ea8ef97d0491ced7b7a8e687634bec075f49d404e612d33341dc62a9488d82cff91fec2052793d503be6535329f3201ab620d087c8d637e6628fe556d3471ed454a6ed3229c816567eb85a0102927ad2edf3e137012a62289c1434c9d5ce5c2b609d2587958ef9af94711899190c522b974e2bca674e082fee3a7a834775e4f6b574f9b9b3c115aff302c93fbfa277732b2066c6fabdf9bb8421605b32ce4c9abc209ec3bf48e4f69ed9603454fe3c37134a02b4a7a6b5531d4be5f6bb231cd44864260b6ff523c90e12e4108bc09fb00d80e64cfd5701736e5c10720599b68388c43528afe564ef2dd9c47236fa4271eedd09c07eb3375e4ce39e1559821442933b907fa56b223f8f8203e956f9cfc50e75a176a7a102587ce0773787df947be5f26bd8f007f39abc196dfe31dfb2a7d9648240c79c35bd81039d1577e20aae4c2f405895812ae515aef90a2a860268d57773e07456ed30cd37ce6503453ce6120fa4cb42b82d6210d463b433c8f810e8592be097e0dd15a53f9593ae5f86c71925889f0b1ae681c96d20981464e24e758d6af276c4faeed3684acd87ca19da5b8f3830ece550223de5b1b3e2a86ec1950c9f1c64f85e5bd63cddfeee0cc8096c9a6a1e580ff92a91f42c71da7cd9dd572ccc3bd76ccc1a231776705ebbbfdd2ef2f4de444d960e13391c4713fbf690e18b157ec168130a254f5caa51f7acfcfdc990f59091a7775e8e352670e2184acfc24981296969fbea72360a77b647c0bded581f9c93b416c6dd99911cd12b281714d7f2bd406317fc2aeb7185cf7827593d5c38d7eb790a97386085422e8e3aae768ecea2aff4a5368728d3bddd7cd331120baa22e481b0a159f6005a17c5b9f1326b1bc34d8ca2984f1e93e090bec6916a7a522989b47484c55c5c24274bf2a00ffce82db437c8deb99ec5823df45f39b0432ac3a27ec307ea3215022773ad8e113afb1b9487b7aec862d333bd82514577c3282140123caa65863de2c45c8a3aa1b2907ccb0aa24fc1a7a318c099050a026aabae633dc735097d86206f63c1ad67a7ddfc344af27f6b4369afc0960912836e5f830b21a6c742a62ace36bd0884f927816ee8cffe66c842490db8513d9911d76bd7300f02cee7e730e838655acf38bdf4f2f60c00a919c7a6240ae5bc4a85217691ff61bb52392b94ebf0f91704995c11d6a70bdd5b6a2d07bd990eac845256c6a6702ac8bf859755ac32bdd40352716b7bb154b623545f1431ca0824df96b1cea2ef22c753c20909c3852d5a2b0a8f1bc2c5b57ef2ce88928bb5d691738b1819b47f3754a736d5eb4b6279dd0dea76440f5c5c0551c8f8857976cdc8834aea8532de62b4d9652f462b28f34cbed37b058256f4894d52a6074a180f5b8b54290abb35d1a52f85fa56d4483626d1e8b9565706a255102042870d2e3d5417d497feebc6e4a01b00114b13d7fa9c35ed2d80ff83e50ec3e261a2e50ad7a6b566cb184b8d97702a2a6d1ac335be0d959843d23626ffb82e5558a325ae224ecaf7dfad8e5d2900292e930c218010489c0abbe27b60e40a8c054c4ac06f6cf77c5fe02d10b80e036d0f1350c0217ec13941989c77356e4f1f41193731e5b39106a2b342ee40d947f9f4bd94318edc142e04839a0681c6135b303c350f2a921ac93914780eeda69066b4fca6cf18b3ad637905d07c6e5595ef20f174375c800811c2996a4da02144bed5370cda1514a6342fa358ec7b77a1ed0261a5b975e49f4b10169a1ed400f2d56068357cd36a36f602d6f44a8559eb9d81daff6bf50d12a10c604de9d608bb941f1b9f4d1b01b9b0a03674a97c4d4f00ff1ec482b379748e89ba9b59e10816fb1e379e41b18bb983dcc13b1ff061329634d903882c52cee7a9c5dadb1d78966f971fa1bdfffd4ec9e47f3999b43aac620df078689d5aff93092a441e83d406905e838d823b8a7b9cc5bdad7ddacc1dad636df64e661c01086b47c42eaa5bb191f00e7e2e24737546f1b064af55aebd5db7f3136108f4b302b8f797d0f95a6660a46d272a698b1af2adf36aa02d58479923b610caa6d3243cd3835a69ad113b64132007841e8e276eda98e35aeee9e92e815aa511c6abb2e8ff217e23c4b854c30f07f9a6c91a175c667f3fe4cf364a9bf8b64a779ad094babdbcc163acfd2d2403c776ec6d8c28c00275da0a89bcf5f4e85064506de44adada1cd26d28368c4459d050b28c2eac3606044583b5183d9a4684e6fea25235f61994451bb40d9816e87fd26a018fd90b082721543bb068be3bf1292d1d8642863f21814abfdb383940f7d2e36732423835e901e4a02deca3670c6e5890486a7438612d3134ea74ee58df33a71a51fa85df57be83442e9c3412956082b8e1721577fd70eca240195d28513815d29dae21cad7029cc073003b99cad2cfca81716f8ca80bef3fcbadf0c02f6d83fead919182b7d680949badeed2e46a5f378212df2f019d0abb6674cf05d35dd8a43911bde1912a75fc70657269e7dcf0a6464e7216e1609879a210497781c04b707adef5d0f008c857ab904705766ea06c8eb9152b3010c700df85e9d015d3bd3869bdd80b77d178a570c3d2506c16c2f5b136a042ca9115d6a6a5077b481b5c9f5d9d8a00418aae9379477ff9d4aa81179fbd71bb5f843b71e409b539c456950e87556b68885ac6d79a0358e24ecff786190dda56da4a2e3c05ee0b8d98b593e5babf0a79c186b51cc4288106a918177b21a4601cd771688c17f4f9f3f34c310242f0a3ebd2c06110626a75c715a2e6a69200a11806ae3e370a0a8b6bdbd5e7704723b6deacfff07a82e328b980b8af40e80684052dfe431da86a7d739caefd400e51c9b99358d215026856f7cce14029711403bd5a0c6cef0ab575b83edc03da88ef95331371ce359f1328a9115422e8189a6a6cdb0190d57d7d9a1805ac733198d872f2c24da9dd82eb08c35d3b7445d119cd440bf5d5007739f0fcdeb27cd5af37fff849d4006fc121f442735d0c23c8c03991fbb42a050b1ebbc6e753286e69687f45c6d4f0e252a3dbb2ab1433124e616deb4f403f9db31f01bf03caf087f3877604f286287d459ca0c7540f48e7a74c7fd88b16a9267a8f68d6e20f6dbba733f1cc5c090c1d0c94fbcfae7b5d6edbaff61a49f529be1294aba027a3028f5717407226ba1d39f93f5311db79574848e7397975b49860797eba5d4003616eaef1960c6ef9a3a0d0ab06407b262ac5a84d3e92305b74b6837cec8e4892620baf9280c1681e8e13da002a96112ba527540949ff2394154ae8962193a48431b3ea2e26cb4d3cb8d4a064793f8834556b459a5a1cd94ffa8c650efd04441edaa62e0a47108cd241f1e9aab394707e1662aec2b435f7b583afd2ac12c9360a030e585f6274a9035c2ea4600d831a88b8720b660f4d29d00050e1d204bf1f355296991071ae09c6bab052260155df8011019e73f352188868d51fc0d382e465687ebb11804aab730ede0c6b5832dc26ae53ad65515c63e8f882ece34b046ad02d058fee837dd72e72df2fd039f4cea6f7d17501165c664cec00c2d9be87c5892f639caf632bdd8cdf4fc3e026c915a8f0f6bd0b658dba75b2bae81b0ea96e51b664c38086549305ec64ba0aa0b6f96e6ac70b5e0a63b65931d8280f1c152cbeab93e99c1e8200fb707d3711812eae1bf59426cea124e6f0665e2a9851bffa257369cc66b4d5d1f2ae1964729df05688d01e440a1f92158d214d1ac85b4eff15e3aaaa9070131ce74b2e8c5d12bf8ea4e0fab6d11ebe580a267bea9f8ddd6eb5f2742ddfe5ca0a6c8bc1863dc1045341f7f45fce16db744a32e7c77fa867f577eb96ed2c306b0a41528ed1d1a633c69359646b9e4f6ceb2ab2e077ad9ae1adb9583b5d679c149fa804efa5aba428f1d7246eb359c3c39007fb09fffcd2d9a3faf77ba3e425ae814356fbc3578f23eb5e0407dcd79fd2729d052a69f728b58d8556a7d06be35e2b860e8e49be48c645c2d34e3d982e7c2808893c1b55be6dcb53dca55af6ab752d29dd432d712cd8f541f44bc9478c01b520e4fe279e261bf3059b2fda87e1843b06e4009e6da340735ffa04190d51321f20beb154d7516cc5991560f4394de54a0222ddaa748ba59c6922dcaea7ec6207569942f5c334c4d0a7e9deefd96407aad61b8a2d25dff3fc8043fc13c89e1ffa11faae1ea6f766aa36c11d23e0b7ac1582f3337f98ee187605d15247b4175621f16051ebf1ee4391bc1a05c0308c98b0fb797c1d041035ca9ad5d62829a092344eb95d7ac50218606c34b3ccc10f0c3c934cc788855f6733322466686a536762e0bc10b990949cfa86515c0a2276f0c189f17d0c7b4c4a18bf4b699df63a38f3ada30937a54db08ef91fe373eb4d976aa2a5da3df68b5f6636ba67f38cb49124407cdb812f80fbb92d60b190accc7b1013e3a495a3211b12d2db424a06d00715b6897f470f3903750157f062cb4a6ff92c42e0c7a5b24d0b972bc55d2253f248a2ee916edcab8a5b88cd88cc19e6a591c2c90f64def6059da81c28488672800a367481bc73ae2dccdd89609a088f9209d2a8d3d1bf5d3ece65c27ce593633f05446acd84d1a07f7fb637d527be8580fde3d9347ad8f424a71aadc2e9a7cc82daa0dc2a89a45f021dc8c5481848056e5248b8de261715044641f04c819810be515d71ff6a76a275e679a16b64328c0efd5adb268792227bcdebec3a971279e71e50f6f27a211781b73447e57120578015edd6edc3650030bdb13c3dc40153b59fa46e01001199ae9302949edcdec81f477f50ff3edaa1f166a73696f4a5ba47f27f25ea3587f00e8440f21c0825dcc7b32f72fccc271015d0f6330a3f0a93f1ce87b0cea7dd1d026f0502c074a10b960e5fe70fedbb1b4af74363f251f1ff74068125aacc4175b62f25478bc27ab9ea118d1c4236025165890f64829752261288ebe189ba766f7ed2af4b03f0f6b350296b216410049c1224bb9f1ff11bbf2fd2849d251b19a014e43296dd1d0f926490a435c45bd4cc727947c2e04d83243e61e18484f904db1f8fbcf9f3b50c05d2161c63c149526588855d3d324a53e51c312fe705870a04b72a5e01acb842432a5a0dbc4aebccac8b90dd1affda8cf6979830557a1f78290d9594c9c1345bcef49e34caa8c14800a2f0cdb025b6abfcb7f40313d002a3c1d36d7a585508385ddb326802b512d2eddc1aa4623fd3a73bfca807547fb1653b9eb4185761f4e9ea310baacdeca31d048030ed0d0c82f665b6c3e8410c465e6e86ffb17f3197118a7d5c5502aa061a66af187148229fdfa34d03da670b056d72024e5f1ce6795776b0e3434ca06001617cfdb576cf33d02629da228e8ed5afdd5db20074fc9e6b5f45266ed9c376c2f90f6fdba447b05e045b01326caf5797bf02124c7dbe0c170ff6e4a58ab0789df11508035c933a97e97924742b8ef6e8b5029e1db85de1bac8ce78afb1476b982ba2e50921249a3bd302902f135e80e1b14eeb3ab0d7983496db31562dca28706ccd9402a373803d8d4fa0e88840ea5947782961bc3393000f15528baac4c3e2e4e20e36a42b5e7aeb8501f01b02f943fdd9839e8599cf4c322518566fabf5ac1990050a40f39165be3af2888abcf8e9a292d6890b32698f2073a4f182492305e38dcb0ab168a939cf7dbc0c272609e09a645d3c457663b63e78acc90ea9918628ed93fd10ff6f4952cae96ffc504a0c4726fa3cdccf490675cdb73318bdef1af0b261faeb0050a5e8ed73d333a5111fd23e75eceb51b5c2d59f61ff31814a4e81be5174dc133c8e2d347388cf1aa5e800ba17d09ae2e1576d9fe21b126c036a16c701110cd9a2996f168ecfd2bc748ae5d8e10149e48bcb1adc2cce7c6a8e7c84997a87ef641b94dbae093f945de9db32d31e10488356de1ed8bf4795adbdeb9a005290a4d13f818dcd5a77e34cff6aead8a2daa31827b1b42c1fcda564ab4dd22f4c2c36a61fb30ed3d3e845b0760e4af65e73fb10a75c9e870d0b7bf82d0e5cb4c11a299edbac0dd46fbd97457884323b8346edf5b3b29442093b54069cd8f3d30175b0c250fbf1cb7feef634a9ac77e548a48027feaf85b16896418f53b4f02fcdfdfcc5dcd5e5f227b5d61832677012fcf172397fc44eca2f0b5cbd027faec35d5f42b70daf74acdcbfbbfc1e58d0f176450cb8b10650f7663a605e44d60718908bc4ff83eb0b820ddc3760a0d189101ec46295deecc111aa32902ce0e1a88cab335e921e120b48e8296f9293c0bed53fd7cef8d4cf1f02b31ea7b2b6cfd0f9607e06a033a013e5c14636530b637bdea658273615e329e6c3d326cb9afaf5d0b9473923ded83ac717526dd4df6f495dbf6faf2ffbece6c2e02e8c76345655184004221015538b706abbb40a6ec8806f266988d8d0edce01833ab25ecf494618559973e1b5c7ec6b98c54364f74c26285d75af691f5e40f33fa04b7cdcf889b14d278ce70a3186e63066f40620d7058c962e0e3a462f71ce9b42cac3480c546c7130e7df8e883027aaa744c84cf02e9306ec9e849267c0e4ca311e3b5d292959858e146f708d47b0e9207fb0b247c0c4528c98fee8d3d9692d14f4cee0d6f0d2c4c779fd38717927d551f289dc7fdc021c8778d7f8f656ae05b781f466fd075fdc7b8af44764286397373dc322be4e6e125eeafe474b20f35ae8b73d8d95caa06c7f72eef3936ae39357c1e2d7db9bd7a3a9f693775399d2c3a9924b3b3aa84a843251d15bb3c433bb6a4feb003040bf1b4afb7a45002d6d5bb49ab320853174c76bca8f7717378d472598a16f809edbd6c9ad0009077a17a15c58f460e27a706c8c98051ff76cf76729c26ab326711f7041ca4559787f5b57c41fa64a15f1f207b42198871e217c907524492dbfc8d34fd72e4e01ae104e98662e5e2e82bd291fe9829ffa96995f1006447c3756841560b19f9c36bdb1468885e1367f95e5535da9ea6d766e7c1d54c0e7c085e8e810a548f9c59c5005cc4fd61fce9371e20fc66c89e1f32fd3e2ef05f6b63a497dceb6ff59c1e03c0aab6ef4ac1337865328b2c9f047e0704b50c59305c15a9319949e496ebf56a7932bddab8bf9defdc7d362266adac4eebdb5e456275cf6756c490dd87e7c37c01060e094336a3740ecf1c472baa5751419f3cfd45d533371d1a52827ff0c7026624154bf66eb2f7de5b4a29654d0c9e0c710c32c8177baab0d873ce18fa0f39da34e56e20eae5eede6d770a777045ccc1712b76bb9e0c957a64dbd8940504cef1c4c45422c5f65c614d5de05ea8bc38d5960adf174e7461c8d639a182212cb8d0041126484d70a0a7e382b5967aa9cd636fa794e38eb72db5b78d6ea74bdccf6bbb0a8539ce49beb0f65e6b2779ef9cf7d65a779873ce0ea452292bb3d6da2a9b0287049e77b3abb1bec7e7f353d3cc7f740dab3bd8e5125b7aef3b759fac53a781a0ac935c0b07716d105bccab7609206829a5faceabe7b4d6dad3cc0db2e96d12d0867d1579511e5058495f1bf6a1454a1c7bbed65aeb38c71a251aa33e0790e6ed255a8382608e76f54304bbbe34f13c8cc7f127c9d4a6a9121346e596e092e2501c4ac4c68cb1db6e33d8b6d7b03a27308c5734e069512e5e7b2c6a245b59390bd4ca6db0e76a9e0b8cc7f127c99e9eedd3a5349dae1ec9aaeaeef9119279528b34a4ae6e708d9254d584c20847e6668424bb1cd5f6841de16697249b3d6dfd665555763a2bd8b4aa2a69914ea7aa4ede0eff29a9aa70cf6fc93c85a2f430ae5c0b40b23def0a579b51742c084ed1a4cb9a6d72e1126f9024e6b0afb5926e410ad66a6da536d7d34cfa14779048b922a9e4d4554995ed781ec6e3f89364cedf0c06269522c97f1c319e55d7a34c19928c42aba4bd32d5fe0e61096c8333ace20c8a16688c7af086f6748f42db29af2d53419a517a42149d4adabf66fb29ee40d1028d614f7545526595ac4aaa6ad6f929e3e5a6c49ee76a188fe34f925c6d76b54ee7f39f178bb37889599cc559fc9bb1f8662cbe593864cf8b445a190e1169bbab119931b56557201d172ef68a72245bf1394732d44bbc57ac88f1d2dbb335924dd4fc8a839d1270e85d1230e8f60478c687b82a396bcba612f9bc5a959c17ab92ddf20ae6f2082ae6e89cc027504937cd819e5e877baa773d7842ba4cad21e523ea3ed137d018e065ac49d7186c97209d504b0b98ee15b9ac26d8f3a75cce9d965c4e28567279697b1e462e6dce9e17e5721e9191cb7904259737e7f2da50d69e72428124499d3b165579b0515ece23a0da2a6594e40c5d7ebe9a60d6a04b688c39a4ae28ade2541568cf57223386ee595bd586ee58171a65763a16b584d6f8663306cdae403a34c7ae46b29369d2658da14b4f6316baea1c2455354d74078327812399b57684a4ae6eabd56abd58f32319ae4b6a69cf28a0300465cf285c00c5b4785afca9ebc99e51bc20662dd6256867cf4a272542caf426d726e0d12255058aa4098499901bb09ee10cbf196ef70cc04bef869778bf7c8207eba9070dad00068ce0b0b8d7b0e80a5e6f305e525525a8f4ed3a252dc30134e0f0e2271166ccc99e07f160c6d41ecc55f58080a328414bd8f31b15b804e9ecafc7a2e6b137e28fe453244c6a97a0cf6b4f90ce37eb8a80e9373bf5d86868b6d304a1493440631939ad3eb7ea34416e1248d05846a83ecdd0934ed225e9f435dbf49a7df29a8df29a7d7acd5e79cd6e79cdceafd92b5eb359bc66bb78cd46bd66dbf09a0de3353bc66bf6e7352c100d344505515155a4cf875aa19baa327d3e34a4ae4c3e1f52a2aa4e3ec7cf875ea1227595f2f910135575fa7c0866572a9f0fe954d5cae7433ca82b96cf878e5455cbe7433b76f5cf876455953f1f425257faf3a12455b5e2f3a1995db97c3ed453552c3e1f5a52435354958bcf876a76457e1eb7aa0af5796c5357357c1e0fa92a1b3e8f5d76f5e2f318a7aa607c1e13a92b007c1e17a9aa189fc73976957aa73343c653ab1c842a2fe09b4dd4bcfd667be22533f0923d0fd299a14b6fcbd0e5587b660074e9ddd0f3d2b3e753b9142397a0a8e43c0072e94845cdc3c8a55825e75fe4928e45cddb904b36a8e47c0db9c44445cda37229a792f3642ebd2c6ade452e11a9e47c8b5c52a2a2e659e492ab92f32eb9746351f32b72c9a692f33a93a8a8a8f99c49b54ace3f93681635df92494b2a39cf92494a2a6a7e259366959c57c9241e8b9a3f6512924acea764121415358f92493b991423f120936c5051f3a64c825572be944939a422959ce732894825e1e8d8d5f444bac435a44b12a47546328b9a0f65eccd658967cfd7910c83d9886d7f324d101ac50c6e58464e41462d1e9691d3d539d05a8274f6fc36c58904ecd5b03a0758d494029eacc99a7b6e7a85284c316385b1d606f36ccf1ad6966b5823d9ad029eac0f6bb2449a1126e86007ae568b355921ab1cc946b211923ce2d9f39c0d2e47b23d4f57d0190197b3666ad18d858c0f5cd9ae07ab9542ccc6da17a582d676283277eee5b81c416cd0157a07dd7716270c75117477e1c58361ced6155a9caa0a43515b9755828637ac3165a8ad755d17c8b3c1dcc34ef79830ea795421211630f7d21eb1d19a75d9557ebdc5b1ab93d7e34481278b4f31070b17ef0eaef0bd4ceda698838bb7185d8efbbdb7ebee1d9dcb97a97508b3e342ab091820e2b2aebbb14adc71aeaa2a6fecbe724ee48b4ad630dce525728b902698ec9492913ac1d880d197e35ac0552ae618804c0cbca18be77cba17bd8675924f175ce10bd3d70695aca77beede3dd2e3048893dbd71a4dcb6dad555aad555aadd529ae4e25f38555f242b1eb2f1495566b37767768192eacaac6d75f1b54558cd75f9daa4abdfef2a0aa00f0fae2b4251bf1748ffc7c9b69f44f0ea6f269a6b676eae00adff0974f7126b55f8848ed97d82c3d944b07a700f0bd0a1537fb1e1f9c3ca47ad436f853cfe68e793677958360175251c70e11fb08bb4baffcbc3b27faa0f2cb999ef24edf980ff8570b41446a73e7b410ddc377bf33e141e7ba7cf2dedd7beff53aae7b77eed7fb781e4c075da6fe00eafb1bb87739147af82e973c76772aeee0f449bc0ff349ec407d12ed7d88b40f902e79ecf09e2e796ceedd03007e8a3bd06dba4c0d73d93da48748ddf029ee301dd442980ed2429c0e0e91daa01e22b54dfaea72fc1575a40ede8a3327fdd147d8adf2eea02e537489a28fb01bfb80afa2712e836c0efc272c17b0bd7fc419d187323cf8f208bbb12e817cc419bb417d75d9bddbd929610b72f9ee543276633adc233d422fed4c70f6083d3c3879c0338a33e8ecd4439bb8e3b3f1c35cba29973cb6691373940e7e6c0a78f1e08cc1338a33e46c7c7dfacd610cef8cb292cc01bc77d0863eec452d9f16159a0e9635dbc37bda15e8aa5831c41625be8aff884fd125168fa2cbf187f81f62e923d642941eba4cbde24c499732f63379b9faf0ed2d2ce5f0530c2f5327f8a95630343eedcae4f7f383a272a2a14b7283176f02a3cb6ff02d795ad44a97e30655bac41b04f549973f49ee72c603f09b254037d642843a520fbd8a33e14307c13097353bf401661fb50c1d02351b3c06a778f20e7a789b5b2ecae7f1a30588fce35a74d00b710e89e58ccbb898cb203bf4299e80b06fb98f16ed03d465cd6b97e367e821523bf46951772ce5b97128a7de65948c5c06a1edf101c8258f3dfec6aa0af5fa7b8356e19777620f35fb452f61df5909d09d4262a774dd19738d912b00727dc1d02fb4cc065d8e758a7bafab92f7e5bd1c475e9c4e5f9c4a9215ccd7e575ed1a6417a7aa66a555b256044c5f76b542930791afc192f748f2dcabd5aab26d5d64ede232d6451efd244f56ce935543cee56d789227cb451e3de7c9a2b5aaea5edfe29cbe73865756c90ad2164925898039eee2adcb56eb61508f2e96d64569956cf1d1652ad8655aa3399844234d5155b45aebf2dc2db84cb74bfa26ea4022d57b93a800bec7b12e24f07d695bf89e5681ef691af03d4503bebf5a88d38f25ec926e05745ce08680e93d4f9fbccfdd71815b4010959cb390ebb8c0b1c8f49e1cb087207df6dc2014815daee302f7f94c2f5d8ebb97a939985e7a4f55915e4b371de772ca363e29977493b00b636fe3126ffc72dcf8b72bd131b97199da1866e32ab32ebbd2ba5699773d2d0ae5256e51395da6823c367851cb6b58d65e74ee22d145a769b97d0deb667045bf86c5c2f2fc1e2ccfe738dd63e52ba76939cb6b58200d2b4fe5ac87edaad2b87b76d5724e97219e50aeb21d5c91549a5d5d97178aba1ceb2b9fb8d31a564b3e71da881e2dcf461060b2266051f5451060b24c9e350d0d11d3a26a58d665572eaff6a575b5b4d0d65f4e9a8b9e76859e56eb693d3db6e4ab729b27ab9b2c300f91da9c284f16cb64552437f43a97b03f85429ee89e887b7da5e851bf521675a9299733b6af365dc69af2e73897434cd9cea77bca12dd249fae88be2c8a25fae7a55c82ff1c2465da53c99910ee652a1dbd9ef690465a85ef0856a98ea5775710ec9e2042ab4ba035713305a6b3266e60e0eb09139c00ecbcd0b32bfb8b5c16b5edd2ba38eea60cb920d8511d590586801d2ee17b39ae06a3ca47fe7bc9527af753477a3d24dfc32668f8c2c5625c1a55fe7d9f873795182e6fbd37c0b7c6e6dd94803345fbcc26268ddda1f23403a64d781f3dfcd5fc7d2828217d49634ffaf2654f9a6fa8e7edbe0f05e5cb2e1f8a1970c7e557728b521be643fb48b17dabafd007f67c6847372d7caaf8f13c6e277cf185e00816b28108bb8a9f0c9850a4ff7ce8a6df0786f2855d0b7a28d70d1efcc41c20f875738323da03a341e8baa874252fc41f2fc4a56decbc10973617954eccf17dd80b71697351e92e26b5901a435ceaa1316a0d33c6625d96658117dc402ec5aa0195a7455d0bfae7f3effb3e255c1a7b402dd01d725de88282f27d9ef709b730ecbe4f0c5facd8346ffa11a5a00c8279aba23943529e33b513db74c5a61c895e3c6822e6104bbafcce7dc200bdb6401fe9901e89393ea5eea0ccfd2b2911bafc807964971e2a9d2bdd925e628b4758463631acad5953b0823d4bda33e9147bbeac433c24254db24f8bb4bca44cd0233b140afd92ca4aaa448b979488cbcb5963524efad016b5b9d94c46272013ccf8d55af5464916f654b2854d7b48af07cf802004ba533730772a08e64e35c13c425380c3e2553081863d6b952a21c53c8c5d39c0459778972bb206cd0c1eafb1001aa382cfdbddc215b815b9b66a4ab2506faaeb660b9b2ad9f55fc1d14d9784a6a03d396f57d68364060425b5243421502167bb653d48664050524b421302153c7a2deb41320382925a129a10b2cea2f8d0bd83263167ba433ba29e95a447f2dce04aa69bee6c60d357106cfa6a029e3a64d3bcb1e41b04966c771044610b1330d8119a82584c4787aee0c8ae6769c9a148a455381465ba5932dd222d125226e88b0544c9dbddaf2a628092eda6312881364ca08112c9a98232b1eb51543218be54d22a0c9632dd2899ee90b6407a43454adef2ad34049f9612538a4d5fa33d615325767dca297f3e074d9f4f4a928f92c98392e7064d79bbb4551a4cd96eda2a0d18c60134333645425b8df9fb98becf94e9fec07c5ac6a6267933c9d724db3daf303a01a97c01b4c6a6a94deba65349dda07f1f1d348146996e934cf74732c9739bbe7904d40295e406bdd8a03205730163017abd1b146ed04e0dbad3ed6cb7ba8091401f65d04ba90d7a6d59100804721196f26874d049074f46a3cb5452a63b2447299709e3f36d5331df8df39c22d069cf0e088f3d65dd25ddd9f5a2288742071d63adc2a14f3147e8321567ba4550488374f9dde34073c2f88cbe73db3f335b7ec0dcd9dcb198a3f3ee062d7141d7824214901886eacb2508ada9970122d86229baacd929f7bc1e8b6a7937d8d5f3e365cd41bdac2f985a8a46f67cc6b3131b75306cd3151e4b89962afa258bfcb205e962d562c5e225cccae5e58cddb82f6fa374d93ff88cb211e07908d8c2a8055c7acf27cf2695c7a27a70e9999254120bcfa5fd23df2b3c93f68a7c7bee928aaa67012dd502adf1d7df252caf3958de436b502b90688ce7512aa5c40b9f45a268452b5ab10a5fc8920f709d0b7032037117f987b7c83e3c6702fce61d47c92c7eca3daee2e3cf78b7649b0bb2c8282c5a5934d36cc4ca8ff0368f832bf9aaccf9924490166bc7411aae645b431fd9005f31c0e90f70d024e638805661031cc00006d0e34a9efb00794e1f794e03e4397be4390b40803c2710794e924768c70fd9881f5632dd3eb0f884cf21b0e270bbd6ade280d7ee8a83c90c131826265be5c28a3363a8e8994e564ec267d0a6c2b32886cf21287c06779d85c2e74f911c266039d0010f62472a14154945e1d8c0f46a32bd1caba99aa480c31af200de433e5d4756b9ce399ccc39ce436ef1999cbf43bed721af9c4516c05d32eb2ef2dccfdf6ec9362db7c7ae284ecfae3a3030a91449fe3ab5da29f77095ace32d320fcf79e637eff095acc35bb2653db3e4965c5b3265b1e4bbe4d26e0ef7392f7193625dd27f773cbc636160522992d419c71aade5c834479e7bda71003b9e0cf38cb3f790b494ad09204fcbca734e256086a4a80d49c5a718979494944a9f55c5832d102df2dda95714b2641cd7f9c6c96ce32e728db7c831cf1987dfbccf22d3b84b86b98c4ccda22ad5f136d6b93bb727d770553e7d4656b98cbc725ab3f554c7969e4e4c47a7ac383dbbcafc5ff17d0f9e883956681596592153838c96a93b630c877036c59fd56b893eabe82d19479e55e57423cf0903873c698cb2c5a6b7512326d3c830b9e2d4d1e8200d6bc8ab9fb2ea2a79c657b28cafb81e85cf5d139eb9283c6f5b661c3186822964c9301e80ac7f43267fb30d7fc9a7a7b2ca63e4953fdfdd0280afc846fc4778fbc5419d037090cc37fc945fae92535fc9310e5e671d268b7a0140f31257c3c873aee43955c64d92f9850d2e33ca3fdf0d9a84cf769f84cf75a3f285a17e7b3efff4d4902d1377277c055fc280b5d65a6bad751c310eef0e922dbe9cb10aab33ea5f457298b8010e688c7a325717b9f2a0c672ddc955666db0eb6b92d7965c89d422394ce85c733061d4e75c754063d4dfaab3ebab0dea8cfa3c774bae38b9be6a91fa5345e12ee648f152f277943c59238e11749be4b2e6a0ac4948b7a7beca1a2bebac9cb272e6b2f29416565ad975ed0a7b4085755d85b18c6c416c4d1884de52105a53530cc082398ee30bd4acf182c6a8e7b1b239a3c9d833f52294795894579ad796c2cf83e3dda0dc1d043bb003f3dc1ca89301f34224c59700a0775f3b4bdddd1e76b7b3d7ce52d7bd340133dd9dfdcc2fdff05e2f1cc73a76f8debb5da4db46c7927d75c1e5bd416c0d77491e88d99c2863ca1bf6b4e5cafebcb206d49ea61a36fd0d314e983eef527aef12ba80aaa294a2cc98530e75d3eb30377ddda5c93461509b2239ca3a79f5b4ba895de6fc7d2828e0ec365b63ad77c4f3583ccba958ce53f1582ce7a9781e0b67adb59ca7e2792c75526b2917abd50505e5fbbc6b69ddcc803770238fcb14de783c9d3062b88462091b7035b64901ce140e91240a8a888edf898b08c5c4544241f9be91573f4521c5620d8507d96a6b2814fa3e149454087e5050becfeb3894ed7adfe764c71541f70da1a07ca9794a11e110082548adb915340370de80bf7faf15ac2a75e57ddea5aa5cee65958aa273454e14fd147559b3c587b90cf1b1d5657830472864c51ce2a99843f8cff7f9971f10eecfe967577187f92fcf5dbb2d08ade1ec5562d2ca1ad7decee572d2f607062c5eec193f9e1886f98cde318fcf44d1836177307f72992aa7cc883b6993b6373a69b4cf093af3ecec76c3eb91e5e499b23225838745d1d206cfbb0b8af4b6efde65c0b8a06cd84fe63850e42cd7bde0647c3812c605b50393b2a105396178f9eeedf37eedbd078a628e6de3b6b9b7cfbbe769babf50c56e309bddecfd06e2360b7e48922429499224b985b68e24c9ee73b7afaa6c00b4b4d615114454152df4f6a4b92a115409d7ecd5aaf5d0663d3c93466593b673381e5cbaf0b0ab595376352ba6373db435abf1f4d4180f0c4cacda494131d05ab75ac37badddfe6bad37aa6c37c0afe415737cbe8c4b951c3731c7dddb66ef665fbab9defb7603cc8939bc0e731d0fb82dd0510bf5240bd6a4c7b453b180afc0d95727e059c94f85ed9b391ac366fb2a62856e5453e289685e1570e9952f54be6b3147b311dd8ff0f6f809fe6e5bbb5c77ca08e4c22ecf8dc7d0a617670c7afb72c9e136dad18d3397e9135d50f279a5d091d78ce92857b7d78cb9bb7ad7d2a0f1f28242e56d5fe65ddad7566d0ae68a4e945da14431069ece82260fe371fc4910154cc41398700ab8f4460fe371fc493205b3e70c971eca67f65c29a484b3aabe3d5bde0d76e1cc2c8aeec878e88ccee8ac87565f16f5f27230ec45756acca292784af092718a4f2a489bd41025f624322259a9b46c70229849b7cf16a9e4f80ac346dccda3b3f2b38d567a257e39c6eccabe5a76c5b9361c6b55164d5ba16d95eda44b0f45bb4e74894d2aadc16c9899649329013384da6c4ac5a653ec718912eadaf49d2ef14d59b34fb1188b98c35a6a5773b6767462309d9c9c4d4bfbc2a9f5d0168dded4ecccc652f6d5c333db3b3b30a57dc190e30555bac9d384959c5da380cbcb02859650c745a5962a695f2c6a4cd0e6cdea30378b09a3d26b5f36bcb38237049fc35955f5e525c1a5776b4e08dbf56529e6429f80cb3bedcabe3c19e0d2db2b747e0bcb8aca2905c4c1f65c512306a9355f105a73371a3b4e8c21c7bbe7b23ff8a07053bb2905b10a2d793bcc768335049d826806e9304f3154d994d27fe587eebb792f59b6cb035cf6d66d179611abbd4a8276cb02386fc0e09c3145d03d278c1ce82ec38ac77ac2634d42d356e248e19c31a33db7c97d5bfe441dee8bb01af4c2393fa11818ce19039a3346dcf3a018d219334330f471a92af565f7d236bd3a769fee63a226bcdd9736fda6d27dae289c1fefde7bef289c0749e1acf395079777ce181de69e13c69e074de1acaa7b4d4e423bc399f2fd59952eee05a183afaf07c2d50f4661db6fa8b36f6763239e7b781b1bf0db3ff5c6a2eeb74c6b3d1f976c26b32870b26c6c3ee76ee31d7c97272bbc4cdd3e99f7c13b7c5a86ca625b0e990d726b6a905b4383dc1aeaad60c0753f6953d0da7ca20b3c2829ac65634f6d409b627c611c3ba70d0c4c6d9261364a8191605156f57d4a98d58f2e6557a1aedb200d7fd8156d8df6d8b6b4c060ec8ad2252dbba232194c175480318dd21186c6b0f73c4c978ca30d65c25224660c7bfb1a71121346a53f680ecdc634a7923f467c37d694894afed8344fa5b4cad19caa2a67137b2b6b7e10ca2931cc78a2b67f720e3396da4510b1296522884d6f3d5d7ea38a20028989b2c78037821dda2a694e0e65e2cacc18aedeeae2361cc59cb3aae69c75ce59ed87d8f67dadf5ced339e79ca762ad76ce1c735a6bed9cf36425371f80f7dbbce7e95b497bf7f6aae7666f25edb6bd1edcb670b39fb346f7d2bb9727dd14ecc2ad7257631f343103394b6db839b5bdf75e2e97730a76dbea66b73a4f1750496edb368ee338eedefa8dce26a8e574a5216e7211a0af954bc16cdbc9eacdbae191f3ba73babe7a5de5386ebbdb76b3e783d49aad825ea042ab079c2ea011f8db6bb6a90fb7d488a4b1cf41bb027f4f7be8172a129b45dd97340b93f5793b235d4e59caa3b38be94ca47974f40bb40c48d02cb82a4e97654830ef9022f77d4816011d7f3b9d59da6357de6197fc2e4e595f214ebc9dfe682ca4412e7f6fb55a2d8f26fa801c2c070683c1b0a639af56abd5da97f4fb298e2e9ab45a10be4c9d3809168dc00789c083b03e893ee0439594b1ab8e24e972ee78debe5df751e6d1691b1bf1e16dbe7b076938ca7477764563b19348f3f8e893e89fd7b0407d12e91310e13fef11fea3698c884e233ebc48f7f00e1a095d566dc283f7e1fd43b2f9e4d3e89305e6d34803415974764fd2b4d5ea36062fbe0738023fd23d3e9f5758bead5db3911904268a6c1fe2430dc4488ffaf040aca7815451b61be76d83a13c772c167340104474732682ee3dedca397b417b705e372e5a6bd1598aac245967a525e0742939da55da71b4820e7a750bb5876322578e93993175870efe2930fcb8ee2b668cf77950b43946c44fd1881cbc4d4146ba505552a740af0bee0c5c39d8f6c84d810705d719f14e4010259c2c5a7f4b70716e36227e99ba446197b72fe40d0c134618260c7b316f5354d2e633d42669cf79e10a7ba74430dd17c7ad70082fc158870554d54907e8f520bd804a8aaffa342b696f1d89447b936d511445b18a56c45ccd25b41a98e44dbdb71a80c1b6b7366792f6f6a1e89dcb76db2495acacad46bd3c375d82c583eacd9127d0b64ba9e05ab7656bb51a57d15065db5e4462d3dcf9e00817745894e36e6ab55aadbeeaabc22a2cd4d31ed4298b0a855e5658e55e6e93566bb78977bd5404712b2cd6735d47a9ada20e10a8ebbaeedeea795d0e419007b6b045b03ba0ba2474500d090cd43ab02d4764db5a195e95c6dd7b1fdfafbe07b2fdbb8f7b3f595560bab7eddf3fdf761ff79f7f7e2b1a30c86399b8dbb7d166d8c26cceb6c56a1af07ca2041ed8aaba6927ce743f559c4a12a9381e3e8745d1e36a65d8486c18d83a20c5e6c9c2fdc2b6ef88dc1c1d308314cf0a2a29b02f8f57cb8043bad26a0fbe79b2a80e27216d2496ded9b476d9d9b4b689ce326c3abf30b33005bc6d7a53ae36b5b62a695f5ba6d2898989a9746357b636622cd22336855c9edd97e9acfb726de57069ed2aadaa4a5bbb3c13c6c80dd9b6c7665b2bdb318305ce50c5542531adb5a1316c15c3387bae064c4cc6395a1e1e1e9eda63d36303a684292128d34dbd874227fa721e6103adddbd4e29b2cc8cb950d09d4e3c1541a08efc5eef893a789bd630e0ab65464a1f2c4ebc5815c0c126c60ac2e2c48bf57d9a5e1a8b132f169d59d418fe1d079b18ebeacf1eb4c53c9f4041915df3ddb309f0c465bcc51cec9699302a770ab91c6e91d31be4693bb33cf4a5e5b12b246a74d3959b9b9b9b59107346c497a96b27034976cd1e55a292a07b9b4897de36f34096b0a2a1da9aadd99a8a98030d850e82388ebbb9f98ffbed3fbe7f2c4059464ef53eeeb7fbf8fef9fef9f78fad95dbce8e5d01f93c0604c8f6fb72939daa0662fbfd8f4dffc747d3ef1cd86854e0728bcd32e48048179648410fc04063d92d5655f71f6dabd9558e19f0b4a85b54e8344787872db3891dbaf53c9e96832b689d2b56ace0403213462804ca201a12b585d91cd12d8f5dd971c498675b7bf37d5bcecd0157845f9e2c3a59737a628eced3417f04dda153da75dd37eabaaeeb40a46b146c54889960d6d86634869d317804338604b406119db148172324d225dd20583757c50aba4c055d1c8bb2b486ade178b96eba2f8eb5b7b51297deae7b3437896672dbf5a1dce2cb93e5e538b213eb62b19d6eced5f789844d732cca5e66c6d84dffe2c0ee32b7a798e304c4fdf71ff79ffeb1bda353f4a16e990983d29aeda61dedf46dd95ae8f60530985606b30673b5d16c0ead616fd0b037bb836d0fb208571874162ea60b4a37286f347b7b436b7c33067d0de59bef93b0b4efa5cb63f49ed733861ae9fe89dc914ada4f16e76d7085ebb6d13c7a6f5f1e8a04971badaaa6b0e76a68cf279c186275b615c296d95faead275040834d65268c53bdcd6db12c709691db62757912210717d834d31cb87d79260cbb6b1930d5dbce16ab64f71afeeaaec186f05ea67ee00bfb04cbb3d1668c69ab6dbb51b1edc115f63632e0ad461b03aeaf592a6eabaab8534b45688a90de68957c15032e37da46ab5595ad55d21e946f6b0a5c5f5a9ebbbdec6a8b7dbf311c2f2736752e8ecdd127d1e7c6216bc58336845fb64eec893361d8d730e08ffe34cd477b5b6c54a924cb08472fc6946cb4902e3dd04e6bb6cb2dc7eaf10914e0ec9ab75da778e20947b021a479ee686003bbfa405badcdc5b69887b71b702b83f741027318d876a34d18f6e586633d0fe371fcc5d9dcc7d1e866c40b3247ebada43da7afcdb50694b4994ca6d2b427763479793c512722912e79ec728814e8738f6e22fa684ba4bc1d944907535ea8081229943f5dde512e83c4f6083f542a95445d098bfefaef226972d26ffaacab93ef27df47d2bf8df4ed2643a4ba522864826272f2d1f4142d0445d7510bf12caafe24cf8922dd24cf89225d94cb9778937439446a0b51fadc5d59aa206994bd8bb0f79097a25b8d172a0398829931a3a449c9ecdc66ce00ccd7ec721ed4795a54c57b767faddab3284e97446cfa9e46088a0ac1164527b0cb79fbe36da75d09e1f1327f5f4e5107bae9b6dbdad5d534f74282a077ce722e37976d75bd5b05407b708e9fed2bb7839f5ab7cfb7638bb2c7b728fbed4252a7b392c7de5a4e238487cc38c6be4f4bc06e076c9f9b3465295a48cbc5db166b0f968458e2a177620e2e3ca5df4bb988ed65cdde3404ac98c3768c81c4b6e898ce0ada2e53c12dd32f833235a23b031ad250c5fe5e846753012436046ab604bafd69b00bbdaa12e25e07ee263731d94e3e30e0b206b64daad827a052e9db55be8b9f2e89d8df2b0e3dfcacabd3bb96933eddb79fbc5097f879d6902ec78d2f3a8b489723fef6941ad8b85746922e710bd6a0abe45951a08ada74c9637fba1c62ca3658c5065da696e08be05ed2ec4d4b00652f216e078be00e0121be9b5c884f17413a7709d8ed80f9a2dc7411dc4bd02560b7033e07737ce6244bd0c17fb904e922b87f27e925448d01f14282b0287b310b11425bf305e542a8aba4adc9124259a24c9d7901570c9cb08460e0842584e6838214dc600420f841115eac209327070d42902859421a8cb05860301a216f79ca274b88ca4f56c89ca8f12d9f2c212b57798b16c2a2c5dbafe4f1b467a485781635fa685123997aca1885b757945cca632e65f6a68530f9dc606bcf09e34497267a3bf872b4dd53be30e0bb4155d91dec2ece74ffbee54fdcd17ddf34e81f3837154b1a02359b94431f65d1b1fe6cffd02a36a8cbefa04d9cf9e8f22e217e13c5d3ccbe9b0443b6ca9e4f8c800b1bac12684059b31fd0ed236c11b48a7b7b0b632b28b23f9bfef47d9000dd9e3e0dd16d09d8cdd5561884d67c2ea90919d8397942080f36d34daf2acec3e3c914ccbbed0e60c2a0aad1b9a7aaaa746e249dbb8caa329de3c277f73278c265935ca6b6c9a75d9d0e821825053ca84b93977eca29993b4a1eb398e3e454ccc1e4a2cbd8936cba499e5b74537e406a8bce89bcb94ba28b2ed6de3deb813cef61062f63372d01aef47ebd5d371dee2f09f35bcf63b1401baeece76b36d31a1e3dfbe1007bbb7583d41a50105a4339d002e04c616e4349a1a07c9fbdd76630545150be8f56975beb8b1d0bb86ca59c8eeaa31ce779deb4d7db3ace7e38fbb11f0a52ce7ebaed921f4b5e2af5812a776f7bcfe3ac674bdcc70be58b0cbbf68dc94e68af590af69a8d662f30d225bd7ca1edab6f80ed3be39385f2f206dabe58267a9972ed1b84c44a7989e913922e6f68cdf0a645d5f0f2861846d10168f9c003d23fb462c4585ea7594936c6c2163313ece42a8d3062a4cb045379956a688d0088a1622618309517af161b5c238ab66f8892ed6bf2410700b07d4f3ec460bc741012abe4c38e45ddbbe2da07990dad15ed03cca22e6ab6ef7f2869aba437275d52178bdea1d3a2a4383b603b7278e0ec78b1d811d3b1a8bb0366511fcd8e1f7e68d9158f4f9793e79e2ee7ac450fa7cb49c3016f83ab861bd48e1649f343eddaa0cbb953832e670ca54b18524701dbf73ec0ec8a06eba87cbc0f3c7635ea31b6c2f2508f3866b056c6e1c2d1f26127d47290bef741e64ac2eec089b96ed0340e1a8ed78d196cdf875a3770c4669c34c3217bd1543f89edfb180e99cc4b867623a6d23b7603474cc6b56133b4cc6cbf6ecc70c064642bb44c4b26b65d3770d070bc70cc64601b870b474bde719377b4f20f358bbae7816357342b5fb978f12e74f9f1e35be872040f9e852e71f8f02e1a67dfefd8b1ab15bd42ba1fd9be2b2bb27dc37bc5192a1949d3c0b8563297ccf5156dd582edfbd8be302d8bba2b556b464c36ce58c154b4192f154c359be152ad66ab976a36c3a59a315bc154b4192ad88a3683b66a59d485a96247d8d93364ae956ce552a9643362ad554cd55ab554b119b0156d066d0553a9603366cc5aac5cac5ea46a8652bd78a8c52ceadeef78edc8b1ab931086165379184373ddef80d95512f6f73b74ec2a2663f9a7b5ef2f0dd76d79e8fe6a1a13d3ab74f349f7b17d4f4ef75efd9393a68199a5681a1a30144d13d33ad134315ac7c82cead2d078d1d0a0d1d4c83a26a6696062345c3466ae161d038381d168d190d568b1e81818181a8d580c4d45c7b848313498170c8d462cc615f3aad18281d168d190d198c5c06ab86062345c3468d04631b11a2f18d9be2192d882994d16784303f671b556ca18998e9745dd1e8bbaf73b5a7645f343cdae5afbe2106bc5f63dec7e078e6cdf1bae986bdfb77068e110bbd18ad580b95eb2d9be97e120bbe1aa11c3c165a3b5e366f69add80edfb17cc060d8603cd06cc060d07580d1a0eb41a331b2f1bb31b301c5e375e3564367098d918d988e1160887d86fb4c21ab0500bbb4038c87ec315d688855c221b32100eb3df78ed5b4306beb4f1b241c2e17558596336d2ac5169033659a0281eb44123b13ea07f60ac154df3af9c36f220b3a81b02c00e383568fbfe998798e5418707d8b4a8d40d3248ae1908263601b642385e18076d8cadb86ed070c044ad7d65e3ebc60c476cdfbb46b1d9be30f0866c5f120ed9beb1d7be41482c508cb6afa89b88ed0b6a1d68376878d8a1e121f618343ce8fc858607d8f800d0f0906351f707995d859a07990c5da66ed0250cbe2e672c862e47007046e8b1ab0721b16c2c20b264fbb660a36b064397b4159e26b6ef13b4d7be079d68c906206bc158aed90b5d529cf0b3f2c3f61dbff2c42cfce8daf734ac6906101300edc56ab16436e892ba3e21f1a0232ff0e2674663630191854d0f9de62600ac91a619804ba4690410c39a8615d234dba4592f9a01bc348d00649a46002d4db36725cd82699a01c0348d00464d230097a5d93456cca2ee6bd025bda1ae0d48d105103ca10a97ac059bc92c912f40a10324c04086568cb6f272c5c2d003458b03ad24d060b3bf9c4fc8565ae3cbe9046c5f8a24031798010c746086d9c4ecf332d1c00606468828810bacc9fab48eb87028d205268c50e4024b604dd66f9e88b9e03c51a40219181202d664adb8682d3df8c11017e460c601d6648d1ac789d7be2d00831337280215a4604d56a87db86942b6ef7788d9550f3c285d4e9e19a9cb39eb71a1cbd933692d7439693be0d8158df8959f852e53e1e7a1a74b9811fc781028094d8383c602d2838b2ee70e987b78f5f0bc927b7059d47581e940b32b9a1e7ad0c9b1a8fbfa7a0f3816e5a2cbd4dcf9c841e19a42a015a1070ad7bed7515bf9078f443ddc905e32999ca0dce6b780c71a7faf8366c394934a12b40a16c872f1f73db4e87512b40ad65bf20afd95dfebe811b50e23e888424712a1fb1559071474d69144c7137444418714744c41c711742041471274284107121d54d051051d4a745841c7157460410713742c4147137448a143c78ee5661176f67d11b89c4468112167dff3e0e27e11f40989f0c7dff3f01a9d5432999cac3cbcb1234aca0954f98adff380635749d82aaaa882ae842cb7b10066e9db58c063e5fff73cb456e8992090ac1920cc977b1b0b9c357364bedccfc4ea8cfb7b9d6796305fee739e41325fee9f679430c384f972cf92679a305fee57f28c14f3e55e25cf0861bedc9ff2cc10e6cb7d4a9e21c27cb947c93345982ff7639e8162bedc9fe41927cc977b933cf384f9726fca3349e6cb7d29cf4061bedc93f24c14e6cbfd28cf4861bedc8bf28c11e6cb3dce3351cc97fb509e39c27cb907e51924cc977b31cf2461bebc742fdf3f79ce17ef740378c6ba3d9f2881127b2676c7a786102b67103480bfbf3d87b024b66542a0c9d48882a4d470b792200bb1cd19213a35c26463470e89326c5fc80287b34d60bcefbbe77d5dd7cd721b8277990a63571346f4f97974f67d9ec9cb5e8631d11c26c2a2b89325397e87fbd4e58c79b5e2984db94cadb5cefa79b4466716c5fd936bcba2382248721c67676d20bae99d48243269ab636116069678809756551ce8616cdbd9b68d6e21483cadaeaac37d74ee533499b65a90e932b59a6ab5b58644701cc7fd8a4680a6e34f318711f8264d6b769572eeb4a7ba3c4e97b555d265d5d9dc8ef55e1cf7775e87bbb1ebba63bb1a536e9279a4681b1b947bb719ff4dd616b32b7bc3dd640341f03dbc8328ba4734eafae9da6351dc6b584644af3bbaf43c8cf5cee60e8a99b2b61827860e01baf1414a046e43c2e6362936b74d617343d8642a08f244574925b9eda26f31bba22ceea66cfaa5d9d5a55ddaa55ddacba2b87b1ec6e3f893642ab5c576643cb39ebdd14a6f6f306ed3d9dca66fcf6cb6b9dfd768745fa3fb1addd7e8be46f735baafd17d599a45710fe57b6351358be21ee6ebb2adcd1d94b9835e58cfb0c5acb85d94efa6b35211b7c5b618273ae9542c422c42a42140b7c94ba7d9d58d5d85ce89e74cbabcaecd812c6d7316668f527bf4d168343ab6abcf470743a16f994748dbd880f76ef3b9c8128944a283a283442090a6312212e9f0cb464a3423a5bb70923dc51c26fac403a44fdbbf507bde761af0de37dd43fcf74fd37c2e9e8a04a0acefe00a9b6c991b52491399f5be9f14a9247732f964f59c4c3410939573a2ef8bfb2b8ced93c9c393893e01f17d27df4f740f10b635acef2626d6946b6bd33cbff7084f4e737fa27b7c07691afb4f4f8b32d196894a7215e6b55adb16f9ecbd03b9ffeec3bba881d87ba6fc696db094e926e5b92fcdae26ebd65a7bbb29d17d699c87752cccc6acccce2cccf2d89ecd1da4a183b88b726965a23b45284f16e8d644fad2b85b26aa8a3b587beccaf3301ec79f24bb1286ebb1abc9a2d55aebc685b3b917be4ca59be6d8d577eef46557deb9cfb9f0dc392ec41df492be3627fe0befbd535249eedb8e45710765eea1cc3decd9dcc5ccfdc31d9cc936b7c52c8abb4c0dd19e4a72ef349d5592e34ea5802bf77bcbc5bc205e4dbd328e80d65a6bedb6957767b292f5da54f7e2f745eaaa2ead35aa10d64b91f44525ed1175df54aa24b77d91aaaa4ddbb2e614b9c1cdab1b5955746f73fb9db18e03f333205c3d10f196e34490cca7fb7cbad1fc7421f879a00efcbc1007fc0f2282d8a1f346dfccf5f14aa038ea3ea452f7318dfee93e60f871ffccba5a1886dac6a674ef36a47f219ee119eef449f4eed375250dc4480fee9f0311dfddd327d148f7f8eeddd334240d84fbe79fe789fa24f23ee2ecbbfba815c439168badc4c9fa7c389734067617effd1bc007869cd8795db8cdbaefe0670074f665dad371db8c55837835752be960b2be5ae944d5cf571d5caf4e91fb85557155e84014b8b0ed8c09f97c72ffeea3fb4703f9bcfb07e4fb2cc1ddbc73a6df5391870c0c2683c164a24c94c9e814b200a252dc7c9f3933e972f684251b92c9643c4632d914b22093a275832f53c151fe81b34c2c36639f12a697fe9dca3e2f8bba25955159ebba40214e539949d74d0693d9d53d7bd967260abd705e39af1c2a2b698a435db27b3094e9b6494094141668de4f26138d08ddf429160101ba43375da67e0f1de529a04cf7c9c1acf251a62c509e7b7cca6d4e47f9284fd678513e3dcc29ff64941395949fbc47ca4f348d11d069c69303e13e3ee520dd03e52a57d134270d64fbc9515ec392a9a09fbcdb3ede47a74fa0d7733ff9f8cd7e7b8f7a4e9f40f7ae4f207ddaee837b771fdb3d4d930029c8745aaced9d0662643ba7374d83f293d3a47c0ce569ca3f760882882ecce28d89d2f1dc536e6373f2ed283f41195352f2644dd649c9c474996a92cb977299da73a316f47d3259e8542a22a44f25f1fb0fbb1afd7e0722ba5399781f845d81b2d1e8a6cc63a46d6c480f6f23fa87ee519e2c2af33c8c61b292e6218aa028923410233db68307c25dfcd0883490eda091ef5d06b2bddecb408cf4d8f429a949a834ec168651ec983233021009000000c314002030140e8903c3f180401024e50714800e7aa24e78641e09b420c82184902184104200000040000000a31100a0a1bb05ddf32e3e067baa9f21d5ca5897f38f89ff27333db9ae1ad237d8a910c77ea59d2f421df92de621c49cbffee5db2f940b6be6f95da5308c8c0807ee048cff84d3cab5ba288e5d0d99f7a912ec048e01b67724cedbb2a6bd998204ce35abd42ad21b97290bd65e467822096bbba53c7bcdebae7848ada42fe5cbcf62af4b507edb07da5fec64426a026715d4d1cab05fee770c26dfbd4481e32224c36f43c2150a2d928100907b00300e3ae1aa7a6034047bd4a2c1bda7ceae0e43630af24d07d0ba599bca7a29f82536b774c035d0ac1d1df0610c4f688810c7411b1d8821b8e867a4dd6c88ae3466b5471cd674e8498f13183d73805d3b5cea22aac497b3b623bace74def07a602467d3492aaa046dca877140c19b5a60b0b8522a71b3729fe6f80e6d6172c445e9b42a37ed2c5da1eb68606e9097837f05c31eb920d539c24116741b602a1c5131cefec923b04a619ce7fd6a2a87020ef43cd3e3d7c950d7c233a65fa299f4da4930bf069ef498f7927225fb8e2fe03ecc8277aa0c9df38db280ec92483b2c71b3fe04e3f5f00dde56bfc2ce7f17580e6042f7a2fa9703d19d3e258a02c2ea972d847d24a97d21d55e231e8509365127ba413403954882bd1c46c9783290f1b8902833f618a20f2fea194fba0b8db9dea4fd58cf0d267c0b745ba91473ae5a45d3d402ebc232dcb2d9c4280e7afebe71f1d8560d2091fbcef1784bc2fa869bb0346c457a087767fdfaae07e3fa71e585e9607f5b925ea0a86a889f0c144ca88f5f0295734679a2618de535c30cce7dde2a5fffd875962fc79bc18dd98b3d61db5db12d4fe039e504eaf5d27a94573c7675bacafdd39cc52b0f1445e006653115947c1ef29c30098fc6c3772f41958f260a00535976a1be68c660fe420e10973ff7394287e71e33cf46e47def53325811ac0dcc4f8e6d8ce1e4138ae25e66e01ae5221769a64c0f45c2b20d145d2e0a52fca6c3235b2ce58ed2735f200bdc8793a92550089c7554d1ea6e79a3f57b0e2be24245e927478e176d5dd9beac468d419c5a3588f7fde7a906193b288c0a4d0781e5058c35967b7165598a789df3f225ed166d7c8d5ab4af22069a80b1d28b3f1a6a515118f382d3d6f7f2aaa1ab2da75d15765742092f7458792de9bd1144622f6c12a9e55b02aba4deb95db9f1a1f1af728a1c5d7e95c4de85cb37f6717871142b4700e1631eacf21ca0c3e5b2f9c748cad1fd244d0c6f8e1b1ba51c617dc11be5b61ca977beed11b21c8312680d0f6c8496f242b57c62c6db0f944f1101aae5a762edfde63b6df49547c99dbc4cd5e3084d763edbe1bc10ac448c3826ea162d9c022e5d947ec589c5b5acc8fca6838a6e89a8fccdf9d6d65bbdbcbc8ac16c337353ccc586b02fba639db9a87ac260088849996b7fb1626d343ed8c0653af3d0ebc274699b60c8f7e1e128bf05436822d2bd166fa83858e9135cb83264eb3eac1c5be1b843aca573a048f138b6fc4677b628653430f490df5de61c3dca1ea354f36160b90a41bb2e1f80a4bdbac779ee6bf42910260f93069250751d756f62232ec30521e77e2585a7a50fc19b124decb4777411c1f2008744c84d50782220538439a75911df9a54128b487570b9c89b20fc9184cb8d61d81903d09ba37ec86b63eba640e6b72f23cc316a19739d0167a424157a96c24c9ecd65b52697c27e4d69672fc7e996863f4557027079f818adc1e4b7d743f85a5aa20474426966c6ae348849595e8f8d09ac2f5fe468ed0072f26877599f52a444e4e465cb198ed9bb958b6eadb5ab7eb370216ef5d900955b99d0b62ad388325b6a50906f1589f90cffc81fbf792558b12d2d4792a34b8a95ea4e75522dcfc0753d1aca5acf1f0626f348375ff04339efaea8bfacffe470be44b8e9c836f78c3e97a55d8b3dc3931c84e96c082edbbf0040bd0a5cea43752c13681cbc153de6728b93f36bcca24bf1c3d7776b43fec6e9dff2fe3a8ddf1c8428fa3da1a055b81a9760dd14ad7f5d77f6bfec203853f47a63870b7dd80b496431e85a601cdaa9b0f4a48c4412a4fa52e3b12998d369d09bc176cee85eb3f0888c18b631121e366abde796e6f9421f9227996722186365e4ea5c905c0c10d6ed5cebe85088dc320435479108bb8bbc5b489bd3cc97eeb32ced8836a2a73346ce65ca9717f47b4eef9158a5164537969f7dc2f4bbaffba3705cb41770702c13c5d0d905a3678ba0eb49339e140d849af610191b440f36ba463fd26d508d2f9392796148b9fbbdfb3b5f04c6dc9250cc1e172a4a96d1225edd12589a5998a9ed9dd74520e69b25d8bd0b2976a1d8c2df8af77b93901444f5dc78de9058a4ba9ac64c130e4d753f79f4fd9dbc70878111e90973cbeda5a7c3035dbfd85bd62ec06293288f58e0e1e4c625c4e9bb31e6db4318c6d2aedb09f79c21e82de683722c3c7124041e4c8afb75c637c3526da68df1fc524dc3c844b79bd199e30c82cbe163c901608fe34000421ccba8f365b15d374eef6f5108a7674669f54cc0585ea7f211c3ec50ce414e69485963b9fe9a75826b63e8a91ab55d24b0037fcd060462a6209d02f6c14b9e219d5dab6d3d88dd2a330c1db714c54e1b58615fabedf2299ff412c33480e40f88952f50b136b988f1d9a2c9173999a01de305fa2333a657da8023abd526f6cb36dc8b614dfc33dc631846c1458c4347fc116c221204a8ebd14ec99cadad9ea8356419825e5e2a0a4b8f6cea9e3b2685082b35376529f2fb53fd0b63b25e941239dbfddc245297e8d621deef88f18d058b4e839f7da71f0478d50d47a14dabb70e3cf026761941008725841de6dc5a0d602b0dc871ebf08e5049cc44b44745e25a4824021e7d1315c092348988737330b20874892c096615162d1e613d511e5ce80e1166baa689c2166bd4c5354b35c78e3d51e3d03b458f2c68b433d718c2ee6a5f57dc0e0bf235253935a91ad3809d4f0531cfa56cffdb6e2858606fb5833a75c58b2be206f1535c58a36a931314567e365c6ec5552fc5f25a38724fa68af9599a7178d71638e6dfbc25f34f501b1444069ed141bdc9344ec063587dd5c00975fe74baf35bcf248efeffa1ceae4adab8911681b6187cf5632a05231928f3a77c99a5a473d7db2496ac0688a0fb13e258268e0f6413afa2ae521a1ba7f0c93372b19c6dd8d36693ddbc04849a9e4aaa1b89f5930203125ff4b2f7ec762b5664649f4f81fbf50b13a0a5947644f17c8024e0b78e6ec51250de82fbc99a2067acb716aa77acb6fc6d7bd2bbb66f6899ca035c63906280d979214837a419464c7b5ece6036e1f4f9c20e1cc58ed4a904f9bc5b46bba5795ead1dea5c0a06ded90497e4ecb91d5aefe13791115ac34a43c1f3a7b3b7f3c093d4b54c17f47ccde60b7be1927665f4d1366076f85bc192366de848325a50f3bdbe1e754962d67725525f99c9014c17e634d55554b23eae78cd5b833f89c38708cfd8e984c5fa031031e8724600a7fbd001a7678ca784f8187d78a5c7c66b4b28993007fb52b491714eb19c5455898495bbcd6211733054fe29c528434bedfc0473f8d04418a90f2f57d6c8a90404ee77e28891cbfe686dbaf4a803f9bb715792069dd6b7c45ddf6590fb0ee7591b2962711329fcf7bc8a775c38388480050c87ae2c4709d22e4b56f40001e21379639e40a28bbe82442294e041a141a2976bf6ed239fdc1c841d1b552f02862323cb5b8c1353b4bc00df58b5684b586e87ee9dda64f39a7cab3c121423fac885b1aebda13a1873cc4727a148f4508f1f64ba35007d5c4f74aa16e9c1a6c56a241897cd119b4ff03cf24e8eea49df6590f95aed539cb048e9b390710745da9678ad260ab40713adc4db762a907ea7a695b8d3a66c21760448b49783a243ff7498bf720aec47163778e5d553b7e472cc5785e8eb4658670516b167a5caece563472705c0557de920b0f743d1f7699510c8138cde887ba26cb700fe8a14a2bb3d00bc4ef6eae8d33a5cdecafc7fffe2f77acb7d1de90bbb2177bb9d51fd325ef1b73fdb30a3e988cb0f67162207e6c611656a6a716c544b1bdbb31ad48dd32018dc2add6fbea238ea057583a430d6c37795e8bf9aec995bacdc018ff6d01e5e99de770b74ca71ae84b994115af6ba3e2849d7a5f81dfb15f68089b9c904d29de98461fe59101dd7b1a54333596475ba18bafe5adc6107aeaba6685ee835bcc1b7f71ba82ee2559ecbdfc104fb64f21aa0a0dc7160237d4e4718e007072d99e928833298034543df7d52e9021a9b47ee779613edc39f5bee0a626aa6cf17e0943b0f75f864362f344b3d912c96be01ce260a2c210477051aaed427a3473490c4fac6f87c14e98f0e73267434f922621c92b570cbe99287082fb92fdc70f8667d3503886a1b42eeca441efdaee36e4512362faa066ad451bcb38965e463275c13f106b6e4b9839109aaec73cee17e2d2f8b0534fafe52baeac570bcabfc7a3863c9495b7a07b54148dafb468c3cece5e5d65ebe74863e3d5684e0c53052389700d7b2b28cb507b4d3a3b0555a96d146de5f0b695de8ce05188719691d55b07010a1270ea3cfaf4963b0afc95c95f9074d9c7fc4397016e19c57903afda490470647a9fc7305f1d149090e2f2d1881a17fca2fb4b3a5b014399769e6baa1b45ee73943278416b51ea957a2353e63806d52d9d241a21ce1d6faff857e010f38e580b4dbc41cff9b265065e63a94054e89b05d9338c80e2011c41acb88254b16eb9d9d63060bb36fb686407777aaa1174626f1313317dcd21c160bd18eb8dfff876dd251c798c694e5fccdda217a68b402475a43d2b1a0bd7952195865d6f6feb18146ae908e0665feab073135c65d9e880e5111a920ba8c0d0c65557f80e6d51854859c55c1007e9e39517444385fd7dfe1f2448503ca9d384cc0600e83d1cd9cd3bdd86018381b3afc9c3f7f182ad3a58ef17b80d71be00bd21378c19f23f0de2f68061619d07c0e8b3d52d72418ca2eb730d8e8fa724a6237d643a85dfcc538a200f36092a3e06363f298683deeaecb669a4b8020a537ace3313e59e4904b510acbe25f6f5380f204d8fbd01528992eca37137585b99390369c58e10d23a3920eb9a31af0e8ae4dba4acc1381a0481e494525125d2dc91e599e0f42709fa46294871042e4e822a931496d24292cce008ff6eaabcfef0bcc4e217a3f885d76604e6d605f8b95e0f3a2e15148321d80bb59cce15098e418eca7656408746413c54254007240303f3c660a41f89110432c0153a05e9c531ae667d320b528753be2723af24115e202d2b45245471a80e2ed6a55c963fe836c0e8dac752729a130826a9e6a4f4ef30b34de87566f42c91a123f5f64b3ead7d9edf39858c66dc8682545a30b8995cf41df116ac8446474482674730b40e4d3139f65d1d2c10a59451ea3b4ff14fb6d9f21cd73c2c455e836674019f121897a4c1c134f90155d4a7e48926fd23abff4816a7c60b8b5668b892a56625446e517388e3c916720592211f78726390a188c16c422a4ddf05234318ae40bf32229aa1f0603ba0428e6599b2755b60903401d54a29cfca35aab85952049bdd1e37f793dc6790b328ca31907a53c00a05ef8aac8d870eb435325aee80e3c14bf104963cf11220a11d9dc17b051d768b454c05602cb5c2c30ddb3f1b747817653e391f07af7d8e99b12b5065122fd3fa60f1f441674e5dc9cb0ca3a932e901fbe407c0732dce86621550af0bc1d22e3ca4618fa752be6be700c9a748cd7efbe23d223bc992eb325a07a7d010a090d6225972871a330f25b9b9458827e1c393f04b90ac497bf139de123846bfceb91813e026315677a80f69d09e163ae3355de9ed4cab6d0ce7f57b133136611aba8c00b97254ac408670b40736d0577bc9d41b52c88a40526d5900a8a91271f7d7392db85da0e937ead690918bf74b965860280683f421bc8b6650a081ddc3213d471e1d3404639eeac52909651542acee5ef28059bc299f6540c6cca62bed640bd5fd2ce2d26aafaa88102f82439fea225257c13fd563f635c217faa1c082a098bd28603df30fd356a0e42ff41a437a8526d9c7a7fc683a9004f52794e1244a4d2dbb3e5c40a92ac8d292c2845c0025c3d40b56cf8218769e1b726195f8327c4924c98aac59699f1a5a3558bf9a619aaab203cfe7ae29e8cd4a4d54294fb6f526679f72bbd934aaf650eb5e2a0c2a48cafc105846c7054631a84853a30e5df5b0705d65b882553104ad1d7b7c603845a0a5dc6b00d145c3354345db493d2aceac2a9c6d7c18b2365a3eb67c8a9acc24e14940aee39abd040d2d329913a22683bba5c082c86e733a93bd706098f1efb0a301d774c3953f00b510c28b922a93315e2991918cceeb93eb5f8dcf8b7146274659e2b596cf044c969d06495c434beecab33fdd76feccb94fb14832cdc314d33f9824f10f6359fe0a9e03a29aae92e90c1e9b5d2227bdd7cb7294e2bf22e8b83fd68e99fe4f73f1689e7c2f3e29a93981d70e7d63607a9a9bb0fcd47e8291d3b60e9063ce9549ee5846b21db3d118982a465c9887d4e4ee4b8689df61d218d9233d48db8e8daa591a8e9168a507ae980ae0191abac7d15dd88a12a764c4c6c267a43ac3552495127862d606a8554b051a312b3642aaa1fe07405f8c627afeb76e89ed443dc88d03d5d0334d2ee6391a36887659f4bc59e75628a07821fa811bdb09e399cdd40b45965c48b6b4143741904cb1bbc7d1918271e30266f32b06768710ce829f2c416012ace9a024e396753b08012a5d331926730afae80b18681865ef842d67f7db40a267dc94653f84b00da5b15d2c110877c90c3b51505b5beb5ee00d45edfa0e98886d06ed0ef1df27e50490068dc1ed49853e6643dcb0996fc797d7e01392abcc350159c8006316121207fb8fd9969c42d6c4527931c4393754fec314a64bd5004dfc50ffb091d42e3150d15a8fac667083cbca57132dc6b52ecc4906238f89ef9471d32cb84dee8825b0823e7c093d66f0d0ef354272fec2d8c4de2be99f6262d22ef74ea4fd456836befc970d703f881ce30f80b5159880cbb96219cf52090253fe45097d20f0730eb9c2010f33a4f8c34dc190b12b6795df10776d9f10b5570b6c8ec754df6da77b0519393bd6bdf85108487f0d971be026579592bf8dbc66a9a5d0d54ae6797d5e0bd88204fa5c44e403d740849eabc183ed2dea5840ff14eb5406ecf118ec284ec6acd92f86515fbed1f4ac0ac7f64518ddb5601ac6bb16306acfdae23b99d0ee6be56e8742662551ac24c9c7d0b605fc925055749aa4e1a480c66aacf26db8d664df8fbf1cc961c495ccac883913a392a8496d13af1d0a086c6d92279b1a2df671a6157acf6c6b82e552999b839e018ab7acf51809cb4668bee64d9cf37ffec9ba0c740d75a1a47afdd146fb90a2e019b40a63cb4f8504fb96d59445c31bd181f409a4cd79831f01fb1d43f5f9a6b22489535502ec1a07a2edc63f1495d69f7e6841c6f936e5a8aa98042a17c2aa41212bc8e79d8726497582cd0902fb50a2b0f6b8c983d444d0ebfeba9d6cfba0d0240cc24bbac728dc4d93dcefa1939d6830899a0ad55e082992565a17a9819ae2ebd3f7146a2ba0c115c19aa3ac72fd4a3bfab11802f68ccf7e17eacbaeb3fdf05019a2b8ce266add7c00d52cbc19a225a1c076077366e833ee184af5f26cd5bb1334569f53ceaa41931ae4a70f19e50750d9d59df8c189df68462a12a56aba71b0ee3d6968192a6122b11745f9654a1ffbcd9f8e9473d6738e587a055bdf36e2c99cd473ee1041a9fa72ac40cc3c0982691158fbeb92bb5efab128a26a33faeeaab043c2dcb953b7ade616ee910bba813c4ee92c7aaf8171666bba30aa9ed7e405854a1105521576301764f1a200d486a063d08b7e27af754a3e35075afa0602198b273128397fb80a3c64a4366a10d6c8dabc410f8471a0a4e367a01535427769e56a1166b1d3f44923468634f36c6aef8e0fb69ff3cd1b4bf837b924ffd9a97312c85cb68cadf63777073918f3049e86a30517f384a98913e92e8a08bc3bed16ffcec92f3d53581cb1a89e0cb57da18eb0dbfb4d8da31d86839b3aaafd9025116a8aee20f96e5b24fcdb7dcf825e89f26f53e00f8c424b44e71e959307e90b3a4b4e3d267fa24f78962e2a4bb1f007185d8ba719a02bbc1817f8868a1354f3d9b490d6b13fe6078a787a0657e6c7c5ca551f1004fa7618596c4dbad225454d0604fe603947ce2268096eeb4ccbe44916f7934748a0c38b3a9022c83feacb241c33ae336ab961a2cc4c4c8525a643b016a83d4b7f5501d0ef670ff7ba6d9a0e1f089c23440a4cea28a826e405e10598dc5dbc9375721575ecc09bc1786c3e0fe5fd21425100e0885e5222ce46dc7797d4bbec384420a0f077e361e76c70c72c2613ebc0071cf2014a1958216457d1bf595c67834a4b2c19867c4ddce7d18b12f1edb4f6082e60fad11b54a185e05a57d122d7fea9a2870e7e190d1624a41bd4d70084645e140d4d169a8890af1328328493416fa2c4cca8a04eeb8b782554fbb2c513b41bc8ff2236b4a1e6080b88b5f59807d0b2041eab750d4351c7b2701989165d45f36c62dcc93c4c75507d6e6b9dd8fe96a444649a56f2bac607a1b286f0291c61b27fc831514adbea99515f73a0ceb3e3e4b986169dee74e8be884af8e2b62e9dcfd8309af5caf2d6e71aa0259c8b7f33d6e99be6db4593e7da3320421aa5f6e54aa139f03245172d7fb31864be5dd79edd337170233f530ae151609f105aa43bf481b903c6f0f307683d1b2174ef3ac00647ef2b4ab27c967d8944a68872c1b0abbee829a146e2df139ac1c654754c52f31b54c4827ef23d494ba66c25954c86c98ab9b9b1b23102f92e12c208b4ed0c1d150d07171920b998404fda659d4bbfbef8fc0d0217092b36e1caf7e6c1de6f6c2ce4ff1f919c376caa5b9dad7e0415efb3793c81e43ef0abc0e34589204b73a625ccdd673ee2489e7330ef124b3b0769c85e3f4c21442bb1badaa80a1e4102ea0063336c58c87d155bd96453bdb2c660e4f202f9ee983b81545714d8c0945743037fd96b3f0bba64f44f8e210076b8ad8dc149170df80cec289058dccc1836b29d0726322b04832e04b40c6a1d5ff5a504dbbb3cee234baba56c1b92c76263f36de25626cc33e82111c9d4f982071d4f955f0989d00a82f83bdd721421ea6fcdfa9a02c6515560433a54c5e1b4c131e13d78466431cbb6b02a2d2ac2b6b2454932a8c988b6039a31daa45f85667903344d4c91d81b5a8fbf60c60b182a29b10e8aac067116216ed2d28606aacf1653e29d274ff9578b33a035c78a048a61159708bb80b35a299e8c59a15146d190b0a5d0b0a481ead625fddc737b5cc21fa260a35a08f805d68c42c1fa151cc3bdd62db3fc7c24ea17f5d26f2b95330ae928911780a26e4f1cee429de7bb2dfa6ff5f88e0a818ad88b28585625eccdb831ca0d0d60561de21236102b6a0b49d2be9e3588f5337f6e47b09354739ea03c7794f15a64aa720da4d5d046fff242843d2a96321122d2e22deac2065415e0ea2e7cf8278d49b38519b477093c63671bdc00e2ae6c729902c566010a82c56605b78b53ff018d4bdde88746a3184ce23b4216d8688e6c0b2f20b4ba5dd78f15c7182663896a35a0b6b1b3f47a5919191722a472b162c82d67d8d44ebbed9ad3623e045411f168b8d0c0e34692808308b80f023f2c50256e18c99c2153620a99897af5b3468259ac470087c83ad349a7aff36dd3d84a979da5f1236ca6f45ed2faee04f6e77406f8099e6a9fedf94668ea3e20e2f8e6b213d5cc6b87eba25fef1af7b39135b24fbaa05315bdc1a433cc129d5ae2c056d4ccf326b924f0899e8c73bde6fbd5905e4fd68b9c83ad5475193707ac175cd09ace27a29a3b559ad1264c67c6b2d22f5f718f41865fb79ecf971e06c407736f6f22ec3c68adf1a227cdeae80a924f73dda858e08093f521e42121ca177b7e1887133986cecfe15db005c512ec2848f3def2d0e783304557df80af7623d609688a38195b4f047466fdd4903d6fc96ae68126fcf91f5f2479b4a2ff8904c8c36cb538a0af5cc79578d21e6f1257716e83f606d11631b6ac271d016242f07c5216e6f0439c3f68d9b2f9b6132792f7b29bea30f9f00b907c0181d8b1254785e32edaa208fe61c296a352d9576a5dd7121069066e255c20a2f328d66917ae62e5c54d278dc1c6f71bc48d37710a002dc6bbd991f5c48e7aa13a9168bc3c978424e47301109e87168369a65bf67a63a8f5262bc28c1308696684bd24b9d0e127e2f190603d32eef8497595b2b74ce786339e8883d73c7ad15b8b9bcb40404e8ca9b19f4addbccd20389b2a4d1b19a8ffe85e0415afdaa72ed2538bf23cd15e6cb04ca1f5213aab49fd0f2ad64cb0dcbd16955a6020017e1803480867bc69025ffd5113279f999df2d2292101aa20b6d5715b3a0491590111f11d50093c593ea5303a437773ca85075d3c2f06320c078fc7b30be11f067b05c7c5e65228b56d0b843456e1849bbb558476899c0224cff541825812a0ddbab1a70c5402b336b2f423117cfc4b4e52874e198bc252a4627e09462162a5d88f529ab2e9352639198410de472891b407fd69b71d42cf0c0038da951d2375785a4d14e4a01a477230a0bd3307112af7f36fbebb2ba4d081dd2cb930b26d01acc5821170c5efbea9ce77943a53182dc146137b29281258a99f82cbdf11d18385e99d39def670506b8afa509a240f6ab4b691871ef2e7f2030076c78b1ef8e1f3c15cc24a5a4db16ec72dc58b8948213af9420a626f851267003f1c5e2a52967a2c236bba93135097ec616b805af88155b5c66b89682d19a330e8d3a72fdae84c3d1458e83fab12368510b851a0709e22b7fe31c2802bde06d88a63ef674d76c643df28a3cf01fcd10d6c4279b92054aa50e49d6e929065167a22d349863d745e86bcc012b3070b7f260d267ea503142de017046e9f6ad161101a381e8865ff8d952daa8580b8064a90a0efb386d1185fe8f469c5c6f5f663628330b045f8d91caabb2980d68dabec26b58e05891a19c8a237d9a2f269468f4c381eb639cde60f336698a2bc1115b2579f0863cda4a320c72b885cda5181cd9c0cc792239750b537d0ec3bcbe91fc9e95741db65004ab799e7052599db2d2395f09cccfbac272cfac7abb4df30eda39ef8bd9f0645acd2cf921681ba78765b41992d99781641c5f0465d8ef760ad10b20094ff1bbc60adc9dc237092b303775a50f9567c421e75d86bdd10570e8cb59aa7d4e920ae8495bce211b49e2180f074086a69354bb59675e77f434a00f8adbe02a64e50c0d6d6e374cc16629eecdd8e4bacd2e215d7256149aa624e5b6bdf85520b35d24b0c4217daa9602473aeab37d7752cf53bc688b4d5427cec4d5af18d677b9bcf5ce6d15cfe2def7a46a3589680799a763e6017e129e749b9029f200e8ac8752b39f133da4a8d0803061d69dfc3e2ed2ed6d4b95e76dd76ed2c711ebc32736282c6585b212e430c5482de26a21713e4844b1e4dc0d27f985b11596732d5569f0caff3d31085234cc116db042de002a8f0c884a0efe89a329c5f622e2bc61b18af7df764aac889441c76b3097153d87756962e98764019cf5b917068f450a853b688d4de83acd85d7cebd09736a59cae28205a2fdc8665811bf9e7d636f7a90214d5384ce45127358ea05ca618424478369b305ceb97cc9828c036ff1e2f97046d019d0d981809e176708627edb34fb3ca295d20e02e969f9d054dca0e2836b0afb9ce0ddf4ba1af437d8b70036ef0c5f47ae3fcf1cccc59a45ad062fc6be2b0d4ac41ddb2a2a152afe267d2d9091f5996960469f52edc2e53982d0e3b6b8b02e03aa3a53bf3ebf88cf674a08da6e1398761a9600dc20d5886ac96ae7942adb45e3ca9c22620364948648e041178883f3b36d635421e17b646419389155c8c137853c56883ac380fb613a5927c77cd8329d5169ff9713a9887f7d48aae19e8cc286117567457b5df0080344b311a0230d825949b7ece72f5588789700ad64bca3b7a51aca9e8d26876f0741061610406d1277abb9ba9b7ab20de13e324041c119e32f1bfb0086429f1fe586240e4b7e941f9556bc7b28658cc444caeb318ce94c498e2b3dba7bd2d890644b9a9e0f7325cb362365ce4ded0525dcb56335320571b8706857e96829a9c9b6f09af96f05da01e2c6e650f622e8d2aa553aa9f0e181b2bd4566c5d50c6b8ccfced5447ed2ef86d4e04f63931bec3f9ed4e40a866b8f345c65a7c1edede3e6100560e8af2478e12c4b29b37502889c0e3083c4e7c2a5327f12be4e828dc17ad194b7a2bf7019e1599c99cbfda914468b90bb12cd60fd48cbb2aeb963974df6052053c6e2898308261af1bb96059aa8f4b5deefda2607d1eebb3965937cc7ac6dca7483297b016a8ffa2b0e5fe4171eb28759c3c7a279790e8ac912a385d1697594a58c58e778e4eef35f44da886292d7b5aca8d168599394f401b68e2943653346ab1bc796fec837bad4e575986a24f9be0723bcdb188e09a96fefcf5b019d6992c271afadaf84b9a06148812d9753447b5f1ce2091483bb97ee1d512d27d0bd52d865dd4afc4531e1123360685fe7ca29635718fd1d76ba9299e1057b660ce9551188b5fe473947e87a78d08ec8486410208ca38e8db3521dbde3d1c5c6c67dda47af461cf5ef278be4e4d462835912f61c0c21499aa0298e2064257ad69ab9af97c1c271ea0055cec0a186987ec2c5fc34a23b049d28e880b144d7ee96baf05e9a3097b0ad9c7df2cad0cbf3bca4247c43090154d30e8240f2eca93bd69047facbd2b0fdbe3797295fd120d2c518268d924ef0b3be4d24f3ce2a026c4b7bc7d79ff2e41d0526de21aac415dfc81fe1c5f22e5af5bf1e294499ac9f759ab11072ad149e70b3d5462f55ba16eb3a48dc0f77d3b32c0772b319609428e17ac0d775cc43489e16b550cc78c9bea789a76858a0a647e1942db080f2bb371ecb1d78d886f5b28bdb525ee24010306a8695a6bc5232176b7244f7ac60305bbc925accf89380d7935e68c4b50ced0836e854a1c6750c7697fc77b4de0c66a2f56a43f19472cac8cfabe3b2bf79a2f2e79f9fd323d84828336dd80bd2247b60f04e11d72ae38859d60279b97cd2db4a081f289f74015cd43995cfdf9fc9ad28b1e5f3a5be0785594a9f14c8f9f30b1fe0c593bb7a10f2517a200688ff4ac0487f3452993bdc6f0627758ac66e2490ac2ad8907f3e405e4b553189b580a5b47223b161eba4ccdd0fb6280adc8414c9ab41ba23b0c9e9d303e6a349ca61edad38cf89e2b2dcba9cda0e9f24c0aed3c751c2ac592b442e02dd0a62086a1f214e0c74d78b365b3cd5805a509713f87798237e601a31141216a29241ae53f4992b2e43bd0e2ee341d04dd1b2e137d8c02c2d3ceffc9401dd341708eff21f237abfeb635535dd47266385f99bf5a5c67ce76582aeb1221d24938f13bd3fd2a9dc636f304ce00f0cca949c7f40e3c5db7d417bfde756d1ab557f2afeefb6e888a512244724a2f717486dfe329412d210f9bd257598e2584c9f00673080f8cd122f18754f909c2c53713a25c76a016d8ed22d5a300db30ec23d281b799c9d07e94c5592f01d84ff8d0671c317ab26c217c715bc172253a4256d49e4b339d4d2af6bf43a0636f1b941bde614067b7b08b7aa8ec211e25c5d6ada21c8b3115ae86589f62d244e8c0c439deff8320990eefce7730640e1e5f828109e6e91d0ec84a9e237c1e8395935b5e0fc720b7fdaab222b085dfe9c4b206e09c2e9f325ab651a9cab7cf568e5b18cde18205743473ce31a5ebc523a533ab66f0d9c7d68d1b721bd2833c53c4ee0d44226b2d8ff72db4e39be73ee4f56c02c5952b337d992f4cb616e28264c46b2307e80fc4d470b16f403c604c02cf905cb03de6410393dd305c5c3a05fef19b04e5055bd9a4e1c81a3f9e900e307e858cf9c5ccba98df214c499d8cf8dcee3864a6ee65790db6064089d5d04ee8b4843eb37f6034b8807a1cd3e9701cf9c0a7e767d759f8d7aa55702226da1c9787fd79705c015cc2f06b26a80b17565475cf1498ce9608221347faee947882100e8fe4b6f30b644907d4b8e644bb050afda5547cbca5fd0a007ac6eb4c3b1acf7935fa8355cd58b5674b5b68e44a582cf2c242b1d542ba88af6602abd66538a355515c29f9b836d0b89aa5129e40ddf42ec2cdecd7dfff39621ccdbf908c2a44b7cd54d8280064905d276b2cf0aaa36c94750a2a7f03fc3f4134d64cf43d0156ecb65604bd468b9a0ea8d2e283eaa3cddd4d5d78142d400efc14c234a99bbaa9fff6a1d92d8922c76628b2123b2658ff9eeef0612632ca94e3c06fa62f4082ab6138ca4c7eebb73adb0496549ecf30eb49092f9bdb5c8d0edf66649402b7c8867ddc9f36569baf710fb1b70a4c6fbcb8ec91889130f18a38e4ad830fe712f64e262691c1af8fbac45b5bba1ebc9cd640ba3b4812d80186dae398034111c8d97ad92bbd30e42299332589fbae0273670087999fb01c188fe529e81e0dff9fcda30712c142cc600a2900345f777c9b1dc561257185235c53dd2dd8d63684d230d7b5ccae99fc64a06d182f29de2cd00c22839f7de203b92c752fcc01a5a2744721940308ffde413d89fc74b2cb9be1c2bbc91c17f20643f69245efb7c9dd91122249abd0ef1e28be746541018ba1e60c0ce485278d29321c49d4589bef35d95849d9d6d79f924cafbd111f371e154a5cd9ed5d29dc42753050ff01da34a2bde49c12536e6d22e9a64943a2f36cb8c89a0ca699aa58c569c458de400fa0127def117135dd4f947cd0d907a7a8e03122f39f74e537ffdc8726ea671ae740bdbf459771daeb5cb962904813daa7faa80015119e800943ccaa3eceb444a30f39f03c690fd951cc8ab336ae96845f912860e6d0bec9d07d2783cab3331fe4699e34602de1e0ab6a5f615068235f9f470c99c0ac84beab74474ed2a42f69be0ac5b3e7bb15dff984dffa9a33fac2fc1da5e417b0e0addcf9b50ce8ee40d9b20f7e83e0b852fff80808f2300618ea0cf7c45f7122cce8c0a7c34b75675e25bd534c9ba8b12001f4772dd30a7143d104afd12e4176ef5cc0486f08e7660b9d15e08274846e3aae35ad7b50a4ebfb7dffec1432615df3ec05baf238a622a192e43a8927446df2d3e5048750c26fe66b60b042739e382a27665fe57032b3452761cc1a26b3f93e46c09046a3fe55236082152832348af89e08414bcd54ab81c3f60818b11b9706721aacd0c1cc3a952bc6d4df9ac7ba4efe987524c756a972050d20075d7a4be4b6638eb894ffb6bd0686065bf1b18b9142b456d136886b0f873781d77f2fb3ad10a475334967d527212f95052f835efcfab3881b388bb9d63083b43b3cfc08214a75ae2198e0c2dda9230fa8ca93ea3b2ef8948b4d7f591b25e8aba8653a714dfd3d8fba2eb7eeffa84f66390609d914b09a3eb635656e742cc733d69d4e03a143995ba295a45dd45351d4c7244f46ed3f5e1503d9702a22b9071a01405ea719d9ea435b8280a44bf834dcd64da288a54320250d6728d748689903f4cebdd9d102c8bdc49ed32172a9141fd0f59a83b443d8f4dad32f9255414d8870ce0c54a50f8417f445cf00bb2636e1f352ca9f91a7c56f1c62a0d105d9d1546b91106693e9d20a200260724edfa65461d2071d24d38622e9d9ea0b12e8278abac3642333d9b883fae57c009b8163d5fb4f23e083c91c217086231ce2d7f2e51d1f83990f807a19009e4dce4f35d0f3bba7dc3b1a5f5a8d9bcf8d40952762b2b3c838f0d9a0fb4afbc6db18d3c472e9b475add4c6ecad41628b7380fb6e5a81fd28b56692f066704fd71db3f2399bece3c6dcdf00edf16f797b449e739e2c4db63410e4b6794ad101c74ce7b366a8fc411a9f4b72af2bf6e2b4fb4a518fb19dec7df0719259f242fcbf992bb78986f426b318ec6814c94a2f2f08f630bd41b6318c61b6c1639ecce39682566ceee8a38bf645d288bd47840754618a08c7d7fe5554dcf2f5b376844010e5e1e005acfccf8e32425f8bbd5917f8f4f62aca591392839aee75fae5e3def1ce72386e240b48f9688fdb845874ea46be2ff611b4c1c621f3242e7ccb5457f4ac9d6cbeca9afa91c5239419f48faade523c7e2457801f031184eb6f28a7eac87870c0ffce7ca4d90f92003ba75e3931faf3b9efbafbf3ad858f4ebc4c02f5a603abcbc4f6e72e0ad3467920a2dad554201fde6731fedcf5e7ab012907962c8de5d360683fcc7d36c418afea1abaab18c603e90d733aa0001bb11bb7011234b3051af563b4ac687e89eccccec09895f5befe22d2822ac0f3bfc1693c6389f78689c3285e109e37c39728c63c514bec311a50c75f8871ebfb2ed80fb09ba834bdbfda4c65b50cbfdc5eba7fbe6a4ccb8db9f7e02ceccc404321823eece04db309317341829abc03274ec2895093be3472e2077fc07cc60cd1d74b6016c17760e4806d2003544272d276b88cd974efa45b031dbc4e9256c8cf50ea6497880cbe8777c2b1cad0c81bab98acb3dfb940750d17156aec044d0460a8ff1d6817467ad0d8eb760873241ceb13e1cb7a09831ac35c588f8cb1c836b2ebcaef2c601738a10bbb21ceeaaa06fee0088da1bee6600f270a0a5ec21a14fbb0de7fb236e158393220d4102e4568e23a865f7ce8257175bf586a1a380d51baa41e9e7a346d1e6806c28ff183a5805d8866378125dac8f34e84f59e21dc8f1590367246d1cf17f5759aae18b0f67350371a2d46c8df712dc78e76e77826e900b5a3913983c67ced7133aea77bc59c668e6d40d90f815337dff6e80b970abd1db6d8763b9c5b9876376bea4da533053032d984f7bfbea99d18abd3503981ea4c2d89e0365d9ccaa7067acb87f08fae77d8d2fbd17844473d09ae92179845a74d7650289878a0305be290aa2a9753790e5fc72631a1be41a28fbfb82fc4a1319746684d0edb9b4329c1d177261665a5e03650af30d2dda68e89d2fac94a5f92afbb475dceffec387e74062b6f4c7d34709131628d89867acfdcc23cb9a07b4abda7ef3580e55c860946a42a722b7936de4fe4d6b53075265d7a234b4a8329b18d01f7c27bcafaedc761d99b37c32d768168fdf5b9f9a273b251691ad359c58eec337cdda939f7e43e6c202314f840c616e099633671d86c88d6645813c75d538019c9d0305a5d3133052e56f5b261527cb38a31feca5c5ec2d28b87e6be757f2bdd18a1dfe68cd00e85fa1d2daca0ac711d33ddd2f7ecb392cb34891ab5757fa541de3a18539a772df1544508a33fafcd946a14320fb22e7369f660bd08b1456c8cd9945522505a952351d575919443c5f0d898270a8c723c6fa64aa02247f5c0740df05465a592df0a71f0fe357fd42089d7a2453234a499b641a9890809c76be6106568515d437b61bf20c37db51feb958f32586b49dab25bf04a1720d238efdf347e1a480febc7747734a24e82656b9c2c73e668c3f252157f46989b15679a96042f08ab5b89f1fdf54dcd0bab2ca3632d64eb3fc2f710fa52c3978dafc9da9cc5511ef5d15b43b423c49962e201e353d2c9f885d56438d0ef8673984f55ba2bce8adaaa023122271fb48f4a8016f640d89982c89a20c0c803fe642b46db03f59d3d707d61996943b502e5dd00306cb148024ca95693a926285603d622e7ad640f334ef657c3e3a9bdc4a79c761af0d0c0dab7650fb336d7fd2e679861eaa297a6235a5c515381fec141a601a5b889150123d352f787fb6dcc7746fe7205853f1da020107dff82a0d9b90d0488b60012e3caef1ca3ed4a089028a753d759a254b7f0699895ab599e190d72b3c2ba09d39564f8e9e2cb71dfc188e723b578fb232acd8259e9891b90388c7176ad6934a886bb47309405fb6db92593ba2b9e51874363122d034a45e2046040745e4395e6d8ded197b5ad45a6fa0988ca2d180deb7072b4f7847fcd8cbe68eaa8b2206b9509b15fb1e05ff02af52879c29b54161a86b054c38d02c97bc8a5b4dc493c15b1f39677be379ca7c4cf0b83ced6ca96f5ea4dfb5426b232a9b9ad5a2375920cb85b7ad6b26dc960f0bc3ce6524b09fc80daca6381678f4ac4b4a31e7dfbdbcf4da2663aef8fd09e1f09a2121929b4d0d3e91edcd851f8b5b7dc2d3bbb3fd773c79fae7dad6ef8bf5da3757b0f641526f97794ad3bf4cfe41370bee5efc1428bea5b287143e2a8203de9fe6ac80aee01fed830693c86057c3674265a7bbdfdedc870b4983fcbdce5ce83717409bf2cdd828d544b58b0bd4481f2f8eacb5c494676235d730df72fe5ad55018bf6cf76e57541410dbd8ee1cbb9ced68a12a0bcfda1580d80a0fd3ef50888bc08f00e6eea4bd14f49e6154f212fb52810faf56c7e9a81ebbcc2b8ef64d4dd98ef0a3412f904213d4d8feebc63226c29755b43384725a37ac4abe68849de491b321c61b55de447043fb4663b5b9ff03dd9925dcc1b7832fad38c330fef52afee0259aeed70ece6d0e93a841618c08f63076e38c71d596cae6f68536f917014e1ca29d3858675afcb8c05d11806964c829920638fe99e8c990fb3ea0e0c29e19fa0801270770220dc3b1e68013370b88700e864ad79b9c49cec1406eb7e4663744ab3899353682437a501fcfd4b2b3461d991b2103d6920bbd7b378022df4a71ed109f6b94a9ed3e0287f07f18eaa85e8a5091d27ede0b4284416a306765d98d3fb0efedd28f1aaf3ffa0119c305c500de6253272b602f0ed5d5634f2ec26e4e48283d1cc1b241dd94831c8a69339c42ceaa986330caf2e26a080912cf7a997eaadf0583e30ae67b05552eba9564f7602bd31134eeed023dedee76c580931c44509b9609616a246a9487e2f7dc47951858433fcfbabce52f45c6c3757a4f57d2b10427759d47da190da7519623021c48adf6603670fd6869e629406f845d42657e22a0990a40f4b4d1ba2ef91587125ffc9b9c3031c883bb59cd62fd514127f72556ccad548c579e49ada1822e65523ee9fa3cbe7922e1be9f26660bee483eac7ba3322a21ed0c86c71b22c35dc2a0325c9eb91990bda87d78c5eeb329a31baec857a2b1d85a2562f608e1f15bbcc78d3e8a48ec90c310d4198e3fea5f611f8cf29676950b8c7529ba1f302ca04a02b5d8c67337a16de4362f03f73e98bb8b98bfb46747e6ae05cd2ec136cbebb5b7fcfd535423f2bdbba59ea2098bf526ed543d8fb26a0a14cf8122d61d998f232acf0224dddaa38f25d0ddf490b9af83067fe9bb134c91cc3d640fda9bc40d5067e0ae088bc97013bac8aa0bd18838fc693d6c1e2a0d6bfb36067899d20a50676cf498dd27f8cf486d235b4e6977d8330a8e5647477414c688125b8f06a3c5402a213012d8aefdc1286d388f24f20122d65f3be654f077e6e4f5e4f154501d8ffc4beaf8ac51ed68c6cb706020dd08b376e0b940febf72209d32386e2b83dd39ffd006e791df67878ef09b6ecfb563f84c0367c3baea4e1a539de5686631973ff9eab6f935e1a569af7acdd0de12ef17699f409b6d76483d9e4ae8061bead5873a61c531ca5fe5546b9cc8135794e9e72c822809ff04d5e3d0e16965dc102919533435350d1d10da66df02d68d0bc407c94722574d647bd438bc4c303b7cba132911cb65aaf6b73ffbf63fda3c2656b007b2792b7b1eb9ffc48903631bcc1cc39021c2a72453bb7271c07e5f8c36b5f4104f059bdb892f80900c88c92f27c094e11a92defef902e49878820cb340781c77ae42f128fc2aebf9af2e357c6f033d671f2e4b0b26c5b6ce51ee2cb2b300f7d9d1bc744c5fb9cb362b10bb7ac9477a0755cf5297df4e5f99b550ba7f8bfb2e36a39a9111c2d022b689620355fac02a5ee200b8e815ee8d838af01ac824722346174e718e8e3eac790981ca867e0d3bd992da5d898204424044c273a9cb5d56e404f8a7f03501e623fcded4ef66efcd8af7c3a574fb8812b4426af7afd21727a07b70c0e7fa493de8d206c2a24040edb9089b481850fbf25f1901d8de6f13f5805ab2d1e67c48a20a1993dded0b6028e342cc7213a1d6357157b360290cbed6c42ec477f503ee27ff0e1f6aa0df4411ad2b71cce52c04aa90117a504f011bd1cd01e8f8cfae12eec20b0652335fd9cfdce4f67bc90a9d8e8c8a03f8ba1f7c5023dca8c64a6ce58147088970ebbe7b08972a11f80b3e5551fc32f40b327191292c2486aa6fdec0fd88ca9dd45ad1b87159a8c5a1b0a0f47741f5ec8bffdfd6ed5928ca51b0bbc26ec86799873debe9d98ad166d8ac477400cfe09abc5094701b3767201adaa0d85c953fa53b9b3aadd90ff482b0d803ecc7f348b64fefd004c8361fa0446979af10e48f5c9e33debbd8e15b34acf3af573b2fcf4d606c74c794b7837bc31c6d64a03748b767cf99b17242d5504592b43787df8b8e4d868d3f1def39400a42a96dfb3ab5b7bbb1f9c40ff38d5413943b3d5c45723feca1920b2777df1c3c46b4f3e44462d5410e2363e86e1f5349c7ab283f068d46a3b67080dd013e7a3d4c62445395d0b9f1085b1597f41090d2074d3d0f74015539f067b85727310a5844d10c6d4800e5cb2e669751e1369155330c2b6eb64a21a29403a5b4c6054edc859f0f62a6214d5f95b048a6b957468a94b3190bcdd65f309cbb340ed1237a7c76e57dd4409f890d150b72a009cba12a08417b6aacfc297426d827287563727ae3815434e8b66c41d3ec4590a64c00e7b2c79d9cb3baa9ee5d10d1f10b208dc56e5cacd70eae35eb3943dc9c5c1881105251dd6f4a01e8c53b1c80da3f97ae2e8a788bd8d69939ef99efc61a780105872f4cdc8bc333abfab1b18d31ac9c5229edd5bdda42b0197a667e75e91bebce96394a9c519eaf6edf9a94dcadc7f95cc749686e98654cf179fdb40a8aac25e47304858325c590d16f0fee34f35eca1e15741469802218cffa7d5d9c6c2565c6cf8ce74c56d109d028efa8caae8c2546cf7a856a3652343fc8e0ac8b5715970543c337af51eb7b17f6571a8575f5ca3ef1e4087645e17052cbbda39c3d155b6667c46c9c6d0445da1f9c60d1889a3fc9b71554649b876e7547053b001f5df92f3469285d4312bd35c2ee19ea1b19774bfce7b256381277eec6e8f44e437f7d7c8846ae364cd69869b7b3ef9f10134bc66328cf93f7feda9be52f42c9a8a00c3ecc1b172be317ed529ff8a400116e24e6055e8f861081cd344bb02641e9a069cccda9129cc5ed7c28d82bf0a425991c12393974dd83a9c411ceee9fa38591ffe81ecefcfeee1e3ed2ddaff328abbdc28ef1fec9998e6033907a52afc41f30423267549ca7bd4e3a83efc7c651180613b440269bdbbacfec9c7b9fb29d8b3e9ffde1ac2396b12799941cffccebf4c7e21192ac39c4d828132a6d6defb93cd66d384c7c16cf2072a57208d6f4aabbdd31a2750af840bb9e97438225448774708b9a593fb92c20962c77112b960c1ca46b71a9d91fd9abd5c273c3856841037f187cfc242039ea225a50cee9560259add26222a4c8e66c5a0799e810a00edd12fcbdf65087647a030270eee6fb384ab9ec280aa8f55c06cad2f17455f531dd633815c6038b4e4c6561808ea37d0a645766483c775c3f4d19116f0a4c9b4cf502cf3546ef372e0b9ed11b02e4c38ab2e8c75f96c2493c06aceff99bdeed417ae1bfcc1077c112089199a0b3d4d2e5f94dae313f296fae918bc5bb68da903b7f209943f6f50ca4f2c777f2f023ced6cc500556fbd634bc3704073e7cd9117516c116811d5a63edea0336c6a8f262016cb57e4ab104efe167ecb198018de5dd5b92529855c753d6882d3f9741c33055d103769d6ca5bd33415385330fcc1bace329d7ddf0cc5c39cd88dbf86572b06ab828baeedc345ff482319ee759c8b0238d63690b64c0c4f7b7e7a532256aeaa62d4c0188d63b7d01e41f1d9756e3c0b5fead9273e8c5deee1b47e71f15048901f91338c9cd897041f95222d98bcdf2f410719020a594021e5aa3e16632f1c422ac6cd55fe665b406f2ab96721a8e846d33e68aa1702d755f5b63a235fdfb607794e45945ba78a6db6479a570206a6b44e962da283aa899a47017132d3e93fab98332dae1e07cf670f2a56e4c82f50339ce37b24b1d8f7df9cc5e52b1d95acd3d6c2f992dc0958cc0cbf6041cd216ea6503350f17d1e3dc324b1c3309c1d9b813d2fb31acdb73faac21db0d61841aeb42b6848903305eb21e859479bdd89a2a3a62b1e2528da42ff096819c91f65151c11bc86a02ddb4da3f5d0d6a8e2656e299c087e30427fba1ccb69d8c07d31965eb1e734a400004be00b4773e3ed64a212fbc8de4031bc60edc4b5bf6525e2abcb8a9927fbe98c9267296013f8c82dbac4c9304b805974334c7068c5f2f211d63360a4a05f5a99989d1b5b6fc4b4c829adfe72c821b14cd29fdbc6015ac8a801074d7b0e82de22584a592fadfaec1d0a7242c02e68ad7230316049d253a52670b835cb6287bd1b9874a6ff2732a59f34bb370c93b8c05c352078913c51cc8a1e7ffd4c480ca938d1d85df5255df45ef08628b930c632ef929a46289a3c94134b40bdd960f7d37d105e748ae94aa08292ab0741b8de1dd288eb137878758e4356874002dd16bcd681930d042175f8050e54529b9f9492114c2a62f58010a7dd136450061377d78f22cfdb43511462b1b1e95ddb531cdc1e9773a8e3e00715a477a31b852878c300b03a546fa4150f6c2e8d59162f231d85fb2aa44cb80096b2668ce4cc423fbb2253e6920f530d17e01c4a359a0afa94c8e1ba6f9860f468d244e893d800cea3fb92b64a38b55642cb93500f39075a74e7130900a2466bca43fa363ca90c17990fbf24080a04c747c96cbef4574763c11e5bb5294dd6e96b02b209911a9b5d070e21f364d5c505a4fc85244374bfb807963055008c1409cf7d9e43e05e7f6c02e75664de0c04d0bdbb66e2376bdd95629f8a39e574d3b325f8dd7bf7c582f704eabd0b0355bcf6d00a8d274fd525cb1aedec593464cb3c8214baba15b66f271f678664e3857cd7a32c6754db2543049c48404fe10d658fb8b6f532c2596f82d4756082e0c9264b781b0bcee74bcf34d804f785f20650d2b9778963ec5585f26fbe44c9d45fd30330a8d8b19da836f23e105e8941c519d841633e5ee96052ef234f1aa9170d365ab644318735e715f9c8785338eb87fb30f018d4beceaa6e528e2063d4e39a252c4dd5df19b92db4329b1adeb321d29056aee396a7d0a614be92694eadd73492a9146192c0fe0e1d46a17d1ad3b765a2a6181dee8cbb323e0495ae43dc9f9b69ebf446235e813286adff80a835ce67d6640edd52ad0b3008e436d056db5e7cfabe32f0bea508df068b269716ad6f5b230c6f635812231d8c3932ea409020161ee054ed66bcb16c6628a2db86a64d1f1a2aca06d0712977a0191309e464700a39141d981696252c84437e935bcd3fd5dacd912f5d14da8388e73c55b8e7fba64a6703097e87f35963a9a60d467057c6e298df42aa6ce629daa8fccb001db3442f09552a885a9e5c28a4888662266ec66c9aa2085027698f4523254417b971a97e32fde40622991a52a7b13997924effc48836328d390429516887ba7696d9eeefb7373e1f4652fff6cbecaf3c5f7a5f5af5f1fa57e41df29c629ad25f9cf574e6ee0f1f8abe21f3417d16903d00deed9137742573cc1fa5f902b7f51340b4ffce7c9e09039856bdc372e1ef6b2ceefb94d226edc5a02c4f72feb014366247a7ad0f0163a19418aef6d6001cefad05da7272e121fa84dc3721afb045ad2b517ff197158422b96b2387047f31303890078c6075099d91c4216e6c0de5d916f7eaa1f8d4b072b6b1d484c55651d69e21336e73fee44f0b9f31744878d206d05f8d530c8d5167873a6f20be21c483869bf584f8fff8046b56b968f80c026e93e71897deef6b09bf5cdd86cf55d5f4ce35beb658dcbda44f8c6315c37930524928a16f66b4463377ecaf325db89c145089abdcac1621c1fd372a0541161e9fa45b08366b92dda41b17fba1245886e7bbb0994e1c3bf016899a406ae9ec1470743751c9eac29a82735adee0ed677ddfcd592aea6edc23a9fe3976d263a93df9c26b01d2c9a40816d77c781c17364ea3b120cdd1a1602e8e6200548184206a8eba81a35a48d39086a354d32e70a817fb48098410768d6bc95e0116e2af9482ac86903ed5271901d3d1201042637a4787564fabe0ccb245ab651eca87eae0c1ed566ee7d016d9fe05c256cabce53884d75b2dc6bb253e51e1b03ffca6b2f190fdec6af0bc73752a06913e5fd8fc3953b4a2cce860923252f2091f765406151e0bbd43594371ccbffcdd67613b84de6f3c744dbf71fb1cb131217db6ff22a2a608ffe04e063e9b667935b1220e64b96edc792d2e562e79d502ae76a35fd35f9a31fc8e5e76dfcad592b22da46e1d0511459816acbfefad28c4f6b96cb7c9fd8796fb758459df416e5b488a07f555ee0534f2bd4a23299b3d07ff057bf8d8bbff75eca18e7d75e750e10c73221216b7f3764b0b96762ee44fb0c4b2c53d9a9fe0f616cbb0d6ed90eb58d667fd0a2265e747b176bf5026cab6b4645f7aaee21a08828dec0b351d503584bc3cc253fada7e82fa8319a2aeef8b7b404d2cf3cfced696b3e57b6d489e8b9d7ff95639270e32c661d2dc11375e3d0779125fcffee01581b7a854f5063e6aa36ed0a9d6e5bd2d1f85a7f5b58fc6400bdb864ec4269403a26daa8a2879470431f53c2f2a4dcc3037a39eb2e916f1959df420333792000e7632f3d319769d9f0ef3e75fedd5b9d151694279fc787d2f177dc9b76eac00cbeab873ed684a301f019e20b9225bd9eef40377dfa105ba050c5dbb649ade5090038e73394cc60cc99cc22db8ef32fd2aafa5184963652156fd6123cffcee16f28114440293bb6a3d2a16e09291830b65295dbbc35c6338fe9d6e4c934536a45f8422710c9b4bfcb8f3f99813fe9b16bac4a1d8b372abdfcde110fc7dcee90004977543e5af289451e422d1f02d374ef783151313f9e475beea9b56391b00cde1d9ce508719162fd452fdd78ce5839f78ff6b250914385ccd594f6128d3ef4c46a5229f783956df475ad3a93aba9bc194d0758c040e18fb612383d16ca57f05c532aef344ae3ef34a275ca26dabc49c53158be96176391e2ed9b7ee5dfcc99f1e8667272631b008a0dc9189de5016efee59ee4029db655ca0036ed520c5c41f2962f89ce9894d094637d99062433426b416588592116ece6aeb5cb4893bbcbead2fd0bbe2339f170ca89f4528eeec9f771d823ba861703841bdbe8ddc014c3792a0816711ad4084cacc3c0dfcdd648c80dc61aef9cb195a2a05b407a419befb5a785532415e1be3febf5530b896c3f42200ab4dadb396eb4d2f64a048404b1b5ea5827aeb3653260079646725303c58e70ee9e5bf86a0fa8bc561a28b39e080ff8c31472afdf8d2dae040c8763bf640568b4fefaccc144a6dc80fe2445ced715774d43bc24f8888870a98fe3f05f97213f2dfcf3d0e9dace532b3a209b479ab948b1edf45fd071da447d073c1cc2179f49148069b73db336c3056ce3ad636fc44d6a3caecfb497edb0d4c0988356002603c41372f939427d2db4eebb3aa237e80d5e33216c025b19c1a87bcc56931b19e389bf80d1ec3407cea3467f6e239840243fc50c10c721570c8cb7a8f5bd13b8b83f21ec4ef64175d6ac065f03b09c61960f8d98310233902ed0efb5b1c65cef2456319cc7166b36b1fd50be5f7ba372343e256eb5d62abb49974dc4370238c69515a2cbca7ecec4e058955ad1f6850dea471610ae26bf44d436b83ddc577c17aa7cc5cef02b04625d00bdcbfaac806c110ec6b1ae8bc67d0b2616157806beba1f9b0ba1d480994330e5992230ed52bb0c5d953242930a246285fc907c5cd74260eb26c9cb803ac3c7e73f443621e37a5af90def4f7f2543fe34c923fd78666c8b5a9043c3c68c6ba0a7bc88f3dfa095f0782861f968ae440c02bb0a5c7d2d22d7080cd0206cf8355ee33bc198c3603da885633734608f04850f450bf18176c48a9b72f8ab253028f47c43baeaeeac2ce340951d4398e977b486602d794fab657efeee18f33764c62cba4248e05fe2dd4bae4bd95dfd285657c42307b128d70a09f0047b9a2543307528d7dc2c8f76a4b95906436e55e30efea9e10650fa845b2e6e2d46fbc2179aa44f573b1de9b09de251cb6c2cd7d8e85aaa34bd47df5e283921d1f64ffc1dc2d6252b61802029e179e4da971342d436e07420d4b6593a5b528bb4196b843dc29d0bb59668c9185e68998e347181293f2c4e103513c1af498f32e416317cbe5dcf111452cf9d34e8949043c64fec81b149d9ebf14424ce2b69486ab4f569e411b16a2f7371f08daedc413196412ef0b1996cab0b6017bc918c05e827498799f71b792ede0499e18ebf0049db5a471ca30f6727aa580da4dadf4a287e8acbb5af7b5a5188d9b09f9570300fd142124a7974a918b4deadc868076bef39119975a66455a683dab1c130d1501d89901d1b04a58b7b6b29443ea0c3908d848ca9559b8ca8ca1da049a0c6b7670d406b7e727944adf6c965784b29b60fa5dc3bcfaef4b55e9355a568b5676afa2d775bbca2a7bb20c67df509888de279b82bb1c055ebd5a7c3436916aea4b46c2bd50e2a8fea69d4bb57d6898e3bcbb214bc0d1d96cd53a918a2d9a0caa4b612d4bcec77a8c12e0d7bac50c31b55248a3519929ccc18446d4aa235be735736081a76bb5604488d095d011096639ff9cc39d36c777d37c20e33bae808abb725af8e68fb5ca8528a919e068005af4be1c6c04603f802ed336121fe248dbc88515395335f7dc55ac50c913ab4838c503790a1b88ea5c14511e2029a9b882fe1a2e9653d217bb5f633346352811bd2845c06d1627bfb1c6d58cbacb2de6f68e0050a1f9046447546f4b43d7a4d817ce84283802af467d6a65e940a64a612114942eab09c8f252c687f13b80cd9cb239a30f2558e3470afb8bca2bb3715b8afab628f923dff4a5b2895ace7a771a801d7539394f687f472b7d42a19024e103b4b8f3f55b5e66919cc80647221380bd15921020bb6da570382c71801978247470c2b14aa5ab7ab5713fe41481720a6c5b3fa8cccd05b69122e6e8252847a63ad12f5a182d17d2f0e2caccf3947a20cc4bf1707ef9c930a9a778b4e1a19b2d84fd004e7f69512907da31735f99ca86d8d70aa89ba709dd94c816ff5287ca615789a77a8703d2b92ed327a8117743d201c55183f22d4531d31649d9168928cc5671fe80ffb6e9c7edb4cbf4f42b95d10980f164a85801709f945a009dbc3580e44ad6b925d26aedc4f68b15dd69ee1a77f83ac34dfc89fa568285c1b1b1c7cd04a3d31b71ddc3e63f0b54a3ce07861204a2377946e3728633fe2dcf2c31011bf894fae2aeb0bfa26dbb552eaf7716430a68839e22a5c330dbe836535b85516e0a087b93457cdbe6aa08dfccfe53838a98389af96e95fd99a656e92adbcdd00ce46b1d3fa4958344371bf7c6f8a8070ba00797dbe5acd875ee5d9146d231c3cc782934737a904ed764b79dd0f806909fa20afb19bd3491ce808c30cb6f878557541f70d85d99782341c3b4e0099ba6d5df922ad781d21383c689a99b0a4d9530345e12e2f5345d4cebd60c90c6ea7b8065a042d993e1c19472ab76faf07d58494eace81b862ba42c377ed7985fd9f9daa8b65f1867a519a3ca3064361328c9b3608b451de8794ede67207b136ca6ff80b87712fe897f64864909e68754aa92f55860e0216934efdc99205b62b659591264c8b9802dc16626a735f21f5ecdacbae705c31a38da0117efcd07a371c41a024f87cdc05fdcc5f745624d91225f599dc878273b34c799254bc58b6001a3678c2251da67dc4b879558f6f3b3b056ea785356c8e196377d08b05d5a77a09825eda67a236f453008be4585d8328ae25a0497a8de3eb554734f030f5573d0ad85423b0c7104d217eb0ff4c83192209a1663e11e5f1976e8d48eec89612f91ac033747376852fce5b399b3d0caec1122b5024ddfb3fa0d7115a6cd43add90f7a3b06973d697c7b9f2b973bcf8e10e5d0c0aa1cca32a683bf626eda149374ea5be338a85d2e106a06bca37bd8ecb611909c8c04d75ee530c0107ec86c7dee345b5e0006702e9804d8f5fc473e666590cfdbb85f5c6ee3f3d3f7f81d24441a4190039b1b80ffc3c3490af027cfbedf9cafb292f7ec972e0641e82e4645d88cee1f120cce8ee733e121d9e03ae76080f27965ead88003158ed8f92c9c23199e96a2233677bbba16b41a3c70c80e307de02b6d82132d08e28eccdff0287e905105bb4ab662e42127589b4e05f866c85c720ae33d882c8fff76b80ab1c521fa63514319d4041176216ba54acd4a5e7efa6d49c6bfc452ed341f00425ef48690973ee986dc8612e83c276c26c516f2d127dc2e29041dd1cd0cd9c8e4df1b81e9cee6eca4568bfa58c509283020a0612a12784c81983b177771afed1454f84d6fa2e4feea041a0c3a665a37a754ca48fd27c2566dd265d75af914e7530a071418dd165596c820ca95f5fefe6c7cbfb7c43b32fc313144ca0c5174293b2b6dc8faab0fec0f680369d07e4ccc8a56e36a471668501b5b3380a892ed5712cc988486e74559f60941b28c88cf94d34af29a6559cc490952677acbe5d041cf641189909ac914e60049b00a462a24ad4ed343f7c190e3d864c114c3de057a6c7ac0fb91b19b7114c34331d5badbe35ac40a406717a69fa8cb153489c664179a16f61c489c95433566ba1039eaf16154bac503ec92fb818812279f9b7204b323cb01d8194d5321ea4dff1df198ef73da0d41f2b01fda271518663a649a62f937a2796523d4c8e27a207b15ccbb675482a32805d7c8f6c513e9855bec31db60a23ea59b30a59d93c765b621a642d99a8e7da15513f43c5ae4e6b1ec1a3a1eba5553a2603e13d379f46c9f240b498bc6206183da6fa989235ba934282fec5a6285f1ffccfc4fca166947c90f644b020366215d8b1d874cd12ae4451f49865087eb2828cc753d420d0513a5d5227f38c2579bccbd2e08516c2a9fa0ccc93831ca68d53381ccc614f68006d138816347a322dc99b574183af4105f65fa47178fccd66bbaf3fd70522d4efc4b3773d6c785d4b3406a2964b24cb0548d4325172e6cb1657f526731a4ba7b1df5eccc3679d556bafd5fb3af69c1c9628e7d6434d31f5314ae0b191f30f29d33ec18cc91e5fab20e38e6909a3c4e9712a91c911e8c5f8ce05abd48009dd61a4edc8d3d71e8c1434d6cae8622826703da1a56ed72ff4446622e063738a141c8ba932e214112a7976e86e074b39e3b75b4f9b02b10ff8e0c34db8389e427435cb399f86248b88fcd2054251a3ba15d21e2d213ab148c0ec1982c8c07d3adbbea6d4e6084f81c767a86c5cb2d42d4fb11c851f96e8e6cebeb2618a96a3a0510e915fe28728dc1bae474ec869c34138b88c945c098ca3db478479a4335ba42db2be7d19a08261724657a2cee570b62b80c3c36e59ab687d06f724106cf699f9c1fdcaf0877b535c31f37faa0738cf48e40adc72155a60990151241eeef99415ef8a5229e8f7c5f2e27284fa2e169079509ef24616f11eaa602cacad0fc5691d1d4e59dd60b774e07cf7e958a803205b2c38cd2bb9d21b0fd922ac016f95a20835ee10c0255e908f802067c371e1e6b4e42d97caa1283e87a9127aeb8e9d55c1a85f1f7515cc3aec00c04aa9a10144ffc4f5a48cbed986ab4e4767929b9cb2aac1163c4decc9757d119d603af979ecf61643368da49c80b8a37831e050bca9088a9ce882332f3488ca51dfb277dfd3e8097f00b4f504687447d47275eee88058d64d3fb26e2466371a8c413e19e2964d426d359b19c9db74df40e818393cad378fbe31647844365f0c616bac1c99006f9fd4fc0a2d4af6bf6eda5bcd1709557dcf0fd80b5e1e3d9f5bbc22974f1b9b9264639dbe758b5e7a39e0300ed1eaf79124024f21652337958b61d21250358066b3d21e1178b46b91614ffeb2f31b19ebea63d84f065e9076f9a20c10beb5cf2c4edbe7294988320ab124c3554b564e1960406ac5d2b0921177cad6a7c3c1b9e351a488094f37ec7378cf117d0244e1ca1b9f98d360148629a8e6cb0a9c1965926a18087eb3aeafbfa450729c4924a699977ac4a3eccd966b315ff53c6400b7f710413a68772a2062851be736b5c77fa09d4434e05bb27203075424288138b10de8a2d7ffae1b167494fdee1807852bdf8619a8a74b711e15b5da2cee01f03cc89887b9778c0edead3949ca69a9ffbe7b501a2b958b03b3966b69bd0b4ae2fc0282bce613ff19157c41ba706d7d4f0a109dfb40995140ddebc921f99487b2239b7aee3864ea2fb54ec1d83a4298051fc0ae9cf88215e7f3ef451238f1f749611655f5dfbd3842568064d33cef4f13b975439daa4406e7ee3c8594994b5a4e33b3589222e232092ebba8eecf95b5c124b819740d4a76b2578e251640326cf967c91256e2667146d5bcc111bd7b0b3078754514577f1fdb589b64d6f2a4fd604cc92446f9562985bb31e09fe44eb09a6678f40e48d9887102e640cf55e05dac72bc160c8ca4bea5b4a31c08ea7c6938e68a29fec0472a86eaa2000beb3f2627d74ec62039813b5999fe56fbb7ea81dfd041a1693261f44f7b5e02cfe925f86cb4514eb8c8612f4a64ef64cdee9b909c10f0e1fd4f8c09636d65f6a66d1e7578f3b2d8289e160552dd46c9290f7f7447f7082fe5cb3f44c523ff4b8129612ad822146df977baa31aabe1edc48885680772e00551604e354af07f5633bf6d92dc852ab8705e2640a3ab6aa7a1b5859b7b6c11f7db810e78799f6278718f21058c122c94b3c083cb3c446d70ddaa2f7769d6fc8babe830e773071d5c1974ce55d562e01d1f3a99a0b576ef442c47cadd76348c149b4effba590d7dd272ae38c6816589bd15c0d5ba45ed40d39ec2f5b854c4610a84750792b94a04e21f4ef64e5c16834251a2b815f25e1c398f1b1abe2cdc4d2461a843c1106274b4c96c46c75b997942e5c438e1fd4fc5213b88c3bad8147865bc6f967c21159c3a23b269b07d87d59ba2b99cc641366854a20555c207328dd18348cace3507bd4229ed7832eb5fb94ff8329b55998ff5183a7b372f1ee97e81708638e8af030b47385e73c8bc0926e7abb67029c565d294c9b2995d9e22498e83c2ae7ec6d4ca03ca6be4c73885c3f36e1da32a6d133a4d52aa2dfa75eafb06e35de73ed5abf74dccefdf70b7a40a7228a8ffb01bdff92d1a2164f31c6ced8c3cfe8d904e975490c6d8728e2471241ac723a8e6c53dcf266256bd0ce217be22afeda52d8a6a1db82b26dc38468eb0eeefd8d4f6159fb5e9d4f58cc1f1472c4b12d685dfcd1afe48b61c4deccf5f6ad7e4ab657b9f5b2a7efaa8e7d0a5130df3e5a62d9640b2f5b4e56306bbc2e86ae7d8167a0fe7ae2e4503cbc4a0fcace70e025a0e28861090cb005f30795cdc00ddef04a4f36658a8d83c0868fcac79bb45dde661c17e10a3db21279bf46065f757c88d1940bc358bd49b51b31b54ddb6ba655c04b1e80a69ff924aeb6dc4d69fc80e73cbccb646b370931f2748b783deb17229f1227573cc33ac0592dda970c6ec134c571d262de82c19e5333288afe8bdeb5a4d059e48e8db2b422996fff413a4ff84554435430a13c2816740eba355203b4a429f9a4c7d25e990358f20072cad0f30a48f7418b2aefaf26c43ed8f156095fbe9e9d484e79abd51a4f904684080a3cffec3acfaa64355e0be597a37d3aaa5aa236eb015f787973ab37fd28ae9573292c325aae802e6edabd55f4b450ecdd427b1dfb7f6920bd25a5e9a3e920f54a6c25f64383e8312412c49df1972c55081bc3cfe911b649111eed65417979a3d4aa3a9997e84585c56e096db5c60377b32680aa4a8833f101075d34ffe3e15d01e5032ad28cff284d09a30a7406a7664201dba2f096fcd3dc8ce282de0a6b26ddff4896aee37137b5fc906facc084c1fd9d7ab0d55f5e40712b24d9002231953f8e8cdc9a34d68a083d01b0e0e991e40162edcc8f2ac90945c949e71852db2afa883ea30329f26f9113b890d7cd94e65040d655a118bdf7916b0b7a370f2400dc2d6409293af4f1d7aa74fd9496c61013119625c3fab0f17d1865079bbafd7aca6e280690cb226a203142f19140558fc8892dfc53c5a43263279b4a84f5aab665cbfd2c0cbb8c7aa19ab04000b72b4859047f800e86bc44d894d693e0589d23843407a4118e89830207d93856384a5e2b2736678b1021e8ca5843602301eab544a0b95a837084a6f0761f1c64f48cb58380d803b20325776eef47f0d6ae0fc03998bbb11082646a90fc9d9aefc83b06cdd710b6b414975dc3c0287c1c00f6c5e72a67c82a63ea2676877afb88b4caf8f91cf00bbd18a772704655d5177a6d0c4ce0b5f8ee073d9c0290f1c1628857b18a5a032566e8ee27e40aebfd5a701daa63daf325955aad75898eaa5c2fd1546c994ec47042c7b0d5bbb8115b5e7d85aee5504e6b2357af0c64d1a89f83fe465214c75f3828d0414073f32c12ef1612bf8fd4771dd5335de840081f7b3325fd0655977943a4585f42bfc13c90e61c05a30d4634f1ea6472ec202c3e00a0a8ace4c8eb6b4421a77670c6b39169ee42bd5e1d00c371fd875001d45fc33d195aa5ce296a9cc38d0024a23be70a45365604a6fddf31f4dc72602519e98da439c90b43c03a6abfccbab73f19bde05019834a9876aba8ce84886df28eab915e0e09326c75f823900506fb0108a7eb8ca09b8996451b93767f76358c7439572670bce7ca085e502dcd727e8ddac9c004af0fafc62fdac090be1b11c6eaeef160c9bc2a8893ffcded46b1ff35ae397e12b2ecc77b61be69ae80f72a50b100f4e6ca9f2390a5a9d982097a5d8ae6c90c559624240b2e4641375dd857cf2dec0e8ec5343d24c65eb9576696c6e4eb5c7c26427da782741127beba7e328ce417d628cd71b259469709ea487921e2daa8ae2e8d143824fef3ccb3747a55a3d403ac741305bace589922b7026731473ee4c4a7702aa727d45e1d1a12b9a54c96ea05624309a2051edde1f62a0f4891c969301b6b7ba18f0b49c6a44880d7161d4201f2566733bd02aa9d06f42608838f09ee257137c7955d86d500dcddaf58e640d74298f44dabe3fa5fa076fc9c3a4dc7dda0bf05873de1f4dba4bd31daae58e155b802d37366f846dde63bbb82011881606b2be209ad58302cb182ea8259df5f6a5865aa486b4cf594b17f4ee833ff5af2e536dd597311aa3efa87a88c93ab04e714ba1938383a39da3e9121a7abcf5b94ef7dc247826ada46d934e8300b850c6adc63c0ff8d98912f5127a3f66c81690d10515d0350b2a2a0da11440ce4bad4b0e64d710d8d8a3084cb42256bd4bd844f909084858bbc38e0c4b815f06ecefd4f159aa8f0cba69ae151899db178779990b2da2caa657fea3e684132f5a36b68c7aa9124a154457596ca043e2b937c62517f460f04431b052551183d94e922243905961367b6b68890a143e689b6dcd778b004333a6a36e6fea185847feff7d8689a4b49392eb6722a4a1c9bc636b97486d08db749d8afaae437f3d62a791e114c58cd429468d4ae1ff62b5ac059322189012dac6a7ddc33f43f3722074750cf03410602ac9c8a7e07154727fae9386b3b5932005b29daf95fb3684a9e05a44af4d246b136c1c171eb90e72bb8b6c58469ebe69ff259cb365b64440c4f57fae70c2062ef72004d808f26ee4d096a3fe7c27d6a88083e7ea4c05dc0d4428a9fb0c0527f264e920cc0d0e01603a536856be612089548250aa25b24c1c071b61306a8f413b3cdc88ccfb528752c030ef387fed23c475c61c55c051d5173e03ff2c71e6cfd76526e2be1bf262a20801e4cf89cc68f0e154e35201fbcc69478a597998cf6fc072318d680d8ef4c4c376148e19e5852c1a86281c13467995271d079a76aa07545fda9f7f390e270e74c709384f1855a241494d12bc2e4619229e839bca93d357af6b4fc78a85d98959bcef77f382cd9cf02d3adef2205f477da36a268f1dce3be398c2cd90fac40486f1f9dd4d3abef824cba6d44abd73c1eec9b1395d131fcb8ad64e55fff0b00d689e774bcd141cd1e25d9d6013b3775f084767b890efeed32d8e8b79543324628d8fe20c05eb41d49d775c35ac7bffa0ee0717c4b740beca11b631c4984cb4c2e7106c4f60583e9500b453dbe30bb38a504d5e87293eaa811f2c357ea0ca5612f4460426b9e49148309af8f44fa043b681ae51edbda0dbfb1bd05b20ec9ab923bf333fc0994f77acdf4b3c67ec30ac7e85370735afa5e92a7e5393251e4a9dc0fe5384b9ab1c6ecc59abcf2828da2b2982ded8b32e2369da41cb33c5b8602162ee3b0b2fa2c64c36e5a08db7f23a2b0fc90269ff2765210e7070584c3300c811a48756d3e75955cc64648c6852a076cbf7a61da40d91c2ed38028b1d963d1acdbe2f3235e9db6ca30a4b84047bcadbd840773b5b399bff6e5412703a653021f064b5952b1c36cd8e1b923598fe0daea2e9d33c0b48433b358ee55c0d4e4251bc864d5def2924f082029c387be0251870dfaa595edecef76c3988fe1d703da5d7a76a7c320d780b79002ea8f050ae4f47711108f34c429f880417d386f35f96037a83003f0833b1ec62ab914bfc1bab5cf96145390f53c340950edb7f999cacc430c2db0582669a4b9ff7fa72b4807b9985e70fe07aa99e5ed226964da0eef5ab7864fce3fbc05e1ab1ee0103441c6c054e9744a20e55209a11713a454a48e19e8c002226f4cf9bb08b458d05cc0d8598b0d23269b21b8b1171a13f71d5108a52ed6a68aa802a5833ca6ead24bcb281ea3498849e3aabdb3f236fa674b31842817ff4bf414f4d84ec2df70e550fec0d770e2017e8fc98a1d7e702bd426477c7727fa6de42a40643bd4eccd26b7369a7a9121ab5a91b14cbddd25a8fe267e636750b8a0882a9e0fee147482d940e7decb78a0a18a3619e221f9ac4c345aaff70a6aefa58a67cf8018fa25385475199c223f81a473de0506c1cc5469169554d8e60894117398289401383e708c642e7e8257a89602217080b8d301eb9acaabfb28574813a6486462e14ae3f508f5ea7c9fc1ad4289eee9aeb50a3b4d8467d4e5b20dc2ba6cb92b302b3aa165b422b3756d57d0e8022cb2bf75b705a7e6ac1c97d961bcb42795916b7c2c5ba972bc65d65642a8542b017f70f8f23b3449662a4970bc7b29a7bf7f1e4fa7d153c8ece924982995e2c30cb32993eb6e933a1f49be42ac14ca4d36492cad2cb44924c530c844712e93aadaa63a69049c65c2fd0e82ccdd2092391a52ef5a8514c31d266fa14aedc5bf7ad04fbf04a77784527c583574ca6864713f73bb442d0c7aeaff5fb0b6196d2a8df1ffba07ea9bbfbadb242e67e774abf43f2345a1ae57844a1d1e7e95cc1e309399e9c2a784481a5e0f1649ef0a98cf54d783c31f1782231ca088f28a1fe87c713974b844f3c784429f188b28d27307cf2e2f00ae93c8195e62b86e24239612ef3c55d3c91b1b2bb7872a2c04ea579425a18d0c10c2c80b00328b468ab63d9212b1529e8c2193b676ca1455b20cc720ae1c50cc67006155db468eb63d139b992308717d8c0c105248b6955dd9d8514c250061aac008c166d699825c7749639bd62633f5f8159d68d658db5d57d7b864570e5e6b372d35a292d6bd4de5f4962591d46e9d8e10a9dabc3331c469dfd15251c9ed9306a678afeca6b85b4aa5eb1b1aa6e9d1625f446bf4503e0b3c5456e86a578fd0e9ba10045144eee13016bbfe56ca1a947349a9b4d200e5eff73910b7b34e9d4fd09e42ea53587444f17eb5977407a2211c59021a04899943d4e8f673ac804fa07c29fd33faffec181272547482d9c11ecbb77d2f8e11a2abed61219967bf0c8f2d22f0ece3916b074227d9424df9f5cf9fea324df8b5ef91ebc81e5dbe3b424002f08e2e43ec2b4acd3ef8fd039e23c62c7b2fe7b1ea465b1fc9e878de5f1b22c237ecf23c7b2be9b2ebea05c84a1308a23808b3467c7456a12e022d501c0457a8a95b4116b599388b40b332301570e221181171d094a8442424291908c66482b284c1a6111f6017e623eb04ba23e9268ac3ede2341fb55cd6ac91dedaab5cf972e2b8c489b6fb23ed131b09ed515d3b01046a39e355c2810a411ab41a2ea8b9a203d8b780d13555618586345d4db67bbc010d481245c3dbcd82f1a78060991b3ce7a0b090d1a17ab898f905a35300c9296223ed3d29291b4b45cac252a0087c1334850780685c24d0c00c9caca458a04f5293e5f21807418520d266a287184124a7c4cc0832c80441ad560e245fcc023cc573f8e1a03702423072ec24d0440079e4122fa14e06843448b089e61e1264cabba1cc033a28b745cb46406dd0f71e57b2860f9fe47087a9146aecf148148a357beb7c07d05442018a91cbdc2ef14c562f95e02b07c1f0132df3f21324131d208062245a655814ed04982c146e6c8048d48100346246801a10142d2fd12e12816824ad17984d402efcb9aa2585982ef51e6cbbaf62cc274d5c063465e6b66b1d295ef8d5d12bcb7071eb3f2c2ec9999b6c6bde68db987f9919df9dec3c432d83daf4b2b6d2c7b5df3961a19836de6bab19b9d968918f9324b57116609b327f92265a72bd6e3e2356f69611ae9e362f6f2819178f72e663d30120f0c46f25fbcaed3160b236161b9686318c92906013e545629644aec089413283246e595809432c544e2fefe888fae7c7fe6ab040ae58a29e04abcf23d99ef0a29837ae5fbcb800351291180c7157244bd4615138f290cc02ae58842b95462292f05601512852a555284e094131543912aaf9432c5b4aa8b82a99c2aae143225a6e9c0e8982bdc848964f515121f9fe27324a30fdc44ccaa2e12239fe2d343013027720ebcc8a3b81430ac233e4271f143ae816f8005e44a7cb4c02bf00b1c03cfc00a011f6580fc001f817c6cc019702157c047211f13f031c8c708fc894be01338056e43444b01781482c704e031081e837cf5045cc8157004e051068f07c023103c02f9e707b8cc11f026f068003c2e814725f0a8c45949e011093cf2c0e311783ce23005c0a30f3cfa788f02dc086e02c7aa420d80456a5e020a500a97288a1009ef39107371a95e618a0c6b90610f1b08ef3510de0f09efa148227479a95c3e9c35cab00758062e10de5ba0024d842eaad20733ace1ea4101a10b05c2d4398104843ec024e003ac066c15f65046a0062cdf3fd1830b045c62aa07843e3820bc0712d678f5e0ba67400f3b0540e276b0d5bd996ff9f9859df9de07d7038f9cd9c15e1ca999361bb9d25ef7ae1e2fd8a9b992202dab4719a3c17c70af1e1da9715d59807b8debcacdb59d5ba9c1b8d76676e416db48edd5b998e0c8223893d4c1b617688eb422b818a97b8960da39d26a702e52e712c53632744fee0f52b46d25135aac080e46eaca05e023a496e8b39de067f589794833df97ab0f8cccf72eeff5f29c9de9c1c89727e6959e7b98e7959eeef4c03ad38379a4e7e589795c5dcc7bbd3ce707e629b993f45c9f4fcc439a5cb9b9c6e8c2094af00638982fd205b342074838811c5a70468b9eb0f20533cb285f80859d1c32e67ac544e712ce50023788c1074a28cd7c613608421268f00435b4406700c83a4cb10517b4a0861609464511e080051c6c5a23130c5348428d0bbcc084d68824c0119494000e2440430be482a99c2e3346be6029a7c9ba8872ad2eaa14715185ac713105e622ea84c14dc448166e2207f55ae1264cb308dc848e4a590337819302cb9774e5ab7ae5fb1bcb17966ff9729de62b5f57beb07c5565be2a32c6725fde35f33df3fd2df385c17866f9897948aef45c3dc80fcc5372e7eb5c7d5eae1a1dcb83f9f0c81f9e98e755a33359f808a9058347256e43448b898b5ecc073e426af5a0add11117bdf2073e426aad7e889e22f05880db10d10272da023d4c34413abdce03fc338a917ac0505c45c89c343a4ba68f2362312f264a04dcc779841249a0c05cf906f911f7a4124d7c34406c899b802bd1041e4f234a6c3c798da4139bcaf1648e28b01317c90c824da718caeba424c510804b270ce5841cc9e092695517a5349da303e052ac06068247247e84d482f9c08f07cb17e6731571d6004b254e72e5fbfbe37bf5004d9825ce325d3f9c78010ecbf760ec1ae03f42650190e001c28eb84dbc002112093c7eb111848d2173fc481c229dc0e3071bc158e8fc9c38547e2fd004c98f8943aecf059e60f95102875e9f08f4ce10ec4cf1ce9332242241a0eb837d5e27ae900b747ee5072445ae90097a7d268d8b60eccc77e562a8cc17f439f3fd3e183e6d853ebe98e884c6ea2208c362c83c6dad6031447e5a313f426a894c90ab00ff7c2c91a39633df9398e975c4471f4b65cb2a3c31613cbe52ba56f7273124be72e57b1f271713283f3e9a49dc87e85582c5e0f1e41a51c8d1348a5eb8041b4fe578628a895cb8f43a91272698a8c42517ca6955f724667a81b854a298273053a800b8443ad182f91152eb55e6fbf9788328c97c0f9a348ea3244f62409cf72d3fc08060ad62f9be887b183c06718e37ccd1466cfce1858180e1206f9c36cc1f601888188e3208d2c60fb11f18081387abbcf1830f0cc4f972953db00df2235b42b11414f304e6224fca14f085729ec44caf7c4d30944b54922766be27a729567a895c27313756755d38e66555975c89516255d78c7159d5c5314944af94f2e4452a3fd3f989a1cc93d149827dae131255ae944e52ec8b7d5ef9a2c0564e5c2d26f2239927335fd408d3f3042506627af232953d764867bee700585bb475255e96454349113f426a81ca1207f4f0ccd744b9f23d093259ce9695924609b3accb1203dddf87785c39cd96d70a0d52891bcbba475dd6fda5c1e2aac1f20a5b681481479691e535b6acc45a622c2c2da555dd169385a565e5d5d2528e4cf00cc140a588063972812b67a8e52572a14ef015225962a4db52aeb498a11596b2058b2ca81f4a48ac8b2caf951fae13b1850ce19698088f53d833ce6839f123a456c8017fc021f0271e8110eaa3022ee40b3803de00d6ea63111fc38f323fc011f0204f00cbc7bf8f4b647adcc7c71e1f613eb23e16e0479cc791781231778289c7fc38131f7f7c54e24bdc006fe2406e4344cb093cc6e091093cfec0e38f7f67e23177e23ef0d8038f307864e191f5cf61dee33ebec2631178ac81c7108fe143aff122be3a0d3cb6e071441dfcca5b4ee329783cc123098f233c8e2e3ae9274ff951aec4f2fd06c01a8132df3fe1caf71008ef1f10de3bc0ccf72961781286aef0af90c649a30164be67002cdf2f20bc57402cdf0b71e5903cec644823861310cbf741ca7c8f80f05e26bc3fc099ef57e163e1cb10976148031686a713e14f2067be8f09c326c27b26c2d000e1cd1f210dd71237f3bd12e19308ef7b842112e13d4c88798464f80a691c11de1720bc8f7159d6c911522b74e66bbebe58be27f38db9f9909e72af2bdffb33df3365faf0aa11eb817c591618e2a1fc7c283ff720998af9e0aa61f270c628b1ac93bbf2bd0f2448e67b7253ae1e4e7880f1f04ab97a385d7880f1e04abd7c205d481e623c9429980f354e1e708d988acb8992324d3ebc7a203fa78a89429a6225d7a7fc4c941aa7a92cf940b25c130f2e7cdaf256441e5edf69cbe3eae134893cc03e376236603fb8f28ddd80a5ca1f4a205e41c054301b2f2062376cb854271065102f20c8205e375c364aabba4090aad80d1b2ed5094419044c05b3f1fa81042288d80d58aafca104e2158479236603f683ab07b374d1a5cc34ccb00c5d7f61178d58489ec4e14903f6d8cbd0c464f8a271d747d30570f1a708fc427846e52d028c28df71318c793328cf3b4695130087b0d1c333a60f400078b421a2757c005cbc59ba11e34ce90130023fcc11ab210489cf23a416be0e00e01ca6cbf4dc1c278e9921d3b5824ac9f1caf7b24e7a89e54bc42bdf95b00892468e1698af7c240216e2b10872cc011b73902386c144c05078c4b01c2f225e622c4cc42bc7896344bc9844b87298395cd87c39892873c4729444c48420f149c395ef9b88599609bf8485286364be87e95816c642b8868809510a111ba27c215f60a665a9e017d7102e1c439842b884305f5e38ce2162399685f2520a710ef11ae21402360439042c840396ef492186208780e18011f1520a710ef1c2111be214e2f5e21ac285c31c22e53c799182b851da208138f365b9385cf90651de206d9cf902717194419037ce93098a896038c87c83388f905a27f808c9460c0818cb0f2d4290b13286cf1275bab069ba4a668e33667aad1071d278bdc43e18962f7873c0f2a59183ccb7061130fc52792151ca5132a287f0b8443b1dfc0cca4317893e7382c2a30a9e39dd73514ab864fb17ced47f0e0a6796cc9870c5e309a3b8a3b483af230a467138a6e67b7dc5339e7f0ede8351da45fffcf39993937ee9413e17bdf47e6f21ed97657dff0eca4ef95bee57d6b09c354ece4c07855e5f7a4d0df8ef220f148261ebb429cc5e3b561281216d55d356133af81ad14b0785fd2ffcdc04fad6216afbe7b4550a3b4727670f9db94d530c5b8802e2f9e7413cff60ef33e03d0fe2fdc333a17be03d1712ba176628c9db63bc5098b2aa2c13879cb2764ee3b1c5f48a66ed1b8ee954363a0672772ddc42f194b7d7d2b99bc08b1e247453e8a210080a69cb64fad80771a590b648ff84a2974213086402e19919d23f139e11fdf30d147e2f851f92e87b3fc887fb413eaf7964b308826cc40e39a5663ef533dffb29cb0a6194f6d08b6581d873d083780f61109e99f9ee396d8d4b6444af78ac177dec838709fd13820ede09da021f8407d71070c896e83b5a8467409fcf84fedd0bf5bf83fadf65fa1f96a99f944da257db5ff53423d5a48c13199948c3e0386c555976c5d9a9ec156659dda455d93b76c569839c65661527d00c8e03fb5506b02a7165d939cb4a5955768ecbb28ed11b7d05aaca7e869c7d8c9c5d84c95986532b17407ab1c26299d6e868ea118e26d36e80e1d9e81425c00bcdeebd7621d9b77bed41b26fd9b7ed33f75a967d46fbd57e2f44bb17b2619a550c3c0106f804d501caf53b3642b4875e4d1b447b487be8a1cf6c07cdc8f5d58c5e89dc4ce81afd50160301bf5d08888584b0b65d7badf55e8bb4063ce935a17fbea39fb0d74ed3da30ca621410d2b7cb90363c2eb158e6730d8fa17ff04cf7ec237812ce3ee3f93d4dabfe89dca1706666647321da4917b21dfc13dc8368273dc876703bf8ede067b4930eaac78065cd804fcc90aea1380c8474ed42b40b01f1ad6a142e91d91eba289cd10ebe57006a18c56d9f830ff23df4d0bfdb8b0743cf4361777e4223d992be07a3b86fbf180564fbbd8cf6ecc546a736ace1982cdc61553546f5212fd90ba055d118cb022fc4a5666d390f081e7571b6acb6ecda2e2554872973b996911ba5611410cfd3384ec6f3685adc7b05a02d6db22d6d126bd3b71c08a88ece7dee73efdc69cdf45b80b7000f86a1dc414075d0f73d3388d5e438103c9dfe542a8b30194684e130125aa6b85d2f38559b80940bad6b6b2d086695398a8a35d72ba45a7b616033dbd65e04e9c1d289eb4a3167859ae3755e8ecfbd537a3a715cfd96c34896b32c83b1d6f6612c77bf6130e485395e2ace01d3ab8a615e5e607a4553e15f5eeccb0bd8a715971cf748ad998605c8bccb4b8e978320a75198d40b78bbbb59e03d0c766fa918d97ec7efe9f42f76709345708c1d6d061e75f99c6a15955c8930b526fbb03ccf77d12553fa52afb6834e4161ad6995bd10cbfaf0e7645fc917055095fd18d9fe0c194608161cb518c8d96d154190b317197376ea72aaf5ddb5b3000ae1b85a669db92184ba7d9980f4f7a7f622fdc5319456bc43a6530dd3a97e8c3d9dbea38534c709a9618c4ca75a264688ad7547d3c308b14d69db24403bad95a0dbdaeeeeeeeebeddaeee6e6bad8b9984d88e236edfbbe3de7befbdf7de7befbdf7de7b1b27518d00b2c07b6b8fb85ad87baf175608c30bb3495682ea69bfd65a6badb5d69e7ec004a001adb2426c0c145f32063b65ad00f64f37d8dbd7ee7e08d329fbfed6dddddddddddddd5dbbc0e92209fb232a18e4cb72997e51c6175a34ac6bdaa69a958c2ac616b9fb2677d326b99b496aa529a5a72e1cc52b9d02fb0a4ebcb9af80f5c0ab2fb0dab35334cb32fa92b5d3cd66daab9675aa35edf6da332d7381e2cb193cea6206eda2c99346133202a093032306931c31d84b175ad8b85192cac2062eaeb25a516b56aa0d084ee3901291272805643ad51f2149fcb05f80f4efce61513ba7691f1b7ace9d3adc278bd34cc2b039669351863de94e53336aac4dd956d8c0ba9474165ad81b5877c1c4c6725a0c32faac4d728bd58cdc646e9b7792dcae5692fbfdea7ae0751440faceb71739cbd9ac71adf5e65ab3ac739669d5da30a470efbdce0c40e3d44896a986c55b3f1e378a8b393a740106f192a237a80e2d0685676fdf7b73adb6562dbcb75efb85679f0066da2b4ab98c457b334dd3ee7d86c11e82476b07bc6b83d2bead84578b2024db7778b59ab5b57deb96dd8d7e342d450425902469d3122f87c3e3348de3b6f0ea0f6a18401e2aa59a967576adbdbd5b10e1d521582ac4aaaa796d667536eef696358c11903ea437ead601d0d60d67a91a7ab9f4666abbbbbb6a9f6d14b4aa7ace6bac6901d2ccde5a6b6bf7b24300294c25010d63a322ed62dbb20076e33b847691028fbed02c40fa6e592c5e19e08041f0aa10fa9daa1ca55bb5346c67a4b370dbb26f5976e98d74b6d40e517164b7a761761bbe541c9452badd6eaf99f616b99ceadbe0c2c8fd8fb8923bb456883423118dc71015c7fd0e7b2da4e2ad2597bed84c0ba0bdfd01486f7114f79ed3408e4ef5c9462ad52b9a02efd6e8b89508a0152df1665a1280d7d4dab6597697e0d520c800c788ee1de2b535d7d2f3a1cbcbe4e2e4bb7361b7f402a6531e0f47bdcf396b3d98762aec00f892ef7164282ea6d78a2c5a8fe79e1a5e9c7bbdd0bb777b611547c5d7c78542c5e1b987b94e793c18e50263c5bbbdef86af715c75e9157da95f80f7f41673472c8db5190f7000f6ed0dc03ef5c1638136db360ab66cbde2896cbdaef57ee8cd6ee3db71945efb8e6efa0d6bd44896b5b638a001779bd5e4b9640b4b6042c98146787549af28054314ecba02cfd3b26bbbbbbbd67e82676100765ed77b2cb0da7895b3f65e7bb94f95827d01d8b7b709af6601d2d3cc04a9430490de561136467cc93695edb37b69df212ff9364c75cad28b01c84c903a999eb8966823c7010c2dacd07d4ab576afdddd6ef6eb6ddab6d564a7e2ad0c2fb99eced3651f8faeb3d9e7e3d2a6f96a54bb5976a7b824d0349ab257d3fafac0cb6a7d9665d9f61a0ef964fae10e5a555fbb7d280f7baaf9e419f2c95d179ec01a8860e93bfa7a3cd7c2ec1ecee34982e60c5f7c69676fbf25b852af36f0014f9cadf5f3c9f4d9ed42fd9cd2d75a6938e493b276ab59b7160d70c976cb380e4341ff02d03e1ce29229ad49f0a88b77ed7fb7ceacbd97d2af899bb1d030c785a80e0bb2331f77ffa13afadcb5b65a2678b4579dd1d4ed3e40695fdb49a8f5f7de7befbdf7d6705bd9c253a76ea76af65e7d25df97282b65551e007328f4fb4b39baf2fcfe4359da2f1687b878367c9f7600da8ba71e2b9dea9a2517bce7dd0897414f5916cce77d42ea09633a25d33e288e3e4800b49f7d48d49c84abb5ade61b62a1dd0b97a037fa601813466104cc4ad01bfd242a0e0ffe7102d0cd9ef047c77c4874f670123660a537bc7bddc7c3732ffb78c2fb4f986550e8012e7fffbc7e3c8fc7e3d5b6d7cb3cca8128bde1ddf35c9b650e672bbdda804bcede3ffdbab8585cea54839e6e0bcf2b8125d2bdd7de6bfbda7b2da597d26badb534c4dbe366370383a669d66acfb46badcdb26bdabd37c3983269568d772adef2f0926a6da769b76ad766b7a521240d8c3620e2004824540414c527c5c788d7018f07ba0f7020d8429069d5de8cc61d41765bec782d4bcff40ad551dff748beb7f44676ef7ee8b7d96efb9ab876ab5aad5c47aff5ae67b3f6ec9ef7d98e647bbb6634b35b666fa5e95af4aa45ec196618a09e918bd833cea8f4461ff191375c692a1bc1adbf61c5516837c2e5288c80194776c7fe7cd8eb81cef63380b55d2d683bfd90b079c3456cd630a537b2e7db2bfb4ba3d5768277bd5189063dd9d712bd712fe2c84d0aa2348434ba41d2c0486463b401110884880360e807904808a40a15017d295014dfc7874f8a8fd7c3c788e7e1c1eb80a773f178a0e36a741fe036cc8160d3c2bc8540d34490d138f5eae66c04d7e67ecb1d2d8b9d697ae39e56a88eecfddb1f0feddeb5d71ba5944eb690064df5bbf046ee673de4fe09d5d1426f5423564e27449c6c8c9a6621c7799cc7e1fb21916d5a87976476ebdc00decb322ec3d929770a55f589dee89b65d7286cb3a12078d4456c3973531d35534a613b34c79620b78a12ab22391bb054c1b12a3131450b31de3d2fac2d159558eeab28b1ac96161c15252d382a4a5a705494e47e0b69592c779dda86e340f074b2c97dfab1a158b3bd513f2468645914f5455ba60ecb99bb05a7256659238eb6758b8e65691a378eb6ac65bf7698dac7121e2d595d315dd2961ccb0ad1eae91e7d7c69b2c91a237258d7d713609ff5a45fedb265a975c892d54563d50cf5ebf9d1b3d4a1748d7d38e5037d2ba096d2073a01a99c642d78ccb497eb9e3636c223dbd2ae97353358c342d874a6f4533e96d7c2b29746de6b5ed2be3a969d6d5d5a99751643d146d705b2b18665b093be2f909962574a14adbc207ba6d857e6bae44a120b5b41adb8acaabba584579490e3cb5c29412a6f5097525a4b89992d2d1b4cb4fd70f063bf39d8c8919bf603de5e5a8cdb36d706db4a0dc6b9b8580a6f26676e64d6915c5772a77676ae8cb42a0f46020275184937d37598a5b4aae630128eebce61161bab6a24dba7f01cc90c6843a27d0acf8c76ed2c362c492c0bc4e2b2ac8d458965697d96d2b26c2cebadf57b64b6a7dfa3fea8df288dd27ff54abff1e8bd3ca6a7fc901ed2f3785c9fb23bbd98477a3eaeaebdd203fbbcba98e7b93cb14e0586e2b9621d0c144379994caff4c040afcf34b9bc98479eddf929b70679afdc281ed3e4293da4468ed9c8fd336e0fa259722c4bc328d786b98f0d2c9eb0f8902587dee8ee4aeedcb4932cb92ef5469a9ccb2c71b112d4a0de4ed8e6fafa24e5eb1514a85bb6d8b6bdb42da5f493d28bd45252521a643669c2becffc4e10eceb5e1f8804c53e32547e305009323f67e87b053153d8fa198092913b2b5a55bb527b032866659959c15d323a65923b35bd7a972917359842dd6e06c3c99c4075d05cb318e87258d44acb1261d4f6d269ab7e18b5896e2a9944a7ad2a0a51db4e3541ee46ec5e5957d28f88a90ad2fbc2c90487090e5d3189300a8916e30e53d869512eced88292164dabdbba8ef3024c8cb6dce6bad92274b35158179daa876d9b7ddd36ce54336d652eaaa3e67ad3d7c36e411700522f5c9045a674c8d48b16bc6c153b6fb0f1388edbac164e2d542cf77ab9aee854bb54aa50928512cd07760785ea78d56cb5d85e1e952a3a6e34ea2880f5368bd90ef5a854d171dbe6e97a0bb02bb6e6eee992d8a0539f5cc54f121f7dbf8b5d999941ad6aeb7e008ad9cecdc9e208b058e272218b3499bb97d1da9d6f48d1a00430982d2e84e28659d7755cc6848b2dc27831a1424db6a3726fc7752e254a5e1f527745ae595cd16a40948dc532aae3629b436fd45b313424a06873368c513eeeb76f58446161f3d6772c3e7c6464b6966ca7b950649a6c4f93ebbd2d442d0105772d6fdf30cdf46b42cb1c462dc14181029d66d2398c1a3dd364af36ed7a415b8021ca873d162899900d3283b2a60e46c988feb544e63d4b6c3aae7e329f3ded8e55d57fbf2eb0628f97a91759e4d47b847bde1dab8ab9365655cd166da16e79935c1758522f8240c63d8219d7450aef151a59df5380a83ecd57090d6f164a361e28a1c3fbba5a7855dbb8976693b532b700ac59bc3194088f2819d14d76d8a2245b22dce900a4697da7692901549a25d882ab046550a10b4ad8b88002cc6e57bc264dcbc3793c5de7329be0823d210b9e8e8bc1b2181979cbd59ec48c94f92eb201d3011858dca4c18b31de200ac7cf63c2a2c005349054c8b119f51bb28f794a01670a308cb1e3f9a6919a441afd754f2e6a30451bb2d84e1a75b717632039f38445d0627b33c521754ea546d6174ecd8de7fc620d4db2a86561a34427df2c0b1916b258b69391b40b574c0ceea525c99870b185ed72af9b5e715b74651559459303c8050108f4463da7a4e2a8bfe6eb05d62980a54c614f78c1176aa455d56c87c7c7038bcfa337dc6eb39c4e7da1e836bcd94ea7cce0994e1b58ed0ea076a36dd1abd1eb3558af48afd7ba30bd5e232dab74d4555e535ec153cb42790874af3f9cc6719a15bdaad7bc220c57f4f0c1a810063050482a84c10aab7557d21b95abe7b4e895bdc779dd359765d5b4192eb257a45caf25b12cdacaa25935decb6504510ce64a62adf03ace7e56a35bc76955f4aa7a9e51e10ab54155f6296100a8caaa4ec20f55d997427b52c8d194fd28bc3465df47c85020774672e779b8c898bb53ccdd70dcab53f5d52b32b0f8bea3efedc7030b51ac533833a355f560b8a3bd3cd98e19c0ef3c5b6badcdc2a8cf62e0d5ba5053b31daaa3665af615a9f95e9cc10014af999d6cf06b7af79b5d512ac4cac8f59a124d8b6691605a4dafa817365b889a15b9fe0d83c2922c6aae5cb52c72dd6e578a9c925cbfbab95eec6c90abcd60bdd2723da7a45736d7b3c0fb8e01586f2df1e6c5176cb29895f494a9175e38b3989117a45f485b9ad895496a3046162fee4adb25e915a5f4de33d72a851dadc60bc56c27b7e8b749513310da24095da822065f204218ce16fd7a709b1476b6ae2b3b2bba249d4ad56c27b3e99598b9763233aa5645aecf94f44aeccaccd52b3183655774656745b3682bc6f1e0b4b066db45a75230d8c5e9d465d2a99ac572adcf625918bdd2a25375c3dcabdeac8b5e3d6765fd25b3989519b96564aebf9503ebddc9d5da9b5357f2f652b3b29dbc6dafd408ae57ddb77fb69b73639daa61643b96d5953bb96adca6791abdd1855c686f7687b8c47ad5f886d1dde9d1f491ea7595075ad85cf9d67aefbdf76aafe1108bd3b7376b31807b88c5d1019823da9c33c3f7ce6087b5397403162783dbd56edfb6381627df4e51bab91ae7d4344dd3344dd3348dab625431421c0b759413fa0a502376c0cc90e9234057a7d33f801a71c4026802a8114974210b3f2a0e262816442f2f03a046e4c8c1a246c0541c7d000c608800bcac46a7d74157a45322bc8b297a1f5cbe02d520e88dbe3832e2216da146b8a8d0d5777a146a440a15cab48a07d75d48af56b2a6bd44594f68bf74e5c3b57374b55dfb87b250d75ea911435c623a2524eb21230415d62ce15cee431845917a46aef1272c8b480fd8c358f0c0c337d46b841ee0aa12db01caaa4b2a93562d112b93b08a81a6fa3c84d50cb459a8f72b1396b7fd5b7ed1e696d39b592a131a5fc9342edabc721bd69aee70683d38ac990bb1405d0beb14f446df25ac36b50464c5d1f73e1e1bae3527589f7178f316d69a4ed9740a89e6366efbdcaf091a597b6d027dbfdefc8dc59b45ed9faf89670d57b2537d2ee340cf95ec15e5c2ed38cc728dd0035cc6a7dbb9dfe330fbb0408dbbdb47db3cdb419f8f0d7fb8b6370bd510e540dc77f4f6bb6d3487a198e58bf5062ca1589d20562ce45e8293d1de8f11b27128146a09d3065cb209973e10c98e1aa49c504e42daa9239260e287155d509caeb3a69682266bcfb6d364d34b8934128139600610801c309ca69d86cbb4aeb3e40a92cf20d7e0d90434d5ff560083dc36b84b75410a82a03a2a15f446d7541c7d156431955baba4a6dd5eedd9eb99929daaa83b4db9888315b95f9b1031d2ac6ed59a6ac67d81f63273725fdb42c3d198e4be176222894d1741337511b55893daa49ad16574adb5d65a6bad435cba8c6e12cba94c9980a124d764974c998061e61aa3b705b705d50a2028d32ad0e0265ffc827375b4976571f6ba008cc208983526d01b7d4d0914c714b4c82d9932998215d9f3ec078c24d9874c997c71d66abbafa536a3976a1f12d9c7833ea359a56d6fa681e87b5c7a5b006a30acdd542b80a54cb980031128adb536d883d214a529b1daaf8303b87dfb7a7c3cb6dfaf47f6d55cedcda806a2ef41e90d8a29bdc1dddadaa4cbe854f7eedaebd3e124a0d83a25b8a32f0b40eeed02f00ae07da6da8d76433beda6c3962c03d3da9405a05893e09b31f9e226b7d964f4aa7353265f94d1acda3223db2f5c792553265fd4e47bb51b7aa37f57008aad73939359402cfd0db35bb175ce9d958c6a5e1580e38d6871aa1435773d6ca6ed44c7e4fb1dd6567388d5d1b6e8549f96d567a0aa7e1b727f0e9604b9cf56ebf40c400da6dd74aa61008ada4dbe984815a048cf4dac64e81031d22b7b332c4eb6e34dbeafa2c5c915dbed371c62713267c1db29eda69a6797c19df695de3bc425b74e0a7ae76c9d3e9be42e43d46e72f7b59b5e89dab5d716cd3a4992a84aafc558ca50f30a6c906915565045ce91691554c0859ce59b6deeec69200bee68ea4239e0d550f15676ed497411fd2c8ce922448e034f4fbdc0502ee060e6985ee1e4fe0f2ee010cb9d99f08192ecd930cb5eb536b301bd1dd6ab9f7631e1832b7a45ab208358a699091f64d12bd47dcd1733e1832c6c5b24f4d5322434d1c263812f7d5bc3ed1ed8ce8518a8f78ad48b34b962293cfa2181332cde23b0266e0db3d34fb3b9b1586d54fc4ed1da37f028174daa5082e68f3dadb6dadc0114e949c4c8d82b9a6cb5ec5a6bc76c77b4b59ab5b681e0d9b0c171207802732ad3cc711e48c9db457aeea95e41e17947b3ac4f50fcd45c3b4531edb8eedc6928de221dae377321ed540d8b6c188b7b0dbfbe5b45df2b9f5e59ed86c1b3e1b25202ab2ad31430c7641083f7de79c2222008822096e2e39dfb774f18f21ce4b9f7eef6fbfc732f04856e0685453aef1e8f074bf179fec194a6440f17f1602c327c82cbd5abd9cc3eb3d722d1306855f58484b3aafad3bbac0a7b0790c8d8ab9a77d8bb69e2c594f6de9a95dd8a4498a899da011429ec6ed9e9335c497b068f05d67b4f2190a66b14358c5c034055f59c19a0486342627aa5adec8ee640b00ee0e5d1c101bc7fd1b42cabf6081e0a749a3f1016637211f1dc69de8a802ed2802e054d066129be7d9fb08878b3d8fd7e40466af6dcf3f9ec272cc25dbcdda5a0c91d96c2c343b89a1290207b202577f7605ca4c3589cc01e09a59dda6c465bf70d22d130920c530cb69020e1ac8afee5d2546bbfe05197da59586bf602f32941ed1cc07b6b6dff7612d6d0848b354ca003747529d8a94fb6b7a2bdb76ec1bb5d33187c337c73748ade1abe748a3edbce69e7aaf6ca65599661b16fb14ba76a76b36b332c07336461a98899aa206915ca22cc2db25adff0851d9b230ba49d42195b0d996f1056500189a3050aae20b838b7ac76a515f75d5dfbfa2d71bb5bd35aab46face600ccd71d104322e3dcd9103b3cbba5f609ed2c093e5b67b4fbbd666f86a3fb22cb3f676ca6a98ebd4b5990caa699fb0f4558b53ee9a2b18e013f40cb40d740e24c8ed83bebe629a4c33aa53b5a82a5d1390e2649ac5d31356d517831c356b73c1a30743cd5e41abe22a18607d511d94e6aa84dcf509b9eb17b9eb1572e79ac1063cd12b91860251d06bf7388edb6ccc92dbbceca39dc27a40e60ca561243a6baf5a7419cdaa5590940a5eb00965b1dee4e4ee6b35a3216d50163680029d6ad37e478ba74c4133d39878d445b4b19c3dcbf08f4e65d7926400c554ce52de06fe7b10f01fae9f011dc441eaf78aa9051d3c4dab1ebc4c3d88c725db47d3eb8665c05710d3b4ee3d96987e65107ce8d97b0c6e44761742d5432a5593c543e2322d66bf0dc778b6dbc089dd0592b549f98ef652c20a03992a4cb4b5159dcab86fef98cdb12cd2b3bb70c08e5912e6eb4a20ee1808731553ec55176d913a279b2a216d79edcaeeca38dc49baccee695e78ca3e35a4ad6ed3cea26dd77ef21cacadeee4a7d7e087275709f145e1e9a430bc16e3c1a8ee1e94d33d9739dd83c725ddc7133c3343e3273ffdf49996a3bcc335f088f1ccef798867503f553c1ea3464775f7bc8e34306ad49d9ca04e5018d5fdf4fafa9996161494d3512a467537f53f8ceabe07a9073dc877d357311e4ff77c44f9c9692bb3a4845e58734861c5c95ec37a5a55f62f0b655e7f4e586afd789cbc1ee5fbe99e932573f61394d689b63cdbcab3d36ff41dbd128ae72a8c663b7aa3f499f68e03df6918c585c06f30cb4a79f69a437a569fbd49cbfadeb1102882d9b85c9ec7237a8dca491d7bc55eb1189a164a0b3df68c33ce3823dbeeee9a5de4ba7e47dbeddadad513defe4f5de4fe0abd25ce72db378b3ff53704d48b31d8e40f80fd96ccf54a146f5f2d055700430d59bc98e332cf6bfe6cdfb0ad679c71c619553462f33d776500def7f6a19c0d6feec2dba9ed5e1678efc50a764638363d38a1c003430bd2d3454d094044f87051832680f2bde538d188cd3100311856d021835ca6fd5d110faa4daf44aa73926416b95f6b7a759b54d164dc2a40326a35390c54b29a55a79651c9a03a201887746c338147110052265f9859e4c49b03325b0b66c0a3bdaaef41b6218d187491658024db903e217bd5056fc836a458c85ebf200ad9864664cf923707d9863f642ffb22dbb087ec6956b021db9046f6b615641ba2648feb41b6a10f995601064cb20d01903d0fb7691e0fa80a3140926df84cbf22f5345d5b059e09899a35906e1e2502a45fac818c0c44a65face1267bb40b024884f3de2394a44cbd78c53aeb80008ad626e9d507cc94885519c972df26b15674aa4c0311cbead372a22b80f71e4fbf0302e8698e03c13ead8a7e3e9acced592b9aa5bdde965a68a455d65a9161223fa0a0075726a0174230a3bb7111dba76555255055fd13b82f72fd151ad79b2b8037d78b9715b7ef119a47919a71060350a467c9829b5b7b7bd54ee9e80ad9359d862bbdf491fb09472363ea8fa39bde5866a43909374e7b90ed1aaacf69373d48e91c9ee15eba09973e633a67e24a4775635410d3398cf299d14d0f8232833aca1770720ed5ef4eba16a2fadb4ff7502394ca538e3aaa3d949b5046188b969439013961546fbfa10c09a3faa477ef0f09f30b593489838b245ba89f4e285448d33a995eba494525a469a5a06817fbd4502a4d4b4305a92ded334b644e33278cbae77e72148cba38c8c9b99fe0715c828a39b913b4751244db89411a6e70031c926c81dd3af91192bbd8276dd92d5270842a54818c135c02eda5d0749a429a56a94f54100d05a4b64ada3515b86c4becf3b4aa9d2cbba818180e4dabab37970cb5f5320ae9596f3e5b78bec0b181c843862cd6f213fd1389fe8944358b2efa772d44854ed3d2ee89c20aab37a2f710fd83eb16a11015a3bd6a782cc1a6d3dacee124ac4a84c59b4503d02e8af0d7a29b1a369d166d919b4e6bc328214f5815cdb19982c1022b3a25502d94e9d648d3aa375a507b7b5343d3dad4b67d0228d69b7bbbeb2d2fc642fb8eeed06bda5e87d7e5b2a5a557ebcf0797af27b365afde99164df659deee1baa63cb758b0a2b652a0523182157219cbd03eb55eddfcef29054a69d12fb6ca295a0586f885855ee22e394f546f4ba35013def7b42b177f2ea7e95bd7e5e6f6b7ad56f3372ad5ef7d94d7aa753a9aa855895d49bba4565a245afc4eeb39bb4c7023fdfe9c7e30b6b168595a6c0db12a4b641d68aba45a72aae373b008774eac3404d796e4bcfab0882dc9edab574f54aa42f9f5046166b59562a3211daa29f100da364b411486d69a72dae7627d80d0952dbf5e6123973f56477f5028fba88241680a277933b33c2e511142a8efba174e561034d75c606bad2c9fd31a8aa0fc2b12a1780d929f6e8501df4af9312d0e525f1c21b7273e0c5548ea70db9efdd5665a72cb2286bef3d3a9e327a45a9e0852b9a559710f334e915854141c7acd1b96783dc9e6bf64a14bd724ef7c5ad8cfcaba941b3f666a257af3610cc13826e50db370fa849abda82dac5530682852ea6424a5ad5bf58fc94ec352caeb8780f61d1461641a7926681495236ee9264258ba12b1a4c52ca62e88a4f164357e49ced581516dbe917a45b1b064dab6a3b826d67d8da40b739508e04b96dba6f17f239f7d0cec6bd4fb9cf74df5ebd222d6b86fbe75d5bdc3f9f016db67717b209e130d8fdf36d08a08f5ef3e95856e755307a3bf3b6637321dc4d17b2fde423587d10eea607d97e72f23ef90c775368a757e208678463593327df7ef2ed33a673379dbb1013167282df668c60b51bbdbbcce8ddebbbd23f78fc5ec233a08ff0e733dcbbd3b436b3fef311d77dbbcce7238caa8fa1c37905388cc1833440a1d545e1046dc15855bfbde00212160801053810a345c96871787cc12a1a03752ceb8367be6fddea833bdb6740e72e82f5db4b221274ee414aa2c826cf8cfe19fdf399efdd3dad6d4011347b35fa4cf7ef3df3f908551fa4fbc7a12a06f26154901146558c840a405445558caadd837c663e8caadc65be8fa07faf586634963ea22d91449a50f5a3d3b4be7084c7ef1c46d59f9ca6358ebe6154c52820dbb9cb6c1c1e97542cc39dc34f58557fe4bef51d03a456555b08a0b89944acea0b439ad617d26c6678c900d2d676eea88aaa770c205945998231031dcd8eae6047393949d8bf63802820b5b5dd735410cf39b1d2d6920a520289b4acab73ba3b65466636e1cdc9494202b0b56c034dd12929c8a7fb07874231b42392c84fd701cccaed8bc96c40327b7733efcdbe991b193668168dd75646afa8172c4892cdd87438d29545cee68b79c102296491b3e26615347b258e60998c5e95f208d62b71448aa049c2a89065a14278d319c132d07b038851413c33dcfd8470f7fc8e8ad433f288bc23d2b26e066043521ddce744b7b6d32f46f47259d50d253f00c59b9381492cabb65aa00b049394a0089a229b5e8da1b24630d0a43ac6a03ab48fc2202273e8107343eed3cac201d1f0ca55f41169bc2ccb3c8f665996711cb8999615cae16a6715ef2627f7af18423996c56538c7536981193925d32ab4c0ccd98d20c33606c5d1472d519ffd925923b3773f2a601231e47e688714dad909ede4be0a6882497a74d6f0e8095d0750f4ea550c57865144b165235c282a42e56aad956a2071268b5e1a1840d18bd5ba711c2706287a305111b08808f446dfebba4e14c31131118521ca1189915ff4861840d1dbe265ef7de17a80cb45b633ee40e68a352f80a2e7e5f4e80cfb649ffbb1f5434f20f148f66e3ab5e96ce7b6c3919c0d173699c15b3024fa64114c14d24e7962e43e48464741c79696f5797f3b2d8b445a5577279129524931e7aaad2f1ce18c602d005131a25cf3f7cf636abeaac4aaae1840eedd414ab8e7b6ab58b38207835e567531e866446a77002b7745b346af5716b9cfb94ccb1ac146a3cd1c99a3cd1c6de6683347b0ec21313a357a59169745abfa9b8e16b9ef8281797949a5fed369f41ac1722cc7d439f3686733436628a753a49c0f086d79b68f60f7a39787b5d12bf747306d147aa555b5e8b9729f44f6390e044f1bf6542e1660cecd3c6574aa3da7a76d00a2b4d3cddcc8d8747a6561b50bb1766e002d99c5ed8a91b399f446fb00f4e83089ed00143d3a1e9d5e915c36e35a2eef03e9edce5cc3d8b6df7befbdf7de7b6f4ea75c00d24c734b01ec9ced7c565a5850df695a2ca769b59ca6b5729ad6e7342d9a56f602d0de63811e9d4ce3f4e34123ec70a87d0b8571cfd88965396e00b98b596c0e54c796ddcb6c40ee1c0782e4e9d94fb5023844a65dd428215bb3860099e67a9abb530f2557107c16ab46d05c6b3d0228664a28195e623041421d8e000619b781ab535b0f5918590f9887fff60d31cbaa2dba9399d1abeeb50c90877fbb96c5ab575da5456cdeb068bf3d4302f280af4ea76aa76a40efe235bb9bb957149093e307a97197df4ffd361e31a8d7084fff42959bbebb84a6121692040e1d36d14b9751b1a58b2e4375645030063008acaaa27ea23a7100bf9be88ee9a7b0745428fa0eebf567fb62bedf70c34ed0d6873dafaa1ce527e1e93542d445a1ca4b21ca7128ba4b58fab0099f50422ea403ea5ee6bbcaebc54054fe5d4605cba0e0d4e9a8e3bbdc744ff83b0a9bdec50114bdf493d7b808d3fda59b5037fd3ba93c48b539fdfb6753959cae82c751e52ab826392939bde684ab0b556b6acb84a9a83889e9e646ac3728371d49cabf9b50506ed3ad14d412f7db692e952e0a4d473d8809f52015e7a28bcec0c93a5f1432a6a3f038a28ec235a7c684abf91dfdd59ada2a612a6aab5463438056e954d496e862cd29a1369410b5795ead3b562507b008bd433e5de5484e171d89cabfdf981a11b6e9d6e91faea16200ad13b6e9960aee5e5655b34b5823c421b5aa139b4ed59b6c6cb82f74a88eee9544c7c8f7a3528c2cde4c37cf41a1d8dd88368fb0d89da1db3ca7e1abc3b9f774f8097ac34375be0198a10c666bfc3e1e11fd4817618ab325c24b504b502846342d1a6116c6d5c9e1c2ae32988a489383bc6151bb279604703bcc7b7dc6456f61cd1d8a367b58d4ba90bfc89746e5b0d659d635adaa1a81a6ea7d04e88a7b3d41756cbfd8f3faf1f0e0154875b42ed09411e88ad26c67c35a8e0603efd5e9d5087b14a3347b575fe17a27051e54d1593051e2b9220a5a78efb60124e516d4cc05a02da90e2ed76c87de6801586b1935f0628c1c10395581cc366409b93980f423a2bd00965b32255665f3513032e5a20661e4faa1ee85887eba90efa8673b1775d467443f5d049b7bcda0fe7d9f395d7411fc501703395d7421a20b41e12e490bc0ce225c0a4723a8500458ab745338d613308143d932919a4d1635d14fa465895e4f3fb9bf17cba4fc048f284f49b90a163351485ba7ec1466a267ae9410758fbae8d98fba47396da12e4601115de5414e47c133df4f573961d43683ba08a3b6dfd3715f6c619fc2bed1e997c77d81faa744f461d4f6d345177d0685bfa31e44f4d351275a85b2753a162425a375c2ad6355f528dc3856555ffffd7b15ca56e75855ad62e7e4fa61513d4ae6047aa38edfc7ef4750431003a7f5dd148ea59b7a476f54805e47ef1195c2d1f492a7e9b7b747c35128d2e4d13debe13cef7afae36173c0673bdda829cd1e8cc5876dde12d1567bfa888a1bce285ba79bc22335c6b802ac757ac603d0bbd895a41372fdc55de9bdbe212b33ab868ab79640417af72942dbbb4341fa76ea8142aae38a5e793e8ea3f40bbb126659342d14776e098765443b38835955fdb8023074b177727ddb017459553d8d7acb989911fdfb4ce926ef2e60019c13b5e5a37be60420a27f97f9b04c0977a555d59b70a6c4aaeab9971dfdc3d98e55c101ec9234ee4acb02d083bb92037d3bfd0d49f4a0ee25725d4cd44890eb3b8cc509dbbc85fa8ea61945c3cc02b917a70577c3bdba92eb5c5dd95d41725a348bb602b06ba8340cf597494e3235240200004001931400202814100984c21181400f03617d14000b76a06c7e6220ea518cc41442c6000000000000000020000000008431655de38389d838d334001f2cddd9b3001a2b8fabaab84be9e4529b3312f77064d0f4d238a78d1651b66df4af590fc5f04bb46842f273c0de2abcc6b035f5faf2cddd9516bb5288698290734597329c36d59b67efc37b790f5f893d14f5b81384415597b44ada3e33721462d00c7c36477297e65eb497c222a3330eb2ea559f9b2b1b2f6c15a3d06920648d29a63d9ed541b183a47ad14455a5e500fa73bd6cc6c65acc31190f6305603565b7a9c1452715ae67c8fb02260ebb48576aca314a49b5f8a81476215eaad1974ae23113a414d52b6bc34dd3c1f2c527ecc14237853eedcd9172eca04f6e29d82fee68110643b01552049884922a1d914b797da1f32796a09664eb2501b3108f00579c1bd64f6f8699d63ec9fe00788b94c519e3b2bc1217caae94c2de126e8e11699b22e11bd8618e094b80f4247b8658018b4a17a788c5d1668523684a4d56bbfea8e6f893c271a1e358e3f58d508ac37f9cf35ce765e12f36b922e1dba6f12d68ab836cad433a99d2e7cb22d94288401727ebb37dc353c44dbc7a446644804b32d8f19c5e08463858e5c8adcb1e104376ed1a5604509db9c3908e8d5c7c314b5a10a9a82f0cb52c1c3914f551d44f845562952229224c00d1a07d11691bb8b72b8e57c89096d519277d2173ad1c9ac00342818e2c848a835d598a41b10df9e6f7907b751dba57f2c0206e6a2802ce32fdeccea27dc553157931ee36e50082e025670df56c8697d32d725e04bf58378f14eac80f8d3df7d35f6bfad263a4f3393ae0636c80e1ebe89c9e831bb6bc665c2fd67a41eaaaeefba96f1fbd075334473ac858ddc546a88a56f4b5d212c3a3f4a5f63eb1095bf363fd924bbfa224898282c4826a023d634cf25c20d7d45d7b0aa5e8f49b2c190d1f7c35ff19c8fa6231fdae0702e4c089ed931eb616e4147820d96eba8fc00e0912a750ce994e1d10e38308bd544a1809dfe1518a5951e71a48c32ac38dc1a3ec03c26646e9cb3eda0a02738dd591d7fa5aa86663ac6d640b7daf290a40bc05d489d1ecd48416c4d1202ced83e18cc7296035d9b704421c33fe92d595dbac3ecefe4e445d2574825ec1bc8439cd0b6fda9dd3d819e46ffff45173b8a8b0273dc058a83fbe1525d594bbcd15f0de04187c701c45c57bc03f1481ce704f9df939794765eaebe202c813954bd8ba593f04659738189c76a9f17b56032972c6843bf1e8b847283e89e1b07b7a65dbc0c1a70eaea28712c9c8e56282d5d091b48124d8e1daa1dc77b4e49de715048d407dd1c6b844fd1662176883b57d244c9fae3460ed4205a1964588748f7bcca5fc37c5d38790407dac49e775fce76835729684cb9d1a9f221d9078d4c677fb31d27bb1e514ae7941e5a2bde2b085f287431ab835ecd41611914e94eb1412472e74eae75e7631a558246ab8fe94faf77b0a03c9a9beb1f8132a966c743d54108e831d1785b6709300e3d3d34e7285a8f948463b0433ce87b72248d82cd3d7c1f85651741fbf7c2f181540dd6f06ccf1eb72ce9113c6925f43083b9433df6fd4e0b81fe173a65973064ec124c645fc8226b8274b6495b1f02c266b7a6460e76cbd9b7af4b52ffc4ade24d683a8e4d3a362ac955c68397811f2944cd9086d4194ca34f0c6a447da19b981612f68084ada8ab48420b1f35bbaeea00329389d790282fde16e87eea8190d2d197f9e4f4fb667ed1d117aafcf6491e7118d8bc1c3fdf7588f9090778abb8125bc7742b367da0ccb4f1cbc21b5b09b39821e4180404ffb283d864efc2c35e5761ee6fb7bfee5eb020340e77314ba6d0b5ca3cd376a648d980d3da3d89d349eb481aed050348df49c38120b36ad30d27aa276987d2068275c5bae77f55f7c988770c8d7e6d595cafe91752a1acd797ddfe7a99c4087aa0355b5e83264bbb4c0d73f313a6dfb648b356894101c499e089424b5577e69df245be4829a3b081941a905e624cd343cf035b9b3057cb19d61286b70729dd21a89d092b6c70ee80eb07059ad9166d6ea29ba8db71a845d9dc474f634cbc2ed22a5afd25690bac9ae10c5d750fc1d4f16a895c406c3f9964fa1ceeb60803f0381b64f3b36be2508b4f66fb90a004ea58e17c8f9b1ec2d6b990458fcde5aff624741951876b6ea96b448d5f2526522244a982604e546051b5ddd97d591b904157d2f85cd73255eb4917eac2be5532dbd61fb0ea1ffed9130ee84c62d92b7de6f97b463e974c70a65ec844f60c4af036d8e29c32ba89a7592296e9e1a72b5b4650043f6d97964794308e655c4646aeffb833a7510ca0443e7e2b12d4e961686f1d71e9aee73a35b74819a21e64d7a2b8ec91fd45cbff0ba4a1c981253d1630aa9c9e8828f063e246b5bd09230d4d83728bf3131d3fcb18e67e88df5816ea116b8b0d83e7d3285a7506ce74f7041104d8f4864222494b1e0e43c816830a51923e973fb5b17729ed2deac5396034c81d32c7977a28d704b3814c2f25fba321778009d06ed3aa184598e2c5a2acb3388ed41071e17d0050df29045b9eca3758e3702979835720e6631e89cc78cd8a3a2f10adf6deaa890f5a2034a2315f4082a519f71d3e9ae0c50df5afbec002a142fe2437e42e1814b54df330f04eca8b20d476120e870a8687a6eec00a05ef911270f112cd5665a43b5ac7aad7cce596ee28bf2ecb05d6471acb0db605ae1b6819350f923bfa9f7cd784da87a60ad9c2bacc3e984a25303bbaa10c3d3794132b98e21bf960db59ab38a783fcbd8aab61d30df8f2644d184c169362466014edbc0254c53b654996a00a497e41d1a6ff369dc572f178c228950dc90d91b16a98d2678cf8a67c6fa70dd1a66cb5b89905744d28cb48b3a4744e66925464a59d10cc3b40f38bd244394905d286b448248263b82d08c9eb2f9b38cc7542e40de3047a86ad3a6f85549fca97bc7a9fbaff34f27c6b2530dec5177a184a2d310963365aecd8d6e18258c4a3b7047159249aca3845fd0348c5fac2ab2e284992ac243c9661deb0a82f177f5bd4293a31b283f050f39440332db6801e5398c11fc8f0d232b529e23b0a870294d1faa12cf56c28a6a9de65f74c74d6bfdedf5d9c8808fa1a07a1f43232c0619f977de4635da03ba5f498b2fc5cc28af74fcaacf397b48eb5e55bee324a08299d22629045ab70b27da7f048cb9025b89a1c795ebd563a015d5a3c6b9477dabe874028cad21d72528bc02b15b9e10312b54065f94c187801a118f8c7d4d15202e5875d0fbffc93e471c223cee935dc37a8d15dbd27bd40530b8aa4098f0ad9d9e81882661a8b92a3438c83020b0aaa3deff576489e45056753f50a3a781eb077dad9b618b4a27c0853d5a6bcdee17b8a78efe897f54aeadea5575546fd093a2d5c63de3ce7caa910b81de8fd7b4aa8379c646035182c9d93f6f2b8c07742ab441b5fbd5737ac2e9566298a444d1a8ae93db68b182329864ae7f9af61f80e4b599ca684cf6d81bd0a86e2002b95869b3f40a9065544ef68dc2781bb5a2a5380533a01c2d472f0063404679e07b8103f7c2e829aa24bd22ed8d91eba449b2300d8449dd95d71c8a6df4af6d233307d768606d713bbd2925298b91a834928b6f1245dc5a4d6d5d99a038970756cf4d2d4cc1b44f2cd3b24e02ec954df278127b6d6e336807d95bd8c7b771b26c6bc6aeb7ff094b56be789517ef0b1ac7641470cfbfcb0e5bdb980512d3eca3c7808621433ae2680d52d178a5e98046889b4c2a1a9b442d761235a238079dd91d8df18f69846f6250fb2f3e44c3dbede3d496e218977d38f3c0b2b276d0bed56476851fce12b8ff82cad47dc207a25972414c1f4a45a7230900507628528148731883c5c24e9db123f56e26d11f6602b2218b7ae8f4f171ee7bcca117fcf9517473cdff0f7072ad81ce7224fdf9cbe30e1943c30301b0281224257b7cb647138ae8e1420c213da0381ea2046e045000ffcf62da2da3d9bde149ecffc7dfcd614cd65ac1ee674a5dfd66b5ed8f28e586ce8581c9aea08c5f120fe334a11925a85ee3c7c13011233b6762e1f53c4247e4a1533203a3125007e1d1dbb06c2486ae735d62b7e7b6764feef0a30ff3a20f21f0ea2c2d597edc2b5677e5000fb108d091cd7009b257287dcfe2372e719c59faa93c0d378428a87a60ee77c9421b0e856d1f180019bc03530fbc685f9030ca41296abf8e2159cc7f269c3b6e7c90f7130b09fd96992672dfd2446d0f5fe5166d661c1f052227861b453f23c1c0fc89f187af16722d9d6a6d1e377c8d30fab2c08264ef96f3c71b9d8429984e593e36c43b6cb316d419037c715cbec18d3c5dd61f06fbfc70798e214d0d1155928ff0a1c090f9510c9e367a773fbbb0783edbeda58e2748dc711d673de70f3b281e0d874a7cca18fd76d191cb019ff669bace105ea8908de0687a5450fc225d11d65175a1a481e50198fe9b30d47a3ea59a0525741f242b8f5d159a60200833043d25276b64f68342195468cd8fa95daa4268a2a778e1977ac1fa6b032efdcbf2faae47a3063f038b59abd25d2e3349a1ee4e62d6467ebf3467a25960e01fb007f832fb754e2ef2f0424d7570ce2ca6381cee6e41c8a39596b0d4e7f050693c7904402c347aeaeb8e0c0757180d5a73741d24c13ddd516b68222d868bd94da482e9ac284dbeba7a5b224c03d2685c58adf92511c36e872fba793f6844c3bfb4457550c8d035988d42a1594901a3f7be9976914d0000c8ec224c4c5774a98132787a374a21517e384f59890ed0765fd9c209762fe6a87c458bacf8e905284d8b6e3ea929ede019cc0c1479c747c1218e528cb61a6bf80ed3386362123b8c4ae674f03dee60d282528409952a21fdf96224b9305c8a91117c1617b73868b803a31b01c1af87c3dccf7a56a7ca84b1925ddd8080cb78c1d9932d83f27993f1b4839737c85834b0e312b86674ad8a389355a0e17d4a7b2ac13b2d4085cb14ad33d6cd2d7c1a0600800c764adaaf584ad5c6ea486cc5e7a9ee90997d1e34e6967707b0a0e2077a57d23000bea5aef6c5e8cbeff99df69df73cefe42b59f8688434d644afce976f373830420043227e1ab7c205c05d0cda2b34ad5ad3f54de2d24e10572bd8a8571c61bbf1a609f7ed40ed84d771ab75c281f2a463759dac3204c09793e65fd72b93a148064c16747b68e9776d1133b51770a82679f9cbefcae244e802c5ef1bb5e80033fc5ce1cbb55276e1150c17cd712977e0a818b651413e48c8ab093236a7e8b6207f69b2f3dacc0a0b0f0592fc788c1b8cd2d5789cd5e49aab1376b207164bb16974a2a077851bd76c442b1e7c44bce82baeea72eb677b26086070b4f1e9ec0d7e628e31f3e0333ac2a80db151b8d9974fdea39acae1ea90faadd4779dcd113e4b5058147074372d04475931ad60449342fa1d0181c6f9924e2b5377f02f94308cb33f6784b9017b74b541ed505742448d8221a5c4b9f153b09150843d25e0738ac4951197180af6fc71f58cafd1a8471e87fb14da7634de40518169b472193b6aece53f808980e8cdba9111bd4a04d0719e925123643244a7d86c2215a9b339490feb0d7aaee5092b06706caaa2407c05d4c20e2f2ddb2f0cbd41ef00674ac42be2e5f22644e95f4b36586b4c51fbad933dd9bc8ccf0106423fcdcf6aaa3dff664d64ece1ef4edd8679d838029b15137ae28edb3a029ea59da099ba6bea0192160085f3218e5350413fd97bea527bebacbdb051f811395d6c4b7a8bf09b44c9f5d8d31c20cbf96843b057e8aea73288d67a73b3e8ab47a90190a3d6930ff6acd4aeda5c7879cc219bff038fb652f74949406e03f7c9db6a28e1c9bab487159da8a375a2afc731d0e5700b27a7b684b9edf6f132005ce07e1e3181ae06822959bdaca1310ef85af074f8d03895243992ad153c42fb8643971242e99340f3fe2c70c4ac0fffbfb5e8e5529ff64d85225b0495a5e05b5419b9b620845a14934b695c1fa41ffd5f1c3f0325f23c768a6d7068bdf1251eb7bb66de0a2b9869acd7017083db2440e9ce3c9686b59d3e8db406fb19556bb7edc8266c8f61999bc62fe97bb25a4e30b8ae92e59b8d609af50893237fbc0da4a918d0c9beda265c258e82388cbe8bba3616c1411116b9e7858d5dab6a7e4202585f1e6ee8d970e7cc2da763dfeec3cde1076d6157d1bd7fa5a9c0267b579186fa4c29c6763c7a163f5f4b2eac07397eead8120171e3614a6a0d042bdae55443e1703f2514d120257f46b018f027d4fe11290cf9e90b3cc943bc1581df411bab4125904ee841a1198e37dca7cb34b279e8a7051c74b07f262b8f4c4ef22b75ad650ae7115070d38e44f8ba63161568694f7cde26cbd004a91a7d885e711eb6c588eec9b56af91bf0d58cca6b900b7644765d8d0d27072b911ef8c56ed1c897e3045dad260ee464045f209657e5af64748d02d39353e380997887efc5d7acef0f1146eb4c931320e05b88682efbed08fdac5c24a3b20aea9ba6fc6f55c324286c86b366a42ed3891bf78deaea08d844e97928ed50727069114159d3c0999a38fe9cade5902aae2e40df613480afcc7dd72afda9aec79418fa370e6e289de899d98b7689d967d4df3a35bbca7f61bc341194b4cbe089a8f94b2036036240a6d05cc0efa0877c11869a8090ad7e40e105c3ccb30df5754c24438673b4d0d9037a5572235641409142f0cfbb403ee622026f769ca3df992151700e840c00830f1bc127f718510f2810dad703a503b99b7356e9d640b2e5f805ed47425e17ecc13c945802795264ac7cf3d532c3aa6bbf79762a07cc01c00f1bf46f677837a08c191f01f2fddcbc94080840cb2f5ae529a89ff9ea29c1e8a38b1ca1d5b2e595b844545d2ba449c24b0e65a46a623b183b0718e695b5220629692695963d57f3c798a24f53c0b9a20d47a657a29f8dbca083645cd9c16755039642c00d66bb40e9d2fa833bf30101d393c2afa208db6bd2908f6c12eee70aab18e5cfd2874b220b164feb8fe25a689190299f2e50aa4ca3218f6b227ba68837994d94d08dc6d64374ea15dbc8e27002d8d1c4734826414e2169d6a2ddb6eb402245bba05045984d72f0f65f4da47cbdf7bcf87997fc5c91380b62704d678c678b77f2b298ea21f3e80fd77b810b62510a283fe1f05b112dea54904e8fdc9981ffdf0a090222681fa51fb709ff2daaa0e66b42d0cc74233ac39b45594e0a960707d0a156284c053a2399c1c43eadc7058ce8064f9018ffdb4ffbae4095c1eb3cf44653e0c9494831fba65e4aa2fc9a7a2d76008681ef9ebff381f81997c15bb0bafaa5d5239c65d011aee077ba8b64b3111249b005cbdfa4820fc437cff11fc5ead5f7d888c9a76f7f6d3001ceb1f58ea90c034acf591e3450460add5fe3b891d7e29d176b833c06e4494281eeee16d931845d792bd077c1cd3085f33810f4f5c8b7c920cd195a0a696385130c04951e8b438856d04dbd441d96c91e8e454667d1efb12960f171070f2b0b04454b3d20e9eae41b85587c9a160b28605f4c7fd8628cac8345fb38de2b68449dadc2c0e52b8c5469ba409d687744d4355ab23af998e396947815fdb5a989b7127a18be80857ef6942e8a173e26880c627c9ee9d9f275c562a33ee58fc481160832d9d4d2005af35faabed8f0d6c98eed893d57ca23779edd5d820e902c836ba0eef7fe5460a7610b9c08b2f0e4f7c618f309075b2ee719e2604fa439ce031099f714c956c9c216df4f657fcab42d257dc928b13fe40e263da8fca9c83c74927d8e2428019be4dee3c98dcbd1e5fa802290cdee08b11a40c1875957e08304cee94ab3118098aea44fb7726a92673b5e986ae104e1728ac68aa1af33c306e68708d6ebdd9e01e2c1a37480f5a0b66144210998da1f2591e41ca8d836fcd1560bb864600a1c77be8e10d8399e9566ece01182cc00434893246624ecf3be5888490b54b81420c8991440d55e18e5db0091ee3420cd4c802c148f8c17d7afbb053a1c57f4fc220219c9f3cf89b2c86b120f5ddeba376f42ac44c9449b46d18016e2bd7580d12b01e7e92d120c1a93bf83865214ff826ad20b31853de89acd767f1edc20bf20cd987b9f60bd3426c96fe990c547dbd52955c7780e7c5545f7777eb23c17d4f098c556b48afd27ee00d3cbe10cb4538d94e054658471451a53ea442bf1875f1e5924bfe6f5348217dce25d030df5db4d254c29f0e54d9614bf7b7431c563f41bcc2086a21adc1121ef3d6a246c7cf66b24b5a969bce1ae5cbb6e8abd970c048360168d9543ce8244ca39c49f75ab6cd440bc16c07926cbba897cf2c1330d5d3149f9174963ad2388a3eca78c2b63f020197fc1ace54fd74b473040505910693f54295c2150c05d1605b5a18b8059f86054cdf62f991ddba9750287b62ce240e158e64750cad98a26c0339804377d563675f56a31d524ef71ac9435129a696a80fbe850e76c2cf29b33718a9b7defecb25da61a8e136481274f329eacaa6a024251b727f7299fd57017077100671bf1d303fb06d1916265cfc6d2dde3f44e32e764d2100ff3d8b5125dde7e973d315de4fce99345c2a9d9d40690c4b6f68fe0007a4e92414cb381afb9831f7f9faa13ab9b24829421607c139107a15ee27abc61f0c82855b4d5c317ecd8445e712532355714725b33207b91d39f03d72e75d40afc8c2ab1612e9b93aceb38c4cce48858be2c49e016bd7efa342c9aa110f8b820cb8d23067a0e4025cf9965a9aa7cc594503375e644b498401742e2c35434f6b1cf91f68b0a24941401318a4509f4a4fc04f3c56993b5301f8b732e7d94865e81525a0081acbdf2e4989e6b9c4311fa2eaec6b65a6899ef795955c01293e68b0a1fa4482dcf339d7b7a517d3412c8a3db65ad157472d87519d4da5fd50ce7bcacc89ea8b67b33db4fcfffbf28d6762b96e6813b87dd537cd2d4b8a3fceee0fa6a417097fdd80704508ad58016234c34014c593717ede9618001839f818f4c499ed0fdad0662ebc875e01b136f87821a0be6bd049327dd57d6c514448e5462287e91822fd693977093e5f907598ac9ac459dc94183c5fd1eda843e38e815da8f226ad05286e1ab40bcd0777c80cd8ff4c230d51f1169a789fbc6a7f26d507abbdcbd10aae0cd8c2d81c8eb676a17e4ceb50a571cf2942cda44632306ca2590476ee030336506e74de8d0d37ff92f2faeba8e6f75b10229d5342976b79214db817666e9f1a821aca7b104ac2df8be46a07ff9d163b7720ae8c86a7faee5a8f2893d79f49c512d21d287572db7e3fef480333b1a3e277511762195543bab6d0dffccee3944968f6ecf911a69a6e6362710dfc9968638e35bcc8339975ddecf1c9f4af3b3aa8c951b0c49e63c5c104830d3c5c8feef2b622f511fdce38501893219eaf1ae20234aea8384a1d9f14bae4b40449a8ff495669c9db33694af6001922fabfad3de50cf8eb6c0b699a2db45fae5d530b5499af7db8959709063ea4231f0ea90ea0330f15c653c3e9d04bea276db0291963041e6762add02d118af6aa70b70dbe4d60b703b17a5dbfe9ff1fc918defcf2c11cf26045c7c3d40b24942133a82ed2c67aac7c01a6276af6e259a9ab82a5c246544859581257d0438dc5a0f89297df3c5fa80143bae7cf0d8aaf26bdc5ac7a48130343db8330bd160f5e3414564e3aebf6a0f4bfb4341e476c4d9fef4524ef693ed0f995205598ba58e71eb53c4fcf7114d8b025801cb57d4e0297fcb53e86b00a093e08c20e15c99ab6b94db2737eb8bb5c5bbfeefdaabacd9219b9851cce6dc3c986c13d576fb0a4654dac5b24926e7a3c761a2419aeae284faab3c2feb26e13eff3c288a474e67bc3bbbd5b9826b1f11133ab0e9b74d1ee99910359bf4e82e6e85154b9d0f6902a0d26206163dd1085284f01061af088da8ce309240115ffa06b4d2fc70103b640540974020809e55977b30957161bc5f5c04c179dd477f506e305dfe8c109d5e1cc7f15d1aa9303568efef3013d9ca5c98a71974dd613820b115ed8db6ea6d5a8b9131184eae081e47baa3a527540e2188289c5c633a6889ddd23b24a6bed539d0a9fbdfc5fc225747296a4fd4ce5b7b2bbf5c4eb5fd516eae3af2f605402f468831a222a05ee36a4631922dd8e1fbfdec59efa2b2110096363bcb9f746f719156de1368d0abb29dcf13dc46f213fb4f0347ec4757a74d6e0bdc18a8bf94a41f54b1f151ce608688889c57799e36f63747880ae992aba1e2eed51edb7166b29d44ffdecf31cea7109d076a655265ae060f967a79fe6f1ee9c6e01621f098f3744b45bf26c24a79ae5d2d248391734baf438a289217a84a10d4986ac6034aaca5acd74d13c98b913f21c584b22dafdb88074fd60f8ce808c4a6185c2d3821923af1de41270af34e198dcf4623ccd194e8d1322d9fc12391401c26ac90bac64a2a54aabf878956c3a6f17a03bbcf937b4336ca77e56b41c7f516acad373abe2334bd2eb5202451a15fb8cad661b0862521e920f9a9bef212461349b64ee373a7f524b13a26420fb5e9bbe24dfdead1092e2c528e385bfe2e0a87f510f8e38050ba65f77fdf178515bbedf3cb6c35d4251081a5accf60f27c2588d9e452affce41f7890c134e78c3ddb9bdadda7996241e07dfaf36fc8e3b1392fca58f926e3ab99ab9f98e7a839133cd677fc38209568e54fa86acfcb3a7e7b33004ce0a9f5acd2c5c7eb2a0135ebadec70b92212426566305b299eb048f3c096de37f7c698a06e7667bc20bfb9cdd6dc829b46abbfbfebfd6616148053c20621a604734b8c762dcec77e1ac6616feaffb5ed1c0d658160502bb57e947b4bbfdd7b71ec76ad51c0459f7287be010eaf502cc386231aa9dc65ad408dd1a0f3dc0711ec9e2d294af372cb5bddc65816dc96a553e346e862d61cdf851e2ebcdfb745acb483351ea38183067d7de6cd69c0850b5118d76474b830083ab842536b2cf3d9d47e0d80dcbeb662e3c31fa14a3222e71781536506169ce5c6ac082fc13016216cfea9da0cef5332fab4783e5c879522b9f7c7af3e104eb5f06b20f19929f3a2bcb00219ebbc264073b59de7131b694da89434ee735751d10813e511e61c35a2fce4c14d6b7470826741c69258b76868d1384cf181b33e27261ea2367ac11af70d9a096c4d20508bda39ddd9440c73f5cf070afb2ec04ac116c398a3e9a8cd8f32da5fd1d94a2f4c6a637a1e372f3c90244ef8d7e3849b9614b270646340a87b944e67e9844921cd64e2528eb10ba527053174aa1ca08069cca8bfb33d174ab811c9ca32c256a54187010abe4892dba937440353183758bbdddd96042b56eeb5e81d65bdd5c04c2b1bc8dd0f213bafba2528653eb7ebc8f4e8ea404524b56257e00d8bdd1d7dd2bbf5079c5729ce9369e7625db4b857e3c00479a5695454041cd904580fb14b6d2d248b1672242b4cbac2e28716b55c8e7c86cf38592727d16e0ed19662dae766e3f32b595a87cd2e30a9c0041bc9ca6efcd02f79b6c72281bf2c39a98bd7bee0c21ad3fa2d667b33e2722642bd8325330360152f2a252c692d5e145475878c3f8bd1b2e251494a2185a5e69310acd88d11fe0067429ee4e950c90cde84f6adaab9e2aa9fec865acc69d78447c1f5862f5fb1133bba0c34ecf186b8f067c41bff6bff388158c1310529802e401e21805ab941ee182cc7d1f4bf7f0afeea3662e8d8ea8de53f12836ea039a80a9a017088aa7fbc9377d6f895ae4610c9625c49df5ef8760365d2012621ddfaf8b5fa69f5e9db46138fa386f47b21bf7a39a1322bced5e201e21071390a48c7855b38d6ab4c19607929072b789d299630a0cec387d6f46ee4a4f772e058d87441b5879936f514434053f413ed500ffc6cc678d3490e1ea4ecf51e4cfbfcbdba977a55b2335e06b9b4662128c270cb0b822890e3e20541862da94a57b3fc1862d175e6275849e8bdebd070334e5735ab5f87d0fee037f4b17a1755523eee9ce7174367a1e4e37c08307be29b0e8f8f3bb6b11153db03074081e2e3b47008612b6da7cc71cc38f4693340d96b69b1c450fe7b71e05cca6502dd09a60d5ea68a0266ed85e843408df3cd33bd7a44e1a6cfeec7a1fd6c44d2a104ca43efb7bc5fb98794553be1948012243785f4e49a8d80d8568bdee5f5569865dc25fc810647da7fe7aafd38f3a57d7480775412fe43c07b10b993a11eb6077418f759b9890fc3f5e062642ae81f8274ef62e07ca4a74a1167be63016fe1700961dcb540f50dfe5ff70f5dc0da6bead530e237819dd20e995bbb31a5eb9a7f498035bcc3d5b8ddf6a1e3b263b173c22751e8bfc9aca62c40be18faf898108ea7666c89d9857a80e8bc6a65c655ef42bdb9bac31493f451391627d9837dc0ec93f876791677935abcbeacec5cf5246697ad0e588494137b5ac30cb2338ac2e1f531ad3eb46a19ef0d2686e63714557a051f8d6f56c68f1e3bf441493a4c2319dfe79bfb72b33103654821f679f1198c140efa63e8c2502b1fe285ff73b9673642553e1263238fc6406caa8dab9eddc2cac86cf1cd61ece0c38d75488f1214492983dc08e5fbb5b30dbb286be9a698a97e4a3ee3e72791b52029c3f87abdd6fe5304f394ac459da5413687791aa71f4d44c16198692a0029ddb1508abd6f414a95e21de7e87f178fe00779cb1656f4695ba64f78fb7a3c56bd74b11957bd5e40eb1682777de49f0390d0a1d7e4543a2d1c347ea7522e67eedfc61fddd2209872df67b7d8dcfb27b699033a26758e33add570457c64d1ab89f1265e8535721c1e0f875b11bea399b3ae6066f19f9803269b46800c91180aa29b82e6efa8002ff81f6d872cc970e20c2f2f8220518ce2087ba8ca7b7a27708e569fd3297426f15314483b7d49157561faa1aa152fa918b227d6a481fca96ae90d41e2e7e3ed997166912dd3ec13ea6154aa025271eb2f97d06f14bca481999108bae56ff8bbf5504934fa0a7bcd1a061f71fa4753b63d8febea8c711ada350c373192f7aea7431ece02a982688c10b1c659ca5544a3311234d23281aea587a74725970a536786cd503c56eff12a6c8492d72c1abe70a11cba8f533c729ad36b143972a68772af55aa75d6b3613db90d75d7d49fad95e3d89813ccfb1cbfcfd62617bc42e73718eac477686a7290a21c8692605e7de126d6401a4fb065c785c6555dda9aa9cdbd22950458a0a9e208fbc7fdfc838a6689c8d13e8dc9c00dea31833de89d3056ca0a15569d8968485bdc5b353910458df1960bb5100c069563e5e08565c852fc73e8416cbeb8bfad6bca7aef9813fd98d219fd2842c055430e641188d898013f85fa345e9277e302a7ba3374f44061d3a1685122d698c2c5a63710e150a7ffbee6586ac169edf50ec5ec539bb9d281c494651c1ab25f726234167bced2c17e62a6db279fe31ed192bf59e39d6eb8953ae5bb21492c1ddc5c8796af31f21c3d724d29c64d8c918c606bb5982a0e0a79bcb4788fa4a4404178758c15a6fdc81d493eb33e892153a5eb81caecd4c3457ee1411ac587a02e34b182f180e07e3ae8fcc9881f049d1230e6096f326915a925a1aa44b7ab137f01701392d777976e28169d54bde290219a2a20fd86bdbbb759019753832a8a19c1446efa4da43eb1ef4e7af6d75aecdd34c00676a5a54e3e9cb0b79b870d6be83e8b49cc1b5efcedf583e47b171287672e0ef63c958636bf2447fafb9c85860ad13c344d1abdeafd1fc45bd2cf9b6119ada81c1c0352343439ffb8e6d6dc17fe69759ef2c8522c96cc2cc9f41a68f34801abb68b0efd839dd06b8256fc1d570c4629c24ddb3d7ea63bde16d1942dba6c4367d5c062f2e0b551503eb93e1009100a1307b6d9a31b092b67f004003e0b18438ae15c00e943814a23a1c0659610c1b7881fd3430000d7b6c0007a19639fc19629b5c968b74f3a6e93373a0686b8483a7136f5e13bc1cf22c01a5eb6b70799587982795d1301d98eebbd3ff855363637e67baa216114c36e90310cf221edf129ad089e30b6100fa37d3449ca0807014f009d5dbdcee52c200aa3f2c4ef5fa9d0cdde32d84d2d53c0faa6b464f66711da7fc434f07a848979504b2cb2d9de81cddf4d61c4c60a2fb665fc1364517d0db98573624aa36484e6719d726d4d6a6d16969ad137caf438e9136bbba2d28d2936516a759af41d307411047fdcaa0153e008397639762583f7fc944205d1db2b038d643690b3897e4958c4ac4cdf44b7210374aee520ac28355c734c3d60915a1d46ae38aeb8f35d428964b869f33bb2b6fa14beef85c120135ccbc243a22943f0389b7abcd07eb0ff43292aeef57592c184971d6c04a375d38c641709cf5ebf76a91143201d5741c86b9668fe0e76e9104dc62afc3c196890413738e2a562ae05d4b229b649dec26d412b23dc8358e5dd596df800ede4f3aeda6a7fa219fec3d1a25b88e9e939853d2cc79a508417491f3db663930081e9b2abaef16fa6012a13866831b4712a6ca5c976c1f41a66be9ccb8c1b3992f9ac2f4d38edf55a782e3d66ef7710d5a687f5f2a4bb327b6364f266d489f0d7c4c000dd8f44ad4be5b611937f41b8e85527d5de2b1dee7c75a624627ebbf23718a5fcf76ba251869d8806d85d0863e890e74e1b51cd7066d4509d048485988160a2c014cd9772f11ff0f14a055c756b2b4db31610f642361a0aa15244c5642774a3bffd3e737d4335abbce819668dd028c552c9f6526a02a92002dac8c845c308f5e69d87e28ddf74482e7ceb5fa9b82039c619c05245a52cfc82f84723f0bc7b245bb9a6f1542a0f8608606e10950a5955a89a3894d22b775dd294e490d8073d59cf39f1d1b867025edb08d4fc7f0698e1d1bfddd0d423a646284b6b53229cce62e286d334e388d4a06ba32fca85caf5456fcedd6dd6863f9ad42d1bfd2e87c59baf94bc30479a3c6abc2259f1a744f700378e0d21324accd87ee08af5a980016f22b5b1c29af099174e29f977b6fb32f89f45105dd6c8abfe1767953f7b4a236324ae4b68570beb27a671fc40facc7fd0649c9daf490b623ac1e5b9afba21dac4e1712e027b32847eac942f285cdee580578553d28dfd9aa493091117aeaa6e9ba56ea44b83c22138c70044f8c67f73ee29cb7622f91857500a91a75d2a36c994eeea47ced86f492ec1381204e3b0b5c4f69109dc8b25c703c8033387e9c91709f2c35e27ffd00b41cb459ca32a08576ca436bf3ffc2386d7b581e41ddd7537c3b6d2b512fd7901511f44510a1c434be0e60ac4f05c186c89517a9d1cdd631a52039e89eb744ccfaa3537207fb41a18765be6ab001e5d90d5c61f423843cb907dc11be7e3794c528783231f2d8b817ef872fba91abe2f6792302f0e6178ddeaa81bd32fe8a7442509a20741518e843d8c2723f9f90bb3e63061d92ec8155ca00e27a7d3e4583d61cd3612a27c232f0093700545af429045292b9d453b25b72327b94f2f4cc5c215cefcbe528af909e6eb4958b0b042caeb78751ff3022ac92eaece5c513fc9501241b36ef9bed9723b60332c47106766827ab9044967e4606c1b53ae082f43f7d3dde349aeb0d3683038a478575916c9e258e8fb3e3869df702589e6a8b31321f04411749d7ce33853998aed5911c5be13ba6e3217146e87d0dd2e7bc32731bab56a2651082afcd780292a5042210aeb3c2130320645d86be7dbe65f6e7a0ea33f05b511e4fb0565af16fa3fdc25ee3f0866c4036ce62be00f60e99b550643b1d6593fb476415c5fdbff8efb6ad731f976619a7dcaf3ec5ac6f6b0aa4461e3cbe9064af65482176771e47dee132f56ab59182e44e37e2f4f7e190b41ab73102428c481d0390fe4dab353b854429a90dde21d2c12e73db8df7d7ee73f58ec994b180a9e2dd6d99a5db23dedb66696fbf8b8c2ff8dc3ee240b25e0369a27cb77f541e967e968715c405d5966aa0b2f79c392fa2423fa08a416047a5cb8d0cac466a0ecdf9b3d89f56d05f40ff77c46360eca283fa82823c80c94c32909acd2e96a67ae35550c44947ba1704bf34c882565166d015cc44e55b2d01e8b17909871fb5b5d6adb12b18165e2cf922394fb8aa1c2ec8717a8100361ee5d883fe0fd5514742ca613ee9a7db0335ef2842541015cca4ade5900092612f00355e337dee8d89b9cc151041ab88af4bbd95e18ae809af0fa3cfec8abd10f25e6ba7d575b2ff7dc0c74952907273449b427d84a0b94b620be4ed446a48b8ffcdfd0591ab4d0b5c015049591ed7a53d6cc94d0bc0d8967686ef6fd9c6c626b6f9c5689a0617b2ab413a52445db598e8215cc77a8a58da3d6676154d7f62bba668f4158b504b4d0999eb1558e235dd554bfeb9368ef15a5c66da72f41d80f71a27135e3ea9f2a45881c11f51cf46e41bfbae04d54edcb0599e07f77648e7c6b42f948b2277095465affbe2300e3cd077b9ded853a2e1dca319e6c55f50d12101da23c71f22453af1ec747f40b0e4d7ce558a5b06cebf16d5320ec3fe33df5f5202940d7bca11692d26d0a82864754db081224cb7c38568b433ac4bbb086308305dd147dd2b978010df61718117455107ad791fa2ae2b8571f7dfe7827ac33606dff30c20825fde90ad111e45fb50fa0a07cfe720480ea3fbc245da5803941be10ff770455adc8aba7b1cc8a9d0fa48730e09b4047a7ea935dac12656a13e6f2dd4f10618e52b83d8160ec6cec7a0ffd494dfa12500cf92387293efe77010e17fcf890698d82fea4dab039bea915d943f0797f0022064907e3d00c69380b8c180a07dcd6fceebc2fd51a61b988f8dfa449b5e196981024255ac3a63d41d904cc8a381a5aaaa4372a2ad26ba1f86162107f0f68912e1ab2cc49ef6408312078d232f2e4b3a7ca6b8662e7c7236841b53431b2c11dbeba69e223fbf3ba96dd9707f6de08127254135690546aa0c6a4cb9ec588af96495e18790d503935d2381ee9505e641b672603edbb308166b0cddedf20e0416550897aa6aa731f307a44c234625ca2388c3560f5a1da202e423185ffa4c2048752a9957f6a1baf541c4ca87cf1e111870a5d981ff6553c1407acda33d8c82e0770cf36c6092d269cec394f1564bc49153ddd9e7a2f88a764aa7600a459356c9bec2558625649481d7c746da6ac086ebb3c5753ac3fd5d1f34fbc64fbc7ada0ac32c21ec5f8ef39c251739c2ae02b1a6a3ca8fd9ec4a3566aa51bd10b394f12314579c85ee816df9e6abfebee13a2dea684d028dc05637a17a31f3e8c3d7b8143969af215e3719f1df09c4a176bc51ade847071099da8bc9e5fb34562126bfb18639acb6f12a672830ea2488ebe20270bffe3bd8a106dbf229410f2dafff1cc40d1c0b0dcfc085978f0f4a49668b95198d707c5ea562ec0742a417e4f41ad6e55666ba791e055895577a55d152476ccf91e6b2718a049bf603519b50cf4b5593f8f49c8f7b9322e9dc7ad6847712778a06d4ff79756980416a665db087ace52fec2a085c89e5a9a5b81f345ba8b790feb1522b48ab9fb841113587ca4abd30ce4e308c044e74d49174d0e48263687c88a88cb897149a07dd504eeb44b9f2165d9215dff4842946750178f110abb5a4bd511aeb9084122d31b8259e487089e5823cb97dfbedab320ae2631623d023a0ef83934d78fcd860902298b79f9cf769846ffe5cca2738e46f0ea8b52c5e013379f76bedb22ab2bb4445a64ca33f5f8f291aa54b5851c7e991b2996349544c85fd7d71c8d70d6d9a9109ff59050180839777836a52e4a3878771a6138849bc3b4f776dc383b843df5be7bec7fcdaf2c96126ea08fc095e84f085dc13bb11871543ab683a89a8a8aaa2a14c73a1cb31ed0182ab1129af927455d24cf9a39c768d1b0b1c533540a0f179b1bde2f018751b1995fc6d294761648f83f325c31b11657e3d7c929224cd5a496832a24a1437c5708e93b41d7d0529130216946418170756e038afa7a26133d845e0bf01cd23ee83d835f4a7c2c80a22f2ae531b6e05a527434dae886284c3965121463c9a518384313b28a5ae4766a49af29f68ae1edc929b8e7a217a370e05c00334ed07245a71be7a2d9facef552ece517ba21ba8b93c89d2ac7399df137a074a7912ba29d0fb025d7120418b4158ff146f941fee0f82720e880d9cf830fdc4794e13c3f7e03de40d133020cba8c3c283e09fc0b6c3540559bd0053ea35a640de560f4581cc6d709a7163881481455ec85c66ce721fdf5c697ed4a7d75cd03bb923219aeb9791f9353e26bed48fcea82f85ceda8d05f0cc8970ba6f16caaffab851ba609f828fb8a6d13a69d0ebfa5f90ffca36342f33202fc893ac05ffbb1556aae4425b00fae8dfddd3a6ef98c29afd6629988830c35285d29b386f9e76bb80827f2ae22aef3874f1ba9bf6c5f043208f2871f226776cafe0c10bba4cb2abb2d1ca0c9254fee12834fd8f02a0d369d0bb492310ee053e8281df4051684e4820e99f9809b9c0c67de1b75bc137b6fca8912510dfacbfa879ca89087461e36c4fd42e3f6d0eb7218b17d8e90ad06b8327e7c553e7d1849d99403e525f98b7a31b66034a68fb656c08e13e8685bf122aa7a7d4f9bb596f268bdf815e24129a6fc10958b27bed02c6d4b784510810ccec5cd347befc94c10764110cae2d98c1c79ab70ab1186c61178a9ff565313503aea04943a7e205678c4a20bc5974f367e8ea1c2a3c81188e4c8f86bffb8c9fa623a48fffd2dae6be4585086e9c47b8f028b6fa9099bf362231f07bdf1dd5a26007b7d51b41c322bb1c3ef8a1396bdc76bf967a84d2ca18daab0f2f178b5cb32357cd30abe247991e844a2b72fff754672e0d8a8cd0196af3429c430b24d2f8f6cac4b67f12b339e077eeccfc58f5ecb87082a9a2722bb555d9ee220a0af6b945462fa1c2a251bab5022259f5e8b7f23bae0c4947b698faef1bd5768193568b737dc182d4f95c6961767d33846e2654df7cfa1558708ba72a99d16df0b11c63df83734da874094683bf4b3b61812f9aaefd2f2a6740892c2a01cc8a1fc72b7e16bef2ff2280074a3f0b0516b188642a38a0b79a89d889efc5d3663cd00a817c4f2e6de62940870f3b2f8a8aef410d987f5944ce5943a8a5ecdf670755de4477a3e3110856fdc29673875b9bfb4155014fa7bae4b44339b89816bb422472c1203e9ca48c077026fc3f79d1191d424275c9021768abe82164287fff19eeb32e739d9d298fef1d6164cddaaca97cbb334dd3c5e998e9f98414112fee6f88fa79ef0b76762dd85d36df6c662693889c325f8401818b3362b28d839b5a4cd3a19e08a83226f3aa50ce31ff5011918f0007560714da03a85e659e79599440a2dd33a353a00d79aa5aa801af04ff1534534fd14771b5ea5c6cfe9167946a0a06b12fb88a17b00e369287db5a2043c499cb250d4364be75f2be1de3625705960e02cddf8a36c33f24649c7fc0080f1be8447ecdc5476f44d8887c9e6e89c2007d0450b2a0b3edcae99c0c3e9a63697f186a45fd0a843e6dfabcfd312b3b86360d8bc7081bda3dfb626124f1c1496d81aaedc7735b0405033869f97bf0265a637535c9078cfd1761f0706a7a8938e15ae511dec6217885f9523c4eb41a04598b685d628ca3d30d9b4333ffd9fe9f4335406006b6f962382b3be453b3c9ba56882bc8c6187e73ccfab0faffecf92e48208a0331da008c076cebd83d5be24175645e94329a0199503c69c1443681125a8fd6cbc282392d0e8889c161a577034cdd036f8199835a5672280d88f2ce045ea61975b350e103d7724aee7e60873c0f405bfb443de6a396791baa526753623326373441b238b5329fb80693529ebb26a820c2e97e56f5c2b6367973753882272b3413d73b351f1eeefa455a0c00ff245b468ea484a38c0d7bfba704eadd0331b83c073b607f332d05107f0290d3e4047e99bd62732c3cdc55c14d9e3a3484678442d3a0c314099b6579c73f63278354e6588edb0e5136d5984326814142027abaf7e167fc89fc89ae82c6aa97924d1c05a3e81d90c36fc34a8ee84159be963ff780004f7b4ea8a83d5e4fef06accc766d3a73cd80acb1af65fb7a1a1848ebfed2ea37a50d8b599e6ca16201de90588e9e0f78f5ec020729e90ce4316cc113cb0de2577de84e3ecb246ab3c9027b6202c14e005b077044fcd489cebaa1a7d0f0dc10d12a320ab1dd9c19301e823930c18832b613ee82629e8f0934f744657bec82a704647d6a0c15005e9caf3f8a45a2510f504bdf048063c1d419e502ae7dd602f20abf88bda1f2637b8f1f52117f8fa7e802f5bbb05eb30f0921b04f48d3fe50508fbaa21ae465ad9932da502e87f3d0f93e0c97ac4beb9a572fc51befc3293d5b6e786bd0ea5dabc8a64f57f1c302c9efd61e7e7a1d81f7272b1f250bf65402e4314207964f41d93ec34ca4092c9a70f49a0aadaa1f1934204fd85eba2ad3dee1965f9830f751fcd59e2498082603d7eea65c7e8fdb4cac9d5dae8c891e5cef9958dea0b422260085874ed2eecb4288ef3fa231d51dc47f4bfdc5b13fe2e5a75bdfbe7e505aef9ee16612a00d92bfbc8fcd92b7d568d960742f2a9fecd1c255a7132cd78ee0c212adfff78cf1afa2db4bfac6af04d0a2ecaaac8ed83d15fdd7a906f65f9961f081fc1487e3d8af1bcbf7074727576bb595fa0fc9c7ee82339275d0ad5d3534a8760023de55b7a9b00bb1c5aeb5bd929c4adf12546ab30ef95abc81489bf344dbf9d17f65fe8c57fff91ea2163f37287641e3d7827ab81efba9fd427add299a70c0345edc6fae35ac9bc474453681502998ec31a5cb8e8b2910695b925fe5fffa04d577b89fccc6318174a773e1c1c4341e128baa090d6cc5da2ece836c50dc1c9dc453be517527ccbbd2b2362c93060b244a9b2a1093f7d44c1fd10c2fc12c1315c58eb528de48b04a4462a377eefaee8b1f0dec5474bf01f3da74590883da82e3b68b26a024ceb180f55a13b8e1f50433c5a154a898e50bbb1ab92e0a292ba629200d57df7f65e1e267fb8d90ab6397bec22c8ccfc41c272b5c1929f469410617e9ac7ffc24417b82cb687b3fcf55fb76e6fd724f9aa30aec2e816968b8cb67ab9a87ed81a2462a153609b5527f17035713689434191d98fc1d4d13af673c384df3ed36b028ea044daed7c19bbdff976a88274cf8437f888c016c790880824a524b64805180d42929035bda9d8f3ed510b489ae08a8c0f49a53812a9dff82a83a31afaaeb2c76477c9ca77916cd0636f6ab13cc15ce1a4135b0c56c5600370f3a69bee40d4a05b2a7c3644d8a32fbe6269c5c13a2307fa3b42ac96dd20a0b4dedeecc1affb71f0ef4314bc9c9c570037080ade6c4d8a1b0436f2c4566ce0e63115f294801c07dd8725e076fef582130417f19bcde0d56f9f0daae4dff6c41db547b459630d67e91e8b753e432a6c8301b4fd767b58bd8dd2aecb8a27f3e670c968bddde3be2d1df2cfc2900aa648ae84bc669cca0fe891f3ab51c298d108f37961b68de98b58f897d15694461ce08706e80d7351619bb86381700de88cfb17cde02f8376a879724b968f24b82b9b9c634b5e1a99371fca52e776a3ea122362b2d534ba38921d8f550ec19f377fb3346f17a802648995c2ee55a490c27cd1de0beac6e0708ec962fc1e4a1cbc058550c9ad483d04b0504fb277d16e48ee2ecdb27a827b45382dab71ad6055a4073e29812cd797afc7d6409fe597c3edbedc3b8c7afbbd7a21fe9daafe2ecacda4e525c6aa581fcd2b239072ea50a6ac6a5f06c53c611b6baeca3300b1cfc09862404595345633cf51375c23a71d133b373512b59b6255f8282a567f6a2587772884a58c76a273a3f380cdb81861925f25067a79be62d240ef7be05e3ab8886c91f373fb2603eaa6bfb5258e5da0669897e240ff4aa4881c4f7931edfea5ea49bc652d9ba5806ba82ff222a6152c66e3c93c9efcc22c3229f6d2bf8bc0971a6fbe23fa43b09a4cedf667c9924902aed0b43faeee000222a46c95899a89e99d42f55800a4e1ca7b44c922d9ae31b19e92fdc2d7809379646a3d781845eee7cb81fab9719659d9d5bb0e4443f9be02d9c50ffa8379ef244c3debedaac3e679d9cba2e7485bb617c98c4e17e7b50c711b2f5b758c773688e0a8f54d26f35cacc1b22a5e557c40814ce8e78a5c65adb768432ee0b30fb09803630d4e80fb5df0416148ca9339325b994f24bc8bed5dd3a5f9ce8375ea92d8a9efdc2750807d9949f193e1f4e38aeb787d9dbab8477535ba05cdb3bb4b50d5c223d7c275ea58fa24a8b43b05d6b0325566380b1ea43646e7edf70bbcb0b17a1794039a740688143d118639448e5d63126d3ee0c0477b934ac958cfe5ed4aaa1e7cef2a6676dfbffdcea2a91e99dc47aa8ca7a2ae74a5dab595a6de7c51450d5be1bdc38bf5055075822e55ed3fd9629250ba3d1b17b8458b883e3ab07c38184b704b56ae7393d9b2c4c51280903b224694d972d81f28deff9a2c200450ec921baf8dd625c3a9b2b723ba16887249909cfd0d483220b75e2c020add50a302963447ac2d186df9e8d3793e2dd2cca7da8c44b80b537bcdfe1e4d9dc9986f08a2ec3e38f39aa17ccfaab09c0977396c8a10569cdb484e8d763bf6e3c231b2308f24db42b12df02d01c21da882b2b4ec51d02b3c59d76730b55395b216a9497fd10a6f33a1701dc57d9b78410195e842daecb19ed535a8f1adf9f4d036b3fef805dc0008e3a174143f8128853fce85f1a8701a1de87991872ba1104b95d1a18ea5bec74735a44f53be56d1e6090ec0d7ab17a6849507b3c9a1b2e820f109240e75324de88c3441026f5c2bb915b52f56700d61943b2e676452a1fa847daad7579160fad4d9c8c043e6db39ae1bca9a073cae47804c5b4d9a5ee7267a7e2dbd5ed2f21e4a186566013ead5f96ba45ec6fa8ebc93603d463da2a50b5688bc7e37b41de4eefeabdd421bc3f60c1098f200fc25dccfd22fdf4e620251e7ea293e91abf8444d5cfb9897dd7dac8a75b516dea2040a4aaad48490caca4ae693554689d11ba0047eb6c43b1809d40e798baeae11504ee4bd27ca07ebb6e4a8f7413d3041ae1ee6cc7032c8679c20cba25313e64c7916db3e129280392584037822c19ff735079f3b6f80d33c06707d85a599c90e4c878ea2d9912c065fb929c5a98ae2ae759b33f8daf144ac0972ea5703ebd0e33925daf488e59f56266e67d3843be52db5688fbb7e8154ebe4aff807d7edd4b41423c59dca217c39f18df209c6e5b935f661d730e5f9baa22dd2a06032554834bc70f81a5d33358645a97301326c50c253b10c90dbedb4dfb1768123b2f6fc070bf247da2cd428573e50d870ec19effb9d9f7ce804ad8f1c163c2f151197b73e6e6eaa3172d61b2b2bf8c7b6f329d26f90db822e53976d65404d141231be7a94eba7b7a7a080f8f732c6769b98b8360585bd513e7c0bc2980ab8580bc7c428fa32354e45c7603b3a285b1719f6116c21654c9f0ec3fc7f26fa7a46a3118a9344aef42dd4bc0b25a41054e0820832ab824dbe50280485042325a458933eb110e71ac4eb8820221036459120e9bb39b7aba99cf9205967f38b34129a5854f08a4a597485f39505c2c4dc616a71a8a8121cba900d242ec3c4b1ca5c2e8b431cc8ff7d363a64f98a40375f2cec3dc2095ae1c3fd93d002c916b9f3847d06e3cb8d39a911062bd501b60bce77d04e5a71f4a3874aae053aa90b4000f9bdda7f38c3a06bd29d31060d058c7cbde8687ef89101b28466c2629a910dc90fcc58a2737066eede3ee1101c690a320be9aaa737518252c77eaa606220e9d7ccd75622e89fdb8fde114938720f3cd95d206e30a52d55c1243209190a55f5f6c6900a4119062be27abce5f824b4e9d6516a6e61262d14151086b327d94a124ac3f431c89ce5bd257255f6f48090b2e6b34eb3f8dfb5eb0fce33386fe0a82ebd1b61c8c2723f9e1088b6b135d5832b317bb3e2ba04d9bba64936e6f126e45c3fe5a07a53f635f738176a3e51ce73550ea72bc985cac120d5668307b400a4c264b96c85279a268c8e0c10ae75d2abfc85e5f92282baf20881ffa125d4fc4318a545866d1d952b6beee25716516b81a7f8a0b48e3deab1ade428854b835af70d4c1c1ddf2ee6dd1e1c70935227225e3e82f16207976889eb4508a17d231bc8cf9ce6098faf4ade35ab176e149d16a45a0c641371d9f6feb746b4e81d0d66f0b6952ad44faa60bf3ac861b567915cb7d2db6168c39a341a0e2764bed47a34e54eef6ab6d96ea7b7f1a3c3a40cc6dea28d224f20bd919c5348b92536326cd20d4f94b285f003c0c0e334395b52b2e67ffcc7a289d4cec8ee8bc84ed1c1a0d3334d818c564925212a39d23b53391ed7ca4b5e37d3489c5d908b809c5a08b758d654618c2d4f40bdac8018345347e947fa987a259b2532c2b9a250351f6d0008ffaecf69e96814989d49f9fa184d8dea6618c9a2fab522b6fa88b99727368ca5721bf1734042fe6b4804526c80776240f9dc4a01436d1efc5ccfc8d280953409041ec1ebeac100c203f8dec1644bd667232347637a2eb7dbccda70d7e789d52afe19049da6756e8e082b279770d851af961241d70184da8fd8d56ac8b4b8cc0242f206a0d53d1af1973d91680368b100cd90a2c98f0816e3dc83794119956c6bacc1ecf45745a97dce71233234f07cff47330797f6e0d26341e2ad01226fb382d8d6a414229eb67ca6554d8f03b8fbf89981cc0d5a9c9333a5fe4273579c8bb29387ef8ecf2860e7798d3f82ffdb5e251f5165c44e2d3c421f4739d0280ec39c78ffb7715df0d89ecd0c78e318cb0c857774362b27c5a25ada2b2289e9dd489920af99f9c6ae64d3392f90c41a4044454338a3910fe5bb894ee3e653055a4c8c0f416567d07fc2b2da2d3a8122ffd29c225bb73e446ceeedf8a078b7b772a03529408417159e84bfa27842274dd6d8bb28a46341f4066e60b4d8a9fe3f37ef95c491e1d44aab7f673fe2497e0613bbad427800e46821ed79b28da9c0cbb768bae5948db1febc557495e56a55d226700a867bafaa1be5a48ae832d5d595e976abf815b4974bd4a2516dc2fcd896d4112940524f4405b3365c1c13e6a1598a108d2d3295d5ada5fdfffc404d4705443b8188fa4f0ef7800aaa57f381bc52260184f93b79593c02a52266e4e57b1d48ab7018f6722bf3aec24608e2524fe49bf81fc88631e58dd0bb35702dc93808195bc106def04dc02baf204b65959e8cea7b56c8c216a752d69f4f3a1e32733efd0fe7da045368fb8bfffb31d4fc62289874ce6868f0ed2bcc06a40ad6c6b1aed04239335a1c1a244c638ebb4556d3a8276670342c98daeaef4cc682a8909bdbd699134b6cda4cb074aa2a87baeb3d9ad57585610a0de952dd87add50f63ad763ff4911ac2c4e65a9e0f71003ff12c8cfd5c246539f9738240f0feb3a26529163347c04cded61e9ef57580208694e1a82ea54685b8704de8720d3171c521cb761cd03a790cfbc52de03e0bb47f24f00a87cddab58df9cfb15f03b3cccf25d7386c7ec527ed1a7a9a237d82013e06ad23f1c7b7989c7fb66593a6525af9d09db8065c9e1cbb2ec93259f014d14484db59696b5a485e1c3f1d6837ee57ceabff50303158c9836091cd16852d193fd065b022c11e28efb1c6aaf365f4e5ada5d1b5c9aa6f3d52bd5c33ae9105ae57249cf4f39b577fdf0051ef448465a7b3a843e89ad0085f2019755abd09a4ac673b17094f1a12af24486ca8d0096393d4f8333fb091b953bfb9f64c2f8a4f7d8871e8af2c360b6134484cd2842aa9aabd6690a65f7c21562d6783028327d61f3ec93759a08cca0e9cdf9ffa821bc227e7d39061842d102fcdbddbcd606516e9301c2d88bfeb1675e587ecdf0f7f9b5d42cd7944cb3bc78f8804f6369d41e51a1b87a7277594b3c94a497ea936a0ec95852beb185833750c8b9dfed6133a4614223e60ce3364d4f16c34173e943c0c722726fe84fd334fbb7222248b836e62ad3f49398a6e72584d6a5e9f603a07b02346c70be20a2a5e96799420be8c26ef8986b108c0c1ac4ab79d5652c65f9caf6370882e4d60944cbadf4c8769a0937f7bf71cf58336d9dd90bf59ad9ab322d63163ebf43d2093b81f7ac14ef2322ea91e02c427c26700a9ca602de72378c628eaa4c3294563b90438b94327908678bdb47fa6f2b56ca0b0662c14bb66e508650fb22582498f180b2a5dce314da695230bfe1d70e96225dc92a80ad32d6974d9a082f06cc814c02f853042671163835e6e28674d9d044a041ac9918854447095b93f454af5b76f81a54b5b7e86cdee956425bc8b788be38c5e78786b140965f58a48cf0c22b096d027ad340c2814716e7449c30f1e8600c1102c180ce03d8270ae974c1719e14c29dac79f303175cffd67e36f4b0519b5d44d9b16f3c2a020bc9be1ed5dd1a99fc318b5a2ff6290848f9ece9eb37bb1bf6d9dc75773d76dde3efa9d45620bde9e7e8611e15ec1a0dfaa382e76d163c6d8b482fb7c72876d58dfe1c7fe2629e743d1881dfa6f0e738a255dfd19f86552f461ee806969d4d4e9344f0bc2150f63dba041812828bfcf51b08b9713e83727720d56dbd10dc158009743c5e41fff51bf4331e0b74081394246a789e7cacd1a07b0cb9bd4337f5599a24a372448db4fd988c7505b9404bafc5daf33cac3d5cd2667c04ab1a66183af5a321aa7b71cd38082fa13168b93c29b92c1d5bdb62fe233e3aee0c7e4bd263a5fedb4ff03838ba73cd82a935188b5f33f7e2a6e12ae03e8cfe64c862e9985f6b08489f7c0518c39d8a85139a14cdecba47b1bc2690b66f2fbaac084d37bae4605e7c076409dbde4ef40f93226b4d6de49714a1244febfa19cf4ca2983e369614294d16acb81f4f3ee5ceb619d8154752ab78156e1b5b4f55a258c5873527c1278452a51d11a9bee49826b4de1d9c9a3538a005a92c238f15c514061cf9dd3422c46a7d45619335bbe23b0262529265dccc9b7ac3d0f8776f08d323f2121fd3dbbbd06addce5ed123eeb2c9aeec8ba8694afe54288a6050260d629d4d1230a02e2922507a60b42a7f4e449d3b88bf100e1a5687a5d848dd984d0956d9e4df91d44ce2d2d40cf888d0482d001426527c999e187d9063cef79c35df7d6567887499bceedce7585d244866a5c6f1cca2beaef84859ee78a6376fd652635824f5911ce3ec46086ea4f0fdfd9926e8b1a9a5fd51706005c9ec0a01c4021708a40c6eb687e278b11ac20285a0087a5cd8a89313845a5ca91f6dcc0916c09e9db1f6c472d8e2c37192e50d2af8f5b9533459c94305fadbc9b0f7bc8dc89669e114c86005972d09a04583d272e6865f28d6533f1ee723b68ccecb8614bd3b418f9e413f99b7083529df7718b0438dde4e4e989b4e4bb3f9f443a5156ddac9923d3eea64d29a9836545614a67ace65a7f6bb0c5fc659c059588005eff68a7dd4b252807aeb4e7cc369ce4706af81c892740126bbd27a810a8fde7448af7211b1a293868657cacd64ca9f6bb9893224b59e0a3e41f314e3314fe32ff6fec4aebcc9a8b7f0024c7cce07f7d26fcc18e6c85646d7f0df394eb2c1553bb5433f30f349fd1363077b99250d1d7f07613210cbf46fc9bd0a776a3c96ac7f2fd14d93d2ebb3f2acb658db07dea5177c514751f07522f602a8d815047a45c990d041afc431be736822322583b1caaf1c07cd65628e045f6d022f0f03089b91ceb66f17dab0ba0f0ba42283a17e39bee69488472dc76267e54ca5b498912d79b14774c948062f9c3d1ecac3333d3ce55c066dc5c0c91106d0f9e11d08513b7da6e2c99460f66127c77dab4554440e82f56dd4ba4b2c74f2d3eb5423922c0c5bf309051bf29b2c8e5113a409e1831a6c12773710b5e2a6a91d09b514012bcd9a80eb8c69b268edfdd4b042871ebd94fbe6a5ad30678e94d96131d92a490eb21133f0d80b41a385f45c4d0c099dcd691b1f6a687b5c55aea83670e9a0a753bad861926bf74c12d7b107ad91c88a236a639c5e0fdb044154b519358f177e34c0d580be03d0daae8562200ff25837982ca94d3b5ce065feb4b16250385b538f03c8ed743f6d9d8352472dd848bbedf61697c90280111f49e3e2a09c1db7c327ad82a7eab02d45d8df7de34ea09f33ec3320888baf80ec708e08005cf96ef100265599a311954301c194b42e97c990acb409f6a48b8fac27144bd21529f0e6800d1a1eebbb9dc0bbd222fc350bc5eed0739d8d0dd6de8ff7845d365485f01243a8aa7731b38418618004e40991a3492d4a7f1d04e17a15ef9222d84d73100ca902ab437e0d8ebf7707348b3944f80e115779c7278368aa509bdd7ff78f8d646adb7a660539fd775452d867fd68223c4158271ead3873eeb6abce6c42c8e1d84a7b24c12387c26f2b871c2f8f32c645521394dce5e45d2a5b6688583b6aa3019dac9a253c4f27cd24ce7c260e330d3ed494cd52374d9f6d42a72aed436466c6a530c149a289f6a3ac572c46f65fad92a8a24b83c6e8bd6761b800f99afc3cc3dff8034a1f2b6cbd1cae82188511c57b13417e01e0e2e606dda61ec304203ba0d6313c737837374aceaa6269daf951c1137a4f2b0f5305acf5cd423be49e2609b9ab495ef19900ffcabd1b0a337eac5dcaca7d11085e3383565ff803cbce1888f6f223eaba9323333c9409382d26cfeea05d6acc880e28f0d4d3c3400160df4ef13f9bf229f7cec5b00a8d84ca04d07cb33985cb8f717f365601e934f433e94093d434af2ad4d7b8a046fb210978f6e1420b77a492a0927396aae86a173d57c616fc6bae0b80ad4d60959cbc9ae49473740697f7943c6b23cf1ec669c6d132cba9b9cab6bf68035419447572d7e1037c632f989076276c086baea052aede2bfb90fa0144b1197eca83e93ab842abde086ba0b50eef60bc4ba241e9dcae98a10d1b876d82d01b4aa02478d5fbc04905006a605910ec8527b39fccd4bbffd018fe29d472db2c0a500cfb045685d6a1712df7083b1eb3e0f18647ca00ba9cf3495b2e4d7e2ce5afc8e4e0479f46752fcaf25c8025fe8bea8e4e1da2b4fb5610358c327f0b3ae9fc5fb757863201b959e2ef7a4248ec0cb427f98070d828a0d1476bfd8bc1b25a39b5792b9ad748c756050a3843c95ff00cc36d029459e7d5558a07b45e962a15da7940ac76e56a0c8db806af450fa48d067b34822e1213d60ce6504df559c23fb04788c57ba1d11af87cb92e783e67f3cc6e7d84647b0f76e4f559c82d34b43d26857131379558d82cc853d2e2b7838e7ada584a52301a7f406dd639297f0e237942221e86d31b03c810abd9127c638cafd9162a41776ba9cc2bf760751b79ff9bd50376b08a950a30b327ca24f36040f1646be7e6f128cccc7f83bc6c71317827f792bae304ad45ea26d8f3106843771ead3562f81d83e02282f344124692ac0a4b2cb2d5429145b64a2cb348570a0556e90ab1c02a5f29145924ab8502ab749550622dad144aace4d54291a5b4428bdb719efadee21623af83b5762579627e42cb340004173880f9cc5d3a9540ab069085d9a1cbe6097975508edb172b63d2f2da408faa9fbeb2e915c4be5739091270914c931b3f44d95b0974734d1e1110ac3860537be709e89c4e61cac9b00aed06280dcdf9803cd3d6580af0d0d450f24830fc1adfba5b2301373421fb9caa611a039c2b45c643c8c82ae475f077378274e8429f2a14c68f04db60b67285bc9497c03d6d948a6eacb8b747dc90f89be0eb351b5f874b6d7403644d8b0fedaa68906b209833c00bca783aeba1979e34d81715d834aabc702ca419bc9e9c0d75edb31e4ad8efbd93ee68ca9aacaf52dfc888bbc8a2c73a307e2a12389f389a635dc5f6f5ff546a398645cfb41301054e2885573b7bd1dd0684b8cc8023416bd81aca08ba34a9889d6b21a65b8a313b41b41371cc6707c18e008d550254da658c6220eeaa638a38dbf2fc6150ef269efa4f2c9975111e5466d98e64474d70b6115a0ddf7afa15d7b0993a24b32ae97ec00e2e7311c3212e172f25a443152a2cf6d9e1f7d8c3470fdb789ff1d8da0409537d7775431869117b7720fc49ca0f80aded532d62fac30fd11b4deb29bb962ed0ec4839610326c8a36a6fefd2edf7cd25e46b5fea08a6958dbb3de7a2812b32cedd2338d7293008200c7c3e3d026138e361868005f47794018dc3383973f2e6d3190445d0a49868196b5c9411c44123c296158068530cd3398963460cd274b81cf8e548ba7dfb81283d95be228784a7745ad91ebb9a2ccfaabc75543f1748c30a91771bfd6ed1b50c6891000f0ab0595d3eb7b2323ba302a622c8fd29454f91088575e38d957e06c57b0cf40b669c8a2fa92221901f30af11351aabe09244883c2975c4b182b13fc65212f5401bba4d2a0cc44cec2f456b49cb6a3357d50651fefdefedc9c5ffe81629a00b536c33b3b679aa655bf52c7d2dbff59394f0aba488641ec07ef33a90683fb127fa18dfb186a87b2486b164ec812cd04d85a6ed4e54cf267084f776414fe8739c2c30203e79bfc5c41f60f35bf2d6a4d7306e9f82fcfddde919b931a27a2c601da6762ffb196b09c80b6fdd1c0914e0e7d98ca5447176d3194d707ac3e94e493df2f3a037f0ea511a5d501ad3b4a280d10bedcc635f1e5a06d4f71c4ff282755bb13240456c80b4cb9c24e90a871db7259125f5817b39445f05a0af08c248fd0cc3799d9c05c1b42b3abf6da3bf26792a6dced3bc30939edfa79304a3c746fc80b6ccedf260309a2f6716026587e931656a633bae6d33a7e180915e76ada0c2252a72def9ec2839ec8d62796fa359976c36c50e1080902f13d1ffeb76997467d6ebc5d296f7888b72c7fac1f2e7542bd9ef682a56537daad2fec8d7b43e6df7ed13ad9f75b0e2fba3d9395c4460884dd052850c1785744db0845e6a3a7430041c97b98cf1950a1d9919c7b582b3664c988c2f5c7d3695864f0fd6388e5c93662893cd2303c0782341b04ee13d10c784a005686d749eda72053f353b837ed44a4e7d9100f9c63488e6fa2577c9ac516b5184ac975ac8d050c48294fecd104e7f4cb208df9f5606710d46a034e6083756b75b893dc2fd70849692638391d700ecb3f91c161d40e0c962b9a071ee1f0f24a2d947262842709083ccc3c06ac463c149b3e97b537117aa9b5006198f9b4604b5aca6416872722aad945964a6618da2ab235b8fe33ccbc5a1c725916319600868355a41141bd0e037cf4de6663ed6693d425d7e37f44b3fa5749d5289d608070811510af5f4dbc333c8e00a3d2e04087f35532c6f257c0742360c1c5a96a057693eba96b6d747cfb46aa24b2576b102ae9e58dbbba24c8258b9619d45c1a0c45fefd6ea5ce99c286c05f770ad29dd25ff7898665a1b1c67fcbd49830d7bd99d5fdbb411538fd56071ebc3962d0a9790f7c21521d03f4f0dcebbe7073c78c630ecb3b03b0a8d5f7ac1cca828b22bf33c0519f8fb0fd9facd16fdf87a16be9f1bd80093dc67ecafae07c24a8e84e11a344743690c8fbbbeee8102dfd31925ae2c4ab36d8321d49d9d24661dc31acf73eb0530937c44d84f69969340d43af64d1d7af0c8def0e087117903e5d8df0a60b1f50e76a46ea9de816734cfc3460a336c3810d81b0b95106ac05500991918da302042762a3c07de18585cdfdb72300662eba949cb01660164026ae89bc222d0033088572ff903ab6f418db56755c469eaaf3a836d7c97ae4e4ed8bd60c2494a6dcc515fcb98fc5c5eb0ff6375f4f3970006072bfe8f0210fe0fe12c8be19412822659c2947c57813de25426a954dd492a5957d3b2992d0580e9af56e9985d216e29e05e14693935b75b3c0e01e598fdb9003468eeff79e933ddadf3d881c4eb15727a289898f48aba5ec191776d4d375748c83dc91f7648f9a6318a5aeb0c88f86e1787d000ce4014253f3d8574b4789f273e87c8356365ce52cfa410e5bc2e38fb08a444043470f78952b64a40caa677c35015f11ae2a961346e6e1b3e95032537aa4bc65e92f77d34f29780cbc3862bdb52b17fd7adca3dffaea6556b7c1c7499b4b54d740beeaae07423d158cca35797ec54aac0829b285691dee331dbaad2fb2ec6e58fd44b88f5cc03ccc977c5c10a6d40f7c88c6f4b87c1a841271d6de0b0f2df546a7fafb94f88921b25251e741e6d4bbbff07327485412cb95c723a4163e3784e4060f91f1d5c162954161a7c712f97a81ea1da7fd3eacca7e93f0fb95ca656591a81b7974b00eb0a62d2e5fcb3cfe58299caa24d6fd2bff5ed797c26e57f3cf84e04a82c5e5cce274b6e5e7a7eeb94bde30b6654dee9f535a0a40d85b04bac070ba9e59f0933c0b7221460cf0e68ea1fe84c602d2f20541d80049bfac6ee8b62ec252c6ef6dca58245aa20620b0d780be119d25ce1889e808a5d1e45952647a21f2429e7d2624dc57671fd51f12a728b57412e049a450135440e66811ba00c923de3596a20f4535f4b8ba7f2031d16297bdbe0b5bc0752d5e63ef55e107d59e54e55fbd3a658b46348637a3f89003abc446ea7961f205cf0697575b70e6ec9eb148c0bd714335258c438033f8531386e80c87ca7cff6d100973bfb028780f340a0300af4e81feab92b71568e83b3a7e94210ef63d12142e1be6aff649ac308346f409163aa726222d76b2fe9107a38bc1c2c0f2cba23b36154862776b71b8222d190608b308795b3fa414f62c1144005a611510921ea3d6f2c3072badff3af08ba272b37128df22c51b9d915220ec63c4dece00c73bdeae37186df4cc3f0899b70a59c6c44fbe6688fc649b9e1940bbf8383751100c6ce51926b3d1bae813160255aa659193a0a3ad628484086a8b803a371c2e538e7dc30e2f7c54c5a8f065eb8915f1ca54d9f84c62319fa54bf13fdd8d7ff062c38c69335c669591b873d9125c861b79dfe3c66745f34ccc88852b629ca34ecc68969c70df4e5295a9250df3b4f61b18ff04416c89488e01247cf6f4ffecce21f09d999bc5507785018cdfb16c0b065da78e32bda65845cdf0d51794c4a21cf9b1c1e598962a67654c3185b1588fe1e01f01f6bace41455154d207deae704fd973290566e38094340f57d43c9484bd43512503f9fcf7cefd0845f4ec8304bd8e25a6897a034615d8e8004182b55397593091a2ebbd5826afe4575d4d53b06d88d8f1d8a0a21eeba0249f1363700b2c2f748c9b2fd471091b285c517ba66e765acf4af9c9e365e05942bc3afcb823529bbe3636d623207b1f337679a9744595d52baa27b8d243f974d769f1704b97f70db308b46f348d015ca3e6d740fd6a8cd689f770052f4d996d1175e58092d93c127342e4b1070026a6e6c345ef25c88efd664dbd52ebda1f864afb586b7b64cd3ebd3e6cd697977fdec31f345d34f7b0ae9791be51b515ce7f0e9ef0969ed8e46228887d9f1216dc8d9603462fe7a662af51624abba3dd36e55f1cdfd1b81e42974652638d7e0e907130793883b75f09b2ab3bc29b8fbf65efa57890a76a1185903797eabda1d28f2b8bf30a141f0089236934869c1802454f91ec20784a5c08417281b89f437f0a251a54e56b2ff5d9399446fd8c85c77300b9aa8067ec132891e6fffcf245eb60692de25de27dca6ffd7b2b2511c14b143023a5ddee1e18c87d992beafefffbbfaf746c47e9d22af70187ff3875375fe05edbbff6dbf1402368ad5b47565febfd24bbc5deeb53160fd5b20e0ae70fde3c5dde96821cee76d42c21f40dc8f46f55fc200972df2ee43396459da755cf493203e5b8a1b22c8b3fd764bdbb0f4f642736e4ee1dfd4c0b419c96b8373753f430f42bc93212cf6b79003d83a68ba99f668e97442658c8f9b646f1f3deb8b135c6fcab7f853379c56012aac6327c423e76daeef36756b38d8aa6f8f07e44777f2261ff97b8078ae6aeaf40018341ea502664a7c576f3663bd9024ddf749f2eed12ffd39077916e730e853f30232d23f9f66749b7edcef9d37e975e62c9596b8d7f95cad077d92cc0e2d45d1283072d66c8535221278b10ff516efbb3994d3a406135efbb4fe151149d48d66f9cc34c4ac2ac5e5b657f2dc10fdb4f5705ac752aaa7074b87a25120b795defe45fedfc7d32bb4710b202e2141d1b5dff6b12d0b0ff38cd384498343cfa33d7791a58febea95731643be056ed7c5215c1377686fd1127896fc48f38ae314c1027e9c97b3c7b9a888f4f154e5f0a3c079a055ad8c86fc627d582a727b6fc4a01c834bbe2aad85e76590c9581ba86bf64e52648278ec0e08bd1490d3b23e2a15e35853f5a0644131797d35a51fa74933ea330e9144b7984a9f7b385af664c1211a44f43ac4e7cbd6a26200afa093de2bab83a3f80ed3980655e10513c4c58aca19ff39251d065d0bce208f19af6e883ec7247353d5b7abc78417f748e8dcc39a2adca2d2e82c7b6e28724e10e7a217ebe302da7da405d643769dd2df81ce57c4ce190fe04625a8b18b022b862b09f030b585263a492cec80c1f40f0b5a00430b7c250bf63a28cc193894380fdead7e095ced698f4eec616288fb12bedb7178c69651e56195ff71a43296b5b1a38482f41f4c334881ffbeb5392dd036570548c693be297374eae66e0d6d37923ab924f255703905cc6416c82fdecea49e286ce27927bc68d31daf0b893083c3eface87ecd55431e3b567cb2a326d0922ab3514c89d16ffc1bcba14dbb3b7817f33c921a6ad01ec8450f7ce090c44fb49f5f6ca0b6bb2e062f07a1d9fceab9263eabd73c97cfddaf0e94ab170f8f8498e65f6e3b4c4e05ff16af5c190d776b355479bc14aa6a807324c621b1092502e759d6aa0d1434833106d615ab033fb0273278e8bee2a1ff109e37c73661081d36f21d40e801f05413213b14f23a8ef4400e84a2c72eac3b58199737e42d6d99dabdd36f89577189208bc4f35785a0f8a9ced8593cc88052d6d9e3952b1812e6a9857d8550687654a45d3c2746b77cb8263b440da9bdfe0a51f4c43183e7c848ac45055c60b5ed36f138d831fe62f58a3e5ba5c036066ad843f43fd80827aec132ddea6d4cb247436feacf6624d5e1e9c171fb320b416b3c4553c06cbb5e669d75a7368da05aa1a6d0bcbc5b43cb5a3c362dcfb5cd99e3885c565aba33eaafe0ba5c2bf0b06816988c19c3c6fcb424727d70c7acd3083dcacff2e3504ab4220684e8d3ddd36a09dd6a699ff51a88070d1c90250c23898da6949fd77b6abce619b8152948a87c9dd998b585e8f943e562ac70ec55642ae109e5e7634c1d6addda2a19ae12c8b6062243b8e905f1566baab7029ddd700a613b866d6f4ab463ac448fb755162e40b0135b9e8b5aef17dce96106adf944d92d0803961c81d4aec99159d36e2503671160a3aeb0cff7bdfa04c792d3a482c569f0ad816951175d9725ea529abec2ff72166f10080b976566ceab5adfb70f0372939f78537bb440e5753a7b1091ab8b3acb07c63efb7b797dfa09bff51e4cb7d87416b022c9f0e392f756c09e8a99c2b299df6b71350741dfae4145433d50edc15a6f06b8276cad45dad6c0298547697bc71fc9671582b48d8bfc5ab17267583cf4a3f3ce0dd52f154b6e84bf69dce85014a650b0dd108afb29d91c1bd20e4f2c774fd280151b56c809055d0b76808247ed170c250c2aa6c405a9abadf5b86283bfe9962cc6a952e2e00947f4416acfb2684c890b705a3f3000abd55cf08a5b58b0270965b9605f435b7a7e1c6c8b52239e58cf2722b9c9c4eea04f686ead7d318c5e921ccb90caf0e2b18711890785ed9c1415fb105a97a2a32f7206e56346dce44624e65d68fb5f47c7b18543e259f06a13aec657126e2221d805e6a4b7f3c1de42fe82960b4157b63b584d642751e4a7822214e5609d98dbf814124a6bbde6f8f9c7a510f123452815dcf9ec2f89448650f2f9a06309d7bc7a779aa27bc4a7d27432bab362fefbab71b354e2b661863200dcc295d44c15f312ff0e84e9adbd9058591145735d3cb06bdf89d98adb998f7302b4a34b860b1697841ed0caf0150717d4191295f65fb8021700f345af1270c7a9a68454294bea1493ea0a009387e8b794494c4a2593f293d2a993a4a47ad686b47e735ade8d8229b14fccd64c6a6e8443bfd122c04b47d1cff8e5d404641350be2b72f02065cd04df17d996dc0cbe3cb27b82a44992dd4ea04c94b382251d24da799482aaa81acbb1cd2eff5ea27909644ed56c7c4738bbc1a142dd5698d7a19e8a7d74174238df136afecb1fc09367309815e0519571abf1310bf27d7ceca25ccff5dd94e0528ca6169e944917be603204d067db5eb05375b406fc67ede3ad7bf65a7e9a25fa1cff0b5d683f4ed18bc98171a043e178fba4a424b67bc0d6a3b239e5cfa048a23f6d88c625a1aa8fc6e76c349edacf80323c2f77a9f4f5ff93e8e00bebb4e40368c9a902a4b340f880cddfa03ae873f2f01cf88ff339bb4caee1b8b1f604701575d13d85c09b5b95d4237e7381eb4ead1086b2f54a5329a578bdf0d750d441da3c7b9ba3bab9346393b92c710daf3f30379c2cbf47396c0ced7edac22f7b218329314dd8a5bd996236d7cb42f5ebb734f35ece7c31a3510d8fc69702de75ee1ab8b1a1166672f5435e84c16bff2b657cc67251de695c31e84db7e6d65d0e75ccc970ce9f55dcac7df9a94c483db1663f7fd9d8de8696eb42e66a273a32978eab56376c2a02c278ee1b4946f5bd2dfe08959d477184e95de636aa8733dc36ce6eb2d7c8e38b4ba49d8e0488909447b496e55b9681147f7d757f9a19a362fee3b75ed9969e9df529d34f73f0f379a54fb6e18b93f8027aef7b4544d30bd252942f0f5cb4f35adf5ab1252df8a697a9468d1026ddde0435a0ca09e15486f02f2e17f5a42b5ab95ca58b229a08041e2e5ce7e5f51dae06684ea8988a4608973664b9efd55114531f3c2ba33193410b265ec185fac4cc4a20224981941b09d09eeb995103535161b938c742073980e49fe2d40cf1ae2e1e04c97d578810d4bc12262920ac8aacf9cd4f81b68872cd34477ee742d0b8a81a6cc18e723901d583c92b2b1004ce3a407f3f25805021d44ff27364f0ffd4e247364608a8404303dc78016efd330aaf24bd55948878953cb7f569cabc4bbdb6c84aac522b8eb4ea3cfd915cfc8e3e93ccb4f4de7e78c0e8dea1393d52df2f7abcdc9d33b90b4bce98d69758028c68887f6e7b5973451ce163f8b74b95ea13d9440a9b9d6916dfe5fe04c39cc8b558ed21991718bac71292fdcc2a872e8c01f1ca52edde80cefc1bc2ca83a3592bd7327e5e009629ef2ef98188823dcee5782e64795d6c4ced0421ad1c70d58643604d194a7c80918361fc5d1e40b61fd0885065cfde566a77fe75ddc72140602414668d6847fd4f09c349232247c99b188d0110a9a67bdcf912c0c45de27dfe88b3d1f031e8489c4547241623ee2402e61d71302d67a0b10426e0237d469f564235017940a427f4898c17030bc4c9e6667dab08cc941ca02bdc4655d05d37fc27a1ca47ccc949a1ca2542c9ca25cda101a804ec54b7c3964e580199c43541894adc26624db7cdb5408114d09466139988c41bc5c154db815a6c37b6a5c77c7040d77a6a0f7a440c743c06a64bd60f31c0b944d3bea0ca10ba74ff52431f83435d3651741b4072246cc2b7e98ace1ddb36fc73066049f631b8fbd73e1042beaf4eb09c241171e864e2362dc86753eea1bd24525a27d01365fe8a828787dea7824f9f4dc595c673d00f9e8cd5bd2f5641a4bd451defb68bf6391ce52238881c07047d1a5ccc4bf8f9b60d4e39b8a178cd6f77720507464fdb0469f9eee97ec934bf3b3d2dc2ada6bbbf3cc51c4d8dbae6c1b72a7d8d243ba4d362825f39c77c20bb7490ff6e3fefd95a62036062b56cb3e7bf1095b0a20836a53587e3786af03f6bda462474ce44f9c9eb757e12888229c644037c1a7877e852bca49c419962089dd8160b12150ce62845a2e271268659bd92b6028b951442cc2d79b40613197e04bf67808d5803697ce6b6e20e9e28e19610e93ae20df0a67268c3a35db010f402e7b69d6e752cee845db1e8a1f35c13cca128aa3371c4f9ca1a68310b80103b9c97bcc580d5554f80496a742d2a18ef7c3b3b06006a0f17e4406fa9f3e87c20982a839f45ac863e5ac45d858a9a3e878ff5c562c8534741910423b0b9d660b94ae0e646325ee62a1f5513c7b9952f14f79100547267b8d2b4efdcfb60beb5545f55a8ecdc3d8ff0b823ab41e9790543e8ac9722509c3adeee645d0290f097336a48333f2c3df2b001721b6739c289c50177a89001f1c45132e3e33ae044206777441a4709c193c5f799969a760f35589673b9ee6d3c5a6ab2ef0dda9101a0051acb717c78f6085084de3becaf86dc6ffd0c842fd0826ab5a466cb95a05735892d04d95ae067a1b7f32cb67a63ab2570acaacc5d12c57a7af88c782b3055705404489de29347868e3aa46f2d18c74440b270beacf3c6f4397ee1908df6471f230b27ef82d9c88c1a10c6f9fc5b95babd429de9b114bbab38f228a3d4f20e5365e351d3eecc14165d49686fcb25306798e371503d98499daee11a28890b2e0fce7b04976bc5d5d437011db438f4c2284850834c573b831bdf4ddde53e3445c1e6470317223c43c2733e9ab9f0a9d1a2ccf0c7525efbc9313a1ecbd7ee23638d7f42aa1b1b46d9fd6736b34f1bb85d6b037c1a47633f19e6e43b126761071d8eb6b3f0920852589877e87d88ef842176166b09e7534a8f8fe00b46c15bddb01242c84f1707efc35148c879004903fcfe71dc3dcadc38a2e017e773c1ef76ec386c0f5592daeea351e7760ff98eacd7a830e929e4ba21b00d61a05c3dede68ecc1ec67c9e6a840f272046c6403b466960fcf493838d8ca0f3bf000f6aa852c3071bd158ba77b80fa6f72b83b75faf638e1c317758e39a810353d70c413e80a3c27beda00bb6ef1608873d810a243155193c4a65c3ae575cea90f9d35f1a945ea9cb13a60ce16f31ac22965ccf713381ef3cb087f0102b6f6fc59def33dc314dc68b5a01a4b18fda19eb44df72ef041f4f89d775d0b891caea6874b95dfe9291cfc2ed1b2fb80f49c2009b1e045238bf568fb350d3bca657f240115c6b4a3011a16d9bd3f486b6485f6c210db9524492d6e3c25795ad9421bf35922a8513199738c97763a8fe1aeb8248ed31bfa12f5258a2dc2822052fa49be406de94988d5bc58a9ee73c67a235a90be11017b59551a2d7396566b116b0053e718265ce0d39695f16a12893cfbb892778f168d4f6d413625edf1dd248eee541d34464a5aea60148ac93393c8c9ccdedd6c2360fe13a539d4c82bf62e8423f8939d45249c7ef574a45c3c4ed8209bbe25999b7eb2201104768a38cb582d7eeeaaa46f44f8a714ef452a7ccdfc4ce026b48646e3c807aa339390ebc318f80cf4d3cf9b6c670f7d6a60a9c8e8007e7af73f7db652b913997ab83a12f47b5fa89a05e8e5ec938270f4577f957f3be4130d6d2f0a51b4181e0820f8fc46ea79d48ba6cb9958730887e4dcf2c14c40e1fc3f3b5d1ee04c40ee3dec9ad1d9e2e824e780885db846e3c3cfc33ccc1b644d18fdaa47e21889fd3dd17300bdbd3f05aa99826dca78c9e163e7895eac25da161ce4802658f0c49a2b4a935ad1c82e89bb53b6b2dc000661980f8423f25db539918ab8c2f6cfe2bc628c946bf884215421908016cd1ba93ffe7147483150c3b216fc4489c34e5a0cf74e0c74e2c274908d9c23aebac6bff28bc0ef0f715fc5e0096bd08fa5c18524b18aabc6500b017050d1e6c36d5aff9d5299764fbc8b695a167468543af63d8185b1f49f66529c92fd2600a1f7889fd4be52288a5e384cacd9c57f85dde568d9da7cccd8769a34db69bd79888d43a662cdcefe5243ae69324b0afd75a83b2565ba805973953c6623f5da7d422e6ec824af27695ab7c926462ffb2d3400e0c0629bf6c4a4480e12a313791e00d2598235e94ae6a6043a662314b0570f62ee6cdcb972a726ccd2b77bd5a3dd3310946b1d38fffb1d99cd972bb300db9ef3f3022d164df829820f18092c18a82576829188a09b493519ab6251510a08207224b6b5eec6c6b3dafbd8a3be33cf632cbe7d580753564d59746779adf8269018f501288867a9781772b6056d7cd8a90ba571b9819bb4fa5e736d06736dad626d8a639feb49907628389e969c6b8d7fccf4f6b7ff7f32954ab54e5bdc061a7044c92a65f5e801e7b042a7f70256bd514346b4accd3011788ed18cdd9300e3f1ba06ac9e44dccb36b9b41c3606f2bf564169f60536e604c051394a7095c20dea872c28e3eecffe44750e23ebd1e2732357bd0e033472ca869d92046fbd4d8ea62d4eb71ca2db8f784a666b1c8ad51a63234664e648be957e6d9fd9be659409b204b766ce15370e9ea7217aaf7a6269ff3aac3ca9d0415663aacb622803d5cec189161958822f35be903918f30b596903e36ce4f57d7135ec8b9494c5e8c90e4e5e711254c9f978538a2ff08e3da95f370044efa188e3e31c7caf3c1d049a0e7accd535dd2f1be401fa6542862086cd0c3a13bc7ee0d04021bf2ecf0264ac7d3888e2946c7fa7afcfdd8b4ee7eb9f6e9c7d336ab3504204532dc110b35f0c9b42bd20baba208e36b36099f976c9e9d034cf083b43cb4e7c5fb5514b88963399a7984fc8dc59924bee69274d77a0d48a781b9379e049d4525e71649fb0224f3580f97079e3c1858d87bc1f17dc7f5b592363d5f50b1007ac411bdfe42972c3763b27fe530c0f5719358356e2edd8398009ee9525bd19e91ac1acd5822e2938fc0a30c12858c08e665ca9c46e5dd0b932dd1f924709be89f0f31312067f3dc73dd247622fb1c4a2f65b6b174a3d18db301e30b4ccd216e643c3023011f0b5fa1c551b61fa79ba2fb4405032528b72b97018198557f1207ad257144a01b431c0818c8114ed7797148b80ee34eaa16891f036fdfcde330911b12b22fbbe592f563dfd7126e590e34d4cfd0e8b00ef4a1bfc6868abecc606b5916b520cae364066209d3b3b9aa833e90fd085782e4b99de967960b973f2702efd9c38f9fc126b57f4e4221ea8dd2f959246fc94e6267476cfa3af41a36fb71a12d5cc59d7309d65c54f5d5e40afa55dfaf5da4241785a777831601b01d524b00071dfb9b53bfad7951e962f46bbb5c1e312f1d785deafb2da4c2ac692daa6439f8564a838640be9c20785f4c0584597d14955914b103343cc2db0742e95de09d2203aee6c7a7f3461107a8a2847e392d1c19ba43f0eae54055c30396ca164cc545e9eea221bf81ec93aeffa6b8648225fe80fdd4d36744b49bee7f9af28e8d25bf19a883a899a729c79cf0d91f0dadb1145e55732549d2cb04f774a7f58ca55d19447e708780ce181542949ca663f83c059cbd04fae3a7c75720562a5207f903f155cb6bd45d60f3f1d2d05b993c1262f77768798230f3273b270cd476af015bb5007aa2a193b91d07e84d9c31b7dccf55fdd2982710f8920e633a78b1cb45548234e20dc88470b7bdf7de5b4a99520a2c0cf30c480c413e6e7f921a3184682b9d185a3bd070f1909205abc773cd163710b20d8412fcc85c88154106ac558c88a50d005eaed60bad05145fcc563e858bc704c30f164c865631c826a2c85eab243af275ba082bb295b4a8ae014106323138430d2096c1616082265a4c671841098f0b97b18431582fcdc417b2d60dfe620a1eb04e53622700ea2855aa88bd1c213406cf8d2358714a41132d90e1008309670c51a116f8c0b5f2130e875941851cb0563a1f117a564fc0e470c291c3066798f18231620c325c2bee25541065b6622eba20c28be98683a3718e1a141ca1b67a0266483f7dba73616a46e810b1b4d1a11982826cc55e83b46135c25082b50279481b9636353a58f25ab5b40152056c256269231fa6071518520481a56302d677ad122b14358ca2dba6169692cc77a64eef34019680e0c7baec2ba8b263c5e410922f9341b2c6623734fe98749a94c9e1ad51379794f17719143bc54e2719cd51e0cb2c5412d026451da5cc59975aafe6286f88e3e15a1cabdfabb547739457a35e4df4aa38ca6bd769d7ffb363bd9e57f394941acdab59af5665934551478f06bb140a75f4681ecd5355dca65b796f3269c335166b8ba195ffe6da82aebf3658ffb8095ddf8a70e98fdbd0f50d0bd73f87c8e5d1ae733f35693392c9b69e116dab6d50d89630a219e1f2d424b8e34e70bd95858d92c688c2436a491b5ef1907a36ef494f5aa8926224204779d609f8230948ec81d4591298407ef749b8ef2c4c0f1d09b8efec13302b5024cd5001bc22016d4f49af8ff422015592ecfa88266d482e2e231a25f990ace0197f920f98c69fd49236a4272ee32419b4482d26c980044482915e8ee23b925ed75fd6eac83002db885846d6aa669a323845044ed177372d210829c34397bb6916778c51c1ed9e69819032a2af48cdb94c0154f28474895d5016833a824920710428545349314f8ddd480222015901e8fa939ec8966c428272fdbbb63f4eccd9dd9d0cbb6750c640565a50e628500894020afdf85cef2a6a77bfa46b3e2804caee08cac69d0b4a11f254f79549711bd99247b0aa3b826992609c2e891cd4f9f355fb3b257878c6bf6b491912d07452a71d6bc7f3a46bf18c7f6b89e4e95a5dcb53232853a2f21d650ba6bf6f6b8938a56429399acf24a967927a80a4cdf6d2860508c87dc602e4b30b4e29250b50d76d6380b296cfb629706abb02a3c6601b528f94a9c94dc638f47dbb62a53ba3a2316e4f2001712cb97d8b483dd286a3b98c7fd73947ebb9fe2c404097b500b9da3ec7bb21a05b9332ad8ee5dc15985ba3a1c029962030ca7f0b1630a45c7f4e0b6354a1bd508359b4b869300e0b1078a6552c4f9ac6bf8c36a25c7f496311020b90a7b8fb39ee1894a2cd73754b3a9eaed5d5ba9ddb3e031a4159d712014919fff9823aba8c4a9ed944b992ac7e972b9f79ca5fb2da25f6b24476ff72ac0ad8adc2756b2ec7a888c215c2153d17e8ca15dd968f0155b9355c8e01fddc580faa5cf0ce07ad88dbac9cd48e3b1c253d129f1b89dbb60ddc7ea31ca53b780f7e8e531174d1dc7ef3e828ba9ca59e0dc31cbecb89421cbea7f3997a56d471e2f754243d4b9baf2ff2be9f4e2f4752ee9168553fe7390f2c76f4d1af47e57260833f1ef91c695359be6bda2d3607cafd6cd2d7d41d86cca73c74ab55f4a55f4ada44210e2d4fad91961fd127b9983eceb6bcc78d2e769c97f49d89d442a2cee48254a4b7b7db9ee779efe110f082a4ef421c38d1b358fa246e7b29860f4ad1f6cd39e76fd323d16f72249bc3f6dea4df94b646caf88f7d493fabed2c371e111d111d111d117d4aca6bc47b92f75c27b239906cd74beeb4305d8d75eee991d18ff36e48e41d7bc9ddbe0b71986f8464c7e7421e9c64c7910d91c8cbbdc88ebde4d269c70eec5ceec1dfb6de6e27f6f5c43104777a22bdf3391e28bd1c0e01ef46abcbf0738c7b2d4c8c5ef39a0be503880d7a50326cc4af447f63766b2e12bdc76bf0d155d4b17be77194f7f058ef6182445efefe9639653f12bffcfd523e8bdd6a9a7e297bb69d8e6a79b69da35a5a6e0eaf6eae3795969f2fbf456c249a66ce97ec3d62cb5b6732dd7a8fb4ce7385a7a79d277c966f91e5c119babc37611c19300e8ef79f4ed496622f7b6183d745c9b0a8bfbf5dbe451ff2da0f4f8dce537323f9e5e5457e8b539a5a765a4cfc3932c74167e2297e11f97261107e115d8a3c695047e709c2d699f8ed3088cb8067fcb9f001a7173d872eb687249d066c75e3457f1261d851de499991d750a8d1dfa02d6f83568bc9646a7179797169f91c691249df22d61789ed9232b5bb58fff4481c6fc68e893769555be7016d10be930695bbcfbb9f524a29a59452ea3ccc531de5edc4f594136ee3565ca6c7539dc887fb5c37fddd0c3ed1ad38ca8fc474777777774fd16b4948168fd71c35e456ea7c93fce80e26e8fb6d30874785ca3fd2dfec6fcddeb311f99e47e738ad67410f54fe90077e23d38ed256fb8e7294fbd7fcb8e1987b06b93066fbcdd6ed477f6ad9081d756278a663b89f137155a8dd76327176d471fdc678ea2f1de795d3db50f99c5742a1f2835b14957ffbc93d6371fb39768d34d7d369f7c8cd39673353ca46e80b94638ee119f946547ef94aee483711a47db917e02b20a48cf4cbacf2e24ee9c5cdf11cef7ad4041914231fe455afa6b360be833c1b89a6729d49b71809e6a66205ee7942499b91bd9928f91ef84d9bd27f0f4e3b821f3a514936a5f7f0bff7f7216c2adf875f6b15fd14417114c9308868e4209696cff19d0b8a7c5b58c2cf914a4a6fc4af4af689efc6531cbe7f23d12abe6128c320a14dd5a6726f420b4488b419fd873f7f823f9f247a6bd4efc307a728e8de74c8c3f7e083a0381d35f98a9e7ea2effb40d6c165beefb8106c22603a021e922480043be8e8c038a2f7906740eb8d5cc6c8645cffcd1f88a9b2887a302f9a8072d98b267eeecc652f9a507289304e5f7f05b04d0d500f145cc4800a32acacfc953ce14dd6f54e4ae6ef5e2601e2222e4f75f38f3d8e72d7b43ef4cb2644b61ee9923d4da42bca9d34005d7764190f0febbbe77bfa9f85917f036895e406d0ea7bfa63bbaeafda8ed31e914117b4a7ca9fab3611197694f4a206562eeab21735f8e28e48f87bb251bbd18b1a6871bbe7deb91289bc9d6d249ac6866af21c2b7b5aba3ca58515945c7fd9844811b7f195748206b56b8e2a3245f6109933a893d592824f785aad25271d3e983c415f4a79e2441d94c76bf09748d413ad5bddead65c413df9ecd6a95b93eb56b758c6dfb96e6db6f6b76b73ee0ad029a594524a296daf63b61ca594524a29a594524a29a594524a29a594524a29a5a0f731a5f42715a7b8e3dd41010459721b9dd29bd471ed9bb34bd954b66c297b76bf94b365cb96b265cb96b2e5cbcefb8b4265978a41c59053c41b1315dc4436b5fb2d0cc2fdb6850af0d5f69cc8479318c6f1817a7e181847e6f963601c199e1fc53e6666a0e1d487033eff8f1a18277cfe14a74638a4e757314e7d7e208c537a7e025cc66979fe15e3989eff008ce3f2fc3670eae5f98530ce8de71fc238a7e74700e3e078fe1c38c503e3c03c3f11c6d1f1fc0a5800a77a609c1ecfdf001f1cc029fbfc11601c1770629e7f028cf3c2f3ffc029189ebf028c13c3f35b8071669e1f0869b3fda0e1471e6a1edab531d9b89094f1ae0a6e45003f36ab86d1870fddc085fcdd4acdd3bc108d1de9cff5f71a3b44df91be0420d62076c8bd8738f89d4e7886d3037e3c0d5607a6875ed1f0bda2c1b644ab1fdf9a2b2534bc11dd4a00bf89bdeab0c85cfdb0469c80b4a2e17d55f33308406ca6a1e63b0c12808d080d5ff333fcf45400ecb873697e86a74164a66186e73008cd0ca00fd1679e5cd983301cc2312c9c63d7877c884d923e44be0010bd0d46f9cb20fa166444d702cf5ce119ff18acb8fe3018e0be50c5f58fa1e2fabbf073fdadc883ebff505cff1e4f5c7f1e39b8fe3b5ed75f8793eb0f8383eb9fa389eb8fa306d7ff748306d7ff2506d7df0506d7dff482eb332cfea5165cffca82eb4f52220572c9f5172571fd4124aeff278db8fe5e11d75f2ab97e82eb5f0a8718e04aea4352be485a1f7294839f01ae0f798abf96f6f398fa38ca6197de69e98b67fc95d40642dac815bfaf3ad461e74e3a83283901e9411a3e80431c762ebd1c436532dc6803e49a5abbaea32f0a9b31e800cff80fc133fe42f08cff8441fd00cff87b8067fcfb5258330e23a1304f3585d92078c6df6fdfa982baf1481bfaf445eb56be824a8536e3195aeb3ca8c59ed1176f2ff017ba429e9aa2aeb605798bae13bf41c49052f6d8ef33352df777272fd7b4cc21a8d3a95a89f99f5eb058ec3844940f47a13c0ba50552f8937d2293386eb00e770882004a62976186d09d29ea586b6c3f203ae958df599deebb07690e045012bb93004a62b7ad1356679f98ff04fd7e62cee72d05ae1be650f38436eeb44e582cb3950e0194c45630455866abee5966abce26e9154c0f1d096e7c6761be5fe5388745babf6193c0d438aabfa7ab8eb5d6b3dbbf13738448997e223e4899fe62938a1f4420a4cc6c366f30aeb37a52d44af3d41645059d068164836db00db6c13623bc6fd1237168801e8ddeeb7b18a452ea4ea910dd46e5706ed7a68e7c0bf9a7b85d1671704e4a49a7f38dd6a88a549c2f4f81a2f72c47f5dc003e4f9f698f74cf75d2fafee98417a0b330935ff313c0a2d9d40d6883d55a89556b2525b75f14348e846e6fdb0f685347b4ee195569419ddf89a32a2ed30f8e6a63f3788f94e16f96a7fc59c988caec4424d391f9208ba3da883645e5aff239bec146545ae5fdb5173bfa1d4754ae8b6d79497a190621bd0ce7fc19e2d0f5414a83b4ecc0640ce5d69fe21196d1d283db16063982ba2dbf85415a7e0b4b0f72229b5a7a2e0c521fecba3088e9bb3008e9bb1007bfa5073dea7953bad79ee709d1e3d297b2f0c70d5652e2a87e925862d52ad69258adb49ac5b66e385d6a6b8de6b7d2e8f7082ea919454b0fd27696a3fa394ef354ade2a9527fadb43008c9d62a72546ba32a9eda40f78c68a39aa7c02d0c32bbe9a4fb193a69fdaab33abd81eeb9b54a12224e0042715477313046429e1abfd8688aa77e4e6670095aaba7490fb796f0784bda6c3fdb13df9eb4a64bda7cb1e99aae0dc682fdc0bc674e1768e58836aaddf6a2a831f77a5150cfab0b075626bfe7d4e5848b9fba28a8d6bad47a8109bd7c5e229bfa0dcdefca37f4c528c8fa86b61f176db0969d7fb11fbee18b89a25017571941404f80a63832d5ca00f27144f3560c8a280a8e3b8aa4c446b451154ff1775d0ccaed9f76dc806e6f4fbc67664a992773e9254b3e94fe9cf3fbe62cbd6e3f9db3d66609464bafadc50f8aa3da13f9ce1fbb9878dd7e3147c16a77394a19b03b96581bc8e276419bca2fe7e67234ee70d7f3b7e97e44fb626ec77a855a4e8d3a565aa5d52a9ee2b9ed4be8bd32a2591c34b97d476fb5b8ca70054509f276818cc77b584ac6ed09cbc12934e5760e8f3faed0364e179745cda28e5368b67439aaa789a77aa44db5e232fd7dc5533042f4e5ffaedf6669ddb6e2a8a15a2b094999d6a28e5fcc7bbe26aaf7786aacb592d0b3b43c85e3f6c6b2e4f68b827e74f094c16a2d698dd31584c377a7ad3519d471bad87a3ca863adcd538dce86b04436841fd0d9da603c4c7c09cf1caa576e4721e3e7ba3880cb3c3909ae3286a6eb024dd78ccab83d9989824432511447f577657843df5a73546f48547ab71f3758ed6e301e2756fd34e4617b7e0f6fd89e6d4b0985c0c12fff9079d9ea5c7ecab6653cc330ecb5e6297afbab9592abe4e336cd6456af90c1da60a5255feab95d72e236150589823c05d3423d45748598e7fc621d06614acba863576bd2461434b2b8016d3047fd50bb01b585a13f85ee3885fa3dbbc11cd51b8c618a70df3571ad3adc617e5771144d56ef937d423e74ef41513b71b20cf3cb6ebf28889251652e4719c38cdb77140579505417db4ad7c62f56ab35aeb52ff6c9bed8eddfb69f31bcd66ab52637d806b47d51b97b68c834bbecc248c777b6ad5b4a5841ca0e660e8282b82ceac831313a14f72392b4f9de05acbf310de576da9e75ed227d8bbec320a2277d1786a3d177e211d1f5ba0c300df7607b06584545406c49a8234be9a6d0ecba696130204fb9c07edce6b4e2bed946072d7c58866fa783163f254ecd97a77b81295e10a50953bc200a1356d2c2c0106129b3e3d3552e376275cf91c133dc83ed9c6fdd278845d1a249dda6ac4d99ac790a86a7e87274c9dd7e56e7a64cda4c978b67b8cff1ed0875649aabc3a1b7297564a1d28fdd7777dca9ebbc4da61856374c6106a3ba1ba610e38629b88812c3a53069d3b36a4b6210e2165370d1f22d6125c74c1463820563a209680411cb5f70b913308a3b85c15a31d72d9e1642014759f5fb8adb509694e17e769cc7a05ac181fbcef615ae0457ec9e2aa12dee74ea38da7214f7d35256e9b63c55ba5cf79c8e15f7cc3638f0486119bea377bb6fb6c181270acb6c3a2efd993da199bcd6755196ecac8432c02abedc1b619cef725f61aa5fee7b8aa7d80b1734b9dc7bcb99b8cd8987b9e08172b99e29913c39b82296172ec8e28ebee472b4cb715fbb1be2463abb15a1863cf8e5421cfccacdb7d91b11ee45dcbfd7ba1cf7232018872f57492330aca4d18774466174d6b958bad9695b3ae9898c6460caa45c2e0a48a1802e34e628ee81c800abb8370273b13059ad56abd56a35b0933c3c3c3c208f8bc7f5823d09a22ef0fb3eef47d967308db32e13216d84785a89232ef7be84c90d42a84274d691eae81482ed9ac1c01081f1bedf597d16c6b34314f95eda24a5fffe2465b8df29899d94e1fe13ab94e1fe9f57df8fa7cbc1f4d0c28279966fb14f6c002687bb7dd758ac7b59c49e4151eb979eeb15f72dc4713d52a66b97933c8ee26edfd27fdf1cd7626fe488a23058bb603058bb60ed84739d35559f9693e98eed62f927502e6739ee41100c8380b186d24f7e1a88fb36d6e52022d6e57e5372b92b8ee29e5ab99ce779fd1dad39ca083cc37d9fc134dcbb10cf70bfc9eac6c2ba943563d11965d11965714f67236511e1a950f423ee54c111f8cc6007761f76a4ae3ed8755d05c3307c921de70d3f049f0b83745c1824e401fcce0b9f1482a4f045e18796148621c98e1d4ac457f46e3357d58ef38a44bf8541c24d74391cd23d6885502a8ee25e01bd6a2129c33d5fd7e5be6795d21cc53d68e9cc51dc771266979b3229c37dd7d57a3afdb7abf4254b8212f8892430c1f72c9f84c5c2f4506249f23d8b758b9232fd52a69f80b9b9401cc571f85d0bb10cf7dc88c2b8ca4d976bbaa66bba6a5dada4d3e8b90f6b40481b199332dc77d58edde9bbed8cca7d0bcd9ad6569cc5386d02b907220869b3b3e2fe137756447896c7f41c678d6c3c1b0f4a9a8a143cb3950e4b135c2b151852c4d8e50f418498a44fc03384d82a894e7701a5b6aa5e837f121d6a023480564fd0bff1f477ee8be9776ecbef5c96dfb9a5dfb9f5772ee977eee8776ef83bd7fb9dcbfdceed6e129d8ef2456c355fc76b011575e42059ff8b8bd86f6a5952fb4752baca27f64f9e5c85256308f919418032b49265d4c008b159044f193c2b1d928cb6f1f313b42d39e30a402b1d8eb6b9cf194144f001105e2bde224a106a2840820f5690022bbc0ce0e2220b6d1481270d268a205be970b49594011753662b1dda025acd264ca103d96a4e2fbe78ad90f0c40f5a2b1d4a83da4ada1d5ab38d0185153cab243a3d5cabf93a60165c2bf91bf89b4dc2416c2061b6da1eb4303d881e7c914dd24d805c305b25d121c956f375e816432bf9a04dc248a8e20a8da3ada60e7522b49276c70064e020280685b6a7d9b31454010ba257622b986245488b1f043d8109303e021b336823053c6144e105426194a1c4ac0c325440eb3e4a93e2da9a50820b58960336866cd07201c530c61353ccac142103a3c4448c051251b4c22418d1b33a620a511a064d6421c431f8c05c2c4e12c3cf1399eb0a1b3413f484f16aa101123da40d4809af028821f33802a0800641b5eb678612e47b10ac5d10b77fdb2209b05512f93a2f18d1b30a426c8964deef2381ec3a6cacb79d54fa239279bff76cc79abed8415d548e6b281fe8debf83be230ebb5c18a4b348e6e5baeb8538702f04732e032dac21d429e109349e95e745cc47e85b014f103a79441436689ea479a103d6ccc20442356e190cb0906151441b43937a61007df1ea0f095204815ae0c10c6a2b50148e487c030a68b0565c12961931456ba5c3a951c700c295d60a1c793cd34f861354f0ac4092949f4427005858c2b392564734e45a4d394a8114a8105a812528b041a5b5d22195a0b6624111642d2892a0f1ac7448afa1550fdbcfdf6c9206aaa204b6d2a9548080b29005a095ce680dd74a5a1353e9a27044aaa5d0260140139c505be99064d3496547790d49bc67c9123c2b9d1eae95c96be8db3d00fae961124c0f3649b7b1852a2e9ba4d768c11178563a37807656cdb316163c9d44da2438d2404326419694d013b0105b25d1d9ccd882b662af41677bf2e3f6376dde4649e039021089056a0401ad2a9766c004170a925042e6c50c8bdaca24348be2f2c12efdc24595326a7ca34f611ce107ad950e49b6aa99516128004b5c31464c003288a208ac254544095ad9c40088c6034a18b21e532cd1461a28a03da18b178fc18495569fa08a13ad6e31c690c2c560280125b6d2e98ed0b382a1c158010d6a47c08c305b25d1697101cf8abd061d6f0a55c4d286061588115b9558a27cb1458ca50dccb4421a5688ad241869bc682c39e08112422da23598987192920a9cc0b81f28642b695d646d0537a82d517b31a38b27b05649741c0c2a61909a5819ea2e945c4193628871c418af55a8840a0f602b1daf0768cc56ec35e4f8410f8cb77186132c30023e66e09916f741c3bc7dd6f554618ef2dfa28e32c85351a4cc53a577209104b2e0d07f7ae9231c303aa41c6f6e8fbff1f26df0940b2f5f88a7625ebe0e9e7a7969c7232cbba517bf87582377883a44981c22b788a2e44202d5481b987fc18e8f42b9985a3e986f7deb65cbc72ebc883ec5511e23f2bd21da7741e4ebdd0d66d9f2c18c1d0e188ba39a6c8e2c897ded8be3f8c365e1be25204f3d915fafc852ccf114bff83678eae5c517e2a91b2fbe0e9e3abdf82c3ed836b5923ec7278b68539565b746daf4f81cff76ec703c8b1deb09c66447d48eb1e6fe57d3c3ca201eb6e5b0d1612d94b772749df41bfea729d2c6bbaed613bfc8b050654dd21ce5ff451d72144dcab8c37836ec3f48caa0530d62b148e82d5927ad5f8dbe8a30fd4e4616a66dcd8f2a6a8dcf5014890e9ba0a4b99534eb3010663acde0efa32550d3f84bdaa7c3d947ab6450d348a056798b56d3342e05e3044002dda6057571fdbfb8fe2c837ac01fe50ac181d0cae2ba15d7abe01928575cff19431931f480810c1878bc30c60b3b6264313a5c10c305181b86cd218221e2f8287feaf1458f1b3cbce0f1b2a38b1d2e3a82749860b88069c9b1450e161c42c0513a4139d51b5adc20bd64f13272c1c22534c54ca29620b4802c4060f94a5794bcfaa476242b48dce807a32df441387f7420510f18079c60158cf3492a18c7e399e93f8cd3f1ccb47dbddf61fd93c5ed7c324001e650fd72182b780168536977db89fc1e55c9136e8df855e735b0ec22a4e4611cf95d4a073f12b6d9f1ec02bf0658d531ab71f9337001568998029c6251552ec2a92f65529998cb4879aa13dfc029914a071b8081b42dc0e5ffc1a9d3b7d0c0aa1816c0e59fe194cbb30cac42f10b97df0556f9681a4fbd7c00785c7e1ddd8353379efe0bdd9f7ae80aa7486cb0eac70f2b4c81532329b0eae6a6d36827b00a089027f41272662b255cfe96c229183e06fe1e8355364029e3f237189c92af121214650b4e815ab04a870e02a79eb08a880c084d05ab8a48e941149cdaa060950fad034ef5ab20302507313fb60d7e7051a0896ed22e6055059ac6bf95e0940a580504d31a094efdf3370a5875a44a1f21fed82708a2698668135c228692f895daaa66b59aa655bda469bc7958955ba6eb83474733b18cd34bf08c774fd37493a671d5b4aa03c0382d434c13d475812f88bda2a1866686191f0090410645430dcd0c333e0020830cca870636c3cf0c908f270088c900458602281a1fd80cb09f991f201f009041060a0c2870db1962066d1bb77d734f6250c01fd0051e3d1e9c137ce774c4305fa2cfc37afcf000d2f144c61c8af8f2791f580fd80f0f1d12dc11c38c0126078be9f344310c31c0059f03452005797a78c308a474b91bb7d971be27dadac87c50b499e42792dc94534e3b6eefbd8741c6ed459f233f8efbd235229f7b4f1cb90de8498c9b8a08e889571255344090e340cee58743ba17445ec1f0c213d1aa7ed5fce8ee43f3cd6a55c35a49abfaa75bad6aa025adea270058d2aa8e3593563594a6f12518a7b7e0995675509356751499cb8956b5141c304e9bc133ad6a5acdcba7555d85c6766d06d84fabda8a15a056f5d0503f69555f01c09358ab9c2543ecba92a6d98271dc089e096a95b75a1da555be64897fcb5ae53c30d8d16f4b699533691a3318c797f8d1aa16f229405ad5b39e01692aabaf40abbca7078823410c6143abfc35c30b6995fbb80ead72980f22adf21f00b4ca8164f8d17d68953f91f9d12f045ae531d48f7e7fa0c00b869fe1e533e303f301fba101e0074806190f42c540801760e879e11dbc31129cdcd66668618801ee7c4ee4a407f1e0418ef26fb9038a1cbba09c313f19c5d1bb49f9330674414e3bc129ceefc163feb64d0bbe7c9edc08eef639525ee01ad946973b8a7cbdd52aefe9692d69953769e2ef3cad72179356b9134db304e3380e78c6ddc7055a955639cc56a9b5ca7fc49a955639d05b196a953fe931d42a8ff1f8d19dd52a87c2526204e34815f8706d5c7f177c6055b06a883f40695cffeff124c6230605943a60725ce1fab3ace1fff97b222658896b41f49c28024111c73d8b68bca3c8f47d8e64195d40d108f8a2f720c781bb4fd3b4ca614dd32afff14cdf8f43644679cff2f5e46872dd6544f4e03b07aec98ea23702be7c7fb5ca814c3e39ece80e6b95c770fcf8164bdc641da808d7a79cb6f7f72d1c0a93d1997059c033be39e1fa8f7289eb7f637b7171b9a307d1bc4f1c77eee7995a3c13cbcbf006f0470edc51f4527ecb08b650abfcc937a5551e6b1af77a4aab1c8a3b9556c92552053ce3ef4f967047f7f762b2058cf2affe24f777282a58d202911d1d8deb43007f13410ff21468c7ed3f5054baa00d6fd8defbfb79d006ae2cddc9812b9b7dc433b3a396773e9de624584408a75a67d7dff4313f74cc972eb325aab06c866176973be16ef3e2721f4fb1172e58f2e4fa4b8a4b87b92e25903be12f77c9969411a71695569a04f294776350ae0cba2e85a88c72fd4729e572b64ef697c3ae8b9c9029a823a5495783bfe230c8acddd1612e1a4bb694369f569152d22ad65f52260b17a55d9aa7aa9836967430881342048a3a72d0f62307d1ee23a83bb7ae73c2fde482c6aecb8248880e3cc5a676a2da5d1b3c3576a70ba413f9e684b3429aa8630d8f3562cd0f7f30ea690ad38ccacd054e4c9692a564399fa535325f72a36ed8b98c923f5052fb41dad3a5f4d9e2d8b75f3efb9556886e637a5d02083a15cdd1574f85b6443a358dbbb0b49874348dd76f1adf60e019e71e0cc5daf50d7fec70107d8e9fbeef5d4e34a946f9b3880460947f49b44188bf0efff78ff16a47bfa30ed16f76740f6f4079aad2d28ff4bd49faf9259179a6da0e6fa04ffa1cb973497c0530e270b637fa6e6a7aa5468b2cf05c7f1fd514f383c43d10eabca04da54c5126073d94765e5147d418c49ddb03e96ebea9f80cc451ce0ca443a18050a74b805c5387665f296dc77dfdbb6b02166663775f769c13b010fb1e2c2819e30a55bc06a513e9702b922525e83a142047f958ef0442327d1c36e79c474457fef8b80f6b0ee10a3e57e89973ce4bc510c7e69c62cec9734acecdcd90d0f507f2313fa0883629c577947b1ecb6c2ac9f3c22072d4cd394524f3b248240a327b7a9883bcb5ed98e4ce291f2485e17718240ca59ca213d183fd399e0b8748af456117067920403e310665237afeb62392795944cd286a8ca33c94a148542212d927fa41b05fcadebe70485bd344dde620de4bf177c871940301e2a8ee3f24f37e162607effbdb7e60de1bdb9dc61b4e8c71d48f374274e8f71bd9274955fcd4eebe9367c218eaa9a943ac27680db3ed74db499f2c906baa15aa5c7f1d3c4d3135351e06c831a36976bbaf3033333333333bcb513de4a8920bc6512cb24da87f9b51a9e236a92751a4488aa7728caa786af24bd9ba4b6e1daad58aa3fe4fa7b1639939aaa9dc92ebff74aab57b19e2c05d9177566a55ba2953a4cc29535c4ab134458a8737b82d09b944612b25d7ffc96d3698cbf4d31f473590a34a4e945c8e625bc7a84150628e12bf761b6c7c69235a7619f06f5810e63f5f145499e47de9558295603f5c237383394a56619ee7b95882bdbae4634b2f47c53a289e6af9b1041b4b532e8b1d4bb2dbedd2259a2c452941293db9253b967e6e977c9c98f4eb173b56163b9ec61705b94c7f378a5c1444b2e39fdc8ed5f4d2baa9b3a69f76049f7f7bd2bf41f114ccf76f415b144fc1e078beb24d8aa7723cd006db7ea619397222a157240aa2e3419b5ab948f894299db48a8dac0b35a6d4a112cf6d560b8c75f104179d5c697708f5e1c220ffa1f8fc2d2cf9eb90a7f8c7eebaecd042c167796a47d3b315e2876b64feb348452fe59798bfe54170137198c3f7f25d1c7fe0868c9ec2784f7af9ee23921dbde721522962913e5b18eff9c7a7e2f8301eb5309ea5fe9f38863a80ff3d0d85f405dfadb7c68e07b90e13d0d7ffb3de1a755afe1defd608f89f35527a89845e6991d00bd2d2bfbc0c7310bd7c0f87942cbb5824f2b63c8b9d268b44deba43fd96e71f7524a51b531e22779076daebd9713e127999d6a1b7231259876acda3d45ab5027e50170ea136147d18bee7cd9007fa9e9d6654b7638bc221f4431e4f5ddcc1bbfef28b99585c5a6c6efcc8c58e272a63b25f4cb6d852b524cbe3037ddd1a0973107d183e084a710cbf033b572260e7078f8dfa9dc8c5f09ff43dde13479d1b7a6cd4bf63ce1d5f9e6491d01bfecbdb71e74351f4bce3ba2fcf431c7fb82f36014c04d51d3655755c1d1609bdfc4218c07ea0afe8b97088cb153dc8e1df976751f45d1844645fc40a23562b3f75a3c2154578c2a54bd47183897c7578971b884815973b8a223cb8dc3a601504da059e595124628037cab311c71d7926738a4c1fe8f7e0b14307adf9010426078ed38de9c3c78b8ba985451231e92855d2286c1591d9aa223e4040023ce34f64cbc2f51715e135662781018f676c5c7f4e0ad7df07285c0930ce0520d0aa0a344d129cbab2d991af70fda370fda9d0b6c91b76aea443cc6b1b460cc912660aa2ce5383cde3ac69b369547a46e7cfaaa3fa7ad386a017c9bc5cbf50220dd9e2912c5a6d681624138abd6040ae56c7d3e32c79f2947c91a7a47c79e2f92cc344d00fd13d33421de5eb257daa16641dc3d4be8c9132a667b3d93092165ecc6491a3a4a324c71bfff62fe5cfca5206e686beb2f39e506340a5d493d730bacc099d734e66e6aeeb3a3b323337cfb66d1bd7dcf33c9928763fbaacfbf9ee71c7fc5917b22e93e2b2204eafea92754f5759446aea89266b1c246b27df7e9e5147ff428934d080b9957e2ac8a00968dcd165926f125d647186f3cc33ea58bbc6cc2c54c7dab20d6cb1efa45508f63299166052aa29664a87f25d665df6de97864278c894d6a54897794a8aa73c35baccc41246c792fb7be78eddb66db613c0d77fbe6fddc796738f8dda2f5b609523a110066029e5bcb4985c6ca8474832a0905023dc6faf9c171e18d54347802be040d870a4422155e13819ded0bf7d194540a3e6c78dc7759c45426fdb0f504f4997e6580032032a8391859e0bbe917ebe2d92e587937777dbeaa8d3b3bc14b588d54f8eeaf92c3ec4bc48e86d4a61c6d3ef1061c44e9ce30f1709bd7de79cdf778266d41cc0a7d48e3a571a91763cf2017a6110f0bdfcefa535c21746c89516060177eed017fcf087a3bcf4f36b6ab4d0e4faffc821a2f36f3c75e379bcfc19ee90e3679f5e875bf9548a2d3fc5a6f471ccbf313f87e9e94bd1c40d79a1220ccbbb3c952db245b6489617eb62c71fe6b77c8e6c9962d397a69f1686e5e78f2f8a302cb2a5a5a5c5c2b058217c3d36eab7bc491c597e3bbde9f42dd65b2394a2a9458aa6937c93f5d6a82d3f4fdf628d9cde648de078ca2222a1e3c94e1cbfbd0c730087e0b0ccc3229137c797ecd471e3e58d9f396efcbc218e3a7736cbd3d9f2f44724f2ded881dac96247397bc88d576a6b1c75336f1afc5209fc52e9ebfcb6d38c4aedd8371c32bff439528e7e5271863978b5c58e3bb745ca788e67d67182d9f1a667de21c2e490277ba38e5aa83552bf047ea97ea9bb8ea57eda3f809d888aa5963ab23ce95b4adbfff67d6bb5e3ce2dd95a45f0e78eabe64768535524b248e89dcf8538ccb71fe80bbe0c87b85c30c7bbe7e48f4868e7017a3f8b845e0f661ae1e627a0a7656b6ada35d4d2fd9d74cf89d36dbaffd13543a863ada9717fca051a29a8a8eb2c3abdb371a72434f57e8aa2137defdbd002abf80a9cfa66578155b369d6e014f83c85cbdf6a404144bb9dc6e559104420e9f9a1d82cd359231eb7ea88ebdf498080b7d0ced326b8ce59f80092a6f1d7c2f52e084f7922d0b72dfcc7f434f1f1818303734b1893e9c3938779f24c26ce36a6da6ce2737df6c0ae4fa0eb138a6b7242b7c99cf43599cc9ec9338764cf6d976bf20cf9a530fa4381a8944b85e894ebfe9bec6737e8d227148ac84ad6e4993d4cdaf5bdcbeff9ff76b54dfdb818d6cb9ec9b2f3d573274fdbefe362384a99bfef9007293f29bbb1bbd375fdbbe9c4f5e7e812ca43995cff26b78c7a3ae91071b3cf5faa90936383a7b6e7b8e3ce829fd7718c6328f70a38ca695d572b5fe93f74cb36cb51ecb1f76f9ecd6917af1185f2f1f279f243c65eb017ece5e3a30605822fd4cba7c2401fa6d0f740128944a2deb30e540a28f6cbe7b58323b250c21d51af18942b58753a05c10755b44a87143c60d537cd0e38e5c5c0007e14515828148a84127a4961d517ebc57ac15eb01fd88facd647dff7f743ddafe67e37f783f9be1c51fc1e3cc41d375ec70907f82509ab5f3fc79d059303c7e9c68b8b6956b12f8b387a951f2edb517ea9ce0af314f87303acd75473c1b7c16d9c95e3a9efc167093a4b56b9a3bf5e50fe7ab5a0585025d4eba6ca3a3febb431ead8af574fae12e5e3e52f395f289444f9ab134d181afc18f6970e24cc5931281d308e0cf3ef07c3420b180f5e2f285754c1fac16b0a1918c7a1709f272c2a5e5fbcbc7875f10a7a71f1dae2258417949716af2c5e58bc62af20bc80f0bae2f5e465c5eb072f1fbc805e3d7855f1a2e2f5f39ae225c52b8a178c072f285e4fbc7c5e2f19134deb03f4c487c9ecb21a97b96841ed66a84748ada68596951b2051ae703c375650b9b1e99e9b1c6903bebf1020604a7af8cab63da8452ca8ade0541ba18566b26604a19bd927a4b518d9218cf29b30e8464a31453aab47da0c8065fcb170491b5eb96037a328356f1381dcdc902e730145cd936191edc1adbbf96c4bb9f9acc8b6da6ced66ca9b9b5acd59dee299747405a8c4ddf939ae9b9ea4ccb4db731b14b55ffefc8ea24acb358eeaaac8759de5aef40a59bdb3f2cc64996e2188b873da2a7341d0e5a0cb5c30a93df1a1f5ecce6a55b697de0ca38e1c64335bf913e1a91ffc4f4d5e4c965cb7dea8f00679a5f5e10b4e313bc0c190c2359bbda4cd1096f1f77ff5eb24c44151072a0a096a29c19e15f1fef37a2684657c765d50d04d8e1021ce9a347401c835f509d36e6eae48b9fe409a35dfc322f4379b04a6abde938a2729e3a81a29c34193572c13e2596d0a01942847f9cd941a08786afc9af739dddddda7bbbbbb4ff7e93edda7fb749feed37dba4ff7e93edda7fb749feed37dba4ff7e93edda7fb749feed37dba4ff7e93edda7fb749feed319a7bf32e68f9b9a2ba8249e1a6b3a1f353f6a7ed8fc70191f79a6efd7c10fa459dae5fbe5fbc6774e97da86ae8d00214de3df763c82bade137153d336a8f9c13d91a6f12fd23408601c197886c596beda184ff577b7ad914ae46427c0a80bb4061885c4897094bf0cfe45c2f7477dcf624bb6c5fa4faa24fb8efa1edc44317d475e02a731f21486983f3cb501d4edf7afb9f1ee3ae138ba01d4dda66c56a9cba20685baf2e4fafbf8d1f351ee79dfa164dbed73db4141bfa3a8fd73353ae11a667bea89d3b32cb31575d2f90cb5154ada74b314b1174f34f1e6c4e9325dd411757d89bdb9ce31dfa1b2ab31f3b4446e3fed8ed49c1cf535a5f47923e2c3f522977e8eeced6ba808c6a07acfd77bfa169c41bcaf8ef2c493a3e67fa2c95153f65371866d89388a491dff766fbfd991be7fbfa7bc9f338847e9bca30f1f318e9a54cc41325b9632204b11a54fe90f47cd1a7a843a56b95994fdf9316ec3b2f9cff28fb9d5539c4d00134126d7f1d375e777220769e3b85deafe9a0b7688804d5ea18e3577d6c8c935b49f672224ba6671432ee621954adef7799eedba9e8d3e942cdf899f48247abede77e2f7221188eec14f14a2eb3e5188aefbbeef3bb1bbffbaf7bce7421ee477fd1c76e177521c4776ecd0b6144785624b7194f794967d514787914aa5ce76b6fb44d2bfc74d013dcff33ccf7647eb6677eca65cdf61472277c77fe25873bf6ff4f537fa6e36123bdaa8c73532da2172dd8c137254cbd8cdba2a263ef5f87aa44cdbefba299e1a3d0e3bce8b63e6289ff2812d8af97c0a7d229de228cf8b3aefd855b93e3acc53a3f7ffc46ee62898ef79f8de48ff8e1d62373b7d5339d98e8aa37ca6a6fc5ce5332343f4fdbaa33d15247ebfef699eea1def3bfe44eb66e19024f7fbd3f3ddc220279baaddcd3a2a9ea2798a2f8cd8d9336a0ecbc51160178703715f6e703dfe9c1037c5531f7d1d37bec7cbf3385d130ed37762f8e1a97774545c2cd74377503bda0edbcd382a75944333999183a0dceee55057ebc95fc2a890cbf8c3d81c56c27048995329ebba5a4fa77f14caeb7ebcb9deb37b23cb4e377e24be7c8ebc2192fea5875eb9eec2f5f4f4ecc06ef8320cf225713aca922c7b8e3b11997418cb23582a715dd68087719a0a410163f6731de655aec3ead7b06c7ede48c88e9de73d1e8a646879786a1fd1fa15c8c37344ab66057e12fa450471046893984c800435d4b06206261063550417d1324f31d7c363cc1d1bf6e31b1be65de971257dd90b57ebd29fcd1fb9c6d922588b2cac50a58b2d4c5145082bfa63f3cc225c8059e11a630b2fb0c28915b54f7018386872c7761560da23c4d51323d773fd13808326b273d1696a650e1b6b588b2b3d1348cf06f21a47b5708b93d14b2be1b3ffc43c75c17779d0a5c9647a966f92524acb76d489f1f07dbb7c8b9f388276bc2eb688a38a98bea57f5cc67f7251372a1441c509b04e08ac7ac782531b105a15f3834ed11eb00a3505a7bca9f6a8248c3696518f32342302000000008314000028140e08c462d1683090b5457d14000e8bac4c70521d09528ee39431c410020000000000800080c84c2004e64253e98f63e7c2365f6bec0f6130b16ba360fe482d078235c320fca0ca9c48e9179686bf574fdbcae2ee32283832a055f251c406fe1c037b0193b5ff394168c029b893fad3f1eb61006bfa650f29754269a53cc7abd74d4ba304e03f40b6fdfcf0d15f117acd519973947b9663383bbdace144b655b60f381af913ad57a0e1b3f193cb53a60a5295f884569a0e7264f85f04d44b8ad244ce29a858c905be53989e299d48b27a4744262b96033d6682bf21caebbdb42df0e70050b0c702437434ee12eb26d5c81e5a0d6ed523cb33c42363882f36247d06ad7037886feb58f299e150e06ef29633d1021f6b9c55768ef236ced205cc9228db7c3c44284e7edc0f1c0489f2130a9fa8981fdf0ba17ed9f8cdf735ca78ad414487501fc2941c9cdd30dbc18a7b0b4f00262c3c96c766111f4c20bd4c3994e37338e07fa278a4ba0a9457d55ab8227c5cf384c210a8633bad0000d1d507d92bddb8daa78db5ce4537a70cc30d9747f0656a61b6eed5d02070894fb52587cf1eae32112657eadb995f26d5a756874ed9f6344ee2cd375a22d0273644bf2a80a9d2f8d7f9af21b10095011d5432f15f42c8333b4c449cc2decc17f09f0a9374b7e38d259b32b6d2d8d3f8719b0459c846d665dff87ad68b7cc6e05e5f8fa5a42b21a70fb6234dcfc53ccfbf95cda964d671534ac646263f65493b6a25656fc4c4c153ac63b6bccc0c9818bc83a863474b7e054245634352cb95d94f2d54a0c2e5acb3e30c45f7e72065939f1fb938a201d28b2e0e9ac167a53f81780e3144741b3f4c737b5666ec15486db287eca17569faf1826b5d7aeccffa0cab38e4412d3540f394e5eb109c55ab8ca1d8829d3ada6a5f432f262bc24f5d4d005d1128fe729e4af8eb0755d5abd604b6393e8eab65e45fc638ba940b066dd5302f026f989e0b3db65c52873f88fa619613b3ab76726a4c0ce4380fb1b788df8e2ddacfe9e9f71fc9535ae6acca5e03324abfcad31b79d6299543e58a399b683e709682d2f0ca72fe7678a8e6e09851cbeb12b39ec1eb192a9386630baee0714ed6308606861097ed9c12d163b6e2ca333c98399e0c734f76d47dfa8d6366d7eb22b6603911fca4243b226c607a1d5e49e31b46698d7fe460c4976fb6908e1deb8bd2dd826515efb205debb62b4e860a5c79bb50f9fc3038405d560b6ec7c55a8151c3e80912fdfa41cfe1a76fbb8884ef726e2ecf3ba834021794bba564611908a019f66f9e3aec28623110b02156e64e71db056ce7961788adb0cb2edaddb3b991733d54c92cf2daa83249bfac5b2585a68e109c4527f1c1ba2c3c563fc0c649323709cfb69a4eefe9bc80528b0d8583224d6e4da9b486b088690685ab2867430a0cfc7adacd07e616f8bfc2a04c437d0674f3c1cdd73a15a0125953b210d4bfcd568ee24b31710d50e098170fd3eb7299c012c3e0c88073d95e61133f80d0f4bfd129251c91649070f85ade0a437ec865244300137f23566f4e0835ee5da84b514f6667adcf24df994e7281bf720137106894b58d05991f834f39811ada5cdda4787e575f2abb95939052af35c395fde042ab6a48cf3473962d490b5efb5ab98e3a80ff319c9ca557e7247c97a94be33138f88626d91cb414555f4082e34b7f47bc0fc368acd4b1a88db79ac803291b0ea5a8d4f5eed5903049d72093cb33ef3c45fcee6fd72c629b9dcaaa3c1d29c1ab2eded8e9ff81c72d575384d074b6baa6da94f76a5c6593007812b64fbaae74cfbbc90cbba39f35e7527a3fb721c58d17237b03ca7ad9b564081ba160dfe9579d59f429ca362fad0623fa8a21e393d22a9474d318577c17ef964f5c33027cb8a969e3950638cc62a8547e165701afbd472b551acf4cefef02f9a3afe3422480760b387c4cd7c0d5c48c38f76eed7f1ad57d3af1683f11aa30c7b15302fb106016528aa59b61f6c8c370d7b04c5b667ae5457262a792847af6b4c0a7432af2e550a89bb03ec09ae4164a3615f39e64341f3b8586e515d467a6a12cee122738f0b5f23e3c46def31dac0896b2150a80dbea0b1bf3259a688c650f0864c5f81c31dd611c4233213f8c4e68e25bbe4038e8681dd1dfa301a0452bf961a09bb4a7e0faf1226f0cbe8dd0f4daebd97d8a60ab6e5c87860109d14b02d0a8370bc99da160e8e9363219bd2edea55d053b1397bc7561fa80a5af317ceae1923e0ac36feed36ce1239cef7a45aee456576ff0584a2e265f3047d8c6062c9b9b86db36db3a75ce1069757679079668952c1612381a7cd7ec99c86d4a2afa07c3f6a2f3421098a8b206a799643c736f46fb1ade9f6e53a8afc01b8d9e65d2ed1f97becfaff5bedd7c67cb73b0777be8dc149d13fb121a36cb3b3cfa2cc38bd5bd055ada68ef5e9b05f497068a6d440c2ad0c3b7ccb70083b8d9872d37ec0e15c52b6cb3399b5fc717eb363398ae2133d00dcb2347026c7cdc43f6c8a94806aa5ac8543ac4ea65abed9ebce9d225e5ebc5a6ae2254a30457e28f62d8782648fbdaa89a7ee024f0648d75c3cb597a98c555cf989c75954d4c495c96d3135eaad75fc4d4ba726be778c03a64a24477e5ad432b355c8a73948ba23c0966b825adfa5025aff3f36d6d61cbe55b4b5a926ce3f31b6849d906bac2935f125068743ad0582f85006caafa05d86ddbe25cfa9186a06e08f976829df86b196104e454eefbd0cf6fdedaf350b464dfc75cbc833ede98b225b9aee89381c96d240eadcaaec14dca126be1ea22560fc4d01ffe3817b01cc64fc75d3db809a3899b7b36fb91a3eb72f1971fd2149ed5ded387209e7386e7278659a3ff74a1e1a9ba6a01c6d7f6a76621540488767a3725187275943ac9d58e5b3a6ce950a714bc681fe8ae8e816a607eb4951ae92d8209e08fdb83214d9c1b2a4d2d2bc5611a14dfb3d22e32b4471f059042c091ddf8a217299490a24fba911c5b9e499231c13f446d4e5f3d45fa95eac4c96a32998e45bc753d3a0557f81b61547cdbfb95dd303ee57b08ce2ab46adbe60d61ffa9cadc5fcdcd19ee2d8e0725d9b1c308af920a76b8fc5daacdc106c4295c3600c0214e7368ce21c35ad6f329c06f57160181f459dc8cc72acf96ec8ae282598e161001f320283c2a39e92cdea4fb8422ffe97f62ef6a4155e2a743ceb9f4d9c8820eca8610f211de3b0b31ba41268c00e2351318c1d5b1c236ef0a1c425bfcdad2d80bfe04a6b642d8bdacbd8c6fe90fa33cf9688eac7b59cfd097498b1a4c6e905d87b3628a0cd41a56435280b3ccdd5546c8805451984cd72b704cea5dbeecca3164c1f3ef4af45cbdc364c6c9e1a628622560c8fc631cb75324a0dfe1a130bb452bd9d0229ec1ff46fec7b6e496822e785200e4bad822c7285aa13dd85507c7086551129a102dbcdd54e32a3bca1a073d590fa5586838a310d61cb66cbb8ea6bf2234892b5a7da076f0d2b1829a54d88b43e9c802b146eb582a67eefec779825733a9ce2251bed2de63d14ef82dbaada2e63d5b480371c11144f292c626b025918021f2c748ce94fc235310c72ae0c6702b03e93f7b2adb22e63564a70b0a13b6706840c1c6522dc2020040a52a5a5b656f79b49c68a4d93fdbb08ed1310a763127cfdf3935bc871ac968dc1f2a7e9bdd5084d90a82bb4d58336e23ae7db4d9be0694478cd4183048702c0a9c5eb0c313995964ad71d137ca4fa0dc8deb61819ed92865d155364f39c31b022f353497e21a3385d898ca794fb95fc19e2efca821221e24eecfbfef2055817c988d9344fa9647b6d1ff30be39522576f7103c829bc049c735f79aa8700b4bec511a35d5cada380ad75a35cf65269196a89488098da79f8eb8d6e88d19b0708186e7b4cae2dc5d7480ccadf464b3d2bdebc4fa6f668e2bf5e3e55e5a26093475beb45a16cdb9bc026c1c52bd6fdc6d620dcec484ad95ea29e7ef1cccacb91dabbf731f4f8cdd6f961ca2312af1fd1d61cf3b7c48a44c447f4b97021858988427c4d4d28cb78961e75acb74316cc8e9593986b90e346a2dac53263da6874666b87a4fd04f24242b518a4d7e4e801b748839d7250afc79a8bfab92811ef80ecfec4ecce3f2d951ab829d3157059908356db665222701c1ce910d2c4874d1851697c0818f75909652027c1de4270bb192a82b4495514bd7b753f6f7e44f87139a6fdb88a8fa220ea411892b64aa59cdb6c46de053a6f5e5fcc5f7483bfa432ced454cc42106fe322f8ae3a2a7e37cd823aae27afc16b17a5d45ad152c120e2256107f0cdae6d9a7f01171b7f22cc31baf9692ce3f2f84c22da5d8b1a61d410de1aa85926870f8d7dec701eef901ee8d82c7be0b828614510d4915220c0ecfb2103a72e218385eafac5f8a6f10c6d1cfc53dd21d8b5fe06549c4786f70bde992e37399b66145184f58492b829ead9106f44b82d2da7cccda1918fc49a30d403ac9943ca17cc0995dea63e617b9906c2017b9a054a884a8638c554795dd4ee45b5310a2a760d741f5d6d1ae2146a659abae9a0c6d00a0da691440661671221ccbb152ab98602ddd8ae8d4e60d9efadb466405c0b050774e65a50c851326c8f2e387001f1813f37ed1396e42b8e02b402f582255f3a16819febd5692e3621f0d1829c1f5f0c1454c32677114e77edf1883495584e698939db8b4b7394f6ba001ddd3a189fd22b4ad8c0865aab485208b82375da5d31232bdad3aceabe9c061976a92f80e6c5e30c177b4d742380659f795d235e698c38fdc84aa542de5c72a2279717a3c2fc69bb9ba1305713c84a012e835a7a1f1be3c49233164a073dbd05566f4a55c78390236bc68abd0939a94ba63e5d179e3366644581298291ee40f0ed5188454ff20d598937f1038dc48980bc16f195a9c79e944b058bac1ceb12503b1e02f6509e7c4e0409538b827ce979a28bc1c64bc6836887aca06ef08b214688c729f6bfed56444155bfb3574286799bd8efa315b2e22340a6e565d8300b631eb1ed31b1394235b9a2ed803e0077eb8a2f183b2de2d2d659247d05d12bb09542456c6f8cb7d511daf2778c3e9a2315e4dbe2b60ef9a7fffffffffeefffdbc747ba0ba4164880a7b2998ce14ca5d9a0be42ad3fed8134b7ddcb066c10e7e02647b68c19f1d130a55135c71788deec787da9783910914a90eca11493fe230d03992ef8238e73ff414b71d0a68345fd417e4a0cd9210182aeed0c30d3394028513419367dee92fed3a868eac8205455298d03619dcaf615eb5dd58a933be94c8366a088c4323acce8e340f8910604ec3c0121f03741c40891442d6c0c26e2e6d950177ee245b596f3acf41d20a58cdb018cb3aed6499ddb191b41c3f5c48a8eab185ca24b3008f06766731cb89ea6dcb9ebcc51558768580d5c0234abce934e4a2daf2928eab02909c42f2c61b93a32a263a82194c48cc83ae0f982bfa421fc0ef9ab6c69e28c9a9dba9358c0c10c2fe554b1de2cfca39eb66aae09a17ad8f71b7a44c709e36fa4ac61824be8585a86fdaf86078cfea4688515dce11e469b612e2710141d8ca79a3447a273c78506246fbc7124bd96591bb9652fe969ec58df73ba7104ba18f4a07e67537554035c4b7c7e99c4ffb02d8d645aa033e50d90a6377d05585a1a1360af281d6293c418284981d8046156e59221344480498974484c1333562e152223042c944b80dc9c3073a5b2203020c05e8974c8c609335524018211b2207273fd420b44e82c72213be5b0f146087e486e6cb3a7f66d738fdb52c7758416ffa0afcbc13cc5307924de7b4d42fbbd0ecd1d8d3eb0666f64a06ca4e82a3b8916c3ad728b918f9063df103338562e31abcbe31ec50a8040bef02f3699a472ba1938f86a2d23f8e60eb1a260387a5d050d96771749fff92166ab7cf599f5731d6cd64a775977c820d5cdd9bb071cac6a26c42d4d37c56e7b4f9506318ccc0b8531457f8232973b121015687c1e0436f08ff8a7b159c8016ad574168adc9085cadc36d079d2113739138d3b29c2d80d3d243832b6e036e5427ccfc3ebc1d70cdacb37bfacf01c68de7b86b081223bb16d28c5c98feef6474f5e3644c54a1ebd885482a441139078e2a67ea4cffc30ce0dc7b528cd374b43ec6124ff06ac25126d4663751715fa639a00a7345d569e24aecadcc6731242d90ff742126277273f6d5b1ff2b5ea5017bda90921d9d435960241aa65992b43dab358952cea9417d212bb266f07cbccdfc0702a8e365aab4f60bdb5aae9cdb0316a0949132c435213fc6c2a64db953ec16851fe8faaa1946549b39334005115682ce473567c422726978720de3629af1ea024c668645ffabb6f84423568be33b69898dcb446e0c44102c74c7d2ed5e8729dd3aba1fe7e71623811dd7e6d61114129d812a917117a1ce969ed08c728478bf6094999d7732557c021bd1c6bb0fa370a63c9eef5023825e0070f1fdca3b0deb15922e1ff1f1fba6f5982390a42ea0ee07bd170ad59775af598807231d88c031a3632a354a9b25a8792f6cc85d7c0f0571a634c68e265f0e4576cedeaab8487a9af3ea7b0bcf3cd4293f39418da78319060df59ca806fb75f9ee8081ade051e4c757b88f3f0b1a6eb0851329f002e9ce5a4aeecc7e4e7947618e7be8adaa033f95ca2c09f076bc310188e2b198129a979acce54d85175e830cf3f593a4f8faa3ca2da286a812d1140180a27b177aeb4c1d554ac40a1961876b6fe0e4fef6534b43cacc9ebc36b21b6ebc863f0c199f0b182436b06d8a0a87ab78ed6965d002b600720e8ab6cd90391f41189d02f7ac10826ec4ea830060b294b6ba5b1e76c0540353f6735a9c0048bae6650904d038076801fb41102e2ca8cd0c868edaa2341577f608da2721a0eed2ee0db2420028728973674a78d406d6788481e3e8678ff883b7eeeb74ad33da848e491e422253a905d8d70e437f170ab67140b003de2c48a20e01f3b9e27d1dc4a1cd92002f4270dfa7dc95a828763830816d90e19b803ed60abb6cf062bf6b0f6c3dd0384e386debb9e43bd269a84efe15a6e2f196e8c5813121c49cf48ca4a49c6d8197c7c3492a67bebc38c472cfcd4e2df6f7a3a0b63db947a23216272b165d3a40337284cb06701e3c4eb12e653ddb68f76ff702faf6b2b8123bd30f27001f748b8f1767d52430a6f72fd7d4f932c452a2a2f73c5ac8ad1eac3d662561d3f00bb01e33506c5270bdd485b1b6184d6b50e824b5b06385da5f06d99c2599b97e7a2aa12c9281f5e96064696705fd6ba72f173ad77a35a7f6846b6891bcb1be04da59108faf333de6b0c52aefab9c8400587c8b89a2459f9dfe513962e46aa6d4cec52e244929f65da01d761e3cf38009e7116f247a439f1333c6cba8814bf08fd165d9f629543447c88de77f1e527425d4427b7d87e16db1da2ca5b447cc5ef5771c911251f44e75bf4fa12530ee2935b64bf8b8c1e71e52e22fea2f7aba8e069e68a5eea7a53d3460aa4ac0bad8bd8a38c341dee5d201d21d65ca8ddc49bdb0e93b12e21807bd7830ab70813227a278528ff3737f4a92478bd9360b5d599ce65d8bb995cc0958354eb24e79edba39ba401ad6cffd02cc67a47883366d315a462bd804da3edc96aaf8648db4e3dbdbaec2d5359c9b83787cd84ac8296552fd91bed3e2df87046a57bb4ee430a84f385f910b89aad4cd1cd90a674ffe7e173f58ca13f91856eccc792833b5a616aee51b435b3166e5128042a6e25b5374dfb212374e26e723c195339f84c60ec036d2b1ba116bdb6ad16d391d8f3954e11af7c8edba820a03201edd69722d857a156725f8a98d7fd36b4a84cd18449200f3c191088ec87012b2aa1d5659adcfb96c1d2f9dbc284bdd2b8493d1ae256fabe3676eac11c462efe2e0380316034f6ce6b08c2222cc70c9629773b1118676f53cd1c52d6de2646f1be7b7372808efb097de681492c7b23c36c499dc0baec8c26c0f4dcfd25a2bae8586093515ea3a6d641b20788feb2244aed41942018b8d86140379d45098a756aeacae6dae000e0d03ddfb04f7b550d48f225af04af84cdfaeed5fa14b0187a6584377228c298ad833446816671e03b559b48cb98b61e5ac244b36b2f7fc9653c01c4a1af03c90ad39ba9c7eac6cac6424be58bb6ea523026ca87259645d19b130a336e9b82a696ff0f0cce0fcb2de3ad06d323f7b6c036339e76d96880799bc3e8dcc6e8144664e5807e93ef098ab7ea14ff68d5a3f202dfd0a8a8ba5e0b954e7914c7071a1f9521ad03443eb7336e7a1b7f60367354f29303f62c0311300223a08915e09e0e0b413e2e026b584ee2dbec21a494c98bdc6ca0afceb65ac1f04806278e52d01d1e3db263ed70b3f56d2d755ca5c2e2d8958cadecc9a961ff75fadb317cc01cb72900d86c2cfcbd87c2ade4dce025dc79fe31705d702adf54a29d167e9c540b86a10e40901511ec042756c33da17728ba00c61a7f6cf17de2384acbc9e32051b848c440f3ab384b3fb56757298f8c58e2fa0756f63e55970d1be767fd340462f6f6aa971d86e6e9970fadac1a26850abda22367f98927401846fe6dd02cc67ec584ec437f7360ec442d6a94fb6c78a87eeac33a963f62d4a1ea450e750a25ef9eb84da3aa3ce704dc9b06c5364c6da67bf8a033853b67dafacdece6349878a6e7a48ae12e3a4fd280263aa94dfa78fdef81d5b42c0104effec0d70304dd3a69a6c60d0db7272b59ce616b5ebca971f61f4772f9a67aed6b29c587e52fcd5a4090a8dbf0e9504b53fe24e403ddb1c822283f9dc24ab164269208b8ff76947980445b518fa72c2c45045af99737ed502891ff0344265a6c66be0f5f4f571497b42c80aea46e19b652d76303076c895e9fc80493c1f4b444238b5bd22eef07912cf5d61095de7a4d0cf4894d690cf6734d20ef3a5cff531a30f6cb74df7219537595473a9777d58760b75190ddf24673822ad7b2709f736c9443be8b6f576f39b0ef3995396d7da063cb4c675424f708508f3009eb36edfaca1026c2f91f7d4c23d3012afbc34cded405fd587ddf758c7a5909067edee2d3955839f90ad3806e6c51bd92cc45c03f48b05aae592ae4ce17ba0df3ffaf2b69beba312d172d468048607ad82e9e06c2e9123a7f41072c3beb4cd9ee1504743c665efe0bcc0f2b83fc86071259e0df5c14196fdda2bd3d778e3bd0c20916805c7035b888e588ae2937eb78c01e9c8ac5dadec7e63b5330446259387cd73266aca4f8c62e2f375c6aa31aa2b79edfe6f90d9f4cd2313118dfee789e441fcca0671c6349008da8c1076e4d853517848c6a02b0738de0e83474844670de800684d83372d6146203e5fe263336faeca03dd2e38c73eb1328c5aaad4f512742766d093de3103b1a0b1245635d117c2fd42068c061240b1c94aa1530960482669758706112f8c5fd69286928fd7d758ed12a8be635cdb403f121035579288fa0450e835312604835ea9c458b85f6275a7cad69971cfb2476732f6558772ea72e5a43a467a6338a7e21593fe16c84cee323f9dd93668e955029c74036e7d2474c87e0d1b89b090ff0b8e1bf5ca4d575916ac8478956cfdb5a4dc1f98a3e5ae16a6d6804f95faa64b9b89c245e4e5e1b29de3527ec84d7c75ed2bf7a2aca329a91e2b4035071d6514a6fd1157a2902dd823bc074f4ac1455184da969abda7d93d5ece37ad5dcccb4b40ddb3e81bee969eeb191ee58514d18d9d0bb3274a28c79c891acb9490ea30285095cc89607cac11f78218820ec8abb5c47b19374fdf60d89e008435988a638851973ab55b45b9e1f312c91cd60f56cb803b3ff613eefdd98d57af9fb70c649b4a04ea2c257bdca2845092fa8d0aadbfef160b05dcc7e42e786bcc01a2fca8b4bbdc0fa3214d4056ccb84154260e717e9ec66579b8eaccf6c64430fd323a563e10ac2b547958fba8855189a4ff523c2bb922525bc597f3e22ed05d31b84d89495f6f6e6f0450df46718a63db95dec78b8617afe7e6f726ec3b4224fb6618e7c1ecfb5d4a84b3b41503ce335e1b4c36fe11f25ac2fe9d758980b40e8b7fb35c86b0a941f370ae9da65f9fa3fb4640092018d20c05e440f9084985d7db2608c0885aa231086df132f0b8d2c2b759bc4a0f1ac599a714732ad8829da0822ca67404459442cb869bab77b593898fe8645454345a9749d6fc4c29c0471f4a222e1e1ac613390afd3fb71caa7e28c4bd948f3cf9433f74b04663049462feaa4d690a34b52433b731d2577b12443d3b822097d58a46cd4bcc0be0c5606c7ba177adf60c61327791158d60f558f3b497757d20af4e9905d4eb89a01e6b1c3e1317f205b3c1405f31ca5be1c37134de9dd143cfbf83114b43c3ecf7fbeee0169c082f31f6701c2a46f8915b376206c773846603ed1d9dbdec5de29c3905096825164b14c2940457b3c2d02ac39ebf9a0e87ce4545d733f85618c13fc07b1f0f902a016dca0a09e8b9ec9edb1b917d7cd53ec97ebabed5033ecaf3ed65f70545369dfbbc77c9b29f97dee5d0bdc80105bf32a3d9a82a7565304cf746a545d79839feeb67b777e0f74e742d09cac753c09fdb143918122b4a37409d5c54f21de1ca802cb3177545f190a5f76d12635f1ca78f74c9f4a32db71ae8f980cb82ca61520bd05acf3400c8961a4b6518351afc06a14d82af00f83ff13fa8a2ce5419bc418f3405d890d8885ce0715010d7f1b8c624f16f663cbc331bedaaf406fd51c1d328bdf8cc860aa1876baddf4b334a0d881a907b67450c5a0e1614d0168216dfdc40eb848e2c4ac1cfddcd170a0e1af4389de25ba15e72d33f7c36d4576ea308795f5f5fd7816f7b719919033eba882abb9808ebe5df590f0991a6b2e9bb51b31b00ee9115622d27558231adbfebaeaf077ef79537506de524cb622ed46e96bb48236c221cc625321a9dd7db1b1b6f6cab6b24bfb825e3f51513b3472b42f00cb7780be5c23321251463142ca91e55575d53edb4576b13bf7978d68cab942fe521c4c677c6d678714819cfaba2f540452d6ff5fee75b61b07f96faa9d976e743a310900dbeed39d60934bbe2bd23d4788ad66ce5a6fc826a546241981e57f5c496f18966b1e1a237c626626a2d7f18a3a1deb048c4ff772a82b38becc924a178961a7d22b4609d7c6f7f2105204c4888b55fe1572c3a6638e7a27f83bcffa6e566bc61fbbad6fee84cc776a5d6da5115fa40676b4f055f31bd27832f8c172f59198489316132dacbc00dc5aff1872f976869ac0c2a273c15c664f4e85442f2dd8f420a066ad7efe26a31793d175fcbff40f807832764f0be2b83d4feeb22199e5c3501c19040f77160362cf2dc1eb4bab994072ac89423786deac9eb4c28c52591bda7bea3ef127b4c8558f229ae8e617b2e0bca96f64406e3091d2ecb44b23c180702f102262ad80937917ed83c5ef08944e41250f2b5f412aa0092266dfd013b288664f0fb0b50f8057cd7a98c11e9788615e37fa659f4cfbfb42131dc79ba4e36abd33b6891f04b15e8a84da4ac20b31841e1d6162c0b1e93416223c4c8a5f01340c3185584a9421333da341bde4908f6135142800a334e38f9da4d8610bdcd538d12c9dd9466a8d394da96dbbb2fc30f034bed6c22a509105914e6abd028823341894226caa87c4c78b6474a65dc29e7bdf085bb41e98cb0f516a45acf6fbf41f032904bb27cc539d605740dd0db000a0524e1e3a13974bd7d4669f1ef89f40726a2e2d775b44ff6cd77b939ed4c518986fa33820630511c01950b85dabab6c48fbec59c6ebc7bab9789e00e916fce69fc7b2a529405c0f10f144c7f9e5b939358093e2a2b8d3eb28b101c0b1d93b567195da0c807e0e821d538b55306ed9f1e308d5e1d87a570b03271c32d29650e03d7c0ed7ee401c7df3caf1a7abc03cff0392fe1b88e29f78270e4ff1394a5611cc9c46c5acefd0764236ccfccee8e576a143ea99b865b552f5fcc2b2752162af6a4a5263bd421dbc5006b2e557f1735f16a00afb987fc90efe645891da92e7927e1c91b46f48610b6c0b5228767852a71b408a83f442a38763f8f097fccba37edba4b12d42f9444ad1e8c3b3088bd04d454bed2c3899eb1e56f4ae8ea5165cb5c941fc20e7a268da7ea3f3613fcdb941e3b41852462ec40c6609e16784892f092025959433826f7d7479f6c36228fc459bb61c51c9e56b51eb0befedecc18614402a5e209dae4b5482bb60dcc51da50f52d240b17c9b13188f0aaea7aa8c5f4ed9e7a61660ff029b5ddec982c078eab2d2d13995043c6f30511cbfcc65451cddc198e0d0490f050ba1c5cab554f90d1bee7aa0a170462cf781905c99200e11f4b4e99bfc403144dc2067870255cc085ada67e8396c43502f2d2530078e4d754830e25b9a00a1ecefa275497a0631b081381e9456208c132973cbb821327c3c7aa694e70b4581be45bb09114c0ab3318d5dd67e618d71f6143e4ed8b7ca1ff584c95dea4bb6ea728b2bae622dc815df5f9b89506a407d6773d56a90c29f98455f074b4fb3c84519d7ffd424b00e5cf9a3592f6b40f3c416b9b6e1e61718025dc1ebbfb68a4c05d48fda16fb2e547985598002744a899fb5f8f60c9f133e65f57fb3b57f9736c1f0e5dd21b582bad81d83e2edb58f68ce428dd1c063da929c4c7dc4dd9b1c3af675c808c48588afcf3a3abb1b173d2b0bb4606dfdb400ff6b4c76a9b77604d51be667ebe0226e6be766719deca54cd6a9add355a78d4e09e5e75066e629bf65f2e4f0dba7a9d4de0ed589c1d08f761d8bfccb8e4a29236a8966bfee7dadc9dea2733a1473020a9f74284b601699e864ece7d1117a7afa8ae07a087ec5c93542c1993c18a702bec996479ea3d2f6f3ea6a9bf4bcef4d9245d3e88e60ca6db558ee93e68814a33156cee3f0abd9a32d03d675f0226ea29bd5ab4cd3bb403bf622ff6421f383348eb4e589ab935b63f89b54e0e76fc472270b149566e96c8ea0dff6e66cbb0df3ee4f970e4685a26cab6d1da9058d7eb43de3250d227187252280e2b7ffc7c7c20e632b410de5fc708a3f8cc1aa37a5b3bfb43ac89571173eb051e7ff461647ea0545d1271bb0af94d64f861228cd21c3d41d4b80a53496ba1a35671ab49b8841611b16773b90239bb8f0e3d73699bfe7dea4b7cdbc2d86bf2bba2535e4b837c1b1784a9d4d06b40a55c9d749d70424acd52047f623d72228a1fe87e69c7637d10270a1454932042e001c99bdbb9f4faaee17ea9371ad4f731f0bd5095e4d1875e565c23d6db40ecd00acc974af8399b9c10324bb074056781d62a35e33cadc228c6a2e417f132d71245f74d70374da715ff9f37eeeb7fdd8affd43a9de8f7d347a7ed81ffa83fc501fc40759293ef00748785d7939f65f6f950c41607c91c188323b236dda7081f1391f52d096bb5673e318606ac6887cc80fed0f451fd0804c3a6395898cfbfa7025fd32f505d086827134666d4c6bc1b9b64ce6f1177dd9718212cffbf6d3de880e2205736271fe90373b3cb5d375c9d0da895645aa91af1140218d9e3f822316fb2c497c581de524dc6c151c3ad4b9421f14f7e259f381f05ee323026a4a50d6d140f67d90e926a19e07547483f09e523f702f69e9005dc025249be1eb63edf648f26ccb66ae6d3ba70af998c0f0037f6813fb8934d4a5fe08a2a108e04fe8deeb623bb06585b4e3525ea9ccd8b0f01e752d87ce67dcb61981d9291651ea36508052aaed9104008d8ef2b76906ce8f225bbdb603f24598b700160110b7219108cb92660607979f78b92e37048e0f5ac3b70a44a58790663a4f346f011e1f43b9a307e4de20c47eb7f114de883dca3433e3fd6cbf0992dfd7a154be2ce7a250df475819c4ef06de6231f433d17fcaabcb78476010d510212c210dac5961d4702eb713c41d7d0f8bd011d29564471a4c8baa23ac45dd0cb9233bb24daea908085060d1b3f25fc1afbcf46d39736930c9ab133078dcbc7644111ee3e54c2d264d17872f854afdfa0ae2712781d0f044c4a418e932b3870348a94e1efa45bbe4314c9d9b3800edba9650bffb9980324ba0e83b67894d1b11208755a260343a706402c1460f9d0d22032a470726a9a685245d6aa983aeadd5fd6670d7f388f0b62203988ed949e1dad37c28a7707976df0f20dde9f823e382b8c3ba8539b748b9b8342df0401e7bf3f54e338c0ace0d92409b28b1ff8b29656bf5045daf9cd8253c2b95713c33860cb88c4c07489e18dd397bf9a639ac3b4fe3a3d853e94eec4db179c13f0b5431295e7156f2c8611f2e3140e347b41480f8ff3a59d5b18075d913897c81fcdee5f193b93e6664f0ab27d97b542726ec7a892e4a2d8756d488e03a943d13cc7da3ae01f37acb3101ea291dcfbf757468fa521c8513da6e0d6a8c4db111ce6efc685691301f8272b1ee578e222ac68d702d0c4eab1ee3cb1fc994f83a18abbe85b9bf3bb2a6c86cbc9f375217bda1daca0098b1650dd1c1867835a806940d36d8a960cc4a291bf542d9c90c099249fc888aa1208d3c4907f444b1a2aba9574aa45112ee8111c3a40eda01b51fc6df826f80f7ea6925303fe4573f07b854444d3c706c58d8e779d71a3b9a1dadd8f26ef1e7244f17916741a3d3e339ce4e50aaa220299391451a596c7861c1d931f2704e50acfc0663fa267af6f4778202490d6299f0198a05ce75eb227198f95cae5c0297753012049faa24c50664009ecfb9084f0868e732271e04109d8e39d3e4ba8a4b0a900cd46214c4ecd89729dae427aaf66932a7df9f4538d5e5ebcce69806e3bbdfa71df8de28cd1732f3b43d498c7a2fbb0898626884bb2c98688510fe25ab4e664ff688d058892c093766625d069ea295c870a26519d0bcf348d5e6098388ec99c588ee2a83b0016eb39a6cb77def3914d35949b422c9bc0eeb8f149765e96b07bc6c5cb6081ff99959c0c98972788a244f507631c952ae359a6301c4b19d841ea5ff81fcc244d6b9076565ff012df10145c51570a631fb92e7ac87d6ee735897f2807daf122f4230f205c09e0e536fd49082da1b1092087c0ff6b37879e8ccf9305cd0840190bb87672c22a695ed23547de0c84ed369e8015452fb81e2613f3833c473e9c3ef30e3256029a95644a78119d5567cc0cc1ac0474620edf7743ab4edc21ffa92ca940b47ba0d5c22d68992845bad7e7fb4889afef6d820dd3b0f4419cec90b94af3ef6805c718d27326d025ac244803db5a43f5154eef991f9fb7f43aef789d6a0df760fe461b207759f4519b04774fc15f87ca1ece15968dbd8ea23ffad28462cfa72892cf7d13f057154d225ea5f7566f40fb41157bf718f58ffe04ca853373837364bd56bbd689cb38f31d915b9f9d445cf1949b1286cc9ecd2594e64d8c92473e6c384904e9679ae2cc65e7cb1b8f766cf1d8858625fec59ab86762e94e2b2d58ccc3ce6989b9e99773c15feb7a3b54951665023a21a04d73fc7d14d285cc1b4f088de6d3d0c223c004ffe18f0fe305a29865512e114035527217138cf1500a67a6a2a6256b135b8614b527857c98febbb6bce0b7c6b415bbbd338f47320bedc31658a6d0c10b15fd574090b21e0bd602968af48481587740bd14ad983f0f5bfaa1def1f88184362ee6b84d769db96513e6d3a95c3776addacaa214160d54e9d1cdbe2ed2b3c649a3921c61b0800deef2aff3ab84c2884e7d124a6fe3370714ee58fe4c7d12dde82e97a12feabc3a27908c8f2ae6be119461ee4cb96217e89c82696dd50e54bb00badd9ad99ec0367a3df2838022b01c79117235e4fa2470b6d5ab094d6bbfd4c141d89d02363b2d4999486ef9b973d3916bc8cb4e9c22d233f34fc9f7ff1cca0229d70e4a7a3452dee20fb449ff3bfb66b0ac72f54084e9e9ff8737855daeac7882a380389f7444321f661c08ec2caf1cc9ae34d5d034fad1b6eea8f4ff3bc61e9c64f71ea7d9444ccc68826e47ba3b9f4d87643b8e3eb22a7a5a07cca025afa5c79315a08efca62031857151a5f228a6a919ad9b34338a7ea54ce87d588e6c2d8f5a5bad900acc26cfa2a70aeb67327cc9977c223ccda86eb33a36243ee3a1e96c6390665a57cf5a26cdfca336fae286626cebe8461275c562f335aed83d540d5d88740ea014e8d30b394e2140aa00faf56af021166d09e4add4c9ca206eb5a04c850baa379c132ae537db8c5d587e3f4c613cc5a39c2fff3a699c4516291054afb2a7790a3a97e698849b4f6901fa5300045f83e57a47a43ce52e26b5139985f4ac7fcb5ab6871a7b49694d80ef0be52717ca8b9f218a21d7b155f09d3f032d20396337764a3cbaf2c0a3750546662cb1c422782649ce5999283e5653bac9ab57d30be9c9198b194e19580848824c51b0a857f0529157fe018c0750d31ad4d33b395312cf1b741fa3bdb9707c5e86917173fb186e1daca17e5dca2904fd47080a8e7146f27245c8d143db2569a2ab6a52760061de7f4ad6f2736ea56703206327afc397d315174595ff9e83c9515ff02def5f771e731e1e59fc360bfc449f1b5156063c45961bed50d8f3df4249521e0166bfb1853ea6eb8032f972061f9d5882d596c91018e86e97c60ed38a73f56350108382e1eadc4baa3ca2b606a0ec6526d24194d0754b15d5b009581560698b09247de52b4d91b11db1fe486a369ae3fb20531161c8f56e945161b0cfa85b9808decd3ca71ac4e70902941220f8e03e78fe725d2f5ac69f5275e51999f61f38b31829ab72500014570d093760c46c35cf16e6d46911dad4d02eeb0559843310dd274b498515f6014fa668467dbd78c267be5dbbd8aa49085192493980c61fe39c63413851984fcf8c8420ea3a6ba620812363b540145a92bf4d53b578fcc6744158e0e6668fc9712037b2af6b76091b69851743efc56394dedc98480e273bf5be6208f921f83cc0243693d39c40826d2923466d894ea175274bf0f2180b89a41ae6df08d571c369f32261b15f1659c8f57bb3b67bb10a62de5f82267606b3c52486732681d67df670068b5109b9c5a68f75e019de9b4be8776badfd933c5c1ea92189eda8daab1750a9b16e9ab4743f1e90fc1aee8b32377434e9811268097a3c34418f267b83042617637f56ed2af5195dc3492bcbc2d0e6112c265e8739662430d6ee84236100504046abbd45b9d4f8a0eed1ae8c5c86762d5fbbff37d7c3d6a6da8d5b930cdbdba8136ff0953fcdb5fa7259946d9316da4c77004c5295d0ef3cda4146852f7bda3d6817f977fd84268bbd4ff3aecdad42ed8fdd33723e8deeb58bfe5cd7064e3bf63206e90689cc41d389c38ae01a23a95bc064f7f2d83189ce58c0534c6fc5ea4fb734f67614c6a084d49699067a05307463ce2ef79f0265656b5712e8b9e9d18c9b3801bb34e37a6b429736c996fa48abfa7e7332553f014acd329c3e1c642be760edad09cd2bf52939c3aac65e9f986ff27e899172a7c8ee93e90584697735d778cd1ef94793d7eb832da0d4f33f49575ce61e6e70e399f299c9d82a1d4bad8ffb1c41cb71bda7588abe0b752f811a7b4e108af8191152862fe245c0b70f712cab2fabba481acf57aeefed8310809f8cb1f76c256c520fc423558ad0d993562a7cca4647ac966307b0005f5c5d2a92fc6a42376c0d75dc5194fdafd854267c84a9e38b4c15e26dd6d3d9b336bc935019d0d954f28e3883a029bca596ca77efe725ccc2c6b12de1a2c5b397d5661b0bc3c30269f20d9340da247ece4924194ad81d9e99e8d63b3dc98040399f3d0d70e420e69d16aa06351bfccedb9a1bf884379afef9dfda1856461d525302d02260d263c065ccdd8e2c8a6bf30c721bbfc52ed525d89de34be23f14b851172f53252c6a4b54d97f403296c30a45b1aa37b398b767b3f51a58979d952d3911a050acc427cc218ca754517dc21e70b7ddf122743c13af0347be98316fd827c71357f5b06d4c9162afbc0cad50264290e70926d5dfe7b00554b84c5a4db86d70ccc2d44b111f08901d82a7b1ce831bbb2583b8b33313769f4841bb970c3e08af6c97ae45713721b21fad3db268e6d440da845c038e4020c91f6dd3b5d617a5a20d6b776fd50250f04e7cdaec1ca3d8a9e0abb5c9debbc253ba767f04e70721e01b8f483690bc71065eab161180bcfda89ee83e85288b1d517274200249fa35ec6c84c4b22b3545c1fb5bdb4cd43119d79d82a05f6c2094313ce5a8d02370056db3fe6a7a4aaef2dd3a77fc2421323e773e8de7e502174f350f1809b43efa1cf985629b7ce6807de2fb0c0035bb264e110a83396962ad8bdc7482794548bdf47a92b524d66a750efe8dc01ae425a0b3259f31f487c00d3984f1a40150036ba89ad0220a9c025f62e193c8b42d6565dc426e2960007909a96db476d9846ccc81ec89d9e450335fa0ce641e9efc900312f801f7903cf8be4dc5b3b5b9e0729d101a64ca173ca7d7b5b715c3a86dba2094058dfa51928bd114f32cd95b60b69130b1b9151be5a88325720ba86786268708d660a8af0d5bc0c8088b9075a51ef18b869cff925331ada765a63a8269c3a5be1a20582ccf6feef13452d70ac57baa0250f83140ea7aed79e4273dd785c0f9c625aca1a7dc207e19551b31a00445845409901f4908af038cd5943fde4b43a80ca84160ab3670e23e6830fd3ff13b393eab83699c1562a51af2e7d197a7483fb6c8fc149e614deb142e9f935039f64a5e60550e1060e382b59121c45dc33d5e40df2907dc365f9e3d220800d64758ae4f115d8159c7946c23527f81d39ccb40371068d3d3d20f0776f3a13e1b7293b23947492142ad83a9ce2d2a54c48da45afe66470a66a36884f488650d3437faba3bd1a56cfdff5bcec16906787c83d23c179d71ef3281bf714c2f461082f738b60d087c4f95e04a3b4480e11333c988b52ff12d50f5b74fb85f95111ad8108b67ed81a169421cadfa044581275c3ac8122a9b7a69e539a3bf32eb607c192e3e5381193881d4611115545832947c8585bdc51567e9be0043fa86135c9ee685210854a283de008f3ece2bc5803d17c16b58eb391772190c3580ce284248fb5c33cd99fb9a510cedabcf6d8b222a6f42e025a4cd7f333b8bf93ddd8687f5efd9b4607de348b39c52e2d74c04069c2182061928484d4a5c666007241678cda5a21abe8d3bf2d972feb5f99f3df2d5b7702e21d562f17985d6b83ccde074af4755c2bd863ee74eb6f72f8521710cb05f3c4c81aca1f96ca85fe9c3df3b12dfef17b4f1805475cdd0abc7b243ad44987e98ed18abda641ff0c8cc835726639ede3aeb100b73e76c85d1d95804546ba8941bafe012a53016812d64884f196eb9c4de47a3a078ad6a244bc1c2ca77951b0674d524a3be5179081c032c3fcde0e9cfb91922b80e594db06e6da7521b628ed75cf64a4194d2cf0849fb4f5ce7a00db557e9ab4db6d5500e2b23ec5c41b342e19519459698f31f972f857c2cadeb5adae738ebd2b1da522eea081f997f13aea5c23d89c3b05938fe71df60d44a0ab01d64da42d9b4889c386974815e7beaad39ec851deea2eea98711ae34639d49cb9b8bd631bef62fa74343aaa3532da054bb6f29a78e6e63405e6cb03dd6cf86c425506bab1a85219bda73ad3dd704e20a66eda981524b521b1b8d63df4118705e54d13278fe61510c50dd0a75e4402462e2e26a8b47f488997f8f857130f95b9bd3fff67f7afb5c590f3e05c611e93d91b42f83447eaae6a5c5de518602bfd6150818413326d3ba3ff4f945adba21c4360d130646cd157d40aaf280074f54028d90d7d92b665e433df26b00e20627fb889f5d3655fe44abae31244a78dde127d288365709baf5486b60c24c8e673e121720c8da02a54f1f56ed574d5c1a9d4b2e8830e7676b7fad7129fb8f1026e11d20da5cc5da5662c73866ac1c7b404138774933ff970be4104cda611c300b9e15ff12aad6ff335877bc06d66a29733d5e8a0663a458b9bf82cf77ec54dca1ea64f2de0d68ba97758c89e93bbdae9865543baa92ea9f2b9499d52f1ff784b0c401954c8be99d1cf2d0a850c6b062b714e36ada820cf9518f6166ad5acb2c7287219b0e2d608d8134085aec53d7a8e3c6807270e8065ce936a1f11c2afe093a8cf4e23d97226968e8b68c7872b3321d624985d91a4a3be5568d27d2b01b94fe1a94253db257bcf709951724f81e372ff957413bc71f709092ae9b23cdc649ebfa5baef0261ee35b1b87e6ab26ff5af8530fd5995ffe066ea9ad0dcbe692476e74e12e4289ab582ff57971e842777c9da56c49e7d41309878a63a0bfec8ae0b64f1e963b31d2c17fef5d678356ca50a0c245441b4e26cd1da43bec3b2db2e97909a89b7c1cee65d80bd5c2acf18128a087068968b2fa3a1f34908fa105a66c279a133bc80fcb8b4514ee685c40d03c56806c4bd50ae3046ab470e81ad89912f5500446a43d8f803c16f297353c3fcb30a5c353d579800f924b16cecf338d24e4d67eb5243da6c4146d1ca6c8ae7fb015acf0c32df8c56c6024115e121441b0542e3775703a8f55846d29f162689a075a0475af36e0b42a2efaa6aa9a2ba0e6ff38763584d699785a625cd5dd31845899ac806d2c984168686de1a13cbe36c6554603506d9bb5624a52a3144fd4777699ef7c53f62460c02e06644f9076257b5eba3a5509a941701eba3b4682c172e32b54760ca48d36b90b4c4d615fcd60f7e15a19ba780e9ec79a4c90e0ca8be9db98013ee542072974d906615afc9e57053a8cca410af844c2a617342eae2cca7224f9e874fa56c7ddd8ff42e1c40fa8e73ba93146a36f66a012df63e8209e2e1416b981341c48bf35a305e46d179be6c6fe0c08f537de40b9a2a9ece8be33e6720fe2a6e6184e00c92ee1b6a6312cd647caa2b447c05e14a3bec3ce22f09fdcf0ec8f696bf37619ddbc86bcbe8751bd157e6fd28a315f5f21690402730d5ad151d6540cd00eadc1e37f90f23f5dac9f594498636b6f56d77f06007fe9acc0d58bbdb9d73ebe61270e99c707199d864af56773a1e6abd22e9f5cfc65e413c0d41b89b73762d16ba027da8ef13b49a54316e9a2e961194d49a79d81e3c84ee976f7f20a1e80d94cebc80e662304291f8e785cd6b4bbf4cfc7cc140ee510161e0100b3dbec9022094d14713e25fa0a45d00751b469bac868abf45ed7311a26e0aa000f5d407e436d223c1541c8561f3a4d2ad09e9f6add97af95ce26de33c53452a874a3cf87649285166040b79dbacbabe57288e39cc1edddb163ef0ed47d83bb0bda85e0cd00d85622aa3e0f5d197d32e5523b34936515630714c3a6884243e228c71ff287d4e5627856855197e70a5ed3ce4d204d2ec19bb4d3c549041b17bd0c7f362b8aeff77175081456da9f6c846790d783e7bed8e4d533f17c1541e04c3cffb27b2227f6ad3a127cdfb3afaf17e512166e01acdcca711ee5d5186cc27100fa43ff5315625f90e8051955b2db743bad895ae8b469ed2f51a30fb0e389072664d10581d859782c555d1324756ebb082560b5f738813f2cbb37baae2394a53288cd1f73545b1328843215f8c55baf311429f5f236ed6c8e7c3b5b8e2434cde617c4ec31852e7642ea5e77ccd8be54413ffa5cdf9a9637cf9bca2f909cf5438b7c1769d4f27f0be2e7cf85e4ac7e587215437feb13ebbfa9fe20d61ef9167cd1e7c7608f9e57df788b12936d63f13261f10f7d393819085ae352784c162765014866f80fe6f8d3284cae82ba4c30ed11fcb634cf61525df4a7b7ddaba7d852469a3e376c5bb6d3d0113cde4d5bec4880882b52071493f44185fef08c303d7e27212e88514bc49c3a643c0cd4612b706da55c0fb994eeacd86a97eb77036f6d54efacdee0667a6e2c110bf9095e231b71402efd6404b7a74ab6982f44da570c37317e4a5fafa08fabe473422ddb98330c4eaf244673ab08221205c6d164822c6228d7b5406fc0043afb331baef2b07b873ddd07d3e819791432be638127bcba1be107462be87f23cfe5f50473434df608ebca3cb86f4b7797d9f801f7afe2d1db861d01e3bce03ed1a0f27969632fa9cf31e9cca05a461bdc40646a9280da2efb7d2a4b6e551c36ce65995005f810b5a78ce4a2d8d28173bbd5d23f89cd7da0742866590d0ab8ca23ecb8cb05e6e39a0c81d2b14c4ba3c1d43b45bb8c6fb722146a3228ef569c532d2b0ae05a04ec02336f42c77808273e23b491bbb620d6df1de593b158c7402df9cc5bf9517c360c80508fa09b6b8168932aad5f28942fce3c0c83de420fe240190a77c55b30230622323aea84eb488f4b7d81261259d6e9853f213896559e938954e51f83396d541a483f8921a3e47302ed115b2b1ed1a8e23ca48021b93e68fcf3883cf89eb250e0f50634c3ec4c60f578dabceb2b483168384ac4c46ff33e9a3550b71aedbd095637b08df0439c694b222eee64477043efd94165108e87f43842370b6d0670a380ab18d23a626afbfc6cd40ecabe90a218eb0fa11944961809e16c56059e1864f45aa2f8d64042ba3a6a533014b42e451c52686cbc8814a0d39b97d1a2a8c2a4cb26d2a62ebab1958b22f63b8019cf23bed94052dc780879f635f1ef928c5cad1ce73a067b9e54a8a63d7fb0dbf71f559ba37c4e2c457d41b0b438f08a27fdc08d81979f6299643fdca0bd96295d6526c69a686a4af34af7dec59b1ba48a1107e6a1cc90edde600ec5bd6b10ed9f8b76df06ba9f01c2479b63c9a4fb064385b8123cbbd2e2257ca04fe5471c1b0ca4be1d18eea031758e376fc8dd43faac90b8863bc70f3a191d39112effd92052e81c983325e54342e4071c4908a70ac7da8923df04a717751a47f588f8c272dbc3e2285126476d9d4154256371d577ed3eb9cb0ed72ef2a623f120c3425a8685195a5a81069aa840a6cfd214908f14b6290c5cdb07f5b151e287e94578792be45d74b1c9c47872f37124a2a4f0e9f5f0453bfd20f64f7b62b715934ebd8fe54ec9abeb00e30caa02e8743dcfbf57e4e4f422d30906f6e242ed018ee13653a37b3124eeb3267e6d700a31df94d00e78f1223f37ad6d437939410ba27ef305257ad73af78e12a449cdf081003a57703af6ebc17c9c14181819ebe085e044c59518bd46b37786a6c72316990d05931ba2ae002450d8ceeb503a409bc8583fd823a490531f14e6e52fa245e6e39635be488011b4cd9eef1e1a4c26ff91a24849ce3ba32d223406168b761394539ecd7ca839c2e7ed399702ed98d24fbd6b24e5e0fccc1ab5d3b865d4c2b39a9200f97c0f1d323bc18191c0fbdfe397727c17a34887f1af56705d5ae48f44d6cfa4a82a71300a18e7179ca44f51ca07325f79f6570c08a5f4bb33f1e9f5431113a41e97d975bacae2bc7b50e2d794d3c647d47b426fc6563192b43f59dc586a3b4a536003463458da87e6bc4934d16a44fd2510482a3ccb8e6f658f253ef9942fc84a6c870d33c7590be6cacf135d07b4e0a93b9a308d764c2db25a7b5e8ffdd88daea569094c4595c99637c87a3baa099d33cff70747b8c36c435ba12bb8ea213d75242b7a1500fed163753f5deae3aed8f9176b920b1905a68555332b903d1b97af0066a6d0e717a4a25ba0d20de72618db172a9e2e16910c7957ae29a10888d64587e26cd22e8b53a02cd3ecc94a785fb7e176303a402e0782c3441e35b4662fd61490536a6b98f726a3bf35ac42683c028fccbea3fa13e38037df81e47de181d039aa5d690430287f01a7fd76a3ad09d20c20cbd152227bd0b0f50dacd8e191291310e2e8faeddf6f102f3964d518eadcd08091a99e689e071030c1d39410b85f8f3d519934e2003494e12291cf2ff504010db64e634402f903e5988126ba10b49a03121a5d02bf268a72007da7cc19b2206473de68603ebc2ab3ed7160645f71720845091479cbd09c58e8334a63f88e054d06605f63f14458cfe154f0b27122eb2d0826df682977388194bbe535f56c107734c1114a9214cf29ad2d735fa882ff14dfc19706030340f920f1ba041144ca0d1486f8661e5d6845633136f01eef76ec0cf7e20051b97cce6d4316bc164cb506610e2ea0e954c4e722350744712ff263492a9ef50c59cdd9f53cb2ce04e355cd4452b427a7a0e14e158700d42ca36629a42b8d7b18e8e671f972e945581da25cdd5dd2b3994161008e6e053e6a02b74a780a78ff34e04b33c38ff3eda232ad036d51e8e0e7d7c25832dec88b4b7be697479fcf8931aa1c500fc4db2d81242dad2d7fcbcba35a3141ef423cc027232a33277226eb82989822d171312182ac4f2cd6813042e702fcb5612397bcffa2ff983caf7cc803144395640b17c0e82db4d957f148c20c4c5dea7978a793d463df9eedbd0ea2263536be00aefe20696ae02df3eff321e84c40b50ac4e2f40d089fbf1144820fe08da49e0aa0862dc36c5126bbfb7bec2c28d8dec62fc25931088a7006a818e2e6de7235c7521261c59e7f8a2ddc27caa95c8fd5297112f83f0e0d126369b21a7b74e4738a43953bca1c58ff2f1f1a97088d5eb0b907d5f17952676b39e3547064084d40a945be613fe5aca68807090e771c9caa7107c5bff877f5df5c330d15a7241b905796fa0427821f3f355da49e6a1a82b88171aae6fe888d426798108dcfb9b48428e61a144a6ca27d5330cd555e984b2d53bc99d1f4129d12dbc68cc50827197f5e055f1f9190f35269125a1747ec6d1b7e5479d6d4b93a22cfb89008d87e14500de145d4075cc1902876d6e40471ada92fa6da193de280a2aa16d93c0abc2496bbe7044b28c5aa66aef37966dd992a96838a517cc6ef79df86cd0920b168ed21ea6f794ab6a7d2841538399136004f9cc1441e0afb82df5b4fed413909f1a9433a42d8fd81a02cb9ad4fdd71eac5a9ca76159c2933633ac53d78332714c84153771e8a507d470f25630f05ac1d6b0f344a0f09ae85136fa47bbd762db45756c108dee993be278f7c8d536150f83a639634fc4878ef0c2b9c6925843f7727fc49a42255cd5d5c96630e4f1622bc5375d373839119a801b1558c1adcf85734e9c0515c3a07522ed0bebbfb04d29100114042abad32c6dd838cbd2ac0a861623309c1e2a40344be5e9c7883cb830001e0c029880d8a247007cf1e1ad782a0a881d72c59562e14c11832b1a111cf82f1a00e87b9500d71a278d09814c7821fa1620fb28c0e374c038b1de049467ba4e7b01ca2c8fdeff5d9c70c217aa78d7efc97ff74eca990358e7d1abd8328df9d67e9d169446e02acc217df1cd48053baeb500c44142a46272194ce6b1aac48f1fbbae8fb5d94263fa77ed24fe9a85cbb26abb2861433a6442b9f2fb9b2be341d7d675703188b2d7a2104f31cc45b824163e60d54e5a963ed3930c2dc009623a21bbd8436495bd9260f7e72e493329399ba421da42732d0440c9ab6cfdc412c0ca0d37876067303420a5d63c45ee69ab09c9ad1818321742d1c8a435ae9bbb7a7799375872a2a555b7bf80f44e4fd5cc15fb63a596fe5da2478848e6182f5eea485bdb71ae7cf3f9e3988074078d25cef13657c9a2a28995c3052db7fffe6c416605ca59b16113aad6814c8cdd734efc3fdb43220e6527029be98f7c6d2a9fcc54898fd93a3333483766be8f0cdf6dd958bce30730b210dc3c2c26181fbfbb90c4af5753b8b4ff6144b0122dfe7f37ceecfeb47442591bc32e7a9e0058a623e3792fb2e2ed7918300176125153c9b3b8d08508e041ab0b622d7b0f1f7ff907a429973f5f80e4897a5c43ce5d37b91b9a8b7dbbada6ea7612479e620de8c25878027dfcc246471c693915d980fc6349c1338485c50a052ab48ffcf1d7c497ded9aa1a28d2d17990a58480afd4ddf1ac684701cfe7d810545d7d5b73e8329f54a46b1e4d3d13b8a184ee8ae9851421866046d64d46c1d153f9b13500d30c053bc97f3df4779589c2917e91236d596cc46bf393c2f6c426f5204ecc09ebfdb20feacbdab1fc957c943d21f94af28037e4b9e237187944e51fb2b0e7f16b3214aeb0b641f925584607fec0d9a805601864cae030519ff787c9024abfb6f5a363d9822c56c3ace7cfdde8f6ee1953d5244d78e80d4f577867d8688ea8bcd161b0ae403a041bd758c78de48b12a76eaa2c2513c5272020cac3c0c278b2d2b42a745bd56ca67b24b31811bc306c958a7aee7a03acaa8c37ed7dfe70bb55f36cde7baec7d512d91a3eca0fd1bfc590809a8f8e29791b51f24dc9f051e9ae4854fb6dbf976e575af077dcf2c78413d2f9c49b1d646a9145dbe84e915e4fed4ed7c7260125a48af34141559b10169b7b00cc753ea88b3404e480a9d6634b8ec3ef7651253f771ca6872bd706456a6d1097c63381365c95982f301ac746d0b20444321bdecbc8d0814a4bd89388fc6a5a7e8f11dd992d487745f051163da612615e706c7b10be9ec769a973cc7888130c3f798c0f4bc2879ebf205aa7fc3504b8b8ce3aac568400512044b66c4bb8d1d470e23ae52c70b1447e358c4aa7f1b31e2cfeea40e9f63f6e6c26bcd3a373999491c4e19a419479dcdc9695d445cabbd8a05ff536cf4aec05556037482cd265543372a15a9e9568e4ea2a0f73f187e5a930c29e6f932d11ec28da5fd6c7f843a8a398eb7347c1ff2b1b7507a6f3b88543b800f1cee7ec4656388c542e1f8a327cbd37b65212b084b8e3c6dbea57863e44394452422260f110dae564a242a22cddc13b886ba2c73fd536134019bab88fc30924b128bd49cfb24aff35978de75215a4c981bfe683e55193b591d7b9db9b840ca7ad884fc0d18486c1fab0fb2988037b9723974e69f8cd39e0b64b845da5519079b1397b6c54991283f0d5f2dc61c46a8938cbc37bb6a9bf143e6b5d475abbe36ceeace0e84c2f8c2414f67b3ede12e065459167fd02e9277b2de95458b4e578842ee297512e12e6fb5b1be2f24def2140b9d1d08f4f698ef1b457f1796df7696fe4aa577ba0631da71fab599df307e2ea75f9dac625c31d4fc47cd8b48c9a0deb1b4790376b406d1c8e2b02cb44f67ad5b1b7aa4519022eb352348dc3ed3b7bc9579479f518ed62f736d348acc9b4ace54190e750ec507f7a1fcd904ec398dd809538615bed6e1817f6459fc0155c774775aa49a583247d765f06e8c712abfd14c6d6d04d833308ef05d5043bd74bc850544b2c019dcf8a4ce15d86d58ee60601548f2299e1cf40940e728c2c413ec83690c7c41f1450154ee73b07795eef5cb63fc77cdba468ae3c76167a467747bf61874fc7681ab12366a196571407ff6740e07acda2dcb3eb560786c276cf384b9dae560bb659cf4cb509256a79b7d68884078a0e646c83263c068d1523c26eee2bb810351d80d606069331c6d1bc6a53b5096134ac5583f8e52e3ef02dc744866d9e6a751ca451a3fc78f24778286f8ac9902235e1bf4b17d0f1eb9d77ce697b4205ea2346d5e3b14e5e6e511f7e8df9cc2276f1756c3735cfd696ede36e350826cf54073502d643c7d02f34b769ba02a1c2c218d4cf36b5b11addf846533fb6a827007734e1effec85ac695ea4eb2088457d60646e156623769230d0dc66cf3016f6e8333598d7a3df709bf1c92438816d48ae90532ab8a2ead2c14c64a18b3c0dfca1abbc759263bfaf92449a7404f959ac27e42e7663c20bce80b926d35cb12be40e36313fa4db1bf22445abba5eeec6ede591634c58598a30056d15182528dddbe9b7de2eeb987e6c672393a89a1a6ecd99a6e9c544d3e2bb772355a913aff2f191dd2adc66857c809bc8b3eae25aa5e33999235f802195526658dfe4701ba00b209d3d3d7e587ff4714f46b757cb534b1ed6021d6920f86855ee560094c8d5ea3c404381e147cbf068066abb7c026939c782e7112b0b8839e33e42856419b5abb313876ee86012fd9449dee605570a10f841fb109fdc416e330aa62894ae82a61aa3d01f362d50779fd40c19883bd557cb01e5fe20d8f8e63c045a38457725982a00cce5a6a9e9ad4853608aba430edb619d89768d6c2fc67b033986b5d417218da072d7a5edf21ae7eacc8cd636457d38d69b1f1c3eb57b61856670fcc0fb8cfb9c575f7aa289fe40405d5dcdfa1b3d9752d533cc5ddab7302bd15e7524399355ef07001f496996b63968eede02348b8326f4c1e3e5350bfaed03ee7fff4073ed41210b3a880a4ffe871a849fb9f978a49a911fdccf27755b3c3d3f61d334e5e204585530933c48040869c0c38b5a09fa8ff4af2339a023ace175f767c305e4fdcc101e518957c9023fd5162318713dbbde0d8d734e8e975ef1430e3ec2af6ecf124fc0459f32f3087b0802f1a800e6c804eb89ff3e33b4a0470c41d8f4bbdfeea2f9ded03cfe12b6b1bc8adf89c499be0b07a68c3eacd680ed19506f51cc14ef42f28496d24ba09e5d2b5868a37f75000905ce639f1023e4c73a4059bc31d85c6a1d0c5e363b2207d679a238a237644827858491a4ec68ac4003c822878cb4ac8a2c85133ccf41636259d0b729c810e80ff3f8a0b801f27b92267b65771d336edc9bd77a4a78d6b8c6d3bf0c3c226305410411a05c2aad49d65b7824a20293115c7b3bd029247aff78bdd2c1d4beb156009d8ef08c01f5dc7228844b45f03266e05106e90ac8824e35dbe318fb819d66e94b8b27ed19d7a66c2fb814fa09dd98a7158a0d01b828da0df500feb2feeb2628b94d4b6ba6751e589866b8058098fa8d3db7a29392285f847d14c30bfcba692cf2662011c3cd5347472314e264afd06694f04cdcce73c94d89c3ed4c33ce0fbfdc67de06a46e9475914ebbcf83eaecdeab7f367c776aa5ab878c8b209e11355844e402863cd1a621442f087c0e02a7c8605b521cbde7cb28e6134b438acb73300163f5201e5f04b1e974c88da055970503d78849a33a096ce707258e66642f876a535d83be6c26ab37279e1a040c4107490e38255104eb9814ad3ef91795f5a89f99a7f1783c8d8edb8b98b74bd6aa9e70859fd8aeaf334386e7981370b07a3c821622fb17a70ce69c51a4f62f167807e5e56fec84407fac39d8d259027f26c40819a00bf720c3382fdbbf51787cd25004d352d019e06179eb2b81e71cea4fe063e12a67ba9230867e462c0b5ab43666144fef10c49b255116767e245449845a48153fb0d71be21fdb614854e198cf0a07c921aff53d5cfd4e121dd40fbd98c80cfa4fcc8dfd8541d6bbe805f02861cdd19b8ccdade7bd75eb19adf033a5d9bdd42908a306a723cd973910be70a348033b46f27544beee1e533a866117468251a707df08e80916edddef6705bf2f3f6840d63a230747765a1a9543643d840488e117fe06cd126925946fe8914242be72bd742000c56e1caeb028135887f48f9b2ea9380357029a913372b884a43e9c31b88a7edf1cc4d9cf785107219876f85e7a4526fed3b97d4d8db836275510eb1dda891a63efc260de66443dd462a54c98accf9ed1da74f482e3b350da003404486b86120f65f349da1022aa11ecfe74680ae987a5b47e91dec196f8baa25dbe111dec9623d1adff8dd1d2fd67d30871586692dc64cdbec11bd0660b6b089b784fc2ce6249312b790cfb0e8c8a4ea6b92daf044f28fa63ebddf49477d96b618296382199cda16384db60c2fc768d45c8a50051d985d3278d2f7d3590da310d0e560e040941330a6c22652630db8d044cc17ab6872938b7f2cf6167e2a5aa5933ec48944c3a53fdd5991d684fddf2f184fe8b80ce5a8cd8e3f0ea745fe82fd1b2b627557d6035c516d070280775277c5237e3936640cc20798afab38e7d37c89aa24d28363cdb54ece14db1d6359f12c6d0382dee509b90d6c6b0c27cb0f196465a4b464e785c798646bd422b992cf35e29d786317b7723748daf0b4ecd18b1ba21401f34749005cd0c821bc432200f33ae8dc9dc9890d8c6c533bc9b52c3802db45ba84f07e59676013df2a0489b29f3f9c4d36e0284812a1795908c191d21d20ed56ce445c1f68983212bd35734a51bc8eeb4836ed2f851ef725e4ca6cafda195e23db3a9dfda890792971f649c01b598ad4f53a6610d79894c7fb42c7788ac8270ef1042fe2fc6d58f31823005f4c0888345a468f89f7182a34ec48eb2dba4ec23d6b22607413c6c08ad5e5e9bc74d11babbc3c84c16f7988965da9b5343568cc6ef2a6ed82e09cd4444fcc74d9fe21c511b16f33a9a01fe5342e7d0f9bda9c27fd98fadd96585410a47e205550f0e40984117d9473c3b8890b0a43b363944f7639195398b4039a47ce060e0df735da11d30f698907c0cf5da112b48911cb3f2d08701274655fa3f9b4f4a0af60b62c85661400d2685f62f5289f4711ba53fb94024df39515d4a46c46bae45810d18877c01f7db052e8715f4b955e634df7201d0e2c04340ce8a918746b0a5f8a0eca36a6eff6afa7c679e9f31e28b5ca099dbd6eee6a0aee9c165ebc3674fa71453f3b4762c0e4d013386ff95b0690541e3c3d9aba7fa8ac1becea86a8cf76ca0100945718094b651fd3ff5474e208d2dffe0691026491e3df0d080545c69005415331c81ea541f853a7eed64d5d63f98287a24767d3700b92608ab21949deed2df157ef396c413ea7a0865532921213b3c41ca605baccfd0346c833f0de71b300872d1edd4e2971d8e020385c6144e67d2f1761cb9487c95844469a6a5328d57f8f976a826712422e2e89747ee5ca43f3fb36c298603b338c9bdb98600708e9e95416abcb0f526d33a0e13dbe4ff0c8382c1bfe82a02e4106c560cb6830e1713e342c211c7c95f001860141da93b2f869c1fc6b32b43493d3a14a30a556e487716b4c19407e5afbc56e373e0c495416e29b6d15b8b0ddde738a57d0a6d96e7e16ad3a6d034e981280d61fd730e5fa89d1da9d3bb3d2727dac0f1f66f68b305bbe277377f06ab8cd53d8f6fab05b5c222a5c567712549b695e32a8bb66d3adfda38e39ad202add22da775ca16ffc3ec0ea6e5dc931ab557255142732d60aa4e2aacc32a5611920f785ea4a29eeb0f108731adb8f3a970a19b8da29fc25ff2db2292686532223fcf0b6291c83c3f64a28fe359bf0991877938aa225c98a73e95eea6f51e3e5fcb4906050c711cb5abc72ddd1cb0ae55f02fc2b9155241cacc40fd0d7da05dfc499d41639386a08176b7cd592ca2c913e8d9efcb17cb0c0ac291bd2b739e02f3ed097547e0c8277c8e761b5b5309cf3d19e5ae3d6a46771feb4f69f68404780dcd0e78c298ff4394ea837808ca5e92f824384fd4e5449efb393b165e8a6e0a7465bc413d1107549f3ad07314a5ab6243c5681f922b720e5b83c4845aa2648beca22a214d1d3bb14dedfb69de0a4c143c46f84886e5e3fbda56b812fe769b54e14eedcbfdfb80cf3afb76e535e5ffd69004b5741d1c7ec35a066bf60140f2c2a20ade0494d86c32cbc77c4106c06e59d51c35848c90d2d943eb6958b75244d2d0c46e99c86238d38a3d9b4adef4cb654e25ea0debe21d49305fd0b35635cd857095d6c65204be72abfe621364fcc86060a0ef52e67debea765924e59fc43f50cedadafab3e9d87a54372ab774b83f94bfc9084066364bf21c1f69b493926383494634a248a571f108219807c08e8f49bcd5496894a6e9c2e2bc5b4030baa9da41b79d1e741dc23363282b48e25802f5c8284e1c5e699ab3a614304ac8cca8d6e980fd08fc102cc15e1a5712f2a74cc8fe415892e9370274eb01a94491e8e1c53b24474d3a649722191db152c704cb84c684da250f5443b4bc1f876ecd9afec67e4a19da8cfe6e4ca59fdd5f3e5b94ac064b475d65bf688b6c917f4769897377f71813487f070f54551aef079f127c0cb1866c468ac25b3c1c957989ef77635e59e6241dffb71e9d23a1d2f482e7c18b901d2fa3bb9c904bf3fde788adfdd0a20e8bc43cee97ac8457adcd6ed13bcb6215d8d1072ea909c6e7826f640bfdce00673fcf835a7de16c80f4ccc532e2668626f8d864fb47969986084290fff293cc11db4708a5df4a72b52e0d30c32c28a640db80bd62d4f38e948c166ec6b0c1621e1e674cf77b4cbc0535ab5cb2a35d6f2af021a7553fbfd198f5d70cc5e8b2d4147d7231a041ca64713321eb927c6c84254b7b538ce70a58ba90a501506e02079100d58c4e451a4a1d2a86bc4f0d2ac0d419bfe9aa05bb197b49e174285e163966d71f661344a1fbd1ac9b76db718e6a90b9cf7959bd29c18543198fa7751bf9fd21237b34145036f08fbd618f8fca4ac704c39ae13852f7fffcba8614020977749eae2c5ca138b23b002198fa72a370d95ecc45dbfa5167e6566b605590a8d238dc33c8a17876af1d7e0344bedc6d29ecc2943e1ee6d97808b1005227f048c80b628a1bddb1d40dd21b2c44786d667916df455f2d4b52a5d2ee4e26ac2ac62709b8881f3f5d7d8ffa7e49398fd214f900792c1452150d1e677ffbbcad6b276b121370488fbb48a7b71f306a058d908c519b6875bc5f1f0a8614702899cfb2d454b2f710bdb54bc8c08fa31607af9d23641730f4db2df78a2c205099666384e325cbf8499ca4b63f76e4d7119d9c23fcd834e9b1b9b1e26af927c0e83ebae0e9aef2cc71a80f02d7ba6e7c74c89621f9e5d5689dcfd7424efab1ea9763f64d15a7b3cc438d9f3872af6ccbee1d38daa68faba2dbc96587e8d247b7d9c6d3645ef55ea2ea7c934453255ab09b263f83cfd8b1dd27d52cb054a8b0803f31689f66c0fd78c36ff07cea360ac8931bf85e8affff66ea95e9524025f7c51a7d843b2eadec814e785f435d8cafd6823471c822ae76db09bd9ab17fa8efe287ba1c24ae27bc0c331ef0e2558c6c5944f816de251338475db69868d45a4ad15046485a8d8df940ee3e90b44994d5c28c9a923f6fdfd2ebbe45122c227cd3301fac80262f8d70a55635f760b288ce03940fce83cd47b281b625ed791e0113901cdfbdccbe9f55ddcdbf68783a15c20846dce824cb084be055a7a13ee4efbae7963eb158f453a4720c66bf754c5fe2b30d2c1516105427321204ab3c9d19e7e69abe22234abf5c3ae8232ba03d70295fc67202b7c99dac48b495ce0b96284671b998ce14bb1e04468245c1d1a00afba6ea68874f03a49e2d2a498db0ab2b5a86f7f8fc42b74d29f8d1a03a3b9122eb08e1e9dff95a6b364853b510d9109bff9434f5e81c99232def922a215e1e78665208a36c4cd42a01ef7cc45d1cbcea244a55780d2a73fc170d5fd6594abf7d4122e39c9868136c5f4939026e8795e7c79801e069dfa78619f2451a33f2ddeb6374e192dda43410c207957c147fae1f802aac4fecc68fb1994956ce4371070229d83ee168503450920d06a4159184101aaf1291f759c5b9584a9e6b5b49dcebf2ecab75ca4ceba7b2abc1eacada09401f7e2c87a156c150fb25d46c53eb7cd1c93cfab3b41536ed22f3d4370cb185101921383982b76e5e16f68c70fe25980b10cea027a3e6477fee82e2bedd3e1162c1f84be9d400d66b66f4f36c5854acce2cc426707c1067f642d4bf2e1e4d44cd17bfc6232aa02d81bacf2212861d29dfc54260ad342a620e44e8b2e650adb83da33059d99379a137e8e7e3df0e17cc9d0fe5357e29ac25f673633f905d0d1bf8165d75e68c7981af98a3a2c9ce82053dddf53637d1e79ec7e007f65f9605d15f73129ebbf08f6e9b35d681a4fe92c47be9047d9d41f65b871121f415dacd6b0f633ef938e0afb235146c4900b1d59cba96bfb74a7f958a8a3191da6b445e147b753225474df79837ba27c0129f79fabcdb9d0148b4c91077281873c106d140eb2ac226e58d10ed78348c3c7d42fc71e59258235bd02800f9de94c62df4fe230a388f9dfce83f0d5361b1d19c2ac404542aec37d202cf3ae48c435eff9c0bc13f30a788439acfd7d8728ddb566355a259f56123ecde46630649576b3cfb4d96ab5c4d253e3d4a761f3d17af6757d653840583b26f42d98b427e13d988570100102847cc02cf3e73bef23f36a6ec94b61f89d56781fe512bb700f6246c3e299d3b05ec88f929f868ff880fb5922f6e1cccedc999b9932e732c72bee582e09a04719b737e63778e63f334f79f38da48d9df79762f4988d2cf38b49c9057e7c62ed2a94e78f795c1ce2e283a1d16b714feac1f2895fe9a9b141e7a37c5f4e290a005d756380b76ef2e97caf63677f4893a00b9c52972d4e6b2baf8a2a14a74245fdbbe6fe871ad2aaf431e40182d9346d2e4d4b3016534a6e26f4beaf410f2e465ebd3c98070bf4838b6694615a1c70cbccb716982d5beb0d670c14717d537aeeadfb46c10b73b9fd0a0ed8325a3f951af63a7cc8149bd651fbb251935b238ecd7cc070404c40ca35850d0065f263024034a9aec0f72faef46c8029446dc8610c3c4c406505149f32a3d5e8ba456491c183a18a4295bc2cc2af18632bae2a12cc9b6dac56eaa3e38be2500f09a6ba6d109edaabf7d1efaa1383954036d1e3e429f8376ae1b468cc589e4e2ede01402110b757cdfe1eca4416162d2171e997dcb47a1bdbd87622c5338ae14952865da6435ce959b204e4cd4b046a42d16c1a296807367e61fa348a3ca8e4ed7f671fa5185ac98cfc5f3cd5a90f0db84d40497d0a4989654c41c0782abdc49910e993d290c6a68b3c3775b05f296499dfa67e46626ebdce583dfd72b0b874d1184af5530eb6cc29ee2a9825c67cc034fffa65696d10d178eb93acf068b71e32268b679050e9071262f6a27986d595cdbc56d2c46365d7aa58daedf953701c1a4a611f834c6aa447c274e44d07a64347614c1db6028a0b39b00826dd247e6db286dab1e10190c4b1c41ce6c28d7a7100de556e55b5afed94b4e634a95609b53682b66b6762e259cbf902a9645f01852c2fcaed4d669ccde51b1d1091e123e98e400fd034c2795826867522b365914a0169368bd479e428a9732318e1c73eac9571afd9c42d27d0aa227531f6b2c3667376d1c1295f33feb5af331611930167c22958c5dc244105e1709bd23e1189cb3d68f332440ffbeb8834aac827087b018c5c835172bcc3cd3cc9537336e8665f3fd1c008c159a5e490838f3536f43ffe2f2155bf892cb5b3a185c6fc7d06ff70df60ac052f6bc9a5be1bb7e4d8808ea095ec1233c23bd2212d333fa4af529e6f52ed408e61f5944cb9e4c4aca420510693450a803272328c13a207d71b94a9fb1b2bbdc900c0bee8f4708d03099f9bafff88f6af8e481f93d3ef07a05a76fd027d50fecb559346dd1286e431b18e02796172ec3369d9f4c9787e9099380bcc97fe129d4057d009f4f4a05fe0801b7b8fc6fbc51dec12b4c93fc3162e34f5013d35b47580abe061d9d9d766afb352081e0dc2d016c60ebfdb5add8c612e6fbd1a6ca664f0438ae9159e750bf2c0982dec8d06e8b13de486295866b4b4ab6488cce92b04382edca29b1f71255244d6057b7d2c3bf27bf2e811eca64a9a5055fe55b070a1895a0159c9ee013adebbb95e07d7c8b4499416ccde1dd4ae44f5602931ba8973158776898aea77c116829fa4dc114ff9664b15fc933a573afafc297e072a234068395ee6de6a69885ba147cd2d17ded6f2072ab82a7a41c000fd44ff02e9977b2ccba4486694655f3295c4bbde06ba14b40706f5bc01426d652847588c4f7eadf1ef566710446f01a5749a88f8b0522781b55f77b0ea8221c699753b6b44a998d7c17161f719122458a6031e91805c8a64b9264159c7480c43bdb888cb24d05c44baab5acb8fab45be8a66ffb90813b0e3f0e62c8f6eb92cd87d88a31e0ef8eb6647beba7595bf658b0b3b3636e0b9326dc5d81e973698a14de6da45c2a82274a0e16494ce68f320e226b9be116348bfa0f9de26fc46a12a05df4ff40171289c4d90c8483a63ef371bbec22351525ff286920e15b7253df8287936cee60689b574453c60e28bfb302667f1999b08a882c58a58c71653d77b270185f42a0830580c3bf8b467ec53e23080fa4e5497b96b45d8dd9e48f4a2ca1535d0b55bd1f32eaddaf2aaa33a20ae4090e4940399c29ba0bfe99dc21bad9111fa8576a449b489059a63cbbb61a9e64e442c7745546c42deb8c4db0c4a1c57fa22368fd20baff09000c01e6d1065027fed4ee2324aa7611143c3a4435501a5359548f9144fc5fc8622fd7168664621b4ee131522194eb600d0b690c0e16302bcbd5d09354d2af2539d771bc434cf99443624cb0a76cfe647b17b283357c672be33418b59f4959011a93f49799676e71f4f23204067e35149c0b3cccc55d16e07472ab44696ca90ac4fbdd0f005d1e33926c317474966b5c2ed5c1a9b8bd4babbb9012e00501810986173b741767616640c4d0b8e9c569b3074a010b768ba3647c40d3c661a598098bab3f7da973e3b1f24f4aeec8600d2350c8223fc6628d0f4be1eb2c07425b1e456adbaf466372dd3ea77b5b32d002512936513445686f44f7427d11622fcb1fa0fe17b2bc52147192760c3f6c7ff990195bdfd0737255fc1fe7381561830d689b3c0a8fb25bbee948e9328204a1e6ebee295de3b8975de031d47d63875faf79e4377f38b06860aeb6d9e2b346079d080df4d514b6927aa806f25828a2c31392d5fde7f925fc4c552fbbaa381a3ea3f94def9a782647a34cba75274f6c8f068dce8c22ed761143def4c50022b06efaa191432d3f303c3c64c50eee15c765742d904d89c0630330e6c276a8ad4512443ad0ddbb8a10d90de4906ce7dc3a59643a0141aa21c4c3f053e8ec45d0e58309a153763ad499e9bd647cc1dd217acf309bc35045f49d694b012caa630d3f2e2cc883bc1b8f8edf4da18237cbe3aae732b2342b82de099e11bcafd506ce914c6f0a4d43686548a8d968c16b0b7286db4b4b4b4899452ca480e510e1d0e1449252d6b6ab4d68edbb486717df7abf2c00f88face47d5e2f6fa67319bdeca809f65e75ebb5ae4a57ab9c8f53ba4a6aeb9afaaa2383df71d52535fe6ae7cd5506f1a7079a9c06f2b03b525d654e16cb4a6bad4f44503d6aacd6cb9e1f65915d385c6edb316cc9619b7cf88cc1619b7cf5c305d62dc3e2b325bf4edb39bd9926f9fc160bafcf6990c660b8cdb6756cc9617b7cf8c4c97f1f6190d668b78fb0c67b6986e9f5d315d48b7cf6c305bc2db6747664bcaedb31b4c17f0f6590e668bc9edb39cd952ba7da683e9e2dd3edbc16ce96e9f61315bb8db673c982edbed331fcc16edf6dd8a87210001386896d51b68d4cf901143e7fad7c37831d68ba67a527d98520f86bbdea464daf5de8b5ddf7159cbd8c103c087c36e93c97493e9354f5306022488b6c707c15b3c081e0108184273986be3e18b01c0c7c38703000000c0d7753cbe988c9ec795391b7bc26eba7d872afd87dd26da5f2a47a49e6c35e522d775fb51ccdc4d456d408068ae9a59c2db48722472531e3c4c2f129000181f11daeba5a22e5467360948008c673d7a7c31b5cb1f113fecd6fee31280278017effe60d66c99d98da537dba6dd6436d986b3e1fca33c78082cc80101bc4b010a58c002b407a17bdbb40dc76eac4d67db7bf03667aa4a6643eac91ee6c3a1ed4c3555ecdd65a6ca68ea717c311c912d307743b56a2d6bb6d09c4a27d62596b3e56c3867c072ecc99eb5edaddde172b43b846a536835546b2b4dd5cdc90006d02c9b37cb8e382208dddb7fd8cd65599669d9109e6d15c0bb5ce02e08afe66c5f4ecc9689e3bb66c05458ab2be57ff06ef880a80f4fe30b622ad9e1bbf905917dd46befbaeef6c3e13dfbfc82d0657de9d95f6af82e87af79ee1bbe9850977227062074971b0e787ba4a2cacd67ee9e16cf8e0e0bd465c0247d53f45d82cb3b8457b36d4d15fbceb66c6a3bb261b1ad7d57daf68b118b185d741e283f41e16e461c8e588f5d3479e83330a22c567d5d34d16211d7f1775cc7afc75ac648d53b40c72ef3d116de72369c4a522be0525b855c919c6d0fe472814d36900a84b32103ce345d7263c099d5742a69b597773555386ed30fbb349d8adaf4367477a9e96cfbec1ea0084fc7d7bddb61c4378405926d36982af6db15f386bd111f107677ef10e065996e2e335177f68e87b7e31b62bb629276c707c4dddd777c41d89dbd03719cde70a68a7d115f4ca64520ae9dfdda99de51497b23be98ed3b7336dc0dbd0eb41f1441ebe15d2e305d8097e2885428660b57c5bc616f35d7026c0cdbbe3bc2a359e0d9b2d592b362634dc0e58693691b7bb2afbaa439abee904adafa4be3dd527d69aeeaeef2aaa6a68177487d0368666363637344cb3a8c66ee86b3e188688e087753511367d734675349cbdd5492b4aa2b30dd25674353208c7dc7008f01970b8c21e1d18f765ebe3e98e36cb4c86519a53695b3b98e9de6ac6c9a04afcc8ab72395b462d0348cb91cbe206616b60f2c2c1c91974ada6f47b6fdac43b01181b559e5f20f95b4a4b6aab40b5a4fa6f5d84c5b6dabd96c7ba3e3fadcd85f6a666353db15f364379bcc66c3c96c361cce665b7bce86b3d93472052c2d81c4f6d1d96cfb9bad6e229b4169e2ced03a53b92a8327d4a8a8b96576db2c3d02899702705bc671593d02891f6a5e0a200408fe24b9b292d1c06645c7ce96d96db3f40824e6ce8f8a2a27ab023b74f4504235248a2390f8a1e6a50042fc2b2b2c3b74ecd85cf14365552dea4cb2653915555a9a8a32fd50915452a7b22aab072b19b3a5be6c59120578f901092582c808a163850771258902bcfc808412416484d0c142b3c2830fe07c8da9e2614d2bc0cb2a834223f11023f4647201c913357b7b66625f2f6ea3dd367bf24eed2b153579565eceaec799a5d39a641739198eb3a921b5e500d6ae297455877836462692279eb053330a3e3f2a6a2279e266d72bc16d598f1d47a4b03df6c574f39a8095a43eb24d8f2a4947959c2ad4013509242a598f80b75bedd84b2da265bfb5c45e25e971308bd1a0756f310ccb6ca9699aa5d4ce637aee507ae4980fdda534b3a0b07d51d75eb7ba54ec3e5c414cec54b354b2622f59ee43256b90baaf465f627fa9248b3d76bd207962d5d26690dd5831bbe8d973ab02aeadd611bae0d9f3085de8ec1b7b1ea18b9a4d7f6caa46514fd9b3dab229dad3431305156aad5a4d61eeb4e7bebec7d53414667bd53d8664800030db69288c769a2a7c305e7a76dab34545bd7896f2ec1d277a0a7f4f618eee944c378c4c7709fc459980deb4296d3303deaedd9ec59e32d69e7bee5039b345a1d27791e8dc77b203a63aa12f66ccb4a864f659514ccc4a8ad7be2138ed23fb8610691fdcbf7f9aee70599bc80061020731fd2bbd74ef1b02a4df8566f627de949780b17d8c9f1be72560ecf126d907f7b939f1a20c239732dd19fffd38472a99ddf097ca4252c9da844a529d8f08d1395d721769baf31111faa7cb92d31498d9f8dcbbae7af8a04c4dffbe7d439ce892d3be2140a0871ec20fe5cab3934b191fa29b600e731b1570ed51d23aa9b5b64c26d34d399772ee3826a65c9a4c2d53ae3d2d934949ab070608c4cd6c4edb946b1555c4be045f3f2252cee932e5dd0dd7f98810519373ba14690acc6cd32702fdc3d926175da4bf3c73c3a9ce47046888902eb997dfef478409888fc68cef38d39a8d7ca1a30c40fc34101ef4f53cb4907aaa85d0df0ba1da08e842eaaf36f23df4fb0d21bac93b103ef9f911a183301d6b1fdc4d9fdfc97747e3f323221f1404e920ed833be95ff897fa91b9e2e409c3c9ec52c66f789883c8cf3fc941e89b7439b3f536394a2e67768ccf2f26860cfdc5dca05158c60d3268ccc895880c939b7c394c4c629cee185a0c423f5feb9a9329e1c061ecb9e72f86e3095db4d3698ebb0967425b95cccfdee52c12814c1efa62f03540644f2468608aece09e48c840173b035becd29e48c8c0ceee302fe7321f8b7439b34507519d631f11261498d9a2df6f08d045ff72fef7eecbd526e77a13fadc65ddae9781089dfb0c0101bae895484571badad8f84ca62f07f7252cbe4897204d95688a646e9bf10855953d657fa9f71362ee926efa136e5ae0b2d2f444f1b3aaa89222d9d9b3ec27a3cfb81e4a4e8fb28f1c73ffaf94e71b42c469da1ae2d33ebe73e79e019bcd3d14d2250566f6a7cb5fa4392515753d7af617bb3981616426ea0eff22335137e91dd5c992fc88b42e45e74cfe5d74ce0777d05fea97bdaa4c72c7e5f23b17a4eed057553f99767105fc9d88efa02e2a0aa499a81b147ab6b34ef4c584340a834220900e52737c9ff6213af7f90d21d274a79219924a6647f94be5a92ad14ffe9d76c13d33b97b722251a5a13f3a5164dcf117c3d19f8a3279863bee5f6682eeef5cfec19dbb290761f77750fe01fa4e3747f797c773b98efa01b39227af1b94e916f3b60487380c4ba592e8748b489f1bbc0909249174909a232505e574a3e892ee91f6217ae81409e81b42f4d0415f4cf7c5840e3ac90efa62444fd4df6ff4c594331bf45907a0aabf7ac8ac3d88fe1df40101d225f7d04326e7324ccd46c420e8069d6ed0bf5cfa085277e8a29f7c312126eafe9ebd66af3ddfe7165df47d0f5273709c1683a03b74ba43176993ec38532c2a993d94698edd9ec0d92b8d4d511a1afa6353b4a6e6e6c68a6dd350205d44aba9a1a2d67b3727704969761645f6e99dfbad03f0ce5dab03e0eed50174c77b7e3120d5408cc86e4f59bd1113e67ec27419987fb0a7ec5e0f7bcaae650ab3e509b39981c79bd8b57c9d4e7b4ac29eb25b3f1d432a604fd96f16b9db73bfc7b4f85d5afcb4a803bb1113063b0f0a739dc25cf7b4c8bdfebed322a7c522eaef796c30f5f475bc6c64b17361b8bea09b32349ba2bfe2f52c5ef43bae963172e91ddbad9611afed32e2a581eca0c721d097c05a4606dfe454c6c88e936f5ac648b915516dba89edf733fbc4086806f0871e34ebb0d8533dcee4cacbdca626b72d0ddcb79793a7ebaa373fef36db5f9909baaf7b39084b2393844a097b23260c47c3d57dddd09acfc6de7cd97ecbdfb76cefe5ebcb4bd4ed9d66aa036407bdd53232f656d31c2326cc10fa21545356497568ce46779763e87ea9e20e4a61e6173337a55bd333d3255db279b00ce009739b800134a860264cb5ab3a4331cd0954b9e1643fd90f1b6a767dd6853664634d18eeb6bbc5b2efdea7be36b7868a1a2a2a59a7be36b7e6d65c1b7aa9b836b746cbdacfae1796c18e9b5c76b29275c59eeab39f79b76ddb7eb29f5d572f598f3d653e53a5c6589d71515e3859cfdcb935b7e6526df77229e8a68ceb33309796b9ae5d0613ef6bd532f59a16af4cf74d8b578b456cd7be63bba65d46fb96e9ecece5e4d99957bb1998fa4325b39c6d6276d29eb2eb64b7a5841fb49bb1d853f62ddf2be08cbec45545efbde9762a086490ff4bd5288db53d6196e3934369b6b54b2a69adcf54b13cf66489b8bbda2c676bcd26675b70f43a553d439693dd64376c18b2eb332bf048467604ef8cb5abb51a5bdbaa9456dbb23c568b4a56fb97daaa28aaa9b62dcb535a1e6b5b20c0578b16cf54a919965d91e1e8ece6fa643798075b9d5d5a9ecbb2a75b85d2f2ec8c65b72882c2742731bdd51487acf3f6dc2d97a94d25eb572b8a93334ff59c2e694e252b3d428f5414ada84b2b5963a5e461579a69a7941e65ba7826138565dbe94b1db255e3af0c12a4365425c3de1ae8cf1fcc20e41be41400aa6505804d7b58c130020c182fb278f1c254049369d419479108a2180e210c4b422895402420480a028934819092327f8082329aacd1e884002727a201884426023031c13e601c720985402d20d01780eff3583caf4b751d87e2b8ad876dd378d0b40c005986ed8061970ed7be2bf4e48d4b4fdab8f4a4ca6c395963b6d025b4da79bb3db7972619dfcb1c7640855e0a00e5e54462843d9710853da9b0e717c097730c6828bd9c6b80413b4043b0ff929a80a6604f19d01ae880f2e08504ac9a02806053297ea037382084139b42b16286951f1ec4c003172c3d2c5ef0e10a3e64e14fd83309338b3d3f6710300ab38c6eec110e650c2fdbb36bef90004110e3b9695c49f01ebc02533a35106dd34c6603b99bea20571af0bc06ac0f648d2b25c42fe37e74bd8aaaad2ab4cec3654cd2c6db9ee39c47ccb9327f3fd2391200bb8ec842089f2d96764ba0f356bf523a73be8c4afea55aaa6952bf92f49b7e5e966e4a3f55e657c4d0cd15954aa562c194771e210a4f5842a7d1496b778f692197ab9f58c4ddb410233bbadb0bc17ecfc39ed342badbd7ec567799a6db96fd5e0836b590ec577f74aad05fbf4d756211dcef7970bf5a88107b4ef3d8de6921f79bbe3d6559d4fe826551d340766ce7382db3a273b5154dd334edfaedefa5e754d9c1301fb0ee95c40f252a699fc4cadad32928163d781f91c40fd096a49de5e4992d5c5a97ad4725ed1195bc3cd2a6a8a6610cf230a9c2be730be5cc093646a5982d292736c5d1158e1193bc0733cc3cdd93661675746f7b106d6731984139d3838ddd7e40e00d7a979292929292f2e980a2cb1d40ba34c0c65632c98243874dce1626c09dddfe345b28ca4800aed8f6e50088d029a815db7e94673d95948a6fab576cb002e3460d6ebcb071850d930a8eca58830635c41c6690438883111c4a272b4e2029039274430c6e48a101031a28336e668c6414917112e3053144da05da2413c9f82d7808060b60805e54f1e233d998bc71056327aa40e4c214845b898a9206a200cc48272061292648d9d8b52dad4129c16c19ddd1c64eecc908668bc8fefa708836763a0515e50f87c9c67ee9a8a89287bddd0ab1ad0c8a63f21a379fe476934d87e6d16c770a7bd7be18ecda17d3fd0b22b4cb23365d4266d31d98977b743b2ad9218144252dcd9b26614f965e9b2ddfa9f7ae66247ad41c4754d2260103a44b50d325cef406636fa7ba84b14b72d7fd69ba9a2af6980d7039777aa0d741b58eba63a3ab794445755a022bbbbb7d0f24aaa7ed5a847be53609ac6caa77680ffb34db6974561d74df4c5b6d47108f6a13d8cc6d82ce64588acdb79d478042915d82b36e6bad5d91b1b732266a0adba652b6c72437166f654f4b3d169bd234b0ab9805f675dbc4bede7174aa583a639eb66395bdf5b0b7db207a5810c418659e36d3de3806943e367dfd80c0bbfb7801f0da99eeba2d3856b2561b5c82195851f6a3a5b3da8de572665fb6dead6a3038020f18aead2314fb5aec9af1eea877330c2976cda0172b30cd6077d7bb793c010f442184277842e9042df00460d8bc9b49276003e7dd9c22041e229d77330a083cefe6110a4af079379f54b16bde7607f26e16c520e4dd6c7283dd61ef668c64d79a434ed837877627f26e062939f16efe8c60822d46decd1e0ab640f16eee90a0e00c29decd1ccdaed9db1dc9bb799b62d7fced0ef46ed6aad83573bb2b79376732d83577bb0bbd9b311c88decd171176cd27bb1bbd9baf15bb6693dd99bc9bad1476f7c2bbb97601867727122ab8d8356bbb9b305e9846312c7d665039638413a460d71cda33965e5060c32ec15d37b55b48614a8fe764ed14bee89c735e0b28ea6b1618ded8e74de14aabd545b29ff0f52146ec31ed03d34aa7e8e60ac65453c5d64a6b775d5de69dbbb4a6713736ab1c91f23bc855af17f5abd7401c0d90d10e72ed5a5b2d6c5bdfde6579cbd98e6c381bcb9ee84da7b7235b4e256d66632d08564c5f7a63715bea42b2c12dc9b6f5723695e4887058d41cd9f6e200beaa73cfa4c0dbbf27eb26677735fb12db1553c5b62a19049655524f59c89e685925357585e992a95ab345dbd76dc3a5aa64b6e1cc560eb658c5aa4b6db5b594abe5800733d5f6975d50644f6c7b4d233d85f414d50ce8b5826640dfe833a07fdf01fa64646660301a9b1ad5936bb7a3d1e8e41f6623ba3da941f9a7451a531db3c192b0277b94dcc39eec4579da93e8df7788fe7d17bdea1d27076919d04f5ebf1da38b443f114d1e2b16f11df41ddf41d73f8dddecf82ed232d8bfeea466f41db492a1341fb5b1462aa5d92aa09a3f1b16e1ada66955d3b4af6c1ff5e1b5972b5bab2fbdab3a387c38b52db67d19dab5676f9bdbf52a95b529b15e747222fa48632b21a39f6851de58a277144f8b45887e721ea3a36821281fa1688dd9d893bd90cdc3b42b0bad0bc5555dd7a59a2a36089645b36c9799d536e6d50cbb6dc0140635311546535f62aa4e155e2acb437ac969c15384ff00d4c196835d6e3893083309130ad30abb6a51fcdca68b99e298323d821385cd3adb0a73b0c8b159b6795a96755bf6ac8a99c2de7926db86632f4de2a8e6585305249954c1b180ba789a0e7753e28e60b1ed4b0ec9782f8b5946abb581c5a9199082145a32d0428fb581c5c2e25494d50178051c856d9590655b5b31a16daab1254b2aaafe563b52493bf7b55204cbb2d3c9d3495d048755497b165693b18cd1601ec0d8413b6851497bc3e71773c3e7270300dfe1960600f80e32b816d0b83d57c574d986d01bf6b8e786cfe076b49e1f8e853a0f39641914dbbe1cb3abd24c76c9d95c134a318f663cdb3ea41886a9bc775bc9d6ccc44417c1a56a834befb816703693b4a730956ece86ba507d55b3dac830bc0a83c3d77730bccb0586b1cb4b75b9c0d72e2f55a5e08977b9c05b9d30d8c443a9a8a8a0502a9f81e1218b34871c7e7d470ebf4e7ff1c0c365b0e7f019986e04e4ce938931bee8add626fa62a83ef962364e8437ede586c35d51e092b3d156d3a3b5fae8be5de7e8b7fbe84ecf75b9cce5cc2ebdb31eaddda559c5a17ddaac2c9dfec744b2e9b959ca537344eadc9e0763727500979c8dd691903807daf6dccd6cc1f67590267b0feca0f7b8fe3db3c9ce033be83cae7fd7bf0bc10eba54d92504742cd345808ebd0748d5e3d35685fdb2af5d949c0d769b062cfac8aee6a9ae565aa6295f0c3de98b291de39b648e88a82b7100535d333260fab22b69f4f48be19ed55dcaec20b59cc162ff2061cd75a0c76503944087db00de4e378ec88c0663adb5d656b2e2b0d61ec71763efbdd7b3c93e1cdaa6c1db6d660b106dc399279a6d395ba6d256575b5197abadeebcaa4b03d7b630ceb6664b8e2c93a1ad30fae5d0323d562f2854dabe34804bce268a8a2a33550f4d455d32505576e9177096a9e60dfb89055cf777d03f1d43be8334ee66c8b65d03f1b46aa9a35c11b32f7fbf7e65313bde711d7b764ccb18c9f40eec58cbd42436a644f9fd636583369c9e6da9d8a211eb4f17951497a03e35dbd69f8c761c8783eefa5aeba62fcd55d96030b0101718b44b4cf56297982ad4adba9ace093470d105f00a380a4ad0aec03af8c12cc295013cf76573bf21ba570e881244826a97e28633378804d5d65eb5585b4a5a75cb326ac1926de9d6909ab2db91dad55baf0555da714dd8f65aa6c321d9f6d89539561274706100d36b082e2f151d52b7a81c914ace2fa6f654120adc532d3eed8964c86a8380d06b538840609b1edb5457ecd25c558502df4bd571f4b6b5cbebc9d89ef0ba27ee75dd8c48a52e591557d6822fb33952515945691db75d4e785786a9a84ba6af8adeb0b7aa2e8569cd755f432a75b99cb81714a1eb5261eddea436b5c6d85ab0d954923a818617b0aeeb4d581864c0a6c45b0bc8b0ed5198cf24ed552a95c684b6ab96a49217f64924bbc96c2a692d0db822177769ec69b5d17434e77ee6c454f6343a2bbb63915494f70b3b8fef232dd220b29744bad1d4c05ba40702eef2da7866a24124a836ddf55b82b6c122b145409f9f176e201713014bb581968a22f1514d2ce4a8b60e54a8769795b2586faca8244d524bef4013935277d9802f8cb3d8bdee80b2d869203b40c73a3295a5ad918ed5755dd77515c79eec4119e7faf7b2e274af2283c13cd9ec8a79c2c972660eb63de66dba087e11ec245bd11b0e0a76ac6f6673436f3936f4c60a8db48e285f35373605c2b1298ca96840f9d2d813ce77956746a4cbba5c04d360b06f3415555f034a61b281bb7dd6a0a84c4f189a6fab9cd676341d4d07f461a00f7b42a6cb13e95d2eb009f3496152173939f9d14c77cd5a924a6a3bfb7281c50da423bd9a673ccba2a8e446440978db6c2a696f1b70b9d9eccdc6a6288cfd76e39db3e16eb81c9b0add9ed3b1a9eff68548fab4a91413144cd2be83f1cca6a692f6dcbb911e7d07fee8faa3d1e8323644fd131dfa0ed143d70f6919235aef08fd44cbdc78e83236748c9f7c06e6ca628cef31fe69192331f48eef27df65b0f955cdd94c154e87cbe16e3267738d33ded36e2898f65b0df717ba24496dd2e54150eb922e354f6f2b9a72a3d9f6ba5ca999c6bb5cdacd692074cb653d8d15141494957f5ae6c6572e6343872cd67f9f81a991c5aac5226afcfa8e1a970ed7e132d86b7c06a6237d38e896711ab9879d6d3f235b514914cfb657696d7b1d58dbbe86ceb65fc92839876eadc7a67eb62194a6d37a5ab00dd956254f18549e303de40953234f181d66e4b957f284a171439e5b060f3ddb3e87ec0300fb1db4c653c9251acf8d2cd6d31e1b59ac1ac88eebdf8d9830b42543792eea73f518a99f30b5d65ab3edddc854c706dd29a9cee62e66628672313b106d4587ec468d2cbc6cc0dfafe38bc4ec15066731d34076e08b6ec484a92b7bb2347adad30ccc65b511fbcecbd8be76573bdbdd0ef34499fed893556dcbc17cbfb099817c305b325d443467a68150d2b68272b1bbf652636dfb8d4aac92c381e05ab5d8691c74971b4efd8ad01cc6c6b35cc4c66791d08be06bb9dc76361f1df2b6ed64db8e3dd9afe4ad67e3d9f635f2d6da723611fec9edb1954dd538ca431a53e17ca9ecc986c62e9a954da9686c55235fab1a9bca41633528f9aa517999eeeb1bcd168d0653c589cb89b9014d8ac9ba6a48bbb42c1a9b02ddfeae6c0aeb4479c329b79c5166712cac66a6e694e28a0d4c0e06dba6b82ae64779c27c30d8901a4c355b301a9b9a303075a3d9f63874516cfb5b067cd25a0ea9359c4c35fac422b05f3b40ffe877d14cb5b2297b954d896eb54f25d2db1558b76ccbb2366d599605d283300cd344a0ad26695fbd6bd65d622a9bbb06abba5476fbb66dd68a6c53f15298bb8af7cb05e66e78740b2f07b6725cc96d015e61db2828615bae08dbdad81367a35d8175b0ed0fb6fded0297dca6c5d23111b076898980b54dee99e4a529d465285ed4a5784bacccb472e33aef9e2ebdf203bd6a1188fad043ba0cbd7e665fa5cfaf8891e70a5c8eac11c98c3cead41eecb31b60fa0be76bc2b6f7b6d8f6dcf5b3ed376db5ed332ab63d861dd93634f16cfb51c988a4f6605fcab3f650227d39ecbe345365d37c41c8f89da292ab91557fedaa2f15b7666e92926dc171042be66353a114f3646f02ad0a18802b39fbc57fc418b7bf5d5494fe49f018bcacf8b98e18016348e9d74b19232222f652c791872d9ee620d806ff523b18d9ee2bd352363293f8c066d70fc7b5ef0d0670796fb6fd75801d5b845168283428ab95fba381e4ea03f862aa15ab1b4671efcfcfbe9ad6263dc4480c9d1d019723cb1486f7a41494d189c80487409fd7719b9695765c35dc9fab864c04f7a7a2b21589ba5c5517b8e3b1277b4dc318047f925c59f9ae2335855198465af3f8c972816ad78ba3c651f7483fb22acada8f3e15d5454dcd2fec8c492a6a26d1d1625b725cb22dcc482b6967f75494786d8854d27bb14bd216dbee50916807df8cf866db8f7e6c6ac28cbad47039fad99647c31a880f9227b53a9b6d3b9e8d67129d9c4d6a8d3b1555925a24fb11896dc2b6ef787819107019b2b64da273b367129d9a8f2c9b2229a9277bd2163a384772d04d6a1901d75d8eac7035b272c4f8ace49743c6472495b4236b08f7e5d036a945055c86ab56922174b16717b63d35994ca66b9534852bfb30a7a2c4db8758b02a0a1cc3d518aec6d518aef2cb10c92563e8cc0273a67fae9b9482323a1199e010e8f33a6ed3b2d2dc29b566f90a0e8923824966ab9a89205b55d48633b2469d6daf3d592d58ed2e85bd14cedea978a64c69b0690ef7fc88984340c3fe3c1b5fcc7d6763cc9385a4089be6d0a65f76abf795952f66ebb428124e514ff637c29a8a2add74ada2ba9b74f9c3dbdcbd775c0e6bc2950e30f7325c855354d25e41f64827697a298f48eac97ec524c358e8025d22d8215421e0a0bbb326ddf1c48c1ffdcc96c995a311f698c5b60fe5722c022b9ca2a22410aec29a1726d368d2454a1f4bba09cf74939680b747dd69716f7cd3dba6f1f65fbe933469e36f7c40dc3d6a1fd8c76bd8b7950f084c7b2b9fa695f7988ffb11d31d8fe9beb8a67bafc307c41d75a7c3873b9e6db5a8a49e6d494aaa26b5b2c0e2c197a41ebc1a834aa5f09e2c20fc60cf992abd1ec61753531d8b47ca02a915fea586ab325c6dfbb1a7a2c6db4f8a9a94bc2f75396e61db8facd9f28311087444320a61b6a0dc7e1c027519fde4a5b699bce4f04bef03bd047d2fb149f752344271d15ea694606997232b75bd0c7739b28c411859a6bfa31ffd281dc771bc56c9f1f5a3e3c77713871c6aa8d8b861cab4f430172979f4460acae844648243a0cfebb84d2b9dcab0d4bbda7b611936119d8c505248602914471d43c60c1a3304bdf0c19ab8331d9da9da75e4898eee79e754a1d301b764c0f448245151b347d65149da428252bd8d0157305cec04a5995d7bbd864d80af631976afd97b98eeb46eecaebd3451daf1c1d9c25dd3de59bbbfcc651107e8dcebe6ee65f15d7d771ef4de2b0ebb41cfb2dda0bc046d831114bbcf34aea487d5e069357ba9e8e60aae57abe4f73c95017dbd68c629b8f75e7aef9cf5f7d6ef7bef9c73aacc21a4b2cf79213e22f09651497bbd28e6cfae94a60232350a54c942d660a971d5b8a48cba52f261dcf4a5b8290a4542247ed26f27414b6c8bb4775b5ed1b218f0f692ac710475f9514f344b3d120e68a12a982a49883ad498a44b705f15982af53f3c6f0b5a53e9141e983403746692f554054a0401f9c08e4ff5929f1c3bd125bdc94b8a831effc5d2499ae8d752a6a43b44bb2fff94baf9f353a3a22430916cecf5e44a1313098c11094c2474d4049db92c07826eca2837d5b6db26fa6c4e0feddf7bf860e7a1fd3b8fecdec7aa289f1f9b12e23dbbbdf511f25d7b8f4f7b5ab3275b62dab3ec56d3a09659b1ed2f0cb08ec57458d60a97da8eb6435de6b6d77e40802d8db74b6d5fe15a4c09dbda1f1aba025cda1c9a5351168b246cea07ab73e9b5207a4a2f1718631896695750bb6db024934e0bba7fa9f74b382c09a683c4f66030d8b962631abb30802f6d7fac0f66e3b33795f57ad06d7685a3d58a8a536fb6c953bf693d18708402a64b01901c0bf008b682487725239052b1b1a5f961b668e5cc06951498d9a4833eca6210f5a3d78f2eca227d78d14f72e927e7115ef4d29c2a9716e7adb327ccb9a3d7a359072a541b44826a4e95128339660c9d2a768a4a5a6badb5b1d6ae2a596357f5a6870e0da88ececeaef50b35e509bd445b22fd58ba781ee1472d043fbc881f6ada63f292a63e3f5097ec9a01979347a70769975307c5ee945d4e1289f4fbe1009f029248f79e72d04919949251fe523f0289f0bf3c79148084c4e247402b883060aad80db3bb1e589b3c54c372123f2a597f71ae262e0ec343ba29a3cc541b0342bf7d9eced28573b17472ec0927bcae11eda9adef9ef77dd314cba13d1ef8031d5c8199e812db006682ad083b3c1b3ceea13d36e57da451b44db1d813f6eb920c358b4d2901ae9474b94282ba244fd2e57d36132cd2d83b2f6b9a9d30b5d6fa795dae2ada936b4dfd32f561e9f1993e3e3b76c3df4459f40b07d33006c19f242f1c1696dab227ec9a863108b66a6cf60d4e8e2804c268707e6ecd5dd516c647a9ad93daaa353cd4c6eed01a6b5994c652d5c674d49b0bc7fededb63c7d9408e14984e1518cdad397567632f75bb1924cd4a55a2e8c7a73d55f51d83ba87dc3d27ba64d95bb9b247fa9bc976cda6bc6fd9495947a6870c49b9f721dabf77d6dbb6d37c1da924695a1d7bc2be43c3635ba248eb08695104d2a2488b45785e8a06bd8bf48eefd9332da371d98849595bf6c69e34d1bb0ba7a2e6e573fd683cd682b2c0766398141bc34cb031ac8a8d1ddb400e776feeead684ee6ab5122d217d74d1314c3b86b1f6090aa731d589be7407ca29bf3b3b3b3b6037616856580d4c77a9b063d831d535d2f7c7c76767e7eedc9d8a42f9122136a8f6c9b15f3815453726ca39e61ebdeb461306256b4f68609f64ed095555030e8f7d7e25947c3797ef2adf1b7bc23eba35f684ddcb17c79eb05f9b9bb3b16941231c768ff414b4c0f4d8e8b27436f6ec034212514ed222cae77db4ba37e0b15f2415453af6ab736bb0509717677f98a689de81b29152d601d2438674cf3e24e51adda03c6130954d5d2b7bc2ae692b1145ebf8b488f2cfd322caf71dd9bf2e84925204742e1b199d943b9b635329279d5a568e3d613836d53de518f7ee3bb8775ac608ca6542287a07f7142d033aa7ed8d3d81b288f24f44d16211f7de79d8fb8eee6b65354d74adf68ff5b92a9be20e1ec17ee1002b35acbcb0d8d8ed8dbdc961e9ecf06cdbda98cf556373b3b1d3cf880923caa5f5f11e7af62143be83ae89ee141aa60291214c752360b4efd688f45d61b73d1555da1b7ba3691883e04f9258694d348e4d858e9ddee464c7581beb5ed256967dc268f7da79d8675a48767bcd5e88f6fb095323525dc484a19a3d61d7ea1a7077ee25bdd11efa9021deb383b600658c266763efb29b8d5dcbd8bd0fb3d9d843d80a53659ccfa6690fa6eab918d60496f5b08355bd3a76f4d0d153818a2a672b891f5d94d8013a761c1c820cb2c60a0f2cda644d9d02d01b56236d2a8902501724e80ddb4292844d9116090a8218dbcda14c122b6decf6019b027141a3a9829dc3708c36ed2e4445759ad33f64f9871095d4415d20306fd85b1a10ecb1f63609ed990fed54ffa07d319b46e14dfbfd80d0b427c4d5f941882bfb01bbae5b37bbe1200a52d0139310e8731e8b2e960e0158aeeb06e744648243a01f6c0afc401d0fd4015dee7565179dbf5802304ff6f3abd35ad0f597aa44904a5a5b93819a65aa0851496fb668de274425bf5db2d85a4113982a96ee728a61dbebd03fe0e9a3844d75b75b767d0220a855526ba2ced04c6b4d4a29adb5d22e3467cb2cbdac97f4f24a79898d5c4e5e727bbef4be97206ce2f28d5038b014ee697af1f039445114c5b004925250462722131c027d5ec769f41955b96e8e906262b8dd5cc2db5ed22b6815d8bb2f945d1fc0e5f4993a355b2fa1c46ca15bbc3e6d28911cac4b70d30d60eac4f674a9959b0e9bbad505b0bf6c66b14c2bb1e1eb25ce8254d2521e5c01ad4425bfad12f364afd9e9a3b326eacc65312f74b3a2e6edd574aaccdb8a5d72af606b350e4d3bad664fb3ab94d2cfd9daf3d3e68c07ddfce58d3e3f0ea458809ae61cbba501c638171e7ca8a8eed703305d78a037ae5f17921e70ee4c9e96f77d9fe779df27cc964550cb22a8c522346ddbb60bb9d7663ec991452b2a79f954922e5102a63f2f6ea23efbe7c54d9f2cb365fefa8b4dd9f8751d3675e3d791b0a9945f248d4f2b437fda7f6192d7c34f9bc2e1a71cc09e4a5e2fbdb381030e38d8b061e342ea71f88411c71a591cb558448daf9cc78deb70e32b372ea4bec627cc28ee701d3e6150b2b883168b40f9ca79a45c8794afa45cc83dca27ccfc664a46c29eaedfc83aece9ba8dfc624f978ac6214f7b3a699a739d7e21fc75da533aa94b7283bf4197240d5d7e833274096ef03174096a5de20d3eeb128387a14b6d9301bfb86ed2f4660c78cc53cce5ca9eddc35cda5dd2a45cce779f2bfbe42fd54464f2142d84dee428dae442ea459f30a12ccea77cc2e02c4e2d168171e8295a887dc83e7421f7f838a80f95bc0ecad74fae8fbc2f5f0f5dc7972867ba41ea128079e3ba0d76992ad72f113680aa87d32c53e5daaeebb70c38d35863d9d7ef123c655cda4755dd93cc7e9f07eccd42075bd8e5dd158a3dbbdf30a96ab60cb11a0fba48f75af70d029827fbfab33721341db5f1a8c6827bcd3feacff68a74c7d0804baad24e87d4d48f8f4f4f4fabc5f3c3c4629754d5694fe0d0911dd215a79220fd52cb8ac5d69cc065d5d958d09b8aa2bafc517f3676eed32aaaf23a4d2f52aaa9ca0678d32c2b95bc6a80333d5a392e822f7da1c096d5049dd12e0d08dbe801283cda9731b263c6699c7ce934b48c689af16b278d6c6f7aae4db286286e16b65a7b103141b493c2621795b4397eac80713a1cf2c60cee9a2d4d67e2a5f07893cfe4a3370933b869921c2cd9b56245c059157099adb2d56c09a5982a52cc5418027ab219ef39532730c1a6029e1b45a5473f95d401fe72d45dc7711cc7311ccf30c724cc01d06830a50b80868429dd071a169852ea7a39b6e16218b90063775c98e216b38503c374994267852e0b132506f065f7051f4a2f61ec70bb17e805bd41cf65d354a1d7ee8c7c6da4160b48056ef3063d4bd3c120d50c9212528b860ed90e2baf3a142b1d4d73d25cdaa198b73de63ae9680aa7b8f4c8d2e13bbc24b5ee75692eed31d31d8aa4d6d4ac56492deac284b629cdc244995023aa0db325a768dc96a4336cfbae2e91893a74d8617ee1c522a59b7291191f7391eb946ed3c33cf70d37ccc83487293dcb3be4694f3aace41b37849a58e998c71f4c15204c15fb51d3b4c03aad8aca2fd9aab1ef82a5223bcc9b98edd6d9c0903d756896ec72dc538786077b6451971da0a0db566d8b7aac6d28fd5e2c6d9aa916383bcca44dbf183a055c86ab300469d828982911cc124cd4a52ef7a7d342ab059eb8d9ad8aa28eab74528bba7cb690b2305b5294501794d932e2c26c39a12e222fcc16932fcc16bc0575098561b680c4e0431a03890ca4252433cc16edf6a433cc961fca63b26437858e6792f6a41610b61a6c2360475deab2e1d01b364c01132ef6eb8bb9bfbe1c75935a9dadf65ad012d906451375a1b737c293099bca7a0aa70857e16ab6d41af5cba1ed3093022e4756c76d5a668243a0efa41494d1892712ab585a61992ad8cd27a5a08c4e44263804fabc8edbb4eca3118a205c8522185955a6746dd2ddafbe944bb8e294b24cc9f40a025c71d42b373123033530464aba4193aded01749aa7ca9d0d2f2582c23cd997a4080a339595609ebaab5610605c574050805415856f2a080a4b3e85f14b59a49ff119982e2b01cd96814d814ecc13be2135a9b5a3f419a577a5bce1d4bae15823280ca96774f13a2acc962a5097ed29ad366cdb5ac326d97461436fd8975d1aba4e49b7c5ee7cba2521c62f371cd34d20e8e5f107f3867d97c7204c157b2e8f48f2288479c35ecb231126699f6149d8f69709db5e84c214e68d72b4c2b6736f7367fbe6b9c5b943ab065c4f757509bdac0f6bc255fd1435a65b3cb24c3aac0957350430d68a799a7b0344e669ee7a50b447964d91570449fd526905859fd7c5b65818c724a206b516a329ccf534ccf5b4d65a698bda936c6aa8bb414f822108fedd8a671a3548a303cc5351f856773415355e7c0c10490ba42d5017efe04b5003e0cb19e0906d7aa977496a95a4d6362a49ad5d925af72dadc3785af664c3d5184a118680ba80c211cc968f04d425a422b4c9acc0a12e57347e5294e876646262c29271324249213dcbc827a5a08c4e7648cf0923ca655883cd9b5f0ed3ab067f7d4550988ec79eae2cf2b8ba9e6c654f174c2814e2e97e664bdd3e1d4f458ddb155b0da80b68bbc16cf970405dbc0e8b8ae2906c3a49eab6435dae8c4f8ac237e3785351f7a7def1d744977477273f15b5e150d23e94e9de70a80b2814da500e2fbae8bc44e14f6e115c925a2f0ede54547ec8841ed39c453b0751c81351ce3e1ce10e95f0c1725b02f850928c5fd27fa9267d3cbe7e43d01d02416b413142e2374865baad5b8c014383c20f1c753963d77737bc2c0ad716eea63a6017fc94316bec1d4c54c7e8c0fc6277639e51d834e30d8202a4ea968cac8c97a69b7d7a69b2024cc1b6a61168260f6c6bc2c01ed730966104c37884d1092315462d985ed7804796cda14287c8ceb6a115db7e4452c9d1678f3d3f089a3e7eb23031609326f5f0e0f2f2849f5f4cf85349db45399e8e37bda40f479df174d43ee84724a4964e78d36d78f0e1c3fb309d5e7c633aad285308ce93e9e33b531e75c63cb246241545c79bbe98916e18e575db04fc4d2f0fcfe5f99949e8531b8efd1743b593d511b36dca9dcf926d7d20823d666ddb6cd57591e37419ef7a32b74d79ea90c1099b66d00e31eca7927609b81cfde06859db3c5bce86b3e56cac4d671b7fb7896691896693dd61a62c1e1cc3cc04a8edac8dd92a5b65f6b5b43d5b6521c844904d9191202b4156939d2043414645a6826c05b34574ea62c282d98243d405f482d9f2ddd8d48c5f9e1b85e9328579ad306f16e6e5c2bc5f982932cc33cc160064a5a3481a3f5dc646b1405d38ac455a5292ba7809aab2548906cb9e3a1e280df2240d72c60f8640b68b7fa9a38e4d4d98d6c8b3ed675c618d4dcdd0a3ce857111142683022e15b96efa6c9957982d1d10f141f0de4eda02dc6ec7735dd7755dd7755df7de7bef4b90f4aa4b0dcb6092f8a6627c5351a29d4a62194c948809e017bed835db9b3d6613ccab797b0a9baa96c121198422834f64d089a902aa88173161a2c6204c726455b2bbe6fe992af6622e415509d26cfb31085d6c121a26695f825118c9317791ab94c51da5cff80c2d73872ca181297d86d453927cb6bd30c0e308aa7e76111486d4f2541525054a5daa8a9eca0d093f3a6360792185856dcb70458661f830fc388eff17336e389a667a19aeae2f98668d4d76b3edcaa6c61fcc937d116a94b0c728dc8cac22e5fd9902bb011e9350173a75364064d7b0e6e6bbc53c759690608f5964c7711cc791f398d098c04c80a65f1860d3c5908a9d3d0197236b84310886b7181153c9c67ebf18eca31fea02e3f6a3348cd4305b465d509717b71fb161d486d9f2dba3a8509e40810265087519dd1e2503b3e5e4f6281a982da2dba3d0501793dba37060b6e0dba37460b6846e8f12057501dd1ee503b3e5bb3d0a08668b777b94954dcd38d5c6711cc7f14e956daad06b60889932bdf4c686430d197956b29230748c17f9a41494d189c80487409f37a38e01005ee6045c86ab872bac81f820f9151ebc6953a5cf77a54c61c6920c1310700f5abb94ebc4628b5dcad6e6f2b6aae26e3f8eb4aef035612b284909a9e7a6db22e092345e9ba9d2475dd287a49e30935aa41649c9c822619a26f568d2c43715e3742ff10dca4daa8af2c6bb699929a44af689c8048740a21ebb2f86fef48b116f474fbf54927e648dfa66236b85855ecce5cc16df81259f103c054d61a57534d58723a535cca32983e045f136aca9a43d4a2e2792f2854e896f3a31cf1d4e515133b4095721d5c1f55d4f257db6edb6f898e96baea3e9f4f51de7cd2f1b75465613b0e920f89bbdd72f06b4a9a4ed2a4e4cc8a305bee0e9b787a11683303d7c0ed3431dd6831a0d52b706fec5dedcf554d2765b54d29675d3d73cde94b17758fec2d79b1ebebbde48cfc39e4ac09bc687141ce978ec78d4d970c6045c6e44b67db6045c6e357ba31999f2e5814fab9bde9879c83bd01b76cc4b2ad975b1edbf2fa66a25e08b5d7c0da3b0a663b953a2023cead814e02986ba865154d358ba2de94dd330a6d9689e0101972695ce0b9d6dbfe18caca932d2e5e6b36f388d9798cf14535472b339f6518f6569493963ca2525c274ea1dab9fdf8899c44cdbb8cea32c2c2b2be4cb83a20963edaa473d44f84b6976363eab20156afbca0a0b0b49fe2088714ffd180497c3e4e3b79a8a2ae94645f5022df954147d1df356935151497b906adb877a6c4ab4c2e0c99550cf63e4f12fb2762c57ec668ceb461f2884c38bafb9bcdb741ad2d2925d838a37bd78d52f74597758f299485e586d6194dfa79205955f3fad16734977589a6e442b1c02c9d030b4d62f740d6d0a7fc38b2f455310d7a445f1d8471b179d8c5052481f82beea1208fa8f08fafa524e458d37bdd4435dea4dfa2f56e565c9a7a4dbe4dc97a3dea47d987edfd55194832e5972380eba5c39e99294a1cb1f862e417d1ba6631f29465534e67d39e83f2adaa921da59d9a568e7388876443b1a7bc90b23c64368b33b53be76680ac3d094c3f02fd594ef162ff630977a6264d34df2dc2fb2f69cb777d6bb979a9e05a9446437fda556134c97722a79f1caa64639215dae80442b4f8b569d68251ae5d8544a8b85656585147549fe235d82e028870cf847bd297fdcd4f1743cf792d365098bad83a0f7a6633aa56553249b9265852c0fa6b494906c6c0ab37cba6459f174b9f263aa4b5c4936dbd2df9bf23606fca3de6cd3cb1ff56697b0d8d9435f0ed37d545d52fc11e16dd3cb0d0bcbca0abeb1f806dfdc5c7c53c26297414cbac4b22c7b0f5f4c26ee2d66ba4793e9daa65322ae6dfa4bddb4bb3ebbac2b5cc39d7a130ae1d9e1aadeecb2e3e9a61683083f3e47f8f1339be6f2d63157cf94b38b37e5995df3dc62fe516f7676b1d877abd9a828e594bc405de65e29f9ecada692f652b1f36679c0b34b99fad415e6de654ac0188fd76d5a96450ab4d8338b142481b167162988c11e7d2a0a1b4d9f35457eac601e5995a4a14724d5a4cb718b9c4dea5109ce8ca9cb518b9b7aa2ba9eaa0e6b44f1a150e8ddb4a00bcc20fc50fcb078f12f36244eafdbb40ccb25687d2aa9042c66ab2dc36e77d299326605ceb5c73c93f460b54bb9b288d0b367922168d1b227fb2444f8d9b30b9b4687271e956f3fead85418437fecd9ab8761cdb6e392f167017816c147c91ec09e45f079c1ee382fdb19752aea3e25da197fbe9723d0cb51468d5d8eac71c91efd64e1c92c09f805106c366b648553d49468c79ae892ac8175791923a80c579fa662db87247993de346d7c387718be1b6bbe3ae54c35d18f797ea3e935d39bf21d470a047a23bc496b950c2b196a7144c2535ff5b62a02067da3a9e4c88a015db463532392718b1f253e5af434a13526e1d9d633a15f8cc9bbd94d1c14bf138bb85efa0ef2333070e9694fd362809ca16776cda68fb9ac2f4756f8efc33159dba44bbceb779ccb951d3ef4f02ff57ba961f6defd58d9227d81406f78f7fe62bd0cba49dea2a8e40704de9b98b7292a99ad340c9efc5a367579be9e6d3f9fef275b611e9ba271fbae6553376819233b4aa7a165ae2e682007362a98121270b9d1d81f7bba3f2b9bc2b451971a0fa879b60dc30db280993046ea4bfb534724a30ef62d40e451faf54bcb4480063d54a8604a1a468b0ef8c0ccb84c13170a276a3906acf2a8840c3586598e328666660400000a4314002028140a0784a2f17850a86892f80114000d8cc44a6e5e1d87491043c8186308010200000000028001302400538f3e4ac188ad5aeeade7329f60e2e5c18e2d5d71617782eb17ec05a6e1961188e49bc48896f5675ac001128a05f0760f580031d7a05643aacb6a38afda627b8f672c0f162a520870dc3d632c0891b1208b357f4ff22471e25404125d1f16462c44e4bab5116b217d300f1f1a81ce13bbaf80143006ecfe9bcf184b453e085887dd9594bc5a53e01ecead413b84efbbee0fbf3c46e113d568c46812f55a44e310f6ed42bc484b40cef420d1eece52f24c0d37b8c20eb291b53e6d42eec196ded849f7620586c65cb71556dcb092e1ea7692ab0066eb82c5c9b1fb683f800af3fe903fcb181cfeeb071aaca16b1ed1a5a464d7e973d83448a48bc6ec7824167dc90aaf2313faf2250ee254f54a4db39c647eee374cee2af9c4f97507dc29a462756c06b37d443a329e8b1013b425ffb8b3244a8faa7d3640943160dccbe28da07c02572e20bbaa0d18e4bbc5575bfb8ad30c2d09ddb89b0b9ead7e4b63860051ee3654447cee848677663e2588d66717b17306147783e3f7638d5feecc52727d1604503ba3e4934410ad65d07dd7f48267f1ff9be0767a1c2978dc3e63bec2e668ae0a826bdf7cd89e4a9e3c9a5a40ad7dc1ed8b4af88ed814d968185696bf30e527b8dfbec0b37b95931b2e90f4b7a3c60940d31630b41aebf4a7cde84fa58721a93c2e33c8d1bd572c374a866ebd043876f345cd91d8ff8401c1a7d67ce7ed853537a05afb3c7b2ca54b9d705a5b6127d7ca0a40c513ecfb68948800e1838ec7e703e3df9147487872ca183a680b774f372ad55db23d4878cee6b745e1f2ec9ed0f76affaebe6640631e0f7e18db4568b97d86c407fbe86a41bd84a2ea453a1f5292b1020cdbe8d98fab83ce054dbb75c6807fb2c02b146cc8ccda84e52f146b533a1c67630789182308276788c44ab8dfcf046214378fb2489fdab4b253f8afe41c523e0022d7053523ab62a402246283528890a69d8baf8d7a2210b08d609913818dc81cbe7514915728d28c1d0e5046ccd61d1379939188380259fff054be0474a222007c1ba89cbfcafa552441555f7d722d594399b4aa4212af119daaf72e97e70e20e4a57463f0078c4f6428755987e7428a2a1dbd7b05f662c3def3f715bec466b5b8f1881b6b40873996e7f9a857c0d05216d5261ba2323e592fcc1cb5face2b10b0ac8725c9fb4b5e711d089cf8393f0b680ab52902471d0870cc8e6ab454e8fe8687d39ae8341aec21532bdd69e418a7967be3a5a542ac231f2f958790ccc01287172ece3fc3d5a826710dbdbce0ac9c1523aada5c3d16a23e144833b3275fc38f4ab78300e55b51e82f946b29a904c0428ba6d48284c7fd2ee900dddf2037bf21805f98f58759a005144cf04ba3ec51eae21bfcf746ef0c2e108ee3a8b03e5d2766635e7229f8df4bb2070e1c8cbbc04b5b008ea4358c40e3efbf989273fca89a052a01220c835783171228f14b311a3eeaa191c995e39e0b2732248bcd7c2d95835389427b4515a24806d0484d8afb2f9d2964016d72781a5d09750d609eecdb36d8e6cdf4b40e9fddcd998db19977de9f0c83d3ca3d6db448b3c65a450ce0547e7be5a93ca7319e99c2f91ab6723adf2ecd1a1e68ba01ab5ab198a0551b00e63be2bcf635cb3a58a1acc24953fb4db29ab7472ef795f09f4648e1650036696b95e4244c33c0fc8f4e7e2087e79e25d9ea7856a9c56abde337a05075db20f3f560f500a2b3d4d6455985c1fd1f9d91ea10e2ba8f7e038b4d64fba70826953b9933f3c2d55fe81c579e1cec5fc8d00667206d381462aafb110ac74402b191287840e164292a0a1cfbd3b84a3af1411c9448c446d363c3550234c0670b4198b6a87566de34ecaf2985006497d61d1aaa9013324a31c270829f3f846a83682d0b5cd5a1debd8623645acf1ff2f5a498b42327e795fb137405210439c9481075261f4fc6478a66d5aa2c86c8eec3939d6946f4fd8d00a5efcbb3f6e9eb53f71a2949246c12269ecd995b6e3f31c373cd05f8f3cac6fa953cb3380051a6a4f45ed9779b6b420089d552ef4f9bb10f4e6d01459b83eac94f361510f10358b7e3c41aea4e903f7071079383f7e553726658d3fe1f1299598a6a07640c5e0af0616a4f9611ef155e3288d09245c9f78a0b50514de926eaa6058467e19680d0b5f255c9ea22d7ab41bfdb287eed38feb0d130d188331ca7c7b0337d460b263f2df948b288fdfb2d2859b231a594c43daa240fedb638194292891c361424d628e9583e3091dcf0e594161311971a079c3f46b2a392cacbbb218ef4d3a4d78488c1843aad5cdc04fc4a800c01a04205d2d151d10bb9b9c07f61a474f5fb41d2cac4388f33628a1041c4160c8c5a2ba968040561bfa631a7c2003f81dd5280e796fa0ee952bc01e91f5dd55c2a5e3a781d9d1849acf80a54218c514bdbe84c00df9aea91c3ebacc16bff0f91109ef5c582d58e762ba31d5c5ed4947fc955a17f0f78c40c83d9513f2a6eb23de962956002f681e4cf763f2ce186a75be3d37a2b9e24e9ec1dbaf42ae5cbb674c6f3bacf5614fb549c5a8fc8f40251bd47c9218c7f8124f5971120a2315438b90391250c8ededf65c7c00e0a53eb38744083c4af4c41ed405b4ead449d4fb17eca9d91ec531072339d1349423760c019c8ea503812e5c36a139c1ea3915ad161f197546a1bbc88bfc0f6263adc52357a54093d4fa92c9dbd057bba83992e774dccdfd6e3704a6403451d105f892379569a8058fd3199a766305c9452614c7df144c3a3c29bd7a145d13712ae3235839780c6a45fd0769606555ea02b8f61036dbd77f6a15708ea0fc876b955a1a413f816557de282a69f77801ed1371385c30a235b45bd2bc6360af1480f5a4e10ec5c763d66d0ade24432bccf3b7cc2a5db7dd199d37e89e71aa1d725b68964f4cd8bf7c1144d205774fda138f774a2e7c9de67e55c696e7fc8473ffa61254a06489171794a6e28de3bc6e9d7ccbc8039820a8c130312e56b9789652bb9705b9a78611171bbc76b8f35cc770fbfd5f429138093384309f3eeff12bc726518a9e61d480783d164deaf5987b17072fd26afe3ee9634a61c848dad5ef3e1b04161d2b12ac9c2445f56fe1099e3478d08f0410da70f4080aca1f6f1fabec1e8ebe6411c2c07695cbf1a7167dae90e1651b0b24b673fc654cea6cf7b7f39c08c0408e78123828d1c2024b552bbecbbd0857bd63153e295009f3407d0f4c9845398580c166f4acdf76e5d283d489aa49d36a0fa21177fab085cf0865a35d157b89c276ea40ee1235047a657a35dc23b1feb4d9f70ba9d7dada0ce26bad915a011fc1a2d72bcf666f7616a2b82a7f1d4927002ab6078cf8a2dc9caa072a7d92662f2b9e0388101f821d95f62186819d83012635e505ecbb09665c5c2d47e04a71223176983cc0b696fbff20a1eb9a7350013c98473ed40ffcb159950a10be6910d6019b92a01f93fee70173cda80d85780867a58e7200145db588c58d355b6c7ddbdd68a6454710680475e765e9ff9530e48e77bf0f80156a3517248f5cd6e7433e8c42a7d62c86e1560b850208ee6551bd473bdc8c5f27440d2eee0eede2c33de0f6af344fd0a3c67f08282fbb06a7a1f7b788536e6abbd5388eb702d4e03f07a7a0c83d3fbb2ff21c39305216358a19aa6a3331f8bb1fe5244b65117eea886671f409396628295a7e6d3adcddc2d45e4ac17093f0db4c4c851a1fb805fc4d472372a56a250a6be6dd2d02d9f1c4398be175b7d6f659595a284179e1977ca0f166bc198895a188902ea08c2b4d3813db9f0071cbbb1e336760f7f7a3dfcf0f39d1e9ed714112c252cfa79ee3064cccdbb1532956350923e141335ac114cd8b049959474a1d9f71fa01c963fd402802869b7cdb673f398bca86f59ae91fb91aca61e3c57557cff4f48bbf6c56647fa3f94d3a6ed169c9ca40dc3b0460cfe43f781905468d1d3567d860eb783c36a35694e50e5661fb0aa651afe70727ddee5e346c47cc4829e4321c0c4c7d1aa91f4ac1a2f7196b5d9d097d664946e170837c9a21e8fbd3f9944a356610cb0e38ce62ea670a5e60aee7ec2892954477aeaadd6a5eefa107f686b2e03d22c21ba84cb389f1b68015f8f0db71d38c8a8363795b48d27810dbf2de60c6f6b95eb10b02ce5953e09fc0ee970fda423e14d892b3edaf1c723e764809aecf193ad22f4ecc05ae494ed3448c9cfdbd6589820d3494c523d491724ffea9aa2525dd328992fe5d48015064d16dfed0fd31c11a90b3ec3677efa9a89412bc5c7d72e934fb47ec2b1d1da78ff1954f5c376b7283a738b59923b63208aa72a4a64904efdae068bfcc02baee51638420610758d14fff1b3c74c71416bb98e2e058070831f983c6b144812e4da40f7f53aca8b45c534a889d0bff0a5155f58ede4774357c3e4618c631a00ea6de611084b1bea2d49277d01f9babf6c905f2ce9900aa2e50a8db815469573d53360843ea70ce21bfc4349ebd215b4a1c3532270153e32b8111eba2f9bcd6b49b7ea4f6d90ecbcbbe72f7057b8849433375a0c7bf7808df3f6aaab727a5d70b9be4d55b302acb8f06965d0701b137d9f1c3d65068abdee6fae87599f9cf7f5269715689921ba591ed6cc87b5e64fe5b87c602a71a7b64f512ad739cec7a44fec4c3289a2d77edff751ec6c212e841366a784265536c10450834ee9ebfb23cd6244f67dcaf4adc666dd675fac378854d70686b4cececd1cdb50f807a4edb6eead64ad00db3489eefa53365868e349d12110dfd98b20a7bb054bd85ebdd05a707948535b00e46b629e81dc2c8fde22883ea4cc68a46d8f57977b13acc910dc13e82df87ade64bac66d23302b959bd0c56aa099a29768fca6f48ad186496e596cbafc97f064ab18d2502812cb739e380d769e33f49a3cef7d480b860231d967679afc067d7d9828b6a777e095f27e06a2b6f65a601e6241ded17781edb0f250dafb20019101eb8300bc1550d97db8bbe5a794e58c13dddb2ccd660c69572c60e9341e0a34fd04f504575b76851b9e38c4acf152aab9b2aa39d7e544bef03f06cbce337972479ddae2abf0170388043a4968a77f2d082c472444c7563e04f1242ccf047444f45ba3d88529c77f894193abf7ea771329ceb6f5a654f2eea1b5f31bf4905e77b95bf47ed425f840e557f84a22bb133a7acb7bf82193d4694530dea37f0a4ee5408167fb4aecdd0baa4ee312e6cf325ee9c0be2dccd88ec096da7d47cdfdb8f038b483252d73d88b911bd46b8985cff25f456275a621c8df38265022c409ab0697065815cda1faf5bff40a413570cb43f4e6039c56267dccf0d77d34b7b324d18cec23791a81ab5d9dfdb0b933fbf4de2e987b752542908ea0de121b61eb7308fb90ff08f1fe8a9709c9ea69f0e3324ff4857f97235960b730784728311a676f3aa4b973e2f5e8a656552ed8174ad40e2ec438628a729458d8428c890340f86c6bcf4f45c1c64170ed079585acdb165bf799b21aa977514200407bdd37d576e579b900005ca74ef1da320d1cccd80f6c15ec870525820ce29107d115e536fe4fe2c10663b398570d96448f8ad2f0425a7f44f7f56a16e5f2be818c402ffb927500fce5f4b0960ca7cdb025bcc3c79910d01b7c1ae93dba0e1113c3973cb7949edae3730241a4cdd19a6b3cb766f6833ecfa175c1f42a6bcc897082c926a8e0a66683212c8a6af40dd00163603ef161ae5c7f3a94a641ea13f04d5c328a7ce3dc25ac21ee16490a831e647ff59d86299075b841ea571f753531683ce8ae9698d24588701dd63bba9aa4bc4acb6f458e11e81a1ab1902c0b1bf1a0a4cf961641dc6835283fd067c72aee4cbdc26489fdf0475ee88d7ac149a0354a024247a174fe89b2803866296742ac5581a0b96d6ec489f138eea358bc4aa31bab20698db62e8a69d37c6b1c85f704c99877a72c3295e2cbca874179dff78c6523bb5d200f1492abb85bc53f9c4d406b52efab4411c241729d0e0777fef3d7ee16a46b5c0d9b8fff2e42338eb159d37bc2720344aac8eaee45bedd5207f76667a5cc51a15894a344f4e8c36ac54d2169cef0106b8d199da054fbf6d942abec762a56461caa58b13921afbbb3bc88c60695c3ba7c43e3c90d9f9fb6ce66d318017dce184e845ff9cbcca5dd624bb4ae4ebf6c0b9ff11c40967586726ace1be0ae4da9310338a1a967a7c068c6101d8290022f238b2929c7123669fa87b1ab126f07632fdc613de61dcb44f0d287c056eca4d26ad7cd8c61c01f1bfe72064cdbb4ebe3c10be3e1981f6e282fb9c14036d9b7693c87646480e2f7c96be5b2471428b544a1b13515d4d261576d3608c28c297c097587d820002204cd41beeeb15177db1323f8ac98fa05960d8183691704372aae6d58b790e21490d8df9472764729f7f183e0aeb821b068d6da26203a501eb6e7bd91f659967a2b5a96fb5229286c7954cec9a554757126c8d9186fa2c9a66e2ea184320283a9df30b8d1a50f16572e5e9642578158203a471be4cd3f4991c037b58d57eaafe7aed4cfdf95584876255c725de9b0487585525ce7c920f015b6921b9ef038d51eaa4be4166869afcc6713549766aef8b955deab16fb384dd7f94823b90b28c398ac5eb02d2709e6550e75570659179ba544c318b791d80796f9ed2755070241aa8b98155cd4e5729a41cc41fcaf3d0320286788450e400ac5cd6a7c902da9e640c167697c4661976f302ce3a5b06e08583e0db99661fed5f8fdce1cb12769b083141313d118711d7d9d85940eb0d264366d051f3022bb302526c930cafa00bdc07c080060219e259e4871fd46d227275fc9f0b7d0eb1800e6ab6c4e7d5287c1b9c215d0477b534c5a9c32aa37a4fdaa4de6eb3af7090e427d3fa3abaf00959255706d170e1e5875881b353219e07094a9326984762a8fa36a45cab810abb9681913fc2f5cf3191117df82e595bb1259037551a72a67cc026cdcb5a5d52f12c9d78ec07accf8817fbb0674c3716cb7fd058b32103229e09366afde21a43e24833b9c12aa9a7b58371a14861acc3c556d69d45de07d299232da034ca36faf6d880d17fb714597da03d72d80af6648286261368e56b060b48825645aa5ea83857f9ecd01bdfab8dc2fa525462b4dbf07c70f2a93ca7514457c7d442703ae1c6621e923c1a6c8b0ca13b1d1c6459b560e5f766094c4ef59cfa73d99ebfdf787bda59ed96d3dd1fd856fc70f303a1472a7fea48d9c06b8b7f84b9918680f08f15d19a4ad9bbe4a0870666b21f65acbaf0e4fc4606652d95b6e8d5e2c97fe0223a7254484509b456e1e58a2ef722fa9485cb6ec8031b24c93cc501f3e4f1d3007c0eec605c3a4ed59c9be272ced711dcc57fe15f2cb3ab0518262165d3383f79e4408b9fa39e5751eb2f0d8ddb59e6d4a1659e6f5641bc4dd21ca7aceb976da0b0f20ae978c95001095a1996ba4cc99214ef610f0623c1c2de61bd117d2cd53cc3133e16417fd2ab83ba79fe2a3061293f8c4600db51753b4916c9dc17a500ded6a5352675262881d463520ab278ee95ded4b8bd2bc8f190783b122a4f6ffaa53fd2b9c837cbe228fa54307698441b40c094456647b50e9e996cee77fce50200989ad853e7cb3a4069d026dbf555326cd19f27b5638dfda6f34d01308b45ec59a550bf79562160c0dd3e072465c57327fd276a6bcfcf1d8fa64171196c27e44a3c35d41a9ddd48e6b4fb462b0ab08a713ab746782c20044c1c35bebc0da5f10801f11d6b0f227544b391d4b24381ab2199d4f1080b938fe8caf24d019dbb55498cbca1131a7db789d1add47ca29606e50f6bcc5219e75a63c2586f0eca74802dadbdab902c1f6ef97286fa306e9cb09534d9d20714b2f604176d6536532f2552c3b1aa2b342f7842f37760668686d0d5e7c3e125d40e91023b64a40580da33f8f054f68913016897468051e3e6279141926b26bd4da2844721a89ca3692751926d1ae993c2c028451c9afac737417e5cf0ba85615f204705342848b3787451db30eac8aa925aa6d793f3655a41b84c6cdcafa0b35c8c18c3dadc949c2998b545c4a21280c66a74823172e3a49c832c6b1198dbc246da72e516c84afe86566b9e322afa584a6e4adf5613d47a6ed727a30c042ad20e824a1cd333ce18bb441c05568bb9da4eaca8a52cac28cf0f93894b3fb1af804c5923aa992f854722545f9669008021f0fc65fc6d0899e9020930a8f4c0c6965a3cb26b860fa6db1dd0db764be091de0bbe8fb7cb92848627e656391c700925a05e8a2a1cade65d48599060820649d6c2b04484f768618be0935dca401b08772c4df14717f49a7418908a3d444bf5ed0a708543580294e8826dfcc843e1f9e3badcc64f8e9b0bf63ece8ef18e1aa6a1d5994a876eb307a3b13f4c03e910d75a058d8f54986e5b89452a144c790d8d09b48a876c1cde103dfd05335b81375b0cd7c24b30b246028bf49474d951b56badb726df5cfd5b4ff77a1ea0ac4da2b50147cb874aec9fbf7eed21be97672db5efc435c5474d677ac42a175dec05a858cb4ffce76d522b14b53d6b09e706f82f97dc9493e16118c2dbffcd0f25bf5ebd09ce7301a3ee39d99fa3e4f53974e9f915400b810fe024c73a6748552893e7f52531c1a8116195a0da50cb5caddb501405e243c5bf33af4e6a2856d7428df557918eac01c4a3e0323f42cba5b2f0fc3e4ad97505297c8954413dcc2fda637a339278b4394f5bf22435dc543210a77ac46e7bac7b34e03f82dd0c7ea50cc49a14a0e65f98cd55e0bbeb532762aaeec66e45522fd1359f3f35e71d1776f851e4e3fd1130e803a9978e3378783470c509ab5d8825a375650897f466bc851cbe3c054d06ec92ff8d46d23fe3a88e993e445082c6847d027853651c388776bf118e1578d00ab611b55ff0ee2d75a6762e2b51d31451da4d2394dbf90789f7a986ea889e71136475ee1984a4169e81b3dd1b7b1f301be75eee84726f29927b146df93af09d846984fd0e84438fdf7e8b3b739d9f300dba380454bb505d11e3b5bbdcb848957c6c1662e59497b631f10b73ca12194ee3934e19932f45b0d56e83cd42f90fc68a05909c5110f0a9dc4108fb4253ca01a4a1572ef537100598f27992146ab4b96ec948771590414eb08a90d44ecfbfa26649df32ed9bd654ddeadc1086ba4f164f32050052f24f6ae23c90c120a08152b9a1d4258c2fd06054fbd9ad1c8727e10c288e9d347c2edece04d3bb889bef6a1b6e3b005c8682d78d7927f82b21248c050f7e900e0c9f2aa9180b98b38aaf73971b07fcb705aca02ce1aa6b63a6872366360d0da19083183817867320dbbffad5a09487de14eaa35bd01a743ea7267206a27c6ff22e7c0454a5fc700a13ff20105bed8258706a72e1cfa8cfca5404de9b311f194de3ffd821e476f13429bbec168bf19c5b4708f743fcf9100d086786773ccc0c6943cd1739b63689ed08bd55a84659671d972639df80250e2d035887c062e779e1330804bc09f4c9e85e891a8d44f4974378b93391f5a35a55c8988c2d88eb4d9eb5946b4652950ae9d7a2540a3ae6da404226b0e7e7cb221025288deed3ebdfa465c50bcb52d2480eded7ac5453d16ba6b043c949b3d8f67b29192a98762984e69e5ae95fdb8f6ab2014c3b6c0ee36b0de5e16880c95547029a68a30bc9b85218cd606b6a38eb2d0962e3e1b2852a24274a5f81797deeb7be312a31f4e5080e2a8d625dbf6cb9023b698726966aac5fc74107d4646614c4dc24d02469559c8a62160651aef6cf901a1b15119d3026812c103783e6a73c1da875ca7c0139e3a713c4b53ed888e9082cdbc518666b8136403c261ac711c8ac77b21e14493d7f2f0418fed4a4e1e7de227b3641e53b259561b211a905fe4af97d8f61dc3c0ecaad260d60b6f7ea98ef694ed20f32ac3b6a24aefb9c8ad0fe8726b98d513d1c14a550490e6cda944048910b1b9fbd20996a51c10622fdd412fa64c94b170f4c087f2e512e3bf9ff14e93bf689179297686100b33e2652b3e7688cd0043c8f66897e58ef6bf526dbca09b3b452d97968aa10bf563200aad51faac3046054f7e4c1c7e8c5ee048da9434e8daff1c74b7635b033c253901658b50d342ecab5ed6cade80a434af92f0011fa28333bd0edc937d48f29b55a83842754f1355ff3f11d76942eb5d88f155292b44d45824d4e3dcad8a4cbe2d4a9018a9b21b7a054428ee1be2f87405156714a9456b2b9d8fabbffd7b04c12811baf10b1fa5ee9cda7955991818394a1aafab7c9ef9dddef06db705df19449ec076ca7f60d889de8fd0fb871a3778063402dcd9429315cadd547c6dfbeae53259c3848f70c434ad412715c787e9d43441c4f4ab01b87ea4ed07cd0b15e92b68b266b39ba125880478394eea851c5d79ac3704cbd73893e3a0b9665c7bb09b21cce934e6ad37cb4aab53443ec61eb0c74900e555141ee631e3dbf56b0566d6b1ce77a1ac022f7677607815c181c11cb86016946cbf1b39d2a323f859050881828c2601599fa4570942ec23272b4a2202ea7625bbf4f2714049ae1fe4f372e403060f5df0640163075e088182850a29bc6001040a2db4104115c6f1c006d40e19bb95d341383a6c28ca95a57a25c4e633338b21ba73ef17117ebd2f22fbb5a8d99756310635723bc1c8cb8db722277e6516f7637014ddc6978433ce020d3117b3acb2d75a8f8863caa755c12a0a626353dbf0f0846438c283096b8e2549246702f7bf303bcaede2e8ee15436609a4ced4fad7ae4c0a3be16f76e7be0633243817acef6df6d1e581576ca0f10c44e059a98049605505f926732fdca0286a90c6c928c1d80e91e78086545fde818eeaedc03da55c337c6f7b168af394aa64caae518197332224df1cf218a61e722a391090bedf7c03ea1f2b9a698cf820ac89a857934e1148656c48e69906a8025b999090718bbf7acaf1dc11e1dce4e95d85b0bb10aa6b9b5a2c6d4ee82711088ea5a343dc8564d90a9042c3daa16a87081d52216ac43ff881bf3a2b498d78530f829ec2ad0e1ffa219ca9fd4f2984cb2967805e6c9b2f06364083c2b5f0afebdd9cbb6ff0854586a2b4f0a4c239f6f90e2d388eb47ba390ca7faeb241111401721fd26227b19fc63cb1894e1a403dcda75a92893321f3ab4c8db49a03e00880f2e5a8fb7edceae4901e37922eea2559fb4b464a036f226597185a8448ea9c6a89090a6125cdcaee71c881284d44a4ba2f4efa398b27238a7863c5557eca7c931ee0020f3748f5b16a5408bd67951f0c1ae60934c8e3c3c890634793eb70b4d46867768607a913e13a084c2090d5e120104562949bdac7d992c07128fdb4015cd552becb0896d4960eda73b92100460a60039a59eaeefbbc4c2d8196d463c5a9062e1f3051755258e755e328068fa9e80805eab7a02037492443e4e0ac9ba93828fdf7e3534392947863f0f74543f63fa5797452b7697fe1713c8c79c46d2b0e64426fe48bbcfcb18506e0e69a808ea384f059c2a124a3237077e7acbf1db380dc31dc6d67be4e3bd19fb17e38d0638bdcf837f1abff5c757e2afc2fe2d7baa45ceeba25119a6bf5c80efcda574e4e12d1b2b1651a68498f0e3094ccd52416a99f6ca26928e8cc8f787b799b8da339b9ff83eb8b427f2ff9fe17df4252a9c177551627443274510f99bdca01e3c626b9c09e173e169a679363d52e772c23bd1c82f2aba6fc5f2ca3123d6f60d762811965530a280d8c37faa64c54ab9d08e4b21b7b5d56ceb3078e5cee77afa622f70da521e36cb7e6468e26cf9b6d5a34d6fb37b0a299ce110d3f4a69fb661b4a7d1bea115ccf983a497c14c121a0434aa8188a84284f39207d3c008b3f0e1d0e8f366624c2f8abd8f0023a6ce85c83f123e61c0970d46ae4a61bb62938a4f533f55003d68c14d109d4f40475ab668372e69312bdf91e913a8d802b13be46edb3a40df3c33212801c10fb34686cbe2d6f0d57eb84038b21ce85a6383d4909cf87bb22827bdf5816c7876eeb375c54dae21bb572865796338142a0f9d4997b4e3cdbac2c07682a3df57781bbfd8f4025a6388e361547e4bbfcb5e318fabbb6158d6258051779b58210bb465f75149fa2a1372a22c1948fa49643568d3c8a4bb5e4c29ae92c80284bd88195956a07134ec61603c351ee41b5021195e517f8442cd6a142fc4d0001b78b5d768918368fbb9089a03d685ebed6e2e81d8c6e2d5b996cdad45b801e72f067d11c9b412af99cbe7284f67f0a16080c7e9bed731a496eac09a44ad3629fe90029b60ef3d10ca2dba39352d47f38db4c50cabd5799a346cefea158a7001080a2e3c9491ee117241ce46ade7f483f9e00103da4fe43211b5cb508280531cec59a5853deb84539d5366e1932f4fb29b2f85e3e7ad6dcd1f36cf2f18257cd218760814623aa2eaf4a1065d6233b203fa00c076e1f81c0de11b733041244ac3fc4ec970d758a31c0f08dc8c584b1fd83a1263fab07f41915a31ef7acc8a40104bf46afaa0ed68e673670752a411179ca53812ea5b22d51293dd2d6101572ad83187a69d0371e316041b3183ded21e8e2cb78e544f9ce4733074d3268ccfbf91fdfbd84d301eec08aeed3c6820e0ecb7fd138d247cdca561959d2e0c4c1e55493ec6acccdbba19d171f1d6767f49e0403e106ddcd234b9c82f1ed4057097c49c88597140c2296e687fd1870011cc708c055eab9f544004a3c2244b20ef05db13b8ef4a3be62f0214d599278011a24f115bed28c1450c8573f11c2c0f1d8070ea2a85fd4d1f068b817582e1eff5c9447009d4297f020cde6df20dd1f9a0147d9700239bf493214a55c7d1d6dad41458acac5572efa7e9d173962f08005ec68c99d2170831d165966f0755fd0265ca42b376f1290d3c3c623d069f3b43349ff4c68a791157ffb4cc9a553a6f83f5cfa67050984c6797d89235f86715d910232df08c086d66f847e4d5709cc71de1db0e0d5fbfdd267c8df3eb3a6d0046250f82b03f0496698b5d760469a92f2970921809fef3463a8fa108805072280912b82d048b455fb7894c815002a4c9ba6315ad061414df30a884c03276dded1a611713fefd96c76666972044fa9c9327b0fc3c030506475b917d39595b76c2fc81ee620435c238701e38e2ec8d2a8ac2d06678f0b2be23d60d12fdbd4c1cdbc689e18a69795562bfcf6a9126d9867865c7d9a63e4ac6c77241c61a94ae31a2282125837c155ca324e6bf05e6f554a09d57bcbf51ca3ffe3c2aaffb1b21fed7f69e7f09071eadcb6fe7dc558ff86c089fe71167b613c02f747299d7e1778b4234461533319de7fe5261da5c82901ddc5f7e98b79e9493ce777983c36d8a07065b832a873d0e10dc2de40ba888fad789b415057ac5aa10135cfccfb32e7383f0341f77a08939a41a1764c31504d14c6277bc11e96d2478c0d768e796c4200c267e7881ab29f408b81c7ce49a9974fc1aabb7e8757b24f542597cb12401c2dc43a958c6a0b4256a5e1511eaf040cb9699a178bae147ba1a61b1e98519f4cca7a19570f1bc8144fad626159a70e23cacc2bf2371316fb492e38f48a05640148a9091a7f77540f8c9c84d7e3f7e693e8e77eca263c0718967b5d52093d14822520da58bcb17e0ae4bae96b2a62f2ecac48b4f716b7c1abec1c2bdccd4ecff460dd7b02242b03d726b9366a81dcef2e98868bc4feca6c8d6c5f1b90c165c628c406aeca7f7810981f706369fdf1937fcd20c81d6fdd139f01f4efd8a0f691b22ef75e417769c4cba588bd9d66dafec7006011d3a4894ba61e08608ab5d53130b6a42dc72c65e04bc68c43ec67f4862785d584617984e36763a48422e0c278a271154a62ed11a008d560443127358f3d04c8605ad7337eceef583f3201fafc8eb818033fc62020d5b53e07b940fcba3f173f3bec9677ae208e0de00b975582b01e0ca42f4d3fbc84c2f41d3aecd51820658f85586a4ce0e88b57dbc9dd5675b47c9808090dc057de0e553e80be83cb26d9d880fa40af849ccaa27d9b8ff98bf3bdc9f81ae433b628216d2a3e761522adbba504b490394521973f6215f2c2b1c5135a101e0b6a9ed4345832cae9efb44057f6c5ba5693ba46f9e327d7fe1b83ae3f247a50df8c480ac2cdbdad41dc5c118d658687191d9573e9a189ca7d333a82f690c06c319801a9c29ae87e62f696f729471bd7ccbcd951408d684e00d88d1396f117d81c1a41f12297b189e32f4c0978bf01add001c84be173816ab0c28af27c706c2a3b3619ed151325bce3694389b37ac5c3d5ae887c72477ecb2b8632e439a05c84b176e577d83d97567048902a798fb411ef3299ca99471c5164ca9bd8eeb6ce1b498d9554e73034efaf08934c1ec5df25cdbbfe153c45fbf73d1a388ed016ce6459809af854861b27dc77b20bf11c99e8644548c06f779cfc56f863882be40c0dabd86b1cc38b762343a9dc71a6460932a0469b54f18dacf345c6580b6c4c16006e7f2556d2afb4401cd7a57fd80f15fc11144d83ba221a75827db2cd1faa3561d10c2a0eb506900932780e828dffea9409364e45f36b5e885b70685ff64190b543e1bb96e82c9db81423aabf360ef07cda3b18ce04c043c3567ddcfc8d931897be3c1b3881b71f40de15b3de34d36bc3f12ac891ea8d991088dc74d56d198180031ea0108fd9be23c4fb8bb283f9cd267e368b20f4be1e4dea0113d4de522a236a92836d84da06595a5104f1a7f8b8732206df9d0a418028d6c601f4ec5e6114c5b4b8583d774b1f2b32035224bcf99a4d42bcc6aa18022dad5f34ae1188b48684e82e0003adad2e5fe0d083b39b271cd8ba5b32160a2f81e31fc9b0bcda0ae1e3598448359d108781f1d30c9b5445ad836f7662d57bb1f6fcd25a70edf811b88875c4793ce0e359ae7fc37a8fe3cf64f3cf40f5ee81d6f7d06ba3780206ba092070df9ef8ee967b0d1da4c04f71b487d68a8bd19ff39450f2548dbc6df5effc27ecd27d40e174d124e146e276ea57b9df21a7ca1a4afa5dc3ede9a5a16d7e2669823fa1fd6b0bf471ae1fe15b74f9bb3d125d51bb21472494a49d5a1ee48a7d76c9cafde05e5dac755d56db3d857ffe8a235f5f07c4c803bc665f074353e40b35c1277fc893736898577c86e11571e6232dc2e925d066b93fb23c51f7c757fbb47b3fc513e5f34871c39caef833f6fb2058de3d2c557efce5c37229d6988a4b06e6ac3c51b06699cdcdf182b56ccdca8403936126ece53134ffa70ab7ed6b15984048d3ba70b340518791700e5c886e2f673b38f50212cbe15e9ee4c302cf270f00ecf3321bccd414d81cf54ca53127d3bd3950f6943d1c66ce2b2d9e98d0576c0084770a9c2e6f0f44d5fcedfd75268bb9444214682423ec21e3ae65f0a817659e70ea3e99844ea25fe641792483336cd78ab8dc768649040ce71d9c983c4358a97595a691d8ebd2c55ea623a45235098d77ef5bd3d73377d5f63ad9ee43743ac7f6ee2686586d338eff8b5caaa0a27de084b9a7cab6073304ceb8b800e7496e5110417219dc3d16ba1b53459117c10e98b5232ddc4773d852b7f0d66736d8f0a44adddaa48f4619e41cc6f25f9f362569bdcb8f1f4ed17b686dc3c0baa067e1a1e5886f1206ed2c4e2c5e37e09813fbe0e7eebeed84f8131823fae42e98b3321ca8992304f0a0e5af0e82c36039e0dd6ee19b413bca4e0806f138448ef69c9148e71cdbef2308ee5cc025f0fa127a3ea799d8caa85bc5d427e4f507be39b3f352dbe84a5e5c13062c7977d96b85f4f27e1890527817dc2a6fa0c38ec6853dbb04fe3651dd483b3f9266563d04e9a08020b0a594f8bd0a297658a122e2a6063a9769b406e8e1ed58a430f5cc29e1a76eec9f1a337e45948d394ed888e0b08a498bba810abb5d15b12e5d2560f3eca4671f008e591c387890d9b20b634e2d61a91e87037935aaac9c3007e840cbd908d09ad12ca4a8aec788e0df316a9fac7277f6315cfa56eb649231bad1df5a0e1796e56d5f5900aa2bac461c0c54a3788b8d345c734d71eed6cf13445e0912b61e2c577bdf46ef6c3373840278d7dd1bfe9caeb5ca7312774d6ee272f1ba4acc3321a29aa6f64cbdc675884f9f79ddb95d3ac3aafd5d05de97bd725f352a3b84325cbcc5c5b207dbb9c0e7c7f8881a1794d61f387169414b069694fc103b992c7b08e41bc98700cb26433a20bf60edb56e5133af95bc829fe274e47958a9a33ad66b981a8e8fcd76e07467530877eb318c1dfea7e8d45f25920156e219b35ef28d9a9466634164726f58dfdf549da8458d1e707a12c52ed02515d81782278128011c5127e81909eb320e81f563e892fcd5963b5150407fb1bbcb24db4ad4fc2ca9b4dc81c70a6cf033134a642bdf013697884546733a063998f3e3288291249946b2a5e584248c291684e8edc021eb96d768996f505b4a86afab6a2ad792d785830c1b20347a2627ad53aed148f383ed578f249c6679b0489a34693e527c7dc0a764c1dc2a86fd2a79987d9346d3fd98371dda758546d1f6b8e30cecbf1d7d932f9c0e7e9ab321a2d0654da07590d3dc4ad2041d15218f0d92645b29884d0fb649975992505f9b5b8170d24532a5844a773e0efd20bc95ecb33525745653aeb11fcd080152d618258798ca0e62fb23c877796b0314f63b7464f7cca81310a9d41e39a68741a1d50be283d75598e02c33f8868807e718421412f65e53f6d1caa86da8ee2d6c030d7cedb125c8e7c4aa05c1ee5f09f39b4ed12387793276774e857290b6ec1313080af157fa33bbf06f40237644fac21ffee03a8de6aa24a2bbf01f6c61c19dc2dbe7bf98270c61cf0d5cc49ef3b2989357d46087acf584e33afc63f1bd33f74f8b83e27b5961d53f143457f8e3d92d88610d147714acb149196e6751e00f4f464f94c91ee8d8334d4bbaca2b7b3a73046a9590cb872da2d863a4d55d37accf02199f95768da16f1aa5701176d7ec5d39a534e8ad455053b189f36d4b04b27f05a9d41f904f20a71242e4230bcf04d00be34eb0191b714d5c906124184dd37a764eb81a6be797a7761111674f75ee9436f6d57654b68f4c943c9ea80bd1af8db9aedee408e9aa22c249a5f7acb9b6bc2b443672f4e4a95d9d923c76d350364be764b6059fdac5b6b415f6587c92e906541318265e016163a59e2f0a185286c53e2ec7729d459dc61d38bdd830bf061f0171ae0557acad68af2cd4f95f6e148fcb769f9da42972d2a9335fd069eebdcafd8f95a79e55f082632741a3ed6a4c0ed7dfabd4efc9b31ecb1a7ab4206cc3711413d6d8fc48d853293f8d0867c596a840e12dc8f55e7cd40a93bbec0ee82d82eeb24633ad171a6ca0c798394bce36873bf6c3505813e973f0174b1484008f5212a57fa27f1f7cacc0bd9c24a84bf07b918ef5be1c916471e0f6159f2c46ed8b15cfac6bdf48ae5d431c7c454dca5ce10954ebba192e762dda7addab75843b968e57cdb850d3f92818c8046908df2c5bef0a51f56ff643f69cdc3d1ca9be5c5d805f29b05c577f01f8b64699cf529d1f5438a45689c82a15fc38748ce9dd500b46976603dabb935f5c059ed22f38cc321ae498332db13cea4af77a29f723dce3d77afc83cecf42cc00221083af650260406cf6db006ee90098236c800968548be801bbc0015eb29dba35ff60f14eec486312dcdcf177c864cc5ab4be7551cb6f9606fc0791542a47f8777f58e9ff977c723e08133977b27088b23acf9471f043813cdb11736b84f509262dc98f0146180927e38c04c800e0456fca713de74fff241a9af8c543def4b0c9d61a1c0022023ca4a9fe4bd1164707b611a2bf0b580f441124b792a8814edac0a7d328f626d4a5b101f043264e5bccd90604c142dca2f95ae01c9fbbf93847c036efe27c898d7af3997a4017430e8ce1c442c348f8ca187a77b5271a45b40de312cf085dec77752fbdc10fbfb680914877c2cb53cb57cb8fbe60fea1b4a0ff0573136d0f4f96bb8f1fa65bbb09536ae2da3558740afe1e07987d7608debb4fac87518f0a67195b42f8c68e6f5038b3d0900d81179ef20d0a3ff5ae477b41f66f556d2a16c2f8217f2d2e163165292920e29d6c9a5b0bd1e14a53d7f143acd4a5113c4b9f7377b5c7acb3e01771663c28d87e28edfdc3142622eb710bd55f9d97080552d455053a9480bb0ed9bc0d75053cc1d05f8aecd9cf35ea6a9b98febe90431169fa4021c8bbb78a962033478e47e7b25e428b307c05fd2c6f1a634ce210615e9d9029c2df70ceb51e08e8400039d4006673a5470d1e82fad795e12863faaf002f25fa795edaadf21194e5441fab0dceccef77119b46f324a76a7a67d6748a2d727b6e741e2cdff66a3209ea48b504cfc78291e5ce0d556f172a29dade57e010bfa528edcfc79df74e6016c8a247b8949822b3608dbd2b763e930f197f5a6dd403825787d1640903e321adbafeeb3bdabf6e46806580c7ef36a1ca9a22b63605630659665a9f8507460d989a350f2d911062d587b96ede92a0f8f9cb3c2ff2c1fa5891e8dd3bd90e61ed04010f05133ca5b62433cf280ddcc42dd95e8bf0270cca477918257a7d43e1205163a958155f8122dedb7fa1749a178460af7bea5717235da4d5007cc6f9f386fe1a6a95d18cbf1329a32a07d0639fb01f884c8069a5879bb45875f8338f633c0be3f4b5fe20ae634750df803095c5643911e2445d12474407fed2196b61cbb8ed8404968433d9bb1cbbdae52ce4373d819211104151415f94d9e970faf721a576d896a551870bba74803f45b2d65872d7781355cf9e842af83b1b71b8d6a6d2457e03dd09b5017b966972453444f4805c18c86addb7d34fbf5d0ed63b2451e8cfedbc69467ff8d813b1dffd69e4c755ceae4185a22968d77aeb1d9c6384bd99dae7eb9fe8ccd253e941ac54a54f2ec0dfc7ae0224f67ac97bb55106ce8d1b36974edf8e544a439fc04006c804207627c2fc3644827ac6af8b8d94d198fc781910fd0cf196dac26e052a47e4e5418db941011743958cca0f322c692a24f8be6e9ab920cac42cf7719a7f0954597c337d7fdd5fa193b0d22c54a5bec1bdf56a17a4e555ecf141afd2ab4de7ff82656b8c9b84f7751340f1f32c4f0b783595975847252d35729a81aff898c6a038d5b7c05c500462d544203a120433946312fc3913ffd169c672d452f2b440cc4db462fb38c29c248e84d17f28104aafcf0da9f42071d15ace9c97c3fc1c8b8ada2a8b1d82b4cb0118290d58675f5e1b68c9f7388078ba38ce825421bb080eea2133279462a1d88c35dcb8284b4530052c346b644d0a9ac2eee314c82a7825b12ff1013bc99d0e9729ecf0b5b8ed2f89e413900c07f075e9a946535676d9dce817784365a12b949a56f9ad37188f8986e578ff3a005a8910b2412fb43df76ff01845ce663d14792184cad48d04ff1de5c3a531e4adac87e6244e063efcb5dbba056481b7704c1e66c7e976772d95f547d024453aa9427141607d8fa7a5d8f4d91ad6b51e08ed19fa09fb2aaf16c6bce8dc30541a4e808faf114fbd07275b7a7193fb17cee255ac80617c5d365df11c0a81e4f9cf313a41f0e4b7f88f1450a9fc02a8a1150e82b6cd55b5823400e001d07edb336f2aadb098dd6ab47404ad7b3be22b5e06b26e5a34c698584a7e849c29fc57e3f512d9f7fbabf478a4ffe2a70a2dd8601b86114e78bfa14e638bc50fda9e2c0213014dd33f71c64029270b976fe4b61a9b9e2873c5cb9cfbcc2a80c14224ba970adbe706374ccaced250787c4bef246b2d0da5653c0814c7f0f3f78b2e6f41b325eaa9f9510abcca664c558d1d4775fb1c5a4f46b870e4ce70fc1f201b2bcebbc0b9f4354c97d3414702bc15df850b52060627a8398db0562c6462510c5c7a9a9ad90fabeeff544ff352b488860e2bf4755b63d44dbda1ec6c299d5905da2c5a9342dfd7ff1c681863f5e0f568d7db5212f95728f8557bf39f59501dc31027f391a6f36c06461372c6d3f5c5f4d1810b9ca92f4c861208e495eef131f3a03b054ea71cafb22a67b28d20a62e57106f555f4dabe8cf87769eb3386667826c1d4499077a51875e981de7aac01f558a6fd782d2558428b4f75e0af04ba81be30e5050054c2aafd925c8c6a115984f0911d32997dc75bff860c61d53984492e48af10c0c27876dec6ba090fcc43c511a1abb2794431f0656d1fc03d8339d556d681909943e13e157cf0098a735e57f22caf30f1ef3a240dd50e44780d4b14d12c52c34183ee57e2b3fefcbfbd10506c7d643203e90826c5d32656a1d55bcb53aceeeaf7764df0bd4115004bab008a248f3936a4530cc5e4e938282ff62c97ef35736dac2d3c71e4c70b0439d14ec6493db57138c83b7fad820579d0e1fd8cb0f70d15e3932800524e032643a0075353ae96fbe99be1abc653206e2cf18934880834f5cb3317c07519aab22d949d42d9be98afe15ff63470f52e1c5386572459a8dc7998b58bdb74d5561813a5e009e1dfeff9f7ffed81b738908c671e3ea16af5a72e4dad19bfd616f2ec2c5a09ffdab50792d3b90dbf656930478e6d8ca5582e0b428ce3cde70c7f900310344279522b08e606e3b5e7d87a360422c6173aa3204a1ef5ddadfc9be1160516a278801ec0d955904d801f57126cc01bb0dc2691f1cc44dc0b80ceca2e1ae4be30f49b53dff78b77dd5e63c67f12336ad8dbb5239c1a4fa8fd462b65120e9065b89f45e230acdf780a1435ae541b5198db3c33939019024b85edec0d779d5b6e8f579d8ef940fe576ea664c722cb3515740c60205f393d7584eb952a277760c8739810b261f97e2963b8941a5ffecec3409adec9448d8526b648efe9e2a64db735fb9f1d3fff429578d2fbed5e3828629c9e614ec3e695ec6e2faf26218fc0e533312aecc34974f2dea3b9facdc1115a5f1c5280709d1f0dd8ce9cd1d54132245d152fbd481b45729ad2209df9858169a691bfdbe008a495d6289b5899a905685573f8fafe496a9ff22e9f7ffc67f0183e9bdcc7f9d660ab2276e3b197363b9e35413f3d01df31f2a5879a5e4d4efb49e6364bc4b595d98e9d166931ade6a5698e1ff7d667f8eef32f7e8d4d50c81a32c8e78c18c91354a7a1ca596d52f01a286d3ac5546058b331e2beb0ea7e5a9f1c594433f82ed54e8c2b2fcb30ea5782c5c045fe5097bfaf1c76371c7517916e883497f96b9b8f7ced2dd4bab8872835f960fdf54a309a36dd79c482b34b1b8afbac101bdcb25ab32ddd7cb71bfad48704d564cc9abc85da12ae3ea9552b4a670b4f789bfd73cfdf342e755dd11bafc45f15e4fed39309bc1e12bd7a275f33fbb582b15de8cdd7f88e4537ad2fab32ebeddf1930cb0525060f110924655534cb47483d2c628716ecf756689c0dc2a612298d664d238ba557fc9602fbda5f5c45b5d7fc8b1d14d579e06e233fe47ce84566654db16f0d4091985297c6d33ceed2456a0ab2d4e74fec7d8ca69b39ece9d0161f358494913cb262e23288e69a327cdd89b0d81695462bbc45cc1294235a5fe344aad781870f960e0c458d0c703a49f47509f0ce23e118bcd2092ba683077d070dc0063d688a381178e23268da56e1e43da7884f46120761351dc4c22d98a8661870dc60e18075d3c4c787934f1d2204a0e30aac6d24fd1a9dfc5397911edee35c196f55c686dd76a2ff776f17ea790726550e915ad4cdb12321d97761beb6da85f69be93881537ae622e762d2679346142a191b33478ad2a305c75bf08ea8bb204176b60ef393e1fbb931eaecabc7a981ce9295b7e1a4b9b0e93bc16b7c51a6500c7d11964e2937124abef366c2e60d1037c3aaa1385a1220d0b0297cb3abeb0947063be9fcf5685dbbb57edd3796650b2ee8e2c0619bc6e9b7c1936521345dd65d36223d88e8f96ed0c6d2e313c1955fc81f32ccc191983d15598ac741a3e01d9ca8bfcbdfdd353f63bba74d6bfe24f4df9296301927aca7e724b9ed90e60d44c9e7ea99c67e55cebea00a5d5f42815bc265741c5690e4c52206b0ed6a44fad467a29300ae85e3b8e03cadfbe89a1fe4dc65027c426f2cff2612c25e4fb209ae0522544fe7400a15456f9f625dcd4d7e4ad106e09554c578b95d1ae9cd55e6affc941277f07ce8b537f4245167c4c95bba61ca4d902fbaa934bf909f5748edd13756b7d30ffacc2a61effb724fc33262b5f3fabcdda27d2ad50a6e4be78ece0205144276e27ab60fe7921f7b21debe53e93d1f8fc9ef499e0779f36a31bdbe0fd2d82fe95a18bf3139b823bde8839664e375ec03be5205c25ffdf89ea76bc2e1abdb65b603adbbd96f8615ba83ada15939872d8b7e2ded627511ef32d4a51fcac72b82cfdcef0ada76f7c2b8de35d957c6a1f21f2c9f307e3c266b15fc2087e2af1826729bf99d8e594da09558e00f49f26bf0696823ca002df882fe172dc9f0027ca0357157c32b85afd7c01ae3f536ed7b777867d15592b5c359bcd6e53727637dd646ee7d1f42a0f201795b2cb952c6ab3620cfdedc092905d545313744c950355bcdb60e4f699ab4f50261f43f175f54d4b199a5c6e3c0b64d9e789b02732887885dd2f183295f0e0241ba3f6ec5de5a29d5ab5a11cdca7aeb575c9bec7ec6ae3bb7b6c046b62588ea241f43901bfb66672baa9242d86c55782069360a4c4b3c04a0d2f7a01100d2fed9710324c431ee8bc30e68787208404ffd2843d2022caafd3cdd147e5e53af9fa742570258b08e659acbc3a01baec62e4ecfdc590cc2a7e6f9a2ef8321978021bfb633716beaa700bf1786269bc6263074dc5519a05c2fa3e23035fc8fef06a1f510fb2ca6143c4bc0e9c4276b80b55fa377ea7b1835a0c264bac47867fd2f41a571dd804b06304f5669792728e974fe63a5c8e1f24a6f9def893a7d320f60464a40b6018ccb7ae2de8c1c9226aa689035ce4731d5cad00b378d86a1bfae81c18d847cf06097e340a07707ebb4f0ae7059835047a1d0044fee3e49dff09435a8902409fd0450ebc65d2b7e97ee0842804fa0bb348bb6fb9e03674f10422254be9a479e4e44948521d008ddabf22dea9e3068a97a320e916d2317a459365a9be10633c7df81a3987857916049a23008b43205f45024dd1878ad971f44c9d6128b29be484b2bd4178b69406f5735a585e582082b039b1e92f8332837a68701bf5d3a2295ce109fe14d850665d0aeb3fcaa4a9b4a8f7aeb56545907af992305a3b86fdc59041d4b714c4d688078c9918bd4512f33552d8dcc15d6183f1160ba0476546ae7644ea16c6f84eb09f26adcda26becc847e9305863920774d34177431a0f0912b964d048294998a8c0b5504724fed29bf987b01b4f829602cd36e83017240e91ba9b59f31f9110b4053e851d52159b28d8b1006751a7300979a5a97bd886b1abe5eec70cf6d2e5c0bf43c010c908d01fe323b78a39ffe54630ea7d0836604cd810e8dc78f40a7c2350af9dab32ac99c4d0b0f80445eeccbde70dfc8e85aa6a63d14512b2769c5404ce2415fb90cb80c8b140a6fca9c91197fd2c2f0a2560661265b0c20815f8fbb18f287c4880b1bd1054bceee49508e0001b937ee9b9e5c4bf1449a41021c38c906a67b88ae3fa0cbc2590f0fe04d44d1694899a9670ae98647b2f55086bcf590d2c0d16b6928586b5c60647976b9a6c3ce558a307141cd184c1027507a4e27e820d0240d79462d312de37e522006542109a4de5c1fe47f153a4f4cbc7f1184b01ded0674946ab64779fdffdee097e28059df54a47a2bf6b57e06d22f88985228640b4d9fee3dbbd9d03149247aa63c6b2c888ed933124e8d8a151704e868f8e62ab76e13a9192c2dfc25150e200800a431dd0d0648326d79077f0334402346a7b237ca60e58fa6b39d532439fc221150c4d103ed259548819c8b8582da2a2f3971cafc91dddbcf5871d3b8b650399b5c6fa0b234553af079d99556bb64e53b9e0775b8a2c00dd48657a3b3beb1d57e9d4e33aafd7ec099ef350a32ebea18093a34112184707524011bf3b223c5aea1b294b6fde7dad7deb4dbc252ec79119633d6329dfc1a276ae8bf6d3092e66eda28d08d4483e39290e793026dbf2d07c505403cefe44c9bf701302e35e934055e2e44fa40153bc96e7695d1ff240f7d4212250943e24dc20f3fc01640f818946154d9cdc4dc3383099c07e61e7832af23b36ce83e82b7a75c22eb2f810f5ce39e01ad0625f55f244d3bf27388d8ae2a54819cd1e19368f3100318df666b71c992ed402c687be1c656fe2f4b9ee4d31bf438c1a1187f15639a33697b791b714e89053e565f2a2c76caa4513e97b442b05fdff4e9479e0b14e614e309703dd8936813efb9ad86cc927c31046a33ce8311337415705f2d32fcf09a2a98f5b84e40336aa5736ebc20c2c7d08907377b3ca8fd815837961e33858ca6782c44ad2bf2a56942c7ffc872c2c5d2e4c958b69b83fcc0a30e61da2c14b9555e975c08738181f50ab10e9450b25c874b9bde4afff3ee37d8ab177b18974d1111f75df52a8e376e5981d5e445bf7706fd124ce2a7a9cd64435fe3ed5d2df46fa5fbda88771a6be5b8d36939d05cb3ba37af3796d93bab10d11f855093a1e43bd46550477d9da8f537d1fe45112516377c80546f8146a728ed0e416ef6a90602e3f7af1fc6527e3fd3c5947a0abaccabb37fcf961ac7b181373b507004837671e906b02e925240e7f9265405fb1fdcec5299774acf926cc875f0449c7814319d2f3658782741e302152cf81f6eb543f80c9d0f21b360b4a028164b12fbd9c2b7abaf91180f1ea4f2818d779c410ec987e598d010ed93527f899a372f05cef8ceb109bc1c042e46ef9a260290808c5354070f5775ea5c63b1923b8756afd31a150c10d78dd08cc56ccb24bca4643426d9b6226693dc8b8efce7feacc91c42dbe2221a5ab5cbc8f45eb865a308896d8aa5699891d75c13f102aac767898261164be7d98933ea96c055ad5add4eabb492b0fee240c930efb15da69a642c32a70a53ea2f9580e00e2cfed13b3e6c08503c0061f3394583e985e9ea671377dbe4b3dc580faddf310e08196839ef9acfb6b41a5a609f674ea97e6eb8f0cfa768458a5d6c4a6f23797a700ca709f62121889a6e5428161209810a2b24b3fd87f85d93589a6368822b79741e63a43220a07b1854f955aa3df1736ad9ed79f67798b2ffb6079f3e51a3176f1c8c45009e349bf2d7552debc4d9f913df1c06a354701164566586d6c2d8778c482f2343d8d549aeb9bdb484616d650b2c29ec566532ac8faf24dae4d976c5420da363f22d13fe9e6747c01989bbb89263637c01da0d4e4414612ca593b621f49cec75c32ceb9b250699a470b2c12a09ffb6b77e3428561ce684f960bd8143810262317c2907cff31927d38899d73f26a5660a561e04f3dd3437e094726e9aaf12c40c5fa927bdb5c5e37559bc9147bc650dd08c188c622b16ecf787f3b084992c5702cc35f71ae2dc4f32b902d3c3673342e6e975448c97319a5367d1a112f544dcb0bf8564237d346c64620f0bf223e3b22955da74a29b2442d79a6f449568bc560a6cb54b60c733dfed4fe47b117be4422112662927bf47a00f09dea581ae4468d17b93e22201b9bda8ee126aaaea687e6c4d24bcc6c3db4e566ac61d1901bc6aff92791128d6cb2954a0809f3ac92e59be866189547bd50547b437e0d8a9aad872a7e9221c8f0d98d18f8ffbd5af7c697fae9f92f02c39a70140644a507a283610043d3f1cb7a58a570fe38d7915163af5ba742f99567ffac5bdd49a44d86ab219c4179403ef185f8130ebe9de466cd6cb08ae39149a71c1c09ed632deeea619c2ca5cac11fa42a46d561399d60ee585dc7d7eb824e64cf9a76a40e43e328db1b4393d1b0e6e4568ee23fd8165cf521d20e7a2deb4ce6fa7c33e21cf4c89347099cf0986a42c205162c2540560ea5485a83caaa59c45a754ba04c42c0e0e09aada6ebc12ac6cc6cb34dce233d8a385670b07d6abd5a2a5546d233b518118de3c94a8f8291f7641d816a0936091d9e129882447e22b5fafaaf80e3d7cc14db845c9af81604c5052901f39202458f54eeb0947757115ce99a105891b7410089d2f84f40af7ec84065e32fa9880df03352a87878d40ce43484b4f992f9fa6e2201b422a5ad0e3804329e527be5d209707d0ee184e307e172b23a33fa1b3d69695c8cd339e4b25a599ed359115f10f4c9a7060f933ec2321b44fac5a51b7a9364ae376431217f8051ab4d79338daed46c09cc3a345b676515ad33ac8106da9b2e031c5ec8982413152111d17b317021e6850aca0e4b159ac89d3b2549ad5b6b49be0bafa93f31262f2cea7d6293f8c939bcdefeac5119cd075e0c41be8ee05ef8e4fde02cd8f71d49f2496bc21db5425ec102baad455cebfba39c057e27ea9b0b58756bbeac74df869c04fd21dff3fd9547aab5dc524f296b538d07c085c62560e091f373565d071cc1c210095d4b46896aad29a582ac0787436c67d7c17309d8a204e30a6901a6195a16d4ee9025e70dd27ce71e96b26d427be14817ed38f601a213e0b85a10b9e173991841b44b579d143a82974fb1960a5746fc373861550a7a51435cbad1c2f15cfebd2d386ab8069bd4cbedf3bdb7a4b55aaaf59c4e4d5757a013f4a0408060080331c4bb3d0f28750238fec411d0d0896d91bdf85bd1065022093c5b17af18e01a5787d40d2023744bc83aef00b588930c86080d0fc820e8fbd7d5319c5b8681c47a248415fe4917aaeeebccd027e6db256908d3032c299af942ba2cb06fb5830a244aabf11052db7fac9f832c789b19b8214a12e9fd0dd2b9fac50373d29b6895eaabde357d9783f92a9b0fe0351c581d47c004389ac89e3c7838c08cf6f0dd11d80d3f0477a556f448b15662758b33a6f0af28e70230cc40a6aaba64feab58405db7c3b0469a60563bc8f47f19461b644742dfa33eb4bf07af6ccfdf1609fac258fb29a24a04e9a090bec6c21f834e35799c3eeb6038897d9ce9cff89d846b322c7eeaf4892101a3af08a333a38abbe1aff58a4039ed955f66573d7f0f3c8f8716ed808e4ce107f3e99d3550006037ded6fd2854e9f48b7e5362c3a29195e082ed2c343df6a38b666e648fb4d2e68bc89c4fb90053a6212eacc9631b23a2b003e87a4038d7694e61b6b9eeab519b8e4019cc950f2205f51e0da26156fed5a7fac6763e39d2d5d9768e3e3320ac93659cca8908ea291551bc7ffaba9aa16798bcde2bb357a6124d7938a5fdad4526a84d5a6b37eaf375467c7bd67e795f08c57e539fccdb5333a4a900abb873298d35afb44dbdda80769756c3d0b6474454085046cf8a6579e0aaa206abbcf3b6514162127dca20ef811bf132371cb3a2142c851de837509464fe022f3f79104723938c6cbea7dd3125bf2272c04bdf8623580af63e304082e93e7ecae6d91739e9a5a505053b48fb3b02f9f724231e1ba4e532eea9bac8d66fb82692e33f31f0569dca56232d471e77cb9e0b7313448d4ad83f62faeef1a567b983ddb7229055a619750a55eed8d23a4c39308173f9f257237e300cb1aad7d3c405d2e8aee0900af610b11c1e472480d81d4ccbc93587a840db09d2f01636f7ff97d1c084504d6e890ab1240b5b3f5879374098799a597522efd17e43108a494522e7bd88bc8788c37af913efed13b305eb252ea4007ef04db3933e021a0d601247986752c4c1a41c64c7e2825738d00a71260db25688b5300dc91fe26da39303e60a5a21a20f122a30fe90a120a50811614119011269a41e06d370147e8dc655b7e9dfddb057b152752ad93f0f9932410eb608284bb9af9ed2cb325e53f53ba567ebdd6c13209ab9a2d2ed4760c024f4a62520d20d5fc3a28de20520a497a9e55f700c2bd06a37ecfd234884024a96de1618b72bb6a2ab2ae50b39ffe3b2d9430576ce52c1b19f70fc773a2d6720fc4b1ce684ee3281eb4f3d0fdce8f39c207ed353fd9b390ddeca0720d308337f140b7e0fcd38c1ac879c23242b40314c4875f9005839a82aacaa1053ef4584ccec60bbbd6d2a08c858dc0b45aea0af7c2445ae00f836e7946fb98f7c4f8929b996f90aa47e5c7f9dd6530dba544ad4f2cefe08e4e25882f8f1ad8e4c378baf23879ee73ab317583972ab1af4e8e1f6e7449a77af04eb9ced5c16f6867e16160ebb1719ac4c643103c105b02019f6c3a681256d192c40824f2f27b8a9def5a32ecc3fb2d925386ee0d73ab3a9a9ca08726e2ff71b45cc3c5c377224794f49ce82c8933015757644611ab79294e8794e94c48dde5dd9c450e682bf2851604749a0c1b66a76c227a773599853aaa3d220f2c80532d5d0e58ff82d287a5bf50dbbc4b438a29dc8634a74139c74b5d5d1a4a5ebd4e7848e39be5fcb111af70d228903e1dbce4d46405bc3d66011f889920e0b970e3b810eb3581e3b0081eed8328ab0db413520ff954c1538a8d798a8cf448a70155c8589e914f4fae6ffc453a459766d2a02ed9d828f75b040b6d23d5e5625f95a6746d665f29a1fcbb50873cc7c1841229ff6d11b490fc162c05af79410cfa942a6cfa998139bbec4522334509e781836879ab4920c04ef7a8d0e1e1fb374eacdd5ae5035497e5ea63fb901278c8126a3b89906f0c7d6592faf52a750a92abd13873b17125393ff981dcff043b1a936f5c968105555d9f8f4c6735ec7174fce43909d3b3647b9bf95582e57c033044b30f5c35f4294a9f5328c857880b0de4499b5b07c7a647d1b87217dbaecb724369f400ecd15f3e856144c4e50bd8c2a46e681863fb6ff46c7aa8633810126f0b3bc8c52d6878f88abac8f0bf7d24fbecc94dbc4f2447eba5664b8e8e579f5dd811840718a84c0885f088964f3c2546207c6ca8652acf049624291aa1dea5bfd98ba0389ff78b2e82485d71dbb316d6a2a9d0cb073e5ec0c45801a5e491420164d59376ef7da76ada573c3a0a8e37768c72e41a27c2df64c2cc26562565b63ca23eb86c3b9f88542015f65daad73672725c24a6e69c4a129336fd86480556f5199dfec3a1c74fb17bd55d917f77c3fb9e6092eee3d6593d352ba459faee89c108e2f96d8a451fe1117542b18bad222b76d659960968c3e2f0d0081bc8a2c35894c94cac8cd5b9fb694444c9eb390e83d752dc5a294eaa6948ff4991f44e406fb22902f2aff5e7e45837c53f66fb5ed24c6a075f20bf67254100d1fb9ddab2c720379615b1de309d0d6785079f4ecad492d9c44a0f1f0747e6112d0906bd70dc1c010f8734fa8cb9851ff10aab89ea61848068d111509dfac583ec9a06ec98a611b773b2d9adf0d3121688852b0fee138676ae2fef0eabbfd77b9ba36ae5f013c4482e9ed93b49409e07857a679824e6d06b4304a53ad3328e8a0f9378a79bbd7b4fd85e3f27f53da13d0f8b9cfaa175a33c64f07b65c2195001531bd05f68511abea4750019ed6d53e41a09ff76fb96da08f5b9fc3297b8c25c4962a85d86aab2473d83a287edd372c1ac9ed2dc472bd58caaa9856627a1bb9c1d64e09b40d174a8141d74772ed6a9292ec407625622d692067a0b260fdcf1779d1b0390dda5639638983f9c22faa609082528dddf8f874fcbd36f7376e13d59f6bc9a035a5870fc0fe6a4e5eafdd5b76da48edd49fe50bd439d16b71c6e19df930a80620911e9f342ef2e8f891cbf1d4d7fe47c5c00d20adae1087b83fbe36e29f23316c6df4cb766a2253b55196192a30b181323cc900cfcd8859f3bc6d17f294b1660b91ea9f51a0a761c3b4f46427537ed43761474f8cdd9a738e9acf89986bd9c897cdf63146cd0b09a41af28e370c85bc318ad1f564b96e672fc13dee01daa6b39b80c08ea1d19c0ab5f82828e07585fdcbff5e64242bdf84486e9d1ad2bd24f2f1143bf340c8fbc17c430cf42927f4e981021d651981117d153ae54e1a6c71a7213bba84e0c7456ab5aabae824a085fb14bd2d5a12d78926afa5c2e33411294379a8ae96cb90d90eef3d19b2470b86ad61443128e4383d4bb0bceea57a6a3027c1c094232b301b281378b2a5f86ac71251b0557460b2eb0ef2d7fa5f116b8f2e6493f106650d5a77a6d834001507443fea32fc7a91b7c4654ae468d129ec1003b22cc99474dc3382e55db87720f359f85b6cbb7985a5b197baffd4cb2f91080ff188a0f01eba0a365ffc5130c1b80910d7ad98c557f258fecd69f69a07a3abd3bd3eab8f58a33087f7f74d9e2aa69a6a7fc6ba6921f1e418053a4cff14ed7ae871c045a2ac85df8be55ea0f2277815998b84d18a7ad9ab46805850a1a3f4723cee3356d4620e3097e8001bb7d68825088d5b76f05cf5e64b5b1c984e10d3448e3ecbb3ac1bda506127f77a3d851f821699971e6eb96262b064e396cc9a582b7493789dace8de9966ffc63d4c8d0368d7cb69255611f5be143248d8a106eb4b722e3b9a2a789d3980cb8627ca10081d4d079958e935723077d4e0fb58957d31edf8c979d8421b6daf20187b96b1636b787b7ac10162cc9740687cf67cfc757d94a3655406f37da1b95df6dc4c73fc72926a639b3e9c32582a63719fdf19c169e8c643822654a14e9bc296b2cbbb45b51f28b3c073895e0065c6844b2eaf44a7f60ca7031e7a02147a10cd0230ccc664109af6ac909d9bddc5fabbec50cc26ab85ce3f13fcb69529ba11e3a5ce22026239553114587d0c01fa52b966d2bf674765c4d8a2d43493d48624cfd265b640325b8a3348efe1c6a90c0bf073ff56c7397c41f11fb1a937636e5b9182692ae5057de37154198cb63d50973ed9cb5d1568262d24627c5112f0838f908c7fd616d5e4229ebe0e4166cb755dd3b35c495ca396460e3e74f934225c34f696b68c4c2096d2574bc90cc72ac9329931b931b2732a8fa4912b3fdbc0086a423ee8248eca67524ad3033750ecedb2352a37537a3c68f5b0184d0d9fa29067e198b16fa277ac9d3b7e56c43ef58b5614272707c15e84a0cc1eccbd4ae7deb611127746d644c07c3c9698cb8ccb424d99ba0512bb40090bdc73b980a910207ffeefd81173f117e12a182ec9004308d5171b426ee3ee654b8eed138b3e0d0b1862d3913e1efbab07276ea01e5195cf97000ad0ad55044ac0c28c44a311dce1d9700ace528bcfd22460e8e38e2f52417538665666f695ea49f728a8fe1560f8b498c8d556278a05f07a66f859f42bd35e8f154225ebbb6929e6c5bbccb6c4e40111c535b120a65029eb5f064318aebef3f287e83b411ece5a59662743d20134753a57394b56829aa7c8cf678c0691932e9b51800193391dbcf73b5f2ea4677626930a9737e42454f3f56f5e39e8b2d2808e29970dabcad12b7cd8a9ec16cc8e5e245fd8a21ef607e576404285f167a507516a522ae80da1fc380abf8c84fb4e486ecae543895e115ddf58b9fa2081fe154ef5f0b02f958ad4aa1e064d4ecca3d287753effa5453c0025dcc4e608a1dac06c5a0a3fc271e4133dcc331cae102b6f90b93e7857ccbfa2a9e9b6f7137b8d5c939ceb46b20624563e733c1ad6811e1d154b62cdc8e6810c32145dbbe12d5d910ce384081194d838527a82dd36ab3b9e991a3e7a2ea105a722f5abb3ba2934f38bd876b2fbdbca5eea3dabb77265d31e8362eaf5829802d1cb6f3ff94ea508a912bf02aadf3dcb1624d0e6ed57cfc87af95cf605f4b6c2a0154ed0ffa3e5ef6439f77eb3a00a7a59adfaf495e2dfc056f4b3d03ab9f031da117439f922c89d065b498ecdc39bc63e569ee86bdadc9415dea22eb6c493402da940d849ed087e963b3066260ee4af53acaa8ee100028d01756743fccb03217e21906a9d109e5259304ffe6385c13153d68432e9c556b2b6d7b3fab6dde2940ab4726b1f760b079b4b0468588c3b39f56822c7c7e0fc5f01d03fb91f79d546a2d2959ac745ceffd657fc9ebf0de98ff412730c27aa4a473ee9e89666790a7ed759b8eeff3f702b74f6d58725559f4234e270408144b6ae2163151d62c05286d73b3dc70684dd9f488f8386b624c61246cd1619919e70c96e3196168161cc65fb71a68308ba405727c1ab46a4f7901774ef43101088683e867d8084dc5343f762b570057bd31f90dafd3734f28e9b9f82b1585914278cc64b0907cdb9c8badffb70fa128c32bc8fed17595af79b18f198a49e4f5e855e5fb5a454edd211a8c43c19f4dbab8bd3fc5bb08d80e8d72b729a807a0f681684def4d674a4f5cf56ecf83ad196a9e7d77575c1fe0e2955aedfca490cc2c8ae193706fb2dbc4aacbb9fa47f41541c6bb9e6f99a511c7e7aabd060fbeda0653c73e42b0186edec486a1abedb1acbf291ac9aa638b0a21cdf7902ea02f95e56cda876b93b6d35174f33e830b4996538a9390f56b1eadc940fe8491feaa913dbd4d90a422a183db331c36ce19c67dab1cf11f3440a7954e7339637c474914480f673ae0a0c9d2b05cd1df5d43077df1418c4f186a333e5d98cdeaed77f8092ca7a47d14eea8d2877ac8d70bd2ea59c5572336e221b24593c36ec62dc009db383e5c0f8397a25750856df0e32a12459f863e52e68a2211f7484d59bce29e556f596af78ebcf1b2ccd8967c98627cbc0179f6468293914d40c673b120561bb52565cb2c51940401f0754fc6a78a3a48cd66886238be998aba2dfeaf55514a036049516fd80b767603568b4aba78e331410c047e2fb0d79cff9f1012fa2dbf29af83ffc86e24658efc25aede6f3a04826694dc4849d8ab3375036b8b4b0b60b7a70de3f794ac8bb7fa86359d6ac2ac33ee0b505071c155e76ae3e487c4860140910de81c612101948867ebd5a40a2c21eb74316e72b88aaed810e988ddce5e7cc4f218f9143cf44687c31a7ca4b433ed56336a4b8fe83bd4e7d2bcf0da48b3f09d983fae8d0479fcf8c020127ba45eba0ebfe041257f28a0ad60553e4759abc1009838671310cd6e00adc676c263e9118aa35e0219fb83f1ee47d152cc97b27c8e275c2a304340790df910465149401484a600302024330409ef2b317bf8fd3e9783f24f355ac61fe8beb0e149cfdfc3e769bdea238bb22a3d883724c8a9d6b15d8b27f23b8bb43e128053307626eae364c3b9f95317da1a8de1b1d9c84742273801c9f8e855d8b8cd1bef17cebd117dc32ed9db3234918579ad283d9718b050e4127c1d257cd9d6a556ebea10906841c14073f3af93b8a89a8e1f82aa81e59cc79c32b57324175652acf550164d0ee1ed7f62a10190626c0a35c9c4821427e74973615c087042bcdef37cf57cb871b137b5313fa480f8593f9091644d55d344545e9a74e7c16cf00c30c23576d5816557479ab92c8029919677df0d9fc084e25908bbede132c76aa3bc4ad54085475a69ca02d432c0e258a5cc10da295ced48303a72eec0e514fe84a175f5cb01f270188330348e3c2b29dee3d395d01c4eb454c371bffd04fcaae61b772c37507c01b6c73fbb88f0a50973b1b237bbced4834c6b9140cc0b139a105ae5d86a0e7c902703d059b12cf5527b704d0cfc433a86712b97842d6aac3c18f99f8690240e52403a4b8a43c5ec8cd0d53ecc232876aaf6415cab45e2a5bef07952c5deeadb1866b8d2a168a096c50c9c2a44f0bfa4da615ac49c6d712e3ed83a22c09f3830899e1a4ad6667037451f703f0b393b582cbfeba5412727608ecf3edaa0451189785efa922fe696ae3ec045f978a7b0c1f9c642107d18d0d6a5f5aaff69e2c16972bf399c65a610be90d4144061e9dfe374b450bb4fa5e9c1b98d36dcb31c87c334749e450b40f9d87e3a4cf34a3fcc8df8c79f7ae2500e76839124d75a670e49bc6cd99f7deef438c1bf89474a0de3ce129fc4a3e4f52acb6741983ed2ebadb864f33e8dbabdd33f718a38cf8f293bb6f10de579bf3e68aa16b6cdd05eefaa2f33a15ec51b17bcb9e9d8efca83549f5cf17ff1f8cbb71d7ab99bd5684bc4835ac23cffdb99efb46f1ecc56edcb31bb2c2ce04b92d6f98fc916d4ef74dcf4546d7948eb608ce2bf8c24848afeaaf584081e4e8d0b1ab12334d5a687e72a7495f85792460dfa8e792377465ea0832a083ff373b9f071360614c0f53fd96b0d9e60da8227f6f105666e7e1082273733db6411765ce736e4443a5a5c000e67c03f6d9cf38a3d1d3e51889c312cc5a40874e14c9fc6994a44ef5a5a5c040cf6775bfb67a5f28cdab30406f6d4f060f3e06c04f06ab10e3f46eeebdc03d337a17cf4ee052340abe9512932d772383c5b9ef26b1dc64f8b0981166b46504910ca8e8fe9c6b20a24a0b528ad38bb971c10447a660db045e9ab9bd5ca44c7c64a152dfc6abb3b56740cfb65db442ecbfdc0cd27861020022424419ddcbceebd5715ffce67086d24853e233c21fd083ba5595ff055c6f2d66cee580a6c393c5956dfee2710ef1f07733b8902be65ce9df019f99de317e3b31995c991c7fd5eb031f1b6bba3464e1aa77e251d78a5ab65e95e0af78d1e92db205ece7076a8db54be7b3071d818c71f64af9bb71ad24df5d52159a64cec0e6df0426c6b74ca0b1db7c417988080b086c5f937812bdf010f72cf4c7813b6a45be615c62b121388515360869ea5e629e142ac23aef662f09fe8a6a064b5c83a0be28304c326f0600479178b6400a36d433e07ec209833db626119c02654b176a398033e90decc2668b6c09b03db2726f3547b4b67baa1ec72bb61902f9ac4cca817a0f7319811a4917fc4a0e2fa4f5e82373205697755d5dac7c738884a9fdc4d973c32617b1425ff7aae5b9ab07c50b1d5ec1d6e10dd34e3d6179959e5b5fd64c3069d39c6947a0ccd7e9f16fe0602cd071f040da439807511045ebdb849a7ac21adf2174e1ffef1a7171bf69acef5efd7b2abaa3425283d6e6b60eb75f35a920dc5c52cecd55f809ab011f980add8244e4b809c97ae836f9a7220459b5de12b107f0dd4393dd9c14899b4d8cd7dd42cb2fe397c3aeb1395bd99c119bc8180185d3275e44b09ad0ab22093d533062e2dd178210398671f68faa500e6a2f0953637014dfae8d180817047c362248b7e672644983e3d134ecb79486940bc41029aa46a8355c22253011452f41f16117b3211b2b566fb8e2c9320249b836da4798bb9ccd26fcec9aa7a3df402118ac36c8938b956afa1dcdb154079b1f2e15afb7da08074dd260dcd50bbedbc5fa947309a10deb80253b75f932d851c91cd7e8a719f1c8cf199c90d103fd0278038a2aae2376e56718a99155cd92aab67aff4f4eec6f5ac67dfbb9b9699181ee0f6aa00447eb1c0aa31c20ac2810377e86a240f93265eaf0396fdc21c2e09ab3b0137d78b1e16331a8fc70c06cc74e5dfaa82176901ca1057739a40658c7cac75133092081a9379ddbd3964accaeb28668845463c8b65f67f63041022954a6142d6d516a6a618bdbc85417234ec88e95068fc44b662659ea60107165009e149aa2a7a2df812ef48d6b7929d1452442cedcb347bf53e83a6d52281db9fa4aaa2a1c766591d8456dae16c1aa82d5d3d4597aeba73327c9ffa08de29a19bd261bddeed5827b61fee58bf2d46bd7f8fee07c4b9b8483e4cb6d733bc70229b039eda8b3a9ebf805c064c4e7b52d76b8335af02c8e9333db66d4b8b6affe87b2d24460d614748d6fe5f19a47097727330b9b9fb5e9baaad98c291213aae4e1cae33c1260fa50b12045176021852abe11777dff001276db95d457fc49de0e2e0ca03a57b17e543cbaaa355ff432edc609e01a436cd67c30759f36f46c584fc1a0e60fb2d5b46e95ca1c4c8861c9db38c031b3302fb237bd510c00d2c1a4ea9c3622cd774c1f96130b2b5486500afe0b299e3f43571a7dfb4ceac5cebdb2d364c65bff9a742ab06960006bccf92adc467004bd74fab49e5e54aecfe2c37607b3fca4f8a3c54a16ad78c7bb70a2a91848872313b9923c63eec1d0117ae4c56499971a275670d14c4bd64c4f25d07843ff55d804088eaa58cdcc8a068a3cc77c857acbac9645ad0c9395a68ceafd6c4dc00b7dfd19205f7d2565a22b64ad60c47b03d09ae8a32b8bfcc26c6e05fd72f4937afc24a0017ef606893e9cd083979930ced5d44000f289cf7b04e8f1e2bc9f5377c9708f2f04b7e0b6307323c81c5799d460ec027088e79eee5d4a7f1fbe29e4ee0d2f661fc6ba66d80388ab89efd74b08ba19df4c4bf99d0ae4cef5aaee430b007581e92db73ade86e8472fda084936e90dde92357ac7c871073f51850c2b68b9a4b5f4c5babea442d388729b32c10a914b87150c8e8d2ef8829a4804e6eeb30a23e2445c18b8ae781e36c88bcaa9fee527c7efa1d3c5826e7887184f3b1d10e3844c2e7d299e043f4af14da4c2570602e614500e2f59c752854e930110fd28e042eab5e028f1d20f4e09a8f1574c5f1f32a01a28ce625cea4511b5d4e596027cf3ec95b2efe9e2cda11610236c8ccaac80b54f3c7988f4310038d905068bdcf669529ceb97f3534b0bace0f94f8d4ff2d0db4849a61fe1864dcb4decc4de358c22e08467a72b4895a7661b0fc4f1eb877604d7a450af33b6458a99c3a987523e7192af9034354b71b7eef17107de3b854c9e34d6bf5f54d6f1415d208eb03a6e4322b2132d1550727ffa77cc8fa12328339c4ed1642a78dfbe1e2667915a5f45a0caa9fb476743b6fdade692a83a6b9f8b9ac828000ecdf1db0b5af6f04506151d08e8b97bdcafe4c60f4d56908a2f33df69b6b41db5e78f1ba90e45b1bc884b926458bf406f849128ebf283653117a87e1b8b6a0bcfd754ab4cf664955c21c8d3aaeb3e1e93628e068ffba26871fa007dce7a3bbfee549306a12636cd27646569d5be3132139d062a56223654e46960a4974baad82236fbb4298e65b62d3e25e1def79b6074aec6c8648cd232dc5e7593df0a6d94c288ae303ebb17c9d112614afdeb3e4ed80b4a7eeef020ff71b95fe10dae289f1e02243aef437a6ae2a9c953760f63f132047e81174d39cebf7554c8a1a2275dfa1c0aeeabbbc3bd5e88d0beebaa237417c8f71e09333e2e76adaf89ea5abddd3bb4798d4c9f541ec9d729f31530c8e875fb1c4fb8d1ad3639548b06db95a51131d5bb9cc6dfefbc9c9de2ac0c5f16f438dc8003cdddc11d2af164a0c9ee49a29b17e5a1dd344ca6c9c33d73cc068e94cd44d2311416d352cd4a1925bcb2610184cec5554a93dc512c3f9205d96398880ff1c628c84365e73e93bb15b4f30740de523e500a76ad2f31f969ce20daaa307ec5f8ad81f434a0ac7c123919772912b3e9704fe3b1ed6737aecc5bba296d6c266c6d03b6d704994089a986678bc6d18c0438ca2c6d27005332688726dd276d00df4e5ebe7488be7b6494e7e2f6df4729474b061d68a838e055dd6dcb6bfb985b82d031a9fa2c3c5a3a2d65ad4d0ae6c5f26576905c3a54237cf5bf784536f6f0fcf309d7f3579ca8f47719671d3c21daf2014d04eceefd40ce6154a5c819a24f40606a03da88861797a06ba80984af938df3350fdf181279e855607ac9e310ad8b9bb93551443769719e47a313d05735aeb06f9824a51c84d2d1b66c06dcdd897857e185bb8a84d24fa4fea4af76ed9bdc92e75c068cbcb6f17133fb944929c3a8c503d965c6d2952d15b92057343826ebf0c9339ac9225d9869265b0468ba1857b6d76aadfb8199335b15eaf425472f615e62a8089ffcbda561ecb1e0138220d3b1b2ce3f77b8c4101b3cf07bae29801d27741cd21c7584f6209251089178ac53c17482f9e54369f83cd0759fdda5b490f7513e28bbb8bb1a3cf6010795b8bfed3d5d21140a73bd41453a070a51ae1e9aee56249be4290b83aec8a8606438ec26f209a3dd752687a1d399e7dc428c0afcbe854188309014821d4e1b9fa485d3ae4a9ab8b1f9f4125e01b483b79e2b82376c70ec311c9a046f70186170fd19c2a356afa1a560aa5962f4d6b4960b0926611268ea82cd208a693292a0386ace2bd5a9cd2d4dc1ada517249f545ca8b1e1255a2588f5dae40f05322a50cb492c1acd2d4cc2d23244330b7f5bace78bebf5837cd903399cd3286f925edf5f2dd5a417850252ea3b346fa93442a407bb6f6967dd6083e1d672bf29fab58d6c2318714ec437e38a9f502288b9cd177c8847e4169911c9bd37e94455cf751a5e081f81d11b47e2fa1a063b2621edc522f5d675cb9a8568eb2f8d073d8e083cc88f1616f738025a3a6a9e43ab7ca2563237b7227446f231ed56e8dee588906e6305b4607b7f227ea27dc9425492a2fe1f4c4c77f8f7a22f0538534b673b038875d0cfe9ff76cd79e587524ad36dda4f38be80473cc2027eb13262c18a9c2521b554012076b3183b1cdc6ebeb6afb810f12b5c627f41a3572b9b5db1cdc4be641f34b583d77f8e24c0f23af610e911b801f5710f9d27f9ba1cb800fadec547ecaa9d811d9f58d0feffef4a8446aac84ca0b879da280ea4ab6acf60112bb66354070acc0c74cf14d76930e9bd69429706a9745f5548861f19ed83d9442f48f5411bb398d27a4f053c13a5f537f302bdb81a9a32af13dc3d7d3ac8c2f0066bf33bf2818a18de3295c87afe706d54f6ad6d90134880fcc5788ca6e780c0f2fc66c355c0f2f1e84befc650f766b1a68060974a591ab795ecbf01e8adae2037f834d81bccd9305b253c6f4123c3e123726a7b537910bbd088dd4820255c4f50886e2a2fbc4a17462fff8b8d4ed584d2910079c33b99a9a4e5643e198dff538180e727674440b38cc9aec04493fd5e1904763490e4277f921ebddf17f3f2fef9c56fc71ea3de8b5b3d048b9bf1b6c8f0566f91fe64dd01db5caf7357359d7d16152fd6232639ebf4d64f1496e6e8425ead0f3c898ecadce0cdf769db21f60ac0a615f08f9ca5049f5c6e2c0a21f687e7142961558c88922f4ea412097523cf10ef9d0ce2e4d7df1f6391a9345ae904ab960fc5e6e6159c13393e7237e20a44d600eeb9c4f78b223b9ae079bd661de261b0b9ee909ed39ba2c89285ecc73f230b0410277f187a6e88baa97fd2286d1c062108c3c26a7c2632d636dbb1c1daf38a6754854ff55b95c04e027a9dbf4ab9cb3911cc8a512c25e88baae9cf4034a78e4c3e0bff21721ece7dabbf895e670d05a886a6325a7db4f4b4d1f473f34a554e8bf47acd4d1e02a46c5724b1aaaafd76602646cefec3e66bdc5e9d62ff52190f48282aa9c13404121acfbb102eaa9c31aa1e84c1808bd82fca69cd3dd8c59698f423ccea329dbc4ba199722ad73ea9d4dc1024798155671cfa9e01ef9ce86e31daedb38efdc3ee6a8475c7b8e9a8e7ff3c161804da3df558444ea420938bedbf80ed9bac547d3fd9ac332ddccf94fb67b87b26cc7ba9f23f587d1f447f47da1e2fd92f9375efcda3bb7c9b3f6817fdd20b5c3fcdd0f492eb4e1cbf9786e7ad3c69f41ff7fbbee33a60bd285845d37014fd61186656e8c9ad85368966d0c01e0750b3d4914da241d89c80eeb0568e9af762d324686961b076e1cd6722b0a3402b9cba47082e39ea1e361355fd8b02e11b31c29d8ce5504be6871c4a5265e765d1110efe2a53ce50cfc1abf420f465fe9998d3489d44a2e25ef512133799cd8f7ad1be92a150a841c9b591fa35600dfb0494d9e5d11298390b096d90096192f8472a22b8739aa9303598fb50958649ad836b6a4c0fbae6c92aa71bf76fbc7057cc4951c4b87c1ab8b4644308492f97506913d1987eb87e6adf9b7be523947684cfefdb5d2f2ea560f534f876129909df03975958fd293b6e03f61c960f633d594dff1516423b0897dd804dc0912f7c1081b78c41be389f5bb9ea7e912f1ce6c917cdc57e9588be6d8f229cd9047ab337ba57309c11271d55129fbe45fdf526186e7795dde3a990d21552747116ae484226d6dfbd8dc003b12a4099919c7f040009439aa1a0dbb62fab87455235a993e544fe04c7f8636ff037b5bff8374346a849ef4636219b6c2977f90b820b6c0b28aea26e5c069d8be3422dcad0824b4f42500b33dc5cf8840bb52803cfa5a52c54b0e4d2b8300b1524b97163c00a003e322b47bdbd18ff2b08376939a714478143d98b352c2ebe244db71db1f21f2a3932d2ea883038da8b38208c539c352c98a7bbd9c282bbeb3a5e3969ee4aa68e534ed7d52d534a4b7156d361705fa94784e976624c11fd06cac3aa89312a2d944aeb4aa9a4ec40611ea52dc01d242ec01d272de631ea02dcc1513028186818680ff3a063803b403b346a067a06eaa362ca8247098cbe5dccab1b1b23d48d6938cca3f4c337e02144c18c5e6fe0ce0a377650b81a10326b050813edd749e1c66e876fc49305d92e0c375e9b9da52dcad3dda55484a912565f4c7c153975bc8215dc662cd07d42752b95712edb9d9ab6280fe5592995688f162e54868dc17d1d0b851da5337ffd9c6c5ada910ccc0c70b7db6a46da9ba85ea9a8b6168877e959202b8732a71a1601c777e5f227539d171ee10dd754b56bba3a56c6759f5d0cc230d9cf84d96c485673c96be3f73d55a88304105c53a597b9004f2ad3691be8196818e015c685ddc305a4821666966dac85566a11d46515c16556ce67ea457b735e6c0ceef4ce07ee400354c5c7d612ca036d40995eb2842cecac643e95d634d12b401e97900b759080821b3fdaea7cba251d1ae01838b65a8e860306ce7495149412e964c49988b610056933c35624caa4928252229d8c3813d116a2206d669824a184626b31a3c05dc1f4c54f8a268c1a1a9f31e3fac1f153731a72c231591aa71a1c37eccc616184d9c1762c5b448ef7681abb287457b8f922abd1e2eb7cba9f1ddea3298ebaf21b35473ded504f35a79d13eb74a39e867ca79a56a9a2bd787af74ed5e4e87c3a566a0563cc0ee72e87ed5891869d7386dda17aa14ee7763b3d9a9eecc4189a1bbfd359951b151b151b1e9368042255a908b094d323803eb84548f1c28da59c56a5b4a01706877ae745767a8a6f819345318d19efbec3e34f373126878c311265bf13ce29e7a473bfd3ce3df1c41c396eaa45e4b04284bc7ce542bccbf3cd51a14c11342c8a4fe34164665814d3b8112ba7f1f295f367d81fdee583c8d422dd81d0f84b8e7bde731cc8cb6978cf41e32f3722c73d1a2f3f22c7bdd300d9e12b372edfaa1b07b2f21d6e3c9e8dd8e12b37e2c6e50e5ff911372e5f517cef50e6a5a2f8330e65f8c618630fc711805f4d3904b7262ec0b7290b7bf0a6e62ec51b10ddf72405b4a182154c619af1fe72fd4409254bef2b3fe2e55fb1fd722097b7407e1439425a8beacf78101920de5756e467d81f3b5cfe478eaf3c880c9481325e134d348065669ce5a5a2fa340e65bc8aead48cdab16a2a8a540d8a012b7fb1408a1831e3f240507def2f5ff911f2342c9019d6fbcb8fa0f119a7f11997a9939cf142c3db2187f45e2a949951a14cabb45a3d2cb476f705af0b8398a557a058a059a05ed0d665290f8deff099c5775c8003c83123a3134e8e220bf0187c2ba6520619ea7a28b7ee572a954aa588c895eb27ab445e9ea3ee40838228a534d4dd1e9fabc2c303f050571aefe13b5c88901cc7f11b0c3bae01e021b5ea8146d7edec50a1cc8d0a6568542893034785323c54281380ae45d81ff2de7fbc7c4697a9e0440537aaea55d8494d0c4a08505637b8f1d8a9088a388a509437debaf7d6fda4a6eb386e9bc1ce6d40f445fd24c4f524c54905a7159c4e352f97cf54702b164379984756537f528225fe2165eac0d025d2c98833116d210ad266c6590d77dcd5a0425c5af166983e9b5d28ecc25b4a3be6aeebece9a915951ba8d8f00fb8eed6b4c80209c80b34140ba144427c409f6b32b597ea997a77777777fb70b9da4b3d65bbf7e8eea81110a877efeeeeeeee6e1f2e5d1211cdcce13697e3b68531174f5d19c198d24f9f9c6a554453452badf413b91b82216b85fea966256485c3b14d7bd7cf4d3ee3dcee830b8c813235600fa02fa18ed4b9572dcd686be052dd35155ebef7e45c7d402457c358f7aaf3c28d888652c0d2a768814051a51563a0cc7c01d72ce02e2f2edc14d016d5732fe604ae7214edd1d07026d7dc2c29cbbab6dde9b4822e30dcf86d094b2e56fb62a16c9be97e55ee66156a81048a8b55bea8d3e3d61d553f1fd0e7763f5d44d32a8d85438787e39e9d311dab617c4024a2155711cd1938160911d1b4d703ee13ad505c33457b580e4a3f8c6116e09b1d55e3cd7eae544bd2f0edbabb3bc5f56a8f9f32cd5388a930517245e3227cda83bb52798785e3c1e9c459e0beac468cdfd4b5b26ab16c502854f75baac9c44d9596fd55af9f662f38eeceeabaa39e4ac23a3bdc457bdcdfb951898bd554c7a854c728140f4fabd5d3e3e373d205ff4419a9dd227dca1049086eaeacb02563bb7c1ace102748318621366a900118beb0b93181164af0b9c1c1c939b14e9f4a0b09b789bea973ca76361b92d5509e2c1593d56444321b2a866c08fdc274ca6a2ed3495e171721d42b7daf90dcb435703375d2457bb13bee7ac273b2f305ee2531fa0a1ca68610801186772c963ce0e4f5a3e1509eeed8d6002421a0c15da95cd3a99aae49a540872609178b1b517cfd7c2aadeba7bb567b60743e373ef5d3b92155d30612dc9882e2c6f317389455e9070bdc498a9a930e6a288fbddaf3522c43e050c79aa0049eebdd7b74f3d6cccccc726f86f7f2530869cd86481f705db7bc58951e13702cac55a867191537f28df1ba43a85da161a125418b787adc664e476938fcd9db336eff9b71bf8ed55d57494129914e469c89680b519036535b8882b4997a7771a730d4c9d4a542a7b768383e4237950af908ddae7f7af6d9f6eba3ba1f996be907da80a51fb823c6afafa669b5d3e958435c509f3ad6892fd7d31095565b959eb3e9dd4d3d9aafe0ba7f2a42e03e951636bd97c392ac28d4e92b7fb9aca8d3d9c68b22500b256eb82bb508d4a20c515cb859000878dba284a0adecf07e7c8120b205dca9b9e0b2a32caa69a2682fd25cf0746a46d5a63174549fb07a69a6ec2a434b28fb028e8732306a28f342c7caba8044860ac96505b70bae53ef87facadaab2548c1e7c24d01d00bb7bbbbaffe240dabd47853ff3a97ee15b0b6c0620497ce08c14fb4ea74be2ec98c7fdd4ea7d3ed743c34f2de9158f9cb4f35f2de8f58f9cbca5f0e44de536945202f5f79f9ca817897ff4e36dee591f08ec48b6d9e958ef5752cf915697b6ef7d0b033b41d0ce36e00b686aca6bdd85d77b273fdac5ad5755d57e5eafab9c4b87e2e315a256abea12d08784f361bc250649f8a4d97e45281322b1c99b96da6e39ac02e27f836a1cd3b118a196d33dde8ea17b8041a28e192ae724e7921910876494cd914cdd74d29ce24654abd25be3c95b25ff73eed3423dd3f0dc76a39adea9831abe1e0d4644352c09dfe653526ee42a16adb74157ddac2084fcac6951a59f3aa815bb1a87b16d51655c4ca1b006556ec112b2b51043b322b27b22ac9acd8d6b11d45b023d33911860d51fee55feba452aaab54208a096edc7a5379ea5046a5a5a2e273f9b629e58452d266865d28d2c98833116d21eb72aff2d2a654ca3da194b49961178a7432e24c445b88baa43a2ed138a55062e4d09d525487183a55ed0aed071a103423a79a4991a9205b41163ad5cb0dd0c61b4cf50ae31263ee708d3146e682aca6bbf74fdb4cd3a9ea0ebbd2fd349c269853963bd66556562c0d272363545a2a3f5bf0e9aaa0d2f38406f44a0604310e2b19d9dcbd99f934a47b1f76b6d3c9b69041c1519e4e6748d773e3171c5b9455e9e70beed370dae319222b2b36d27835bec4216cb316f76938acd5eddd5b5a64139cc99de0aee84ef46d82f4269c98f7e44e702c19f6253a1dee005d01f2a0648003901fbd48c0860055976a6a4ba0cdd2423d6838280d44e93c7654286e40cca342a1f7e810dc81d202eec8b6803bb41da015aae1684068da7171e3415ae704940604a8ea9800bdf84e09ec65c135a1457ba8cf495309a59c7432e24c4428250aca50a694858c52ca50a6d40ad30094c228fd5c31aba9813b302ce08e8c0870c72c02dca1c5ac80366d0da8eb900b37ec5cc8c54f1497d2106fdbb6857afb4174d475cee232929baad7ede2f643dfebd710b8e3052718c01d738716b302b22b55a3e2c6cf18dc889d5e70e389052715b0172ffa76795d22a8e4f2434b7af8b83b9752963b1dd554b1b119141c0b0b4b8685e4e1f68b4e0cd7fdc37153107230e664a779b830c5a54a17c21d426efc47ba2650255a45a88214aae6fb10f653db4cdb359e59fe484a561166657f14312203d9d8d4388c3011860daceca17fbc83835938c1c8ad573be527fa44561ef7c03c07ce9e5d3edb9efd070050528723b26f164811200078e8020a90d742f54711236c3cd3c1866d147d885a14046c3c3b7d667f14a1d688ed21fb6315fa13d9bb26c2d0f7ca8645511b36ec0fde2ceb608be04099d0b71a9b55668b2c81a2d72e8fa2760879edd2888c8d0f1bb4f3d5b44f0bef666d1c080a7bf6edd975b0404216855d87876ec3a2308b62c0c63a9cc54534ca22a25eedfca39fd9de89309b10340c9181790ef56276a21810ea07b99bed56c8c2ee411ee639fcebd62ac2f073a8ed53616a8dba8a55a0811543649ea091322823e01ab220830856327d1d60be3d0b653f623bccb387aeb1e1db43286963cd9008c35cf36e6ac1526381a9915551291b73620e90eca8eda178130a7db3f126c230f7b070c1c5872c2aeeb4c71361e28eed4073a561c189682effba36203ebea46bbf622b829124828023f54498960959296b9431624ba0c227a2c027093436329841474ca2624f7b4ada6399e4c61e89e5408a684437ad225ddb9134e0b0c7ab5ca922c32741d5c886610cecf14116b8608313b800c31764e4351803bfb8020b3dc841185100831864e4479007dc8212355c794de58e6c5a45922ca9d39e9c01379168a19dcbf5704adae32ec5cad739310cc3300c53fdd87d6895cbb107d1aa19c79e8056a572a830b5eb56b31aaaa9caf5cc03c129e9d1a29b18d3573151aded646161398c312c548b98cb8c96192b7799c7306c6676ce955abf24aeb55ff7387bb446b17abe71030233a564a45e522aa99a7aaa25954add8756694f3d8854ea26db4caa860cfb6255ea5b6a581d4c3a72b030d36b4b7122cc7d4c319c3ddc66a8564b42682e47416a2d60d54373288beac4d18db5231b520b14e3e79cd474bb57eb84bca60ede14528b04c6e60302b14426d54b8cf66adae329a0c0995cf8041838e13214b8d0854f80011628842c2d9b16f4c1c4ede2b21cd324f68fd413041fd2cfc54eb719ecd440e0a64f7bac9d659e591fdcb07879392fa50eeb0b4e3bbc446898cd405f4c4e4c8a3620b4272a4e115632f1321e2504e6235eecf2711b423e5ad4101f10f032710a5c695143f0359d87d02c910b04b914005dd3e529c665b80391f8803bda6afeb0703dedb192188eead0242cf40865511c6aa485a4a43d26f9c42a701f49498bc67055c8367092256d0c87594db35f8c558423ba798b7c68769d689bc144381caf59d14d4bcb4537229c564122990926294e84e19b42755445c3f059ea88e5a39b19d365ca9838ee9c8773ce7998da75ab590d4ddb5d7baa7e1fd948198c6c465558fb19f62ef6325e547ecfc3814307c452ef11bbcad7d60f22a95f12b77baa62efd1239b1e55f1a2c12eaea691b45fc371351f3a46b234ed1b6c5dc9aae2f23f52eb23b592905a2d2c5bb4251b2a38f98fd4ea2c3d529d9014094945e5fc72de665e2a9256913852cbd22358a548dae310cb5224249e5ab49f69c79edbd46d5ce96216fb05634216f3e1729790b7c7feb95caa6393bc475328c3d9cb8bad3021edb110f2f6146e43c825a44569ff18b328cd0a01dbfb7cb81ccb40c4aa7dacf672c65aba332bd58941b3b8944b963c26250cb84f7413c3c9cb177024315a4502c308309524081006de9409b60a9d7b08c9952c5becc7b1586be7c8265a20bad7d3180e49dc7ee85e0f374c92549eaa5fe8833b2adbcfb6a46e3eed3191d07b34c5d169959d34c9657e7c02478f5cb675012ed04122b2c28a23222bb2500c276db6996c9b915656614f2d1296b7746719ffba977fc759b91275258a6ac63fd195995c9d5c957fa51cbec1ffe895db95bf9807c5e11b7cf9036883ff6157caeef6585d027bd4b155b2ba7f9285e4e7c3ff64714861801e7f462599813dbe4b25ad017a7c199524462dad7eb0aaa4f3298ef64afab45f935ad73e39cf11de940aa137ade8a6a57e7c5b8e6d425c2d15deeea3f53ba9df0a0b9256b15a65cf973aad82db8cb5f542c98e92b15c5e5a0ab85ccc8aacb071c9167d52e78bace80244947c950147ea9143389845922054c11fd9c89f6c3392eb69156639251d0365e64f8c913611864f2d77fe5cd22ad3a7ade490f698d4823b26dcd15f805928b931a41674c2e54b17709fb4b937a29f9590156396d46221698fb56ba78f973ddc8d9062a7b1927ada23b5486040f91e4d02a355f2581c6d33184b2b75da6bd537b2e969155fa496e8e6a65528ec57cd143552fa5cd2cfe5531c3ef42e735a552a9d435dd66d5d77305d0e9d0e5d8d77f45dcb3b9677f35d8daa43cda1c2d4ae5bcd6aa86a959aaac4698f4bff248e34f21eed22e3e529fb79b693b6b6cc6e3e65e9b53a43bbf9944dd152f62d2c5acaa2bca5c2cb42ffb7b05cd3523625a54bf9ec3ee9ec2cea1a42c590b7b0685aca1ee3426d4d1aa77c49dc6a3fd2b5fafdca7f49dc1e2d715a653a5f1a3199603479d784e39a74a8e64df7a155bfe941b4aae5a627a055dd4d873146741361f8a68fb61993e826c68c6c3893e9f7acfd3c1ca21be61314cda6d06e6433b219d9a0564e69e5dba1aed2f8e89bdf51a795faf13cad33b3cf2fb69361bf7bd57e1e8b25b574b4850d633a37cc8c5397b3348c8ca77a220c7ff6c49ef95a1252a2514b51b4c7a41687f257785b9893e929addae3c9aa76e6b413b84fb23c06b4cccc8946664efd67ceaae554ae288b64cdb02ff69b2ed67e9c8cce7e268a1363e69c1c377da60f4e8c0287dd1e6e9304467b3c1ca9b3a4c805176f2db34d7d8b6531f9b42a9eb1cd87bbf97150da4f3be9de6964f3e9b8dfc8e6f2319f262ebe4a7542ded202563d4ec85bb2444815254f246451d24a9644d230fc16022759b405dc276bae9bcb8af6f866e6582957a4966401f7896e249215fcb03c8689e8d48e9a93d422811187cb2fd594a8e818a8c58a4f52a2e4f2e14712e3b26452ab75c5fd4a344b880312ee579ae2f227d5c4085d465d3897119288d4c244372c12dd886e2e3fb41971d292411d11da1eb22828d34684bed91fa82b27f41e9d0339542f9d9d08c3bf7864ae5684d97c782ee74018fe66cee56f1086379f09da7cb4cde7ea69cf27c230a925591086cf92d4623ebc8c9c82832e6c9748696141504ff4f5040761adad30830138d069f785068e147f3909e3b4678473daf3702e4ee41cb6e19bf6ba8388304980314ab07ec4f0f1c4f02f4c57b81d05ad02b0670c1e01a7805da08445a11c5e93a354cea49694c8a888c532f9c749b8ab42f9c75d882c2bc497131265bb9e5d3633f9cc32934a2494f96022b34af080bb82c3ae44fb60e2ba4c9490f2ca58ac20620c2369987e92d945c3f43fce8bf6ba595d7aab1cb6473f1c375ba9d761c770cf1eaab36342cf5eaab361b2731d537a7695ca350c7da9720d733d5467c35ce74cb0cee8271dd92fc8913baaa8ecd729573af750e91c96f252f550bebd54326196ce766262f20ff6cc93ea87e3639edb23519da7406437119dab3a42dffee9e0ae67f5cb3edf9e08db6a48968063c22ad11e6c6f66d6074472419af5d1308dca32ab0409b88f593d4a5c4a60bcc33c1648e22ed1ac6ba18c276290e60c440201852eb05b024cb4d74e30b182492891060e3b0fef344301633c08b3e27ec2ea7e7c04eee8e0eb1bed19200b285c16b51dde90491432263189a2b5db18af56d71583ebb59c318657ab39d9c60ddce7ad64cb789e4b8758cb8242978f05deae6b4a053755fb76f6348594db8c8f104635108886e418d7d5e14315aad36121e96c6c7b5dc8528213ae8986d86452c2749b33c1f64ccccda1cdc49b8fd03d1d85bac936917a6fa23ebca89b2e32a159805e674165a6a070031ac450fae958a3dba7eb27fe9c7e4c6168a3538d49280bc3d530fc50e93b377a771d774818081a4dbe32332145306e0a2902626666d38559f4808a1e9dd0962b55290ce845d58ed6a530e809a95217fa2c7436815ad487fe3000db823b019d7b4a277504f575ac14921b555aa39b3cd4b132293229b2176435c87450d3d9a8a1430e302e2d56064bbd4a0a4a89c4db453f99422ade460d1d72807169b13258ea5552504a2436619cc9281436e0e94e8cc1ae80a1e142ec8b0bff519e992240f7e8311eb8e33a3c9f80fb6d822f7685fb613c62b81043031d72e10eee4777349e0b8f5db8841854713fba43baf0092460dd180cf921aeb8af67ce0e9b80fbfde6900bcf9d0115df852838ecd40a5c02eebaf0092498c2fde84ea8ce0823e79c73ce39415448d3109e0ba3cdb9e490d04d0273da8382fb301e8c27ce19b3330f5df5705701504760a8ec2cf38365e8b143992b7cb81e3273e24dad0b792e34f59008433f24c64c2c200c7c126cb4b8f051b8f05fe38420ccb9b64065198c5a5669bdb48802466ddedf09e3d60008cf371106feb2b9e4d140873c31c618638c31c6182f0aaa5166feeb210c8832203b73b6e03ebab303127c4009dae16917ad8af35a8b8a8732f348c3c0f7e818edcc8101bcac0023e4998345818387cd940561e061a44322ec9b0b1b67b3c12e16295046346a8b83136e64b60791e90791812e5f4aebf257f7c6e13673e33d5a9b574a8b7d1007b77249b71a3abd74c0654b6c8b74193eadc296fc90c4803ba8e8e410aa443e80a29b28f201545552182e0acae7cff48930f3d2eb8bab1d9e424505916c17e3f643bcd86994393f207b78bbd3836666a8bbbc9d2d713da07f1ca8925a1d851f14d22a7e2606bddc66486028110287639bc97c323140760a99abf6588c39a7cd7eda632cf3b974c04d1fad06ee688d86d670a31aae07ee60399f1303dc31e37c6e0cccc304ee489dcf9501ee78399f3303f35039dbee2c3a9f1363b41a0969553d7f44c33c5a50ffae4be390551b8d8b6e4018863ddb66300bcc3888d2639b4fab48adf62e955a80bf5403bca50ae0b5ee38a9f2784a1dc045950007556880021060003c76088045a5c6fca5ea784bede1b5aa4eaade53eae8a2ca1da4e27ad8e333d7a3a3ce134c14f00dfe1c32a99836b38a79c33798eb09c03900ff7ad6b43745149daa5b1aa00dfe4bddd4006df055eab6846ff06dddd8c01ebfabdb1bd8e38bea1607f6f82955f401f6f8a42a12018b4ac02214cca87df99a5422d9371f86c99123478e49026883e1659934d0063f08dc2759db11300f4d9c4c8c5661f7344d3bf2035bd4cb430fa9a45892a53894e2a4d4b447457b8c514ae9677bf49007173f60c9841e44869eb119104d4949790a86613325e594f2c04b72f90518c3504684b26b9bc1325085971aa0000418008f1d02803a6a4a1168831f53537ac037f85c4dc9a92947dae37b354555537aa8293a7c8353ac8036f8345297da974a97ca77f3e1e1737297879b2e0f4fd1814bca0db4f1915a2954b40a7bb51f8e16fb792d2c292bba39bddb76aba741d785181299abc25baa5f764fec47820319aa58c29239f150bfde2200f59b3bf87a8bfb49d6372ac1e5efa049d627599f26c58f1f458e603304618b67fff649fb6b9794373d2e819d2f0d222ba5f623624ac6306cdadbcfc7dff1a638045fd3f5fdb17e41aec9f412ac6eca534ea10338a8538224573b76d1e3f683bc8cc74d08599988ab2b83e5a0ca22df22df998e614fc9779466b2bb4c796cb94cd9938ed9af3e5ac9da14d05dda2598907609ec1b11d7a545d14b79ed5845d17fd40a6183fe4780fd5c00a65d248f55d029e58d086951d8e5e7b5c78ac25e519815c2c6b701202b20ab2b4fe9550eb720b620f8daf7e808f2115722cc2e613fed12a963d5475c45fbd4ff6b1bc2f4948529d689785b4eb2577bd27ed53a116fa7804e012df27be24aad621293f4dab14e3e4a7bb5879dda3b11affc8254c9923a3a2cdda594310927ff499644228d009d4507828e990eea8e55166b2fb71996d31b40312e76f8b51b2ed6fdd3ecc7589dd37ef1d388b8fe73317bad7277ed239b76c3bd01548971b51fab59961fb3b7b34bb05c9b102cf60bd223da4aeb120ad06e77162cc88dabb8ba9a1ab8b8baf49acab50a3a6f43980e7a6f4260073dc8c5b00ff40b04b9d83bb811a10159cd6a011e83431d102cf62f42683f7eeef75beb23ae2ee83f17fbdfa3417c5940d5f497fa71e0e7fe2af503b2ba8f76012ed091d73623b22a4ec6b32d0141ae8c2cae648a64206e42a05cd32987a28c116b9b96958e0868483d3f60e988608b88f126445f2102704df246c5aac4304c622bf226269b82893015ec053b615f63181657d77450ffc895114e487b4cc39e5eac8afd2e4a01027bbdacd85b586c777a5111bd8525653beda7cb9abec9995e81d0dc6a69fc01fb0784e6822808040281406f1d24add20eba20d04d95efb5ba9b4f8c61b1dfe6b399e68c6352939ac43e0fb71f6e5478a9ac2baf1fd353528d9f393186eba96f6149d9910da9c5f5447996569aecf714fb79519e643f1c32ee92c3c3adda739f1620c6f861594518788358d1441878ed49155e98051ca6b8dff401a2af765695efaef591c999bcfbcd9c0f874bfdbeeb7e92358984be523f90f5d13f1715c349496a6575b55598da703852b392f980040287d91fb0e415dc145cb40267ea2e2516ab915f914288bd55a58b491f80ec15415e885422698f7ff019a35d02bb1627c80b53b412d15cfb4604bcecd1f458d4e901f749d625f51081798fc631f2fa1e2d8b70da7fd255ee720c09f61cc3b5a4907ae8a5955670df2ff4f82da4d695e54879c2dec28230f23b3914e7e64ab6a13c64728d9cf2f310c6240161e42fe9436af19876382921849107c977e7ed07ec2c2997f5c7bed2aa64734bac5b42597d283642a4540ac86da6c5aa389696caaf5c4fe59404012f8b2512d26a8cdce2aeca2bff9835e31fdbbcfce395094b399c2d871b102db6c28bd9f768d685f713ddcc4f2b59d006ff5c60703e33c6fa59557ec93a647db0f5f16ae513dd5c3bd7d3def596faa91c6e3f54ea831d724a5a25ad4f7c3d95dbccccb20cb31890375a27e4bd68ad28f95ae94355089d4bdad3ecf4698fe25023dd033f44732e77f657fcac4a4829a58c92caebb27ed67eac7d5c4537231bfbd10dc5eae8666433b249a5eaa88ad1cd532c2db7a39b914d0b4b4a4a5b4537229c92cdeda8280db9fc7a45287050e0622ee4e20b345cac92c0b89a10a23e1186e3352d45ab2994d2c3fb511c22e8e5a5cd80c468cee5639813f2d2833620e8edc8469218aba41e52eb7a8f8ee1e4af4a223196b29f579cdb8cbc64f873d691cde8a6bd97514988129d253b2431782e935a3be046377664d39e0e38d4102f0f725f0e71523e63e5f347429d967f30899452ca918dbd0443f628692f9a584cef2abc3146d912e1886edaabff4437bfacc530acce78ac5fa54ff9ac15150faf2653eaf49187175bd22acc5200ee4c4eb12a0e4ba1465c8e4db82353445a9caf7c5266588a43715a05e7120ede167651436097874ae0b06b9a16af468203c6c886b538b2e151153824960379451aabf46a68de00dad3d11ebf39898e49b332b014ddb4774d2c6856060d9398a4da096aba88a71a26bae9e1036461580e30acbebc9c2f6fb826ae1be2222fa32aba07be920877c9ba2ed61548b02c560e38d41dd9e080fb482d307aba5b05c750e0705c980413747139880450145fd8dec5b23260389aa6e198008946718a3022743fc9823bb2ca38c569958cb30ccb52860486921b709fe806c9143dd206dc274537a29c1ccd7e4fd87cdc922a52ab3eb87549a4e3b49773c391704846e4c5ce392a15a56977a91600a24d6e722a31d2493032a14eea4816a945717c5aa425974f715420894463eda14a8d340cdf3e759ad32a16fbf16569f9e0d665b976ca52690ec5a901c797e546dea35bdb9cdccb554636d006ffcac2a606b8bd81a180aa783ed2303c0a02f4463de01111e8f1b7346c3e94492d29fffa1ec296c394bf8e6ce87bdabb429c9256c11e3155e16519f160f4836f84c5e6b3c5e11385e0f25faacd8cbd915651805b34674a4d823622346f596edd683925114062aa7eba3a9768d34e9f99338fb4ea2224429648d10da9a769e491c8be1d89d0fb52fe88ac43eff78164df3ea9136380f443accea44562b32d24da26416ac1568b72f69025b56c38d28662c0f61c60cee742927fb8f80b259fc3aa0ff323b6e7608184be1dc6020192bded8f2246f4b76db34f704d5b2664be124d46fae17c0877a8f08d937f6d8620da8bfc955a448489cfba42be313a843c24d05c34bf71ba8dd038bf8f34abbbb8dc3aad05cbbfdee2325b1f13c717382078788f3e0054c5180c692fc678136198473c7262bf91dde99e18983c3e0e699504f1805a1126320fd0129e78138fdc781a28a7b6ce78ad2f07f1b40af4c35e7c6ccd78a9d38a1f1187cdc85eb2d91725b79993bbbc5619209e564106b5e8bf2b1ef41363324bad20c0ca8f69caa8d38a1a2b38f46f0b7dd40a50065c2a56a303988cdad0ebcf4d88eb9e9c6aa3c71aad3ac1b69993bfd6969b6aeaa0568ca1354b9807e8876f50506b49378100bdf8963a59ead401bc119faa9307d0463cad018138486fa08d782642410c3b8a46bfa80a3b9bcd339b138e44a3ff2209c9ee6977a4817b22610fa3cb1a1ef018f630e24e3113691447d66befc4d6686fde300d6c909e5289a09ca2f44f5aa2cf914a25cad51ada925229884d88d6b6ebb58a64bfe6ecf7046f3327a71ae4168d48b5afd7aa13fb05b11e676bb05c7263136efc366fa6115a821b0fbaf9e6106eec9ffee99f5b23d45e9ced45cfab71e15c2823c8f6446f4f70902b3355a10a45ac70f9a2cde53308b88f75e22ac6c02438d8597d5367ceb96a158c8790876bcdfe39d97101182b193eefc4213a17f3cfe5150d9f5b3df7631d9d8f752e471ade89345f1c729967a4a98943628c176da6e04b0c8e1bb93cea80e3b8029cfce3ac0739e6c472f19ae7b84f3bac4b700f492c70f07e90054327ff4c251414db23962c8c247b6261840185bed0b76d1b71b71f0ff7e3872e0a72b9fae3b213f28a6c0ebe117a8f384f4bad82a1f773300f78430f7dabf0c638c5a51cda6aa9bd36f5981064596f6fc667ff20cb87cbe4628c0fdd3dc2808283bf82708d6161e772bb5cd7755dd7755dd7356532e90577d09c48f0336b794ee39cf2d9af25826642c862e621b10575f9e1bad7aa7965f5b29fcbbd22f0c6ae439908b40b749080010765642c071706e78c48cc18f300160333181dc4e5317b7cd116b4cd642fb8c53cfc53f3c32a107b11447b09f0416ed7674d40103eb4c7451491030589145499defd14a8fad11e5405811edf04f26021d90954a9bc4fa12ae5fd6b423e7ff136d56a1141b4c7cc4804812a0602fcd12ac6c9a1611e7c84c537f890a706c56642ee888f006df04f2ccd576a1523690f0850c559243902ef70177c83cfe71afed7353595ef9cd90fb4c19005f9f668d557fa12256cfba1f4d1390b46d2aa5e19d227802d021e63c7e47cae0277c13cad6adb52408fcf264709f9507ae95d4bef417ae992ecd73ff9d7071ddb7ee88f2ee9e43d4ecef7213b8f4e6c0fb9cd640d82cb5d82cb2cf8e19f040451045f4d644e0a4024dd3624d1153b2b685da8c58559ac40c8a5300767322776939b60739a98989898984c5011ac075cb7172797182dc261226e74723e9f508c8e38118dd7859d54936345e69c1886f563b8eb4a398de14e42a11f04c2919713f28270400d42e9c9031a517ac3a184a07c23125dc7467372bf5d9be0fb314f135706e43d39396982fb163080e59bf92bc018b6a261e41b091a8e88e18bf3804c2eaaf05ac14d4689aee170d7620c1a78713534270ca1582c0717734a4acaa47de5390950d545809efcc748ae3cc603aebf9d747a5db1735ac537ed1501aaf840c4dba7accee9e2ca734eabbed6b9f2eb1c1d79e54d7ad5343c80aae601f4e4bb416f1ec023f7a6558c05f4563106d4f5ba12a755466453d19e1cd29e94ef9a567dcd73a768d561c84445f38d6c10c6038e3b8987541927c2c86f95b39c036d70617fe0c5d557101ab403eee39bf91dbe99dc451f1be1b9500e922a97379cbc50da0baebd1008cb01a855fac4de88241194be228a94cf94948e3c9127f2f044e68973fef69c37915e17ca31da0f5522db416f56c2814e4dbe816cd3d85eb5278fdd70d745ac56a15829e2b11fcab1d3fafdd25394daacda39ed491489f23e72738a2bb6641259154baa5be5992a964651450d71f2eb27bfde2376b35ae55d7994eaddcee923ad6a1a7918433a461361e431ccbb4e6c1725c4c9fb2716851d5ed183dc8620ac9aba50163d100344136358071046fe8a89c5954fc2959f1cdf401b72d4dd1bcb6c6d7fb907dcc73727e72b38955f7d79c6e1566990ec51dc8c20c9902ceade8af6aaa14cf7dcf641399d5c0a8762828d2687c29960a314146ece39e79c282915dec9a1a0fc639e13918ae8c246dcc9e9c9f5f979894c44d88863d1c9c9c9c9c9c9799b39e936393121c2991ce5282826262614070f38e66651dcf6d0568b08a23d1d91ed017114b8cb09bed8432023211068ab281d323d74847e7a4cbc2b24e3c0ddb48a5e9ead38d22ac84644a0aa848f9e106fbdcd5c11680f89f6e46945a51c5e141e251849a949a05409488e0351cab1cf092bd9401608be7cd31e118e6f42212afa251faa9f7743225baa244e6422cf37e0504298fce42726d70f8a197122fbcde6f886aa77290f5f9602dea569554dabe6e43893c7189631796f3326714b40907b5922dbe3669ff0648a74908be580c3de5e74f3c49825576202e33c92c74484b52771c0618fe166832adfb4270faa8c83020e25e21b269cf011d50db427bf55e6b930a4841f791d36886f208cbc649e9e2ba736b98561b1a7fc6c40310821ccb0ebba2ecb6d7925a39452ce569641169b4c6d238661974130c646d035dc874bda8bef287ad551b4eae36fb6101f5ef2f1a18d786581fbb8e7c6f7b092d0115c3a90c7a80bb7ec421e1d0a3c813c2220a290078e8b3b1e15ea0c00bd78d07568333e8bf131be846d6d0a81986ac145eb04f1ba6864e22fa8bae69dc04dddd5f00acd4b8a28709707656c8f2bddaca28698cf0ee2a97171608ff53bfd44f10a5c17381822f9004c3cdc5843462f8ae845d507e4b99b8d5da8d668988eda43d47aed3566bf060ee45d693f178d88695143c0c747bbc4cd4c579a74b06e9caca8f1007ffd14b33ad872c6437bf15447abbe0bfe3a8555070ebe1f8e2178b86640d7011ae202fdfa1010b270f0a0031e83f1824a989418075b1042c83f90ce2aa4c8751030310fab10f162259c12494005404b64feb2a821e22d0e1e1a86e1e1335681fec183203d063a46e1414bd0830e3a0dd96f0337f48e31c618b32001cc26d11e9f44cf2eaa1c0e1c1250822dbdaa124954090c61726112adc26612125002be478720120c051209b46a3bdf47abb448ba70093330c3b7facdabdd2404bd6eafc3ca1b1110d6b61cdf25ae6320d01570596841f6c2aaa9bdecd845641e9b7362d0961a5a1c1d04ee831047120c7f2e5e65510508f43a7479851732a0afb45c7bf0f01e365667846923dc7c8c9911c2085b0764c51c4c0d911b8b786c9a4c1c37e7bcdaeb884dc9dc3888dc6a1fdcba3c4384e644a47d825b590822c6d09fd620321314822032d9e1a7f61f30c25814668dc83eed8fcca2303b391d7007bba20d6513bd2ebe628410fe82907f5dd755e12308600bb660ab57dcc30b0ec2fbd03173c608a107a1cd04d560252630e69c1c6732fd9e8703c78e6603aee6f6f53e2f11d25ee4d5067eb42ac280bb186b418c11c2182f61dd006cd8b0edc7c72c131b803e1ba84ec80d30d15eac45cc808b31092560c041aba581e39590683289415a8ecc3e70441c37f643f170da4e085c7faafaeaee639461e9cef698bb92c035175e68618c1dae1fdc91a1ebdd5b701f6485eaeb15af6d46669f3b57c21d0cc3f88a563ec141faea2514ba5c2a9199999939014518a1528d689822f826d841d5e87d14c82389eeee8b200f096490074761d27d3dab4b6897c69c04b72a003d7ea9660008f4f82795853002e00e09f0390a7e10cc1b109fef61f269b9870cb1113e3c53c3e5375c66282ef38d68555f4ec8db163504f67edb0cc89b591f2064f5f0a1553ce0f07eb99983a4f4140185b0f66536e9e0e1b2a7630030c9e5f3d02a3ebf86a9eb1828031bce70db19020a5dbecde6c2539e08033f27c7f1488133610163e84e9c397047bc290a34568c0706ab60a8e40df4754d2d199a110800000000f313002028100a8784a2d1904cac29aaf00314000d819c4a8066a1c8619053081964880102002000020300813030003f95c044817b514b043091a5a2a73850eac1615f4b0921c08943ca35ce8ca98458ff83f86d75c352a3236f527825bd010e450ad51123c749b5292818b1a29850cff74d9cde4fd26c69dfc59068ff75acdaf1d5995687460156801f4e206c437b42008734d2bef808efdf9cb8fa4c86c45874e93f18ff03ce4b5581ed8968f83744244f4a9b35b7f5e371d0a6f0c3d35a546d40ce3633bc7612ff762182633a224a8acc167dd55c75572877426d91893d359518c2a8ec6feba4fdcd66f3d7e67b8702535cc5599d28fd3c801fd0e7582d6dc7c4e6665f96d99e683ded4c4b47bd0c1e59b6c3719d750ef0ebf8ed27ad7418abd6965b985a49d51694e8832287462b290e2e0599157cc4847a4d993b034dec05e659dfe6004a0d5131cf7799a3ef5e91b208d2ae58c27386875c6604fc5c604670b2e3d7c92968fe200ba4793fe9782ca303f7a49a16af8ab4a9afc21a08a05f4b072f78df45d100edb3ef6251b8c64811e275fedd2c0bdde9243de0fd84854aa55c95a6513ff779682f940c1834e710d007a5a6cb014d4ec9f8736349a59aaf617767b761d8cc95c32fd5de9d216a6bc5b9403ff023dc08e7a5bd8d21dcc08358fb61822bc886b4a214944b977770fd5018f18214743a6157394a27621c7a4659f9d8b9fe600b190a6a0488ff814cfc601e24d4f462bce734f20ab04cb8911789f9121606e3f4130b3a2df0321f567619005ada09bd729ef446942a65c3c90184285a9cf7181c1875edebfa74c25e91449ba395b6c4ace08984a33813f0367e3280bac8ef63b330ad3cea94c8bfeadc341496e86cc58918c2140e502728fceed3ec014ad146e448ce8e1c141dd0315b0c30c8cd8a6d84f303260f68bcdecd4397aba68d0b1642d7ff078a90243de07a18da570f84db930f357adee6d4c68adf09fdd0a246980b903b1afb082d6c27c9087d054d4324bd4ee80ed91d50c898998c269b56d65e802e0f5f597f173b79a939e9a627d545f8e6132bbacf12f08428b06f65cd76019dacd66f83ff4bc353eda86c1034539ea11f6e1b784bb0e4f3a57dcdcc87c7c1a7d29bc30521b0e8859113dd1fbea09f02e317d21e6eb409cbc3377b21ad8433488b2d8d65107382e4bfca8444b1aa09cbf806b31e2187ccbf51221fa5ad5117c4c7b72813cdd197134f3441a86d238d520def65dbe3649e499a65984a5f203d63c830927a3c87296e12e965021072cc406acab927df32698a98069c1ea81f10649b41481da6faa8b314ff79d85f3d5844670102106e22895012c1ddf8a86951aba82ee78960271d980f3c1def69453c383ddc350750b020f980a79aa0f0bc0e643d4be26d75465b2ac72b08d0a9ec256b16b56e70fa4283e45066e0446d60bf1106c4a0606acc9e6a5a22f152bd888756e91ce5cc723764ec6edc2df5cf99323cf58556f04806608674fd337361651c53bdbbbe304a7665242ed6e999020b993246d523f6e37687891cb3eb034238d9a6e66355d0820220af768c31ab2fb0faa1fcc979386fb7e6a774b8926ca14c482f4b959a37b3899e77e65addede24793689d4a23fcdb391cd3878fe4e69aaafffabc396eb1d0a66fae14ade4021a7fcb8de07eda7e1a5a99cfec906923fd47e1254ee9eb75f1161a16bc952512aedf6485137514e6567a9421db24d77de0f94f8a54784a91377ebfdd9074d6f5594996b77c28112d9490c0bd56dd11bf2e86a528fc93853003a0d1e4e94ea3b8e44a4100f66089b9698c4298b23ebd8ae2d2c3e2f3ecd904e232394759444758ede0de04b70d4c7658c47a65e1b834a2ec056371566507cb8e35112f4231603a3d94dc6756ed31d718a916f1f06adf32665b6c8c5c5b251bce124499c5a6946fb26072259f9d45ffa5702e74484ca2a045b0856e4633c115f52fad8bbfce1f74eee2dc90b719ba771ae9ed0271cf75d97cbda0d7cc77edc8e511e7158c6c9965f1201416b7398886541fee210f06e12aff04d0768a3fd9bdcdb3b6a97938c81a05043087cf05987a6a7439f4b5acb6b0870e98a9340f7b4c5e33972aa10bebe629ee309c28ea07d7fb8b0455178577d660014164a2e1c960eda59a3fd07f000ce4b7a19caa0cdde50cec50d2f206384f95019124b74a8b737ac9a28af137a01bef3ef6144a7a38ad95356e81cce2867791f0fc94e86e8d85e10a6aea24e107322c22ae0e48ecf0879bb5b2586026d8f657901e9a11d4edd8bac542e250641cafca871308030d11b4311b97db90212ef793d4adf7a607d85b390598d5cdf907d984fd7f806b7e7f77cd30ce2daa9a992cf1abb5718276844402596e8f56d954af59a868ec4516d6cf5eae904b201b0ba84212c19c745cc2505e63ebbfa38ff5499767e124c7dbd4c049930ca82d04ca024c855a88385c884749da2770095a2aa5f50c9fea75f2870914d4c2620bbb445c182961690adab925ce6777358da6d059e0bb31ce78656ff7e6a6bba1afd06069ba20af0a62d04adc55d2bcf5abd1b93de1b6af5c89fd3de1dc4d8a6e54300e498465bcf003063f2eaf324cb9be28110857242521baf37dbd8de987d292aef5bae460e2c07d217a3e8851d1077e6f31cb617a703e53233fc9cde2b46915a24f01d2d7f542e5f113a25ce748fd842de3561206c410f5c48886860a381305b64a58e5225887baccab076580092b63cb48bc8d7eec1cdc072d6f363d0f95c2415b9643b8e9d2fd03c279449d1a177b4e966b6ed9c5962fb14fff39f983198ea1eeea2afe625adbba0d60ad245a789a3f4808f347aedd93486820a3e29b6eb3dde07a4216d24ce8971e540fd947c8269b941e5cad7ac2e92da7e3107d750c85f202d1d40913e5307cecfdb044cf8fd48bb73d76e52a8dadeca77a1aaad7c24ba635603d803a778a62e2ddbc8ea8b826905fa02114f190ac6f3e9dae44111bc44521541926cf2463ae842ac452e4104d8658926c128fbef75181d8242c4009e672885470867d625b86d5089da86a56c8b7478685882f785272f896861ee4724b45dc866a7bbd9232c12d27c510b7b07abb1980bd8df88ad0fe48727564f337a4367eb657feef1e3bd5a863b52763c78c434ab7e3bdae23b07150097dba69101a9d64bb02911ea8ae3f1609201c1bb97bb06fc36a01e4426dc8eebf71ac1c94af75f180966067318c8d4f66758b720772b00346ae8ca07105a0abd46bb46e2bf4f947b6d7fba0d3ac8a2588ba1a495b2b2ef461e79b080cb57203b9c3884e723dee698e2e7df8924cdff84eaf1a89d389fcee932ad882b22b73853c9cc96bd5de9b5292f23adbc1203f4c69b484e9d04cf185b8615d362cf9a7748cbc86c4f58ded36b939ebe99ccb5dae3925d26199feca68671397af383c5ada21c5a2d6afa0b9650dc557c61d2f62c449559c781a06e1338c96943cc85088a5b611e0b711b8728ffc2b7f1980f55e511d5e8046db081c1135a3099f57422f8a6785579b65b1068f7218a395eb1e37b260e3d9296866619fd4b029aca8ee51f68a9f6dcb61e4eaeebb9fb18dd4092d9bbc2f9adff1a91e91c53d76c327b270b9b165bd1741fa4621878e36fdd295d2216f78f22d771d8d7e3b0eed307f621b0bf4d08f5759888d1099b8d986bd19e4aec03237f4c347f45228e23c8b56e0ae318c462a1d8d7c48db20f12cd5282ae7923b5249ee1bd826cca6a61dc87d1ccf593ea4949520131eb6cdcafc732425874878cce6f5b9e0141d11d9e97efc89f06716fc1d759526bd76b43c07f5415911244e260aca97f6e51f552d26a2788a7410440296cc28fb4b63e34bb639cc0b033241d775ee480a53970ccf83d393ad2e01f5ddf981752fd2cf1188d8d0035b6883004a790377091dc481197e9bcb8c57c82866477404b5b15a2a6764ac5cd767c2db1415d297bde6112224c378e30cabbb9db98f834f3690e0ed0aba1097e8b9a2dd752e280182368e4e6942f1211cf630e20a2e45c805ca6dc002181885d91001cc7a35a1896b452770319b285452b902df0c0ef71e0764a56d4a53acfa0342290d81b6e80db9328b462129e8097152bb5d7d75c4e05c6a0a043dfbbf93563928a221f684b9e5f142a2166fbd78ab8093ac78aa0f4fe5224057b06b5492091606c3c1299608d529a7dcfb281f2fbc8bbf31abb91d04aaaccb531ecdfcb7665554ccdf35491f30bd3becec1b699671fc82e426518f4e43b7968d454a4a8f0bde3c45ec11db7c1eab9f2150cd16ad00f2df42905f48e50cf1ce35c9fee8ae80906db018820668191086529f56dcbdd25e0aa648fde2f3d95e5cdaaba79fc7a0dbd5ae8516868895801d148b1bd1c2e08b3bcfe80402f0edb13f8a18418722d1a3f73559e3c6ef48c521668990af33abb793d20f72d4d8d39747406f8971cdba5bd0807e8925ffeca04423bd356ab838068f7b5ab03f70a8f36799c1c6ae74fe0e081e50e905ba46eb2844901cbb45495129c1624d91a3454db23f426604c1114d332b17692588c7e2670190efb07fbef78048cdd5fa8f387cba6486499ee220e91490e52ef8be132e4ff1d09e46b31a17d1fa58ccf4c4ced5e0686dcbdeaf3b054e18036b0fbaed2ef26a9eec802e8c653ececdc84610e34f5b90754112fbff1cf8408bf29848de6fe7c0e9e00c5dc009c0401c20e6a15ea70b4a26dd2683a840d299ac07405a6a9cf9621711e144412875a256883d27b63de590039ef2505d12b65dda77bfd6ec008503acc8a7b9db7548107c6103158190ade701890a28d2d8c7b15d7ae3affb39a02429a0f03eb92472c17f9d654a8e8d8e7549f00ad1109f46f06e287ecff3cdc6e6b074e9c5142d6234b7a9f513ca9dac8bff057900e93d2272225812fb115da5c270b1cae0794a7a5cf4458c6b2b9a3df3e2bf1146616dd36d04ee79159a35f56e8242f1603d1efe16bd70206cfc77dd2277c227479db59a7a061d769d2a5324d38b549bd967d668efb6aa4a38f2b682213e85139944d1f09fce37d5851ef387197536660bcfbd005eb7b4b4114df60292ddb9038b8bde3d5ae4391d06586b33fab2c93dc440df91402db4af2890263f37e6d821da3151e569631b9a50269228a81cda38ba2ce5d61405b3b36546aa2a33238a4a5c6501ae4cd2b819089e5290da2da2d32c90261ed550979b5a28b861eec24b24e794132937deb031665970e9c464b878d350a9e038ce8e74058c80dab1b48cad627522d85787fa2899ec562923cec6c7a943fc17259c0bd8b2d0c8a0b90ce04e1acb4b6aae651cabaee493fcb7a3d511c7f1d6143dfbd6415f77d639f78edf6a26ff98f2a8db8c9fc0b1916f313f9bcedad969011abf74546222341e84912964d68b2445d3eddb0a7ae61865923a90b25d470a26671fb4f2f8a82c5ebae6975f77ab413dc9df9f5c59273584029cf61b6183b1282894d53f23b7a22c0e72eee7ae050ce4ac83cdf499c0131acf33d9c1c8cc5079b75d5b0235e7bd449721f1dc665e0fa5622a040865661426f33b67f9891fa5ae1ac2f4a927f34a152b2d35cbe2c3a46e12f5ba63dde3d387ff7b6ad8f256069936d6640f6591e9cc5f07b06a37f5656553b6c1d8db88837405f01fd501a926371476295ae0265d2b3b4a1167c88ded28e99e45b2a01dd622c74d03e929fa75fc5e20b62f327279613fe9a6a3a44c6b2fc95288373d3c3da0cc0ad95cca7c2f67010e97915dcaae0121560890c4186277e9ba8fe9a2c85813c8f51cd68a1d2b467f7ecf4cd2a66791adcb55b2288b2966532fe1e8b119386023fe908ce5d2d29454123e85fcabce08ade515c79a276d12ecc92e51f11a616253220e9d9b8f52a675c3bd16c3c6ef8e3245f0b7896b21c3906d12264aa647c41615173f92b1a123ea8ce904a2cdbdbe407280abd2d83d3b81b42dd1c4f020aa9e9bf6f70e1f3d11a5c03e813439ee5e633602861b31525c4abc42aa45802f333439027dbe94412b7f368c98c74e8af0d645eb4296ca7cfdeb3d0dfd278a98cee7fadf712c381eea4e405b0262e5ec65fadd8ae0e72ff579dc19f2a497418ef6522f56dc4bf59b43ab059385f078396e46b4f5fc8ddaa2f4837b91d3b60c63349f4f4e866366baf0a4e358875e3621999e69f1ba49c182d49d329c4944e13386fbfe81f3e95100f69d5292c41209980090a65202faa80c4676ae09b4b7e34ce6b79d5d295d0d9fe2cfa8e2d97ebecec1c4ab6b8d76bbd266034785c04163980997a2e4390794e0699e68495743d5429aebeed6a7b97b079a67d7652fabbefa8e2f3327db9db5c7b7f1b8d6aabac7101f268813af80033e37a1030ae1f07d2fda1b8d3777e67a46b2db177560b1ed74a358f678124239a5bd466e704a6b10997bbed7004a1944a97ceb9a92a958e628b71dce26394eb3d2c50b1c87764ce72d3ede2d6e48e5ae2bd3f32ce6da06aa12e872a829e5836c53083366411d8fdf36c269133790fe179d373025d6fbac6ab53a4ebf039d47f397000482091e2b8289998f4f0c3fe010472c0720387db8f2af9d237699529e0c1b9b3f10911f822bcc618b07e6ecb1a83a346bf189d9b025658629a6ca54e39ea412ad592e5247558324dba963d485211b0019480f4effc39fad8876a385da83dc08e189964936fdaf9c7d3278b327302c17ac985989e3e98ad68663a2b960d4f52134773b48899b44cc1bd1cba5ec3a6cd25f947304fa8d1c7a94de3a98e0000e09a648dc33346ae405b3035c5c8e4866ef6135e5151d6096a2ffa7633ab0a260072e2bddb4cb9176b5acac33968f27fb0afd52ccc7e126deebb5bb0e33c5b52a4356184cbb1346e98822d33ab7941a8a15b857d22df2ab2e39dc48c855fcbe94698aadff7772e44d0e2c42f7042946e5426dc5af058c1ccd3cf05047b1f73bc2b180509353724c0953896cea90000d02a8554e7245b5868ed0e24458b31ed4891aa2e6e151e3c586684b7b74cd84dc0775c8a6b8523fcd4f673b9df8a39f11fa66978dca2cca4e11d1f2009248fcab2b95abbd11d2df6cdf5c114bed08adb78750d2910d3028cb425a85ec3a1bb01d5fa17e52abe14ee14a1fcd5b27dfc78af9737f704a010d222b57a9b508e41b26ab9952c9438005965c883ead88d5842792ac332cc9aa6b3229f3e7f38cbe6d9ad1ce3c401bc0dfa54aca9daca088d4079d6aa22ac9e32bfcfc20aa10fe970f385bf5805cdf7a17fd66ab76d95017587b4eba18d44b7ad30c156e8ec957187832afac11b90338b80481371ce33f67272733ca6fa52c2e024b743aa4be464e5a2e9aba176cbaac3b65b7c5ff15f7cb0a36681e38c6457aa4b46a5aab6e24a9300e995c7511d1453a50930b9b63bb1291d26961120361de89d3dd9a0a969315fadd9f3854ddd34eb3a92058813a106d937979bf2b7c80926e61eb29ecc8d107ccc41b4a5ff1e1be9d86f8e7e0ec7941cb897d93ccac5130d614056dac45ce3043eb144e0d008879a752d3e81de764fce9be90ae244518013de0bb652ac7f66b718eb6a7f6f8e67f615f8a88b2580e7bc9e98fd8ae4e5223fa0a9165dd40f23c9486b2e1c0026e839ea1e1a08d72ee77b261e074f90129dd4e27bb544849d52bffee9f84df6b5c8f48dba28d55ab9adbfdfe5fec124ab35d8e0cdfead03334e68b31f43f61768054d7ee14d666c7924b06e4946aca34b3ecdc8b3bfd78df642a5fddd85a6b70e7202b80a1ab67962e81d4ac3b476ad753de9fcb0beda55b6b8e844ecdefeab03d70293cab6a83e005f5c9f54ef22c0837004af8b09022c5cd3525bebf0c848378f9a935a513236670f5502466851b80d2ce627391d495d42a5ca3cd95fb9a10056d48d8f30a1690743c786716678b476c07daa5550c0078f268a46d5044ac2794ba96da9daf3cff53d7beaca5d0c063c2e465ac68211a5bd39fae8f549296bc7a6d3bcc58c4763290919b1d46c20689c31200f5fdc9dc651250e4d9677d90e40e68a94eddbb7a0ba0dcf508d839740bd705fc31ec067af2c62441f60d6e84fb7b33776264aff0acdc415604e3081f4bd7afcb8f2e310664bc229510181ffd8846532630fd344ef00c1d60b8524932096c0f3e9fb5ef9ad0a42c495bbf146a3a3eee688910008e2aa3c6a78dbf62a6d59cdbe18f188976233f4aa97013fc77d34b11fa74d92ba9ba07feb8396786bc5aa069dd4018149ec026c4c293c38470d98c8db3b1f0a093229f230e41b76429667b7ac241b8666910a705ebec5b56a704340828ef3a38aaa9991ca61d2e3760b0f8d0b9b32212fc3b1091fdbc5cafb42aad4b1c05401effae6a85c8d92a5cb81befa20ffaacc08d1319d19e1c617e63df5bc1421c066a0acdd0c660527194086716c6b6a41cdd7241f1ad2d06344f977f0382de3307879bc46dba77d40dfb661a4a7f45af44976064a77bd9c464c846a75f001db50588bdaee0f3ee58e13e392133e727b54a8596325832e1eda51ed5a6e951d91c057e5b89bea78f6d3f6d82254bcc8a90cff28978d49224cbe083977bcf194d6a07afa0a7b7abe41b598d7b37191333ee7a74c9b78d31792c3f629a2fa5266966894e14381674e3a0900b53b91f4116bd4ded00fd907bb508f86f044a35a01c9373bc410207b0297773ad9853c98ecc5247833f6f17c503da0b3c86fb726c45c6e32618a05a119df2e1013f808d8bfb6df1019948a47c29be5ec98494584b49e35aabf22a839ae301bacc7a3cf5d38eb206f3a8cd58cb72402cc8200167fc515a6ca6c7cac40bc9dcf6a7ed8349020de3f9278334887e6d1a7f817d5470f238d4caf9cfb138e2627d4cdfcb877dc2005ac667877dff5a67a9a18aad1951127a89826889df4c80f6929f285e2b5ba7630028545ea4b2352b472bec642b9024ae5ab42da1064a656b2a63b6b69c321510676b54189828e17b3a72c1f13fe1f25b6b3fa0ecac7cb69634178a1008703b77a32ba59125ade5a3332462ad3fe1880d988d81a9a246b8324d0a0a9daf9648cb291dccf4ff63b54744b3b81c8b245326f633ffa50f1b73d9fb565ff347b5ddd87f97ebb2be3c4df9cd15a62a49d2e9840176c5b71f975fa26f5595e547e095485b1143790913a189d75dadb4eff5cd2e56c59754eff0fff514d7dc9e13eda2a3004ea4aeca6365e144502c75cdf984edfae0d4aa92b756e4fa83503c3a34dad6c3f23e28f93e339a37897d50d062d86de956f3f25fa79b9aa2c9246a647330958cf202742f3fab943ed4699a71d7fc23d0a3c0f1ff68f9536e28fe58e1a794245cd771374c97c231d86c7d50728f96000ecdb9b3eb27ee5432decac3121b3dc49f101f70df21b00d31c2f9581dd295b1ba44c550c60a872a76cfe95ab9e8020013ae8ef9f75a86f2251ea0a5e66e0f05344392104d10e3f3d0cd35e19c6648e6cba8ccd00463241767d311283d7315c3722c5467c178bc0561d8d93cf18e024d505669a9d8cd84be3c2fafff58021c9033cc992afc44b2d211e754b394462cc79d5e0cd7bd66d55cfe09279cd038713593d3e868ac217129dc4cce189e943c8deb746c28e196d4cea40b9b44c1997a3d222ae03bc06938da0a077565eed9bcde2538eac422a1274f1c80a147b86b9b5ac995b5bb6989313ec551cfbd740264dcc03ebb486825fa8a162a02966c937e4a3984f527c4e7e920cfaad2a4074aec45e04f8978dc326ac39b8e97a7e92c1fe2f1292fa924481b65c3a9122e52d03b6648ea3b4a8cec69a2e78dcb7c57f87958e6c9bf42daf6c1c9356734b1826f72a38645f7fd664cf26a61e9aae611e420b9919cde0078357baa6e3bd368f9ac9015607ecfce4665c589498794a93879bef125089ac3bd7f5d8e35ac7a5ffabd98d2416453a7919e30f2dfc1c32c476dcf0a5afdaa0fce3ed66c4e1d5dac6fc2c0fdfc9cc2e446b0ed7c9df306a0ed8bc37e6579fb9f0161cee45f810c4e923021bede79b3e0f3c6ec085b1518b40624028ce846fc38a2025dce6b16eb07caec2cdaa5532a037246b65838a36a510386e7e2f5c7651429d0ded283a9930bcde328d3625de4b08a8a1d4ad112cb832f4bc480a624e2f41b22183c939c6d95201077c49956146bc9a2d481af570d8716929c2066cf66ee3424c8e13cbf4ac6a465c2c8e3fe2283faa788788ee3c09a63bf3f0498e28063b8c7d9a5a8788860ac9ce9155e0f9a192bdb8c4c4ff76a22ddaf4f2ad7d343a696d67dea73b159fc75385a0b98d44894db2c29900f73a0d9360587c87a8e3293043b04624b74f17061294e52167f6d9238a596c005d8156255717f13925b2b47f2d0416ed9cc87b1df1b9035b77d29e5b27a373923b9b56c345344eabc9cb76083a488c15c16f8f0c8c9e4a37499ea7a952e436e896788c353cd8d3b9e584accdf405df12bef106637afde63a202b28ec01db624b268c090123f3d489711cf9da02865d3c8a4effcd283533eedb0aa0fc71b860a587f72b7ab5a8a2eaf4cbfe00a4cb3df3c1028273ee0520f21138e14e511f9cda16998db77cff45539c510cf2f1944b8cd2dde89a81332dabce1b790cb21e4cdf88d2c2fcfc4795fe7517449730e22b70c8ad512457ff626d3b66875d903b75740fc08e89e51a36430c22796a61e73de7ec74dd7faa4c92b21228816e9a4668728298e519468d9f220c7526a5700eb637655106a32abd41a12966154d8a79d6470cefa07a83be09733b88492b2061431928193318091298162169c23d58262428ad5d2538a3d4f19f4d2cfd6d18a15755db1c76366131e8310c9ccd4280986e26d836e86e03f8e07c8cb02497dc87172b000458894ef3f9673333f77def53547865a9ac0288cc53e76524510a774e55d931cdc0ab634f5e00b88c4fd2cd7625769bf442693bcd470bd5af651ea9460ea8a81b83d7dfce92138653ab23d90edfd495840b047457da9aeba05075a39131fc0f714383863ae8c1a2f203240b7d55a6de3fbe1870ac31160dea5580ee9d1f848e2848a7061d77e902c081e6b5712286d06c827f36aaba00ee9a26efb67e4bca60ea8bd8f50c0d3d55376b4752417d26bba5ad86c7872478283e3a511c2425d23030bd22a5e55ac59914e7ed58e86e9e8c843818194ff6065c62ea245a26b614d8dca11e3111106d4f6dc07bc91cced5b1f3e1ecb14c9f9a73af1f661f968137a5217aacddf670802c3f45ac1547baa4ca23d4310833099b19019be38fb5261073bdd5b149feb90bf5d59604c9d74bbc940c1db8dd50ffa69727018193925627b5614333187fba65bd5671f84eb5178f2230fe53b59d0ead9e532cf20acc5ab843c61e6c4bfa1db694e83cb8bf5bb9b727b67bf468153d5818ace8a71613dbd0f9821394c8d175427c7532603678075fd334f7716e24e2c5ef15ba6c7b697094c8fb77190bd152b7a9fe33cd9dae67dd29b25864941b661307d17d0de9525f34aadcd0c9be375392f26963bb21190c82f53ab001834c510270561e1138ad6f74470f8ea62931fd30a42e1383c0a840800d5b0d2b84dba612836e0062b832103445894e4431b2a83a8a5133f0c938f8b5048e743e47d435404706f83bdd87f7644f4c710d58b92040b22bce300df50395c634e6088ed84707c34be7c710bdf2f0d94deb11eac421287b56564b8c81d1afcff43f398bb3518041481d66cd197a4f60e0d5f9e3848443036067e122e2f3b3f46b30c5ff0ea7f3d6dba38582c27fa4bee0cbfdc4f45121c7754551322d0a629dfa1e7d500e5fb9b09b0d6d5b0f5f4d3a09b1a40e2d1a5119a6c8409dfdfe397a473c2c3ae960ae96ff1ac2b4f22f2d19744812d0afef0094982e7882ea9c458393a9817473a5666cf3a52f5ab59c1fb91b981a01bc6234b856a3040535bfc04cea0ee544669280eb4af1fae498025d3f3e34074d67c707c49bf1acfe4c6ac26c6d73265b7bb2c5d93b92335d45c63ef4c31c0dba516f4fe347efca8cb6b313d2de2c2655bd36b6ac673f19ffe5c58c97ad46ff4473a2530e574858b56f99e662c69131ab0ab735bf4a23e6d25ea600d63c7c98043f9692cd88a91a2df3e52fcaa03a5fbc2905d72385c15b6b2584041f68d16e802722336ffb5c20d8ba43ac8612478c09a3e9d4c9b2da73ad82a0dc902eab23bbfe0edfc10a3aafef8cafebc2a893bee5b91e3be116b1acc9b62072d3bd6d4c157ce54ed2bbc5f009a67d5c1c80380c00619eba4ef31c2a2892835beaf975bec82be2b290ab6c70a98ca4ef7bf77a30a35b25962fe303d5dbb8ed97a0db8fb4b04e5a81fba997044ffe9ce2c8803e8f62e0d6f059d78b2b1525eb53940646c04e6a29b23978e60941144633e0b1aca7b9c3a1556aa06f1915408870a3d69dda93ba9a56624c84f017721292bdd87b6bbc02628fd3fb487b6b79393e4930276987747d5070cd87b5e0f1e80a1b57efc9a0392ba0d0e9a89dcd64ceb593999eb2f51b207044dd67e3d4af0791c51f6ebc3bcbf121db381fdd03fbe68865d2169d30d98593b23f338155efcb3ce7b215895f460915da42873cbd8a52c4788df87756de9f7519b03826c646600fea12834f0705f26a58420a5ce9e609fac7a3b854236286615ecc0e29d0568afc4ccf49d7dca125c53e6645b74ce0d310909a9f50a8bddd42aa2e28d1cd2eacdd9be41c46b03fafd09adcda7b2864a8bb5d58b8f74924500d0cb2f6cc68ba18b03e75737752a090d7759b5395897565f47b7b7477969f2a022b17246932902376751b1ec555c57c40bf142c10280f1a2c844d6beca9e4bf988e851b2dbc94f4df902c444386e79cc7aa582eb8140bc0ce383c0b82fac1782f1b130e6c9888ef927fb3b6c3bf45c89c4ce8de2e10f2acbe48be183a3b04882e172e6635199b6d3d2e01a0989991552292a806a08bb33a52b60006d26de951b865460768980c331842d7a74fd3810cf1b5ad32b364aea551cb4e2393b19c94beb11c7db25339cf6010135afe7a0bd9a436462ca041cd469132eaf6cf4ee7772cec5847038adf0b8d84fcad677d23727946449a434ce2fc02eb8d88398d418a4a04cbade641aef02ec9bfdbe9d15ad3d132ffee911d807c9c31b762a17fa7338dc35f50460c616d7b39d1313f9958c82f5638b46d7d8737360c4de8c2895ae7f2b4a70f11aa279185ef75db1f5d26d6cd7c275b980abaa49cbcc536c904bb14c684e1a933552b045086cf5096ac45ea80895799cc25331e30062ab7dd4ca8408b13ed8b0a204dc5f40c33310e421eab5068217a5fdb52abc7464a2d03ece6a2a3ec99b8d11ad6c8f107db45304128a2a79822a4f42603d0d2187c1dc16668b7243c1a42d127586cfd7681ef5b8940f194b14a36a2044b1826b6ee645909255b81e3c4b6f61b526a64b2770fc56d17030768fc2d1b58cc0a55695fe0c481b255e497f24331654a9518c5423b04cc3b1a0f37a3caf4758574ccb39e96ea72bb0570c92b8756fff72e1e3504fde92bcdbed284b0eec35c3a204d6204140f248bdfea564e87bd08aaf3780c2137d4880630886a66e8f182262703c5f8fb14db634e612f8835d18b6d861e39fe42b0813f88f001592d5bf210ef69fbeb7d6ff1cde427e7776069cbb8b69b6d092461b38bb9457396bda0db085d7491c864daefa1351dc22632c009c2c7a6aae8aa0a6df1f495f3311534d62f699508203a3068edfaa48eaa67985a0241e136e69a4a40044cbf8d7c6ad3206dfba7eb51bca313ae67d0c4a73c6a7168a8374245bfc4a48b0e239bd828c09cde3d0b77af733918d5addb43b602e93f7b5b2aa65709adc698de69d9bfa239ec2af1452edb1d08a9688bb3fb9539cffdebc67538aa3410da06cd93ec9b6f7e14033f48002434f2ff1428c98ee92b15f56d0bd38591485b86096a404ae5b13c58790b03f687150734671d0c8cb2d981fabc6be4d987776613d272cea74bce6a977f27664e2c1b3f2cc721006498959095c200b805e9c1c03b5b881d392a69302ad4c4681051554a64acff563cf25ce963b8297b34fd4db8af80f8f4c871ac8c4b26339e5eb2973562548a21cd3b046db05abfd504060053c7a59b580ea97ced05ee730ff794d2c6ba39f12fab5c8bf4eed3d82438dc3bde753fb703b6839100808218ef3632a7945f850cb0dfad838ad286c13a71ab61d6e9917ad367490a7d60d8c754250e9161c20169220d1b115122b4c05d9502abf001ec220b83f8e6682e04a183a6486fe7dc6bcdecb1c30a6cb045851ecf0c18105ce2a4cbc13d6fe0d7fc85405903aee4eb3106042c2e6e676042296cabbae43893c7660a269af8cea1f24036464bb0469d22097277a2c56c7c83952dabc09fde98dce8a61b843ee4c51a0e6fe99de50578c4e28212ee0f5f0cd69f3660ea42ed50ef99c41fc43f7673273d978ed2007fa9246931e5921c00f19a8dd0c707ebb2c5ae68b3ffbfe31723e5ca7effd0edfa34e52fb19e99f0c2b56c70cc2087bdfa6c8981d60cea98d636851b1703225f9b8e82b012ecc23f38df1b9ca36b100d8997434b06068bade1dc6acf5f0b10d6954f8c201a3dcf0f3627d0e155bc67f0584014acdd71fa1aa4178b3c01aec49cba8f0f4cc9bdc629ec226a86d09ff7cb6e2566c255d7e79f1d2c52d3fcbc01839677c514da1f784569c2f0a6053a02592a2d9af37f72a1456d1a286915cd9c7748f576e9ff3ff07ea3f961fad7cff5a1a192fc05606a40f9e08ce4dd23d1fbcb4f1ac72f5f644f43c2495e74debdc76a743d4c78372f36dfe165be722450c93d23c5ca3483b177e9fb860f9deab3e1176287b8333244d85d3405a67c745d0c381c1f7dea11e2239c8b9b1446c584e79d695451536d0ca9d747f98b9fd2beab83472b8ec0b6585b71301703d43fa8a5bef89a0827cb6a5218c5b776418a152109e48709f1124ed3e2e3d8105473648dae31a220d9e0c429e36510e7c68d858b296a4d2cfe8d596d216b32465065fd0f25633586fd54a2e0bb0fb0fc070e1b6865a9c58025f2c71674b295340a164ce378c15515bec8b11815083057ea81b457f9d070dc9ae2b0cda7f97c36cf7fde3bf2ed7711b09aff4c4179a4af6310df63808fe9d7110ce68190ed94cf13024859342e7562cf1533f1855e12e51a1a0bfaa39b366fb14137ce452a0d40a93b29d4e2d06d61d49d07a66f330712b394c22c6e8e8da8c187dab9ce586f4c165f3e1bd3ef8d4ea4baf09b73d1de5676b4f5cf536b2026f6bf8c673620861f89242931c2abde695b4dc23662ec7b973ffed47857fa370dfdbcb35a3a6ce7240c3e15a9baa39d840e4a5faf61dbe9ce0944bb4302cacd02d67bbe27437cc335b95e472242e8062158ad9464017c635836101f41af945a0ea88d0cb0b34d370fd2eae678f9c843cd07ddc1080f287da7c0015167463a2013ecf10db19e5408aabc3717fbae3187b40d7d496141c6776e153b87364543e2fc72ef423671ddcf02b359492ce8416d9761fda8b91070e1a5b973883b5e1e2a677397d21fae036506207bec2fa0c769d74c6022b0078f56521b4e8757812a21793325f3014f708660d96e8fd1d5fd5af9264714a917f5a6d96ec90f47caa8b62feae01a70ed70146a88271517409b11d13de9fffed3198410e535de81718f4be0823d0baaa4f0b2d952a754e0c526ccdc54fa11cee34d995525b4bd4a549463086b057761860f5b6228209df02bf38a8c15ccdff391853fecc2dd3e2638177aaef82c5acc54dc13bbadebd849e2f53a2ce3fd88b06456d491821bb09572989eb62ca43c89d76128416bbd228b8589673342fa7014eebf4722f69d5fd40d63514eb5f5554fe5119b330326b4976ef3012ac24d61442cd6a7dccc59cd4963667fd851107e147e9662056141242ebde48c1dd5d3db0ff29bb6e9945907bdaff45ef575ebd5ecad9c76c1dec7b84923a702da1fff166617b7580b13c58f85161ed6ce1a04424bd53892177a66b865c9742171f0a6abec9160ad6184c537188aa59e45e7712a6336d437b32ea6db85b9082eb1552c25807552b6404744e6c86fbc85f35d3d4cd42564785b01d0f46d52d1eeb01ed5c275e42ba8a8a8e303eea5fc246d1867318d5f9189f54dee4d00b633faea2b71a9fbafe6d7b2dd86183bb45388aa72be7037e8c69ffd3549f758270f003a0da5aa1ad39f130c5d1caec5aa8d443110455f3df7a5b755e2bd194ae66abc4be25b298655d010d4e0db4040e2d1b7d43456aa460a53034df6329519054f13515bde141543b35940ef067923da8b72d6010bb893a8dc2680e6cb05280388d32539aa77e02f7a0fb0a24b4c8e541f793bee735f32ca7662e60ae4060a347eb8b483de611459ca3af3fe5d7e0be644031db46e59d354a6502b8473a6d717ddb9fa8e9bd95765aed8bd5968b853a7ff8b522c137e31af0db8ca925bb21363b4bb62bd756aea9640fb7537becfefaa065794afa3abef91909e87cd875103eabf3b2c1669c32e913c6a62ab4ddc79e85f5be5c82f2bc7436b9b5e8f5806c2be13155e8e7695a042eb8202d4d3829c6cfa11d0995dd375978f12ebea159336f22965763f02ef2b6838320b060fc023755f1c3ef94ed75b98ba7696aa9c1d79ed57a541a0daeba5ce049f8484593c3d4e013cd4c85b01a7c53a5af2b887da739ba9644cf39d75490d6a0cafd8a5d7963563f119938c7ac1c8293297c5d5eb069f9b854f94458f5a6f8ed0c60d0b0f0cea44d0a6439e977b99460e269300e4e21ad6ec129b6b9f7aea01fa60f0acc143cd4e9bb7ac4f2586e35996bde9763e6c490647aeb4909cac487a5ee30c496261d8361ad67ac7fe490febee63e7b45ac1e3cae8ff007c5da129b8ba79b725d21c34b12eb904eeb2aa81aa8054f13eea8abaec55263768e6616dfa1478406080870cf923253791bc4739fc7c4b9dfdd2fbbbb27d8ca29377df97490a915901db9767febe8f9b295449867ae1f9b54b7d8a4d058605fe4a1a27114abb6fbb0341c40d2262c70ad67305bd8bb64b7ab66ecf134b62d2a7cc897073a4e05874d51d50f0f38c65a216511bdd8bd046fbc9b0886c85b759616e5d15dab00cd223cef38c51d3175ff327a81cf55ab98594a5729bcbbdf0bdc8d53d84e11c6182676ddbeaa33d4241d00919d499ed518d2350e3131d894cca1958aaadef03dbd0e12ae21c300136d9032dfcb3991f333467de08976c90b2d38399ca414d8326857fdbadbdea302481d0d037bea14d46658024a33ef89bcdb635a805057d54f793aa0eb8522c88f7a3554913ca4daa16a0e48b020aa0824dbc38c5d9dd40aa28bf7a46e958ad52a593a367edc9e146a1fc8bb7286468fe10032d39acac0baae83b332aea0c9dfefe57a99b794fa0efea6a805374a6418055766bdb015d24a5182688e3a14bacac70ab7f0209a190a017618af9ae7a706a1c62c1e659ee20ca59eec713f4fe9a56e7952709691568bba034510780e86bf51fe684a716e4d5f093cafa0cd800116785f67c8197913fa8aaad7ac5cf635d1cc48b3c6595c3c65e019eebcdd4dab599c76ef8c1c2eb116c8cb7fbe14c3b909025c42d8815ce9a9275b0cac077dd0426a7f9376bdd6a931151cab74a63d09a6741859dc1d8d1fcdf59456e9e8d2736cb27c9ca56bfe81b4d9737b18752872b940be6fe609084ceaf34365c403829b6aa3dfb5d4bb6bb431357d9cbffafd5d9ec1fb3ff3e539abaf9cc9d0644c35c2ecd2965747b16b22173780fb4b821c50ac49aac642b0d95b01213485aaa716c5b8f6f6a5a708aef7efea9ec9d2675fe206a6d180a8f42d1eb8c15594e522e996b1773416e85d3fc4412aebdc36b48154a9a068fe52d18414d8540a668f94d85b5f49872ad446b2d7e677b963789d8d88af4c9f2fd0e1e4fff5f7f391fac1f8f42c922fe3fb21d0dc0cc717c93cd00fcaca07e80e2504c66e2e14e3142ef6ca1a2ab98d25aa71d417cddc36acf6a7509200cc7bc9e6de32c74d7e8ae1f94855566f139fb342e6f39cc1a3b4f0b27ddac25e36c20b83fc477688645d2838a9e3310964da82aff4fb5aecd06424ff5f7044d42341a023a6f749a1ef80c9d611c6a125cf1660058cf1ad99b27184ddcba6e09b985c911fc112d0337641de706a8805305f5091fff9c31708274817aa2541a984e58b443cc078b21f605d5b7673c15cfb599ee383f7de09b595d009164f37c25115eeb4609930ff0c6b2f75e42aee54cbc66677f1b39ca55ce430d39afa0a72b509b8f16f0229cd86d315925c04a21c4773204d48b50def37e301336ecc56e7f1b0ec06932df2273e7bfb28d24e6bbeadb11b2bd8649a5ef2f876c2dc98ee075c26027031942c03a05195960419d68e254ab210a575470e79dadabaedb42a27e35f7f9465e52ad4b51b50fadd1c71673121f8fedc7f3c212a3654cdf5909948912c54e14ff4833cd0af390e2512c820a55270f700de62949092ced1f8d09ab3874021ca66c80f15b7d56a13a724dc05eaf6ac028a0232cb402d2f2a94ae19bf07532c9b81b0f0d2ff5820f4959b61c2af28c752e67855926dfb8f962c5bce3a56c46033e1db782047c1f384babbdd3e01c1568c0709a7a87742c1ad9d79f568994422189876a02b689f0647d2c4d379ac98a0952d08f99d62f52b104824d7f332c00d23bc09102bedc4ca516a2f27c9a6d30e259f61e2f65bd2066f6913f7c6673c1ec74da54a4eeecaad0749830f22fd9c813b77a859d42ffd40dea60ad3b11528038ce4226205a78ac3a3d4d2efffe322e5565341c0038db59e86e73f163848876f909264e1b8a19578ccf20a601d238f06f0a8446f21aca7b7f715b59bda46d17668e57934e0fdd5445be9a43f3fde18b079131f0d61a3ba1cfe7021ba45f5162ab431492155a77f101e1b077348e6591a0a0d3172a278b324e71ba9cb6ba9439975782e402d9f613097560ae2cb9f44fbd00b9d5b58d993a05c1cee0947f5ac26655ded8a666c0b6128cd8e60ec9897d077c8418fa96d312e90c1ccb082a4248adab517deed30bbabf738a1d6e5218cbd8778893bdc527b048c2f8eb807f0ec8641623d915fc56a111487444f7fae209ea3a82d92a1429eb38c55eebfd09018de81507e31810c744ee16523130aeda11458d7b0449f400fc960cf65e0dbbf33caad144dafafead0a50b1b075e1ee9f4392c54feecef222a4ee1f1b9912a0ff21d8957baf5e623a7dcb762b4135cc05fa2f26a897e1628dd1b86c65984e4d8764368484c6c37eb167795e877a09269c808b85e8a4930e7eff14f30a907214b9495e8733775322a9d7c0589a897aea834a05b8c08cc3917ab03fb40590c056a08eb2b3988618510fe6b354cd239d07e9e3d6cc4f01db34fe97082afaae3b415eb5437d6af57614f6a21740777f40e5ba460d8c79419fcb5b60fd37ac4d50acfe5cf652a75eb64d22b57746a0bfe69aff41d1d7b44c39c641087725b1ee1711b655c9983355b6e1d4976d0120aad35e44478fa131c2b2a0456788460118c4b50bb0dae126df8aa65bf579660e718d60cbdb97144df7254f8f28ea5c32a66fad5ac88e9b9123d7cee551bffd8f08e359ae673361a7b27ce26788bbaf37a0022ff821021d7b67b35b6d250b2dbe6a31c6fc39249a8dec9a0cc6c7a9e5327f1ce417e60e142ed1a626814f7d87fb578c56f91c2b80b517adb7bf1cf2783163b6aab9386454ac9e196f54122ea03db063a3506209cac72ad0f512a914796ef51f37daa6ebe923c5199ef9e886dec5bf9a800e03cf710628558fae040fb3b562953cf4b85fff9a10b850d63234bac76b18feea28423cd5706ea02e5f2ba833ed46155c3ffd91fadd718f0f658750bf535a592b03bacc2a64f2a851d6523be28afec3ba9aa26e44cb34a97c9cc4b6fff3534fe0116a4b5c0bd72be43a54aafdaec15ff7b7b712c4f481c98c782ea798d7bea8bde923a8e4078e200b12905e3c8a5a2e5f60a4e932b8c01c77f557aeb61e69f157879d35df641b5f6f514aee6ceceb91580ef0d9e2d5f2f96cd41e9a0f22a6d0991a52c121488ce6b906546c617e1f193560f52dd1cbefee385c7ccc98d7f9c0fb3b4bf8000998dbd0c56cf2abe4289dd042301aa76ac548bf346723c18574e0b39f1ae185396c5d759668cb0007c2c27dd9dc55a236c2be288b46389b11fdb7ea325d9478cc5faa47ae0eff37816164d5695e9eab5587674efb304f2f05fa1e2f271c7ea3609a141476977729f3ecbac68ab2de28feaa6a481177398c3a83440d32c1afb5d72209e4e784da46651f73fb41184c3954e6639aaa0770599432078815ba6c117231b6366b2049f4e3081ffb28db324e54f497e503026932ce15e0d56a031ba72c5a47069854e068690e2186e26700616c8475945b6c425c94af8e43bfd7c1fc3b1491327bf837d8db956f911a8de1a3e204ce196d41332fd54c90c3efaa4b98cc6ad8bc94480dd1723588fff968a3bc9daf3c002e497bc1c409caf33b7e373e4a34fa6e2cf657c4361e99f7b52a27b32ac888c500bbde511ea55bec720fced3b1ea14e64d44efcd9a6dacbda08d21385d6cb54a8420b6f3f4484022dad1f94f621459f349044d9aa0ce45ab9a4f8d89e7453e71cfa79696af218339dfb148870b5d4b97c7f40627e3817e26aae62152f820d3119317c6cd39364c5c8a44a0858719dcc4fe8db49b43694a2d9512c04d458b9764cc18261a4a02766574f016bdf0f9ba0468774795bfeb4500f4cf073eec885a40019193c3a202bfa9cb33afc6efbe75505eff7cdcd004fd76dfc93fa59f64b17ae511c7e94410a805d0911532b82c3d0ff8632921dd45f7aa7c8625287f525d19fc84e940e1948ad89d85e74c84f8be6cfabd5f6f537df828990976ce0d64f16b905227c458f6c655a7ebcd65a4b786b1c7bb066ddc1ae0fb0e97fde914adfb340fdb2509916341c49dab3c874d3c7b1c0fe7e618c638a685557fbb9065dea5f3bc3fb6b10e35c6b79d649661311cca46eb9e312117f5a6de23d4e73c05ffa630d2b590aa532a7086322c4a5a8d028448c2d8326c615d9a11587ae3cdf996846f9d268c47b1dd56fc3e7a2bd6272b14f0e0d2df99a750b72253f6cd38776fae95ee1cbde89b05d279afe641fd5d796a2a246430ce0187b0369e232d1c9469519f917819a0bfdea5314f2cc1b6f277499588fb0c65950e1b00c23c82b46865d5aa1b8fdf68b02bf988b604450db2f71527b06fdb6a7533d519c9eb43670cf81588ae7d25c8022c0ecdfcafb18498044bce7aa01af0af23349ad36f09b8c15e611f64bedfe155ceae0523532b88ac7c2d03536aef300bc13e07248f24957bcccfd7fcbb375b883be93f44e211e73ea62712385c40bfe00baad2f29cc69ab62ae7d33d19a1a9bb447e9fa8c29393fedde517cb75d5396233113d5031cb90009701b5101d908bf15cb5aa342ccfd24134adefe4430ac19eed0ca9c0202b833eb5e7baea80cb51c82f4cc3c2fa9043dee985061c9632678c0bb89a939a1482076f05ad4cb19d3ec179950030927b822c129601157877784da1749b0e387ea6d9f9332d00207241a1df18801d35c258908dfd35eec070fe9ffc1e2600983e870617fca0f871e48535fe171343d0290652e579a2f83a0f353ffb1ae07d7ea750113798267aa68a08ccac63cd8983a72f1fe42fadb2ff176eb08db93a2932fa710ac0ff0b4ef15f6e47a64f1c5bd905c0abe10e2065c5432ca46092412c591c0889586ce6959b93966336424fe13eb223cb0f245182b9da78ab0bc18e6bb59158d3bb135c412629f07bf6ac6f291acc9d4ac44a72431db59e81fd0eb8afbe2cb26b46a6ff36822a8a44e350c460fd1b874e6e46f0e0da65168e383fc33298bb41fc28f216ee5ca85641496827f135f24d69b704a8296d23cadaae0513c81f7f47a7195184c64ee580a94d9fd7fae4b768eb6c5e622a65d295bd78159ab036144e00b559ad51c73fb8f0b01cd27acdb84d4091609eb1403cb15f5b69ed7387dea6ce8daccb640f24f0212a024f1933cd72f84e76b33b7261b1561ddb2141178f688bc17f92e223223f0b5bac07c43ccc2797b4c0d32ad1e78953d416f1640d6cc9307f9383613aa9248b8b9abfdb7607981f362282c51c2673d81fd01fc0f32a4610b12b491639325873296ff19a6e51266486bf654fd21b47ebb233ca337ce83319ec78e9fbc04e1b8bb6d78b8896be9513b8a61ddfb31dde5a9a5c7a6f47ff80803dc7cb06224526ea05b2c758ebcd53142f3f29cc60301fa421f67d475db554ab0d25bacb8a5255eed845c696239246f2e59492395e3ce72d0bab2ce080b0c521580758d6470b8246bc3f27fcda790f66bafdfcdb597ba7247d43fa2455c4ea3897020ef1adf3aa26c5712629cd1b89c8dbf525f6b85ece350ef3b9b856dbd9d98f9d60d94f1c4847a8571966492a2cf648991c54f71258f55884950d327025bac0d261acf8055b0f283cfc1d7d23173091af5b876497d15a02421151f9959c5b52607f5f23887634475c22b176df54600203cba6dcca57cb06d4239f1f972ece3b2743a1e68e82d65c800cdbe4cad4fb1c92a6daadc22649f0167896ce9dc3d2b9953d1a441d68ab0c45fec9071c3cddbdc2dea10a97d6c67ca93eeb9892cf06eb19d6c430988b691ded35e86a5363000a8617f5ba5f6d91abec07a7a81618d20347bfa9be1aaa41044acfaf5974ae849b22d5dab0831f17c16782a1ee6eb43016a79736b0fba8f6611aba3b0b92e2457b521205e858773f5857551e17580f2a83db08525b6884c32e97e98b792e4704a8f26cb25a5a9113b9a8bc39f7f83914892e69113aa3765421d6edcbba727b960fe36d70c199b2412e24f33f0a5f98191d734cc5d4a464c2c9c340c09ed001e6d15154689564f0b7d3427ac0bc9afc55d39e57e64d92e728e8a4274eb8ec262b4d23800ba819f9686a9a574b35983ad0b8a651dec15f5f6fa170788028dacb946d5aa06d9c3889559b992e92e55750692de764448c0564b4e3d09712a16e8fc4cc97e4b7586ada32d2e94ae4ebd1cd08939459cd691d8a02b45fad7c825cbc7b37fb1607150f52cc89a8ed757b09292cbff5d5fa6d596b094a053ced40509e61b89c11c58267915cec474b445c70c9bc52865e11bfa0bd5e306c0da0122f377254c052fb5480627640ad82a1593bb5073412143524d44ac6ad53ccace53307614bc86eb67a9c3e084d699d5979f3a4dca2d46478eaa7f03c0cf592b35588da550cafacd40fa532ec372ddc4af8b5928e61d907e9e4b267e9bb9c4c263488fe861f15d70a30d512ef715d363e065617bd9b6925c61dbee86ca02d1b6e7cca0e452da8ccb4a89a3a10d795108e0c10b3e14982af3ffae8d50aefa2120c193494d9cf5a8c449b4c6f144582a3c5db12f0d41141d003965fce1be117201938d860b1cbcc21cf175026fb4620e1002c2b076d1a132ef32f1c0f509e10ec40800e3a989389bfcc2061d663ebfba2066011202afdebcf9015b382f256e294f0388907a1a7e0b2b379d0364fd8ec0e1e0e76792007352852aa313f5448b85681f28135544b95dc859c56d557ced55fc6d54fded547d6ca7623fd9a402fec6b9e9c3374343c007836b2b7c7bce6d666d647d596bad3cb221821d8583e516a51c3284618d2f8820d2ff3e8c0fc5bd9599a6451cac8d952339a4fe1ddf7533b7e1655dff370e644d594a31dcfb15ba4002a3f41a804673ef0b5adbdacce87eae8f70e57ee80712584b9620f43630999638ce75693744d40f8f9583aaddb056965602955a125dc4007fbc873e6d7a5217887c713a1a8fb9aae5aaaa4d35649f623a394ad25f5aa94f0720afaabafff0aa45fc864659d8b70c931108ea7aa27335edaa888faaf0d629dedd1f32163c696feeda3514f7a8f1b187ea5ee50a1c1e8d1c9089350eaee7d545d7d1c670e4708feb2525205703c44ce955f9a58b12b754fa137914e3ee907a6fe408bad609938e24bd143d178b8e90410063a0030106ab5acb36d0111196ee6ab0b266288519c16bdf5bf1f3837d8d6c905c7522a1a87fe8492499f766991ee900b2f9fcd82e0827e83b884b6ecbb27c578d03de382aed1985347c8158cada5283955799be0d2cbca1dc5d67a2e6a9e84fe0b91466ab10764861a5d3ec85f35ea6c14b45000914ec692e282584921036aa67186bce02028eb679a2aaeea43597c951082714a41b03662cd6676e21b17e4266e6a1dd08d5f4a48cd092f63c8876434b2cd8a7e400b44b2ce0f2be00349f321a7fa44374066a5a62853905540f50885cb28cd54cb66f7d72304c75c8446e42848a42da77f9bd99ab2e92c0f709f6ddbbb15d9d610833a67aaa42be459cca57c45ed0f93cd120349a8ece7a57b41ccc35455c2321cd738a38a6ef5d71d3f25f89705d23650da6c6205dd62e088325acd12f4f45153cee0ef547aec275af14661dee4aa380476ef5d1d6d19a79b9ebe892612425d0ab3e3d944f2e3c9f4707c7bde92a9a1ebc2ff23a9359491dd5a548d4c06ffccab6703db5d4b0d93ba298c30f2b4e6986a14ca7eb63e49b46326d104cd8f07e62cf5dd99537c0b0640d4de98db3b26c9ed7726ccd2455c6c699304d8f8cd969c5302b7d11fdad9f3f6f5c1ed01614b56e84d9c459cb551669e1a9ce52c965ebc4978efcd6e1a0939fb54196a8687348248c80f1a54ae09ed48a5d08028ffa3b4a398d02ff58c6ded346c8b45e9883bb9271cfc6ddcaf7432e0cb88d775302913203828931c6db9b1b58e85f1b342f884bf7f4b3cfec5eba0f6529bfdb997ffb84c23883ed2ef99680cabe6d96894db19024fa99e189addfb486c90aba6d96044da90a7e2c0d628e0b705ee43bd96523ac6d16e9a2af010c69b3529be40a3dd2dc38c786ad8a615a808bfd5d224349da1d72a4c4296308448f3a47a995ae746396a9657b17176341b3a4c2d7925517aa0f2065af704a379bbf3dddf88e5db23cb4dc74fee3d9c85f7814b0e93b7150ceed1c6e7e9578fcfef0645e2ca7f2761472c22068a8fbbe818f8e4922049a0327056271e5efcbc9a797a5ab152e278e2e0d4b6db9fa890f3482683e804dcd7b0e5a9a0f7e76d10ecf4b2ad206299978ed81d00ea1897c0234a96e3f99fa655ab11f102389e5ba99fe97f6c7c01bb6c2989fe3332b240c3c6237c9191053a97b6761846eeec4fd423713d202ba97bc11ba6535161f49b6f78da54971d070d5bd8cc24dff4063e323e602f0d849faa098b32d75b99e7275fd775cf03e41a4bae6761153465d03157462c1beafed68769699ca6272b2f58d2e2fd805e98d703dbf7f37f3aac09e897807666cb51ad16b137060dd66e6d8fcdf001fdacd180885bf716bdc0a0efceb9db4c058df8a3088e23913e1b2553fdc0f2b37755f17b5800976c8c6d4ab0c522781a2e3e6f09240f0c6780ccdadc15b5d44e8aa500763cf65a405ba2e3130777af7c5869c4cd39b711fd4917117d9d23e6815e9dd1f1834e128f09843243420f1b9cce4db968f7c7e0b5cf03827ef643df22ab8bc05dc0e4d0556dec1181bccb50d396f5bf9c246e91c041c400fad3f256388706f2f70311cde022e0ff577d104556418fcaf81a0a4d1a3384f0ddab4cd7d8bc7746157f2e1baba590b22147c60d4c07dd226a9ad89702e438a20fc434f050993a5cf2d604e12ce498e413a190b08ceb43525ec5c8026c43b0e5cc3372c79f21048a5e9422bb2a42898d86a2191781828d7488316fdeca3ef4f49c03e730c25c9f3b10c8aa9b024064d850950ab3e75032377e8db7c84e53650ca383db48ca61c335d927f54b0f9fee62f205186c390ce1cc1cd5d080f155de85fad98ee6e629f7926504d39ae0e574df4219726ad667da9c9bdf47a08c80d72168025fbb721e5c27a1a1ab4032c0900e9063da213bd7f9bb7199e1e3a7b3ebd4229952943841e5e1a8a76f43a0647d0c08069768c241e2d05f9b7c0bfdebadaf62a3f3cb64818d5f56dba70ef0a687ec62e0f4e580f79a1b13aab95e8b7d6d7c080bb49a75000aef451ea05024154ec0548acd1fcd2d4cee3001e858aea161f013bd61c0ae40bb942bd6ae73a5ed4b3c10fa04c085203fa045d9c3b0625cd242b2b7655447c1ac9213a10f3227fb191dc2ccb47a368cc49681596dc31e4aa2af38c2d6233466e467f9dbaf50ed2d58a2568b01824527d97d4876b30d46705658f89d4d2a36085c33551c6f74b862ab6a256625c755e7ca348ffd2048a9c3c8dea39b4f546081658c7501800a5547623c57e8e4add3aa472655779bd0fb2403fae358446e04b8c8f55356d5a7012be0a4dc7d99db7f5580a1a186fe5a4b5a87785c240623105afc7c60ec10be895e5c84ee0310dfc89f5747e220fa3080dd3a3bd0fce8e386d827cdeff28aaff617e6267698d343db9f626a234a9bab42626bc41ffac1f38ed352f3d24fba67d5b3becd7fdd044301a55748d428a562388bac30496f7212adaf30954790c5185577135cbdb560a23ed482af3d9bb0470c830ebcc30905ba29104f9ff403c7b972b74e2317c6d1bf9c2a6bf379b17913c8122addebc06367c5ffb519f0991c25586cd9787895e2bca811b34401bbc763d41b8a07841be5af58e36a9e4dbb0946c7a04b3505c689612c83ef265666b32d1f749c5de84b4da6145d8344de32c6b7c4b04b4fdcf10f7af8dcd6f85d8671e480df6c21f5f06a795becfdbd8bfb40886f58ebd5fa7e926476dcb28bffaa5e6a93ae26c17755484e2427cd6b82310741d0d90c596b29847157614da613386854243391258a83130a7c524d0965bd3f96d80a9381d0c4eb8dcfdff3e953dcb133aad927dfdca7be80a2553c9ddca95fe97f93f939a7cb4bda554d4f307048b5ced46985c4267a060ccc7d36968c0408ade4e1010c4e30c9a96073972822b9a68ef5a556e1d62a1fa04e41bf678a83f80b6c32a7a1cf894b607e5c5b808f16a1481426952d18ecaf6a383ca162a394cd5eb59b95e04265d97ba9198181754140e52389a03bc0e2eaa56e6d2d14ef99f991a69aa0f8e52a6fc4411e7c7741d0a37dedd121b0268cd378904c9c4e227bee25422545f695b3264c82f93015269df0c605767fc741553ca9be1873969769e8ac2c9de03e63dc30020f55d58817e6b1901756705b378d7eaaf5e1fde3c4e915ed7f3f40e982615e53faa01283f228718ed982958e6b85f769534ec450d4ca3b7059022ef7c1484f35f125f2a4a85649a80e2f84c74c54f89ce68190f09c6e4f73098cef7590ec1a0165254ea933f0efff713f252fd6099449005438dc6339a2cef5ac0908c3619dece3148e731d72306a5a9b042fb7924cd87562fb9f12395c51271ba850677ede6e29e593618e02248ff7cdd27f329551224144f0de093d99535c6d86557df4f0cfba2eef54a0a46d50051a02210b7821f31c9f26959c79c0f4ad33a808432bf08f2e6038526367fb41b0a22b9093592181bbb8fced670495021b7d287b1c98fcc5f2a2c9f209a453181016344a23a032e37cae05bd515acf69229b25e6a8e4c35e8ad34a3b7e1217b3ac7ba87591ecbb5810e70da53ca25f33b0fac924e0fa56e4ef465aacd7db3ccf9a40625ef4b26e579bfcb47c61e9f86ba0cdbb555fc989ed8809ed80fd11be20fff53627cb717ef5a406f2dbcb1d575eed2618d69c21a5396dd204cd8e8dc5220d9a4ac4e28d496f4909c1d18199bbbe46c4f7e77583427144e93bd4ed6e5f187ee8ac41a15f4751250fd493132ad0ce474d7eb55a2857a789529d4ab4675ca29cbc46d747560d3e9ec370214318ecc804eccc8f30a20f66de0be4abe8f3ccd40c666b1fd2b5ca2d24a9c827b221f29356404d775d8092559a2690508c0156d3ad8af631676f33420bab66f100be82593659c7028a5547d106eec063c8138d6defa35e7069e7399f4a6d21134731a22c342c5ba8dbb333d47c0061dd141088432f8592aa5a3c9048ce7c8252a4b9840942e1925d33758ccbc8b7d6473efdf62564de317993664b1c70414b0c926118a4a55aa5553554fa53ab5aaa9ab84ca7f5129237b08835b715380e5c66d530cbec2f5166c4cd4df2f2a4cf76aae66cbd9e32b8b7c05a1afa438c93c6389d5fcccb4c8c214d60021e3ab9a2d9a632c7c2941ba986b7ae9ee672197b410445ea079014ee09390468a4a7c1aa1070f95d139121d9d1d67a3188e3f6b4eaf9cfad42f47f4193b3ed20a4e5555851f14d8c2859ccf331e4b7b7094fdb75b991f61fe367469caf31f74ed39e57e6faeea0d07ef6dad91112a20094be2897a274353ce57dac417ca3abd7c790440818c9e4936fbaabdeca1663ec16db37731eda0a4355807604309e4f733129e8094c1f5f88b1899cd1a71786d31b31734c2aaf1bdc9a2503cf039ff401aa40eeed3093c4e83743cfd42c23532f997402cad73cbd809f661e01337b9a3922fe64c069a25ea26ac014d6a8b309397896f0b28d884403f14590f4e0631bafca76082d73604904b945f66d15f05f4a37be5267b3824685cdba12942b0c8c19850bcf9b2b7c94e7f71cfacb37d0bd6084f253391bde16509541c874c5ebb884ba0057bdfead20e0f36aa71901c2f51334f96e447c17960fb880208fcf38ca9d1d63456e25e5e8981668c7512762a1b03983c45399f581df6d3dd19e543aa3e799ec0156709bc89608763854402ebf424d361dca54f0ad307b8cb3ad61bc85769b079db5540af51f8f223cb0677a09bb812edec7701f3f3d9f00f9609b2d34f9cb57b2b82bd74ec798062128e970bd0aa40be4fe64f31cf074a4573e388686cdf208fc2ac9a28ee556a5a46f0bfd3dbdf5100076a4c7bc718fa787fc290c0e32bf30f7b0852a430c8d14c66e1466dc79d5e3b1b96cba4e857b087abe1ddbc6a4645ece0ce0969a25430df881d6070a514ddae8cc526e5c0701c80371852f4536f1ccf36ec5fe309d788fd9c1f2744dfd0243a2dc75a24253a6fba43c7a315a97bac02b3e26e8dda2b45f929db65583ade93eba9c0add29074332eccaf32644f72885facc6b099497372c97d14e8475d11df7405425121c30ac69016910da0068c93e9651517ea135b284ca0c88558e0d453c5d7649ac0e534705c8ec7adde851500e4dc750147ed1718bffcd72a7df213da68ea6983a465a6491aaae1915ddf840e62d3060ee958a2c1cb31ee2c62b865984570fe30ee1275e16a7c2bdff46b2f757e927fccd43501337f67dc2b2f11fa05e9bbe54cbe8446db44ff2319c2c22e920967a06d49cf039d469dd9d1d1648aaf53b47222de3e16ee0735de9655c0989702dad2147a744e0931af765825e595ea43e94c18629bb8e8eb25fa2e9ec4351ed01617419432bd69150b3b35b06c9772914a9b65aa6c629d617777c95dc5b7452baf0844f1c370310ad029b055bc8c120cd735dbf03d054df5112be2743804e9870504328be4d6c0513f9694f3d90317071ca69425efa29a9a4f4ed55c360da8de5be852d77adef49f31ff4e97cacd83c5aa2a8e07d3c1b133a69ebd7c7ff39811bbda25df6dd4e8ebcaaf6cae35f050ddf6b91a3bb0712d0f67de7690c5340585c63148a4253f67cdd829474674b5e87ff1b112a003ec250c1d6e699dca394b9ace2265140c241714c85a1fcb7e6e664040271f2e3460c5f9d7e8b910b33c90b4f0189b3e989cfc2846881d154fc8f0f951210c05b33f86549336d0b4e25ec99ca6d7c43a6eeb784866f30db9a04fb4cd951722d45acb991b5efe8dd56df634f43c93d96a116ea34ffdd4fb833a9312888710d16e0b91d5b2b9a77239e1f83a223c53ac9a22021f4671d87ad26169df1cfb7e39ebc9ce3af621015b107225c2560a224a531e683d4267cf4a36c5c7ac623b47c835793a3d31789f84fbc89581a179102ace7e8fe36c60504f2fa1d8fb4671615d7986481cd011bd6d70ca1e58a42bc5251346b3d7474ed890e0e4d26698990cf070c78479087ff9f05fe460cfcc9e58a80a0c0aad67552d5f48507bb9250328db4efe04b3171937e22b5ff06b8b38f09684de8827b95e5048e5b6f60aa9ba1d161e0169e618dd29600bdb539fd1faf3005dd6bf3521cb97a67610b2ed4a5d83d106b8a2fa1a78de9788bbeb46704846571075aea6c5c1f328093c25912f82f47d9f79eca8bb80070bcfebb29962e4a366f83cab28a2121434b53e3cf9911da6969d69232828ea0da0a2e346303c64ad13f91e41ac03f9e2797f00731ae2cd8707b682c440b3ed62ca8ad632c3b4d41e7c2ab3fa237283ec1f32de1061be1eac9a99ebee23e7e45cc9d9c5a59dfbe1b618cf179ca2e1a0050aa1f0e2f56bbdfc25ce38f034d2f224032adec5b368e45ce5cdb6aa2e7a6850e8b200ce6be0babf766ffceecfc2f1f7f437f2b445689cafdc3ef46c6cb9e5fd02346ee5b41c19ee081e8453fb5a9a29a46f9ce87dbde16620161a19a44592af7bcd83baedbf8ad2fdc202a8503b438e04b4d0c801d41572e3436bce9bc746265f26a730d8604bf023afb02cc75d818e153124171ad2aed6eb43a0a14ecbd251a148aeb0d995c77adc3ceab47406a208485f77776ff8cacf8751345d644659c7462867167c9fd2c120030d8076bb97fa2a9f5dd7145fbcb200e028487b78e69108a41cca42d295500b400beb8113c241dc0410bf104ae9bba585b7f6d4181156a18175e74b6cbac40c52766ca86cc105838e7a910070655176cdf623dc28fce4816e34bb2ffdd480564d68f827a4ca0a7db1e77c444d94584f1859e972a5383cb187f1412a589c579282b2b70ea341d6b71b75931cc53a6730e8c0388f89ca5406dce0ab490c0771a73149e23a0ca5953c205875f899154a8185eb072aa23bd946664b1295934796864994eb19b406647a3a51db91cee4b146422be81e182573f73807cc46062c18783dc4c831d861d49756054a87e512f57987bb174e6015bcf2962049c1e2ae8f4b004c40d95ec34af01752138171325dda6c4cab7aab300f3ccedf7fd8ef767a5d15e3341ad1a134ca5a262c9eb48b5e146185088273b54d99370eabf2ce6b124c9a84fa50ba7e0677addec479b4961b14348ca96afa6ac9ec067fe551a07d06ef771c6a7656ab9c1f02d5cd707fb9d9b205e5fd0e6cec70c6cfbcdc037c7c9bb4f730dd9b44b59f1eecbdd666ddf0d84d670b2d233a1d157a97952028567651d9a467d7c89f23645cf283f29b10c9c1e8f3d00110e7c6f712503bc020f8fdee801b73e54175c52195b042138658d37e8c809fc45c1ae7103203007dc505b4002186c305b6394eab61ad015bc1778f02a280161bf3c1e7f70ad03cab08233ebb8f82c7deb2780170b313799513076b24f3e02306dde69e53b8855197c20aedc25e051ea188fe0d97582ca9b2484ba11dd61fa7dae30e9085a9261ec4a0c0be0dcde9d18493f19a1077baf06849061bb15263e5755442cc89e51238a6d0361d6fc232e7234a35745d5b9b9e9c9d7fb01321f1775e6195a37102b9d1bd3ec14f818525d80afaab007b088654d8f387fa67707b3ef7a41623e34a5f000a143ec1a30c4f2bb574db7cdd2358d3569cfc2f33281cfd9b32cdcf1681d1faebf010a23f210520ef5c7e3cc74f7e9502c94dcf98b47ddf91991d7a6b8ccfd4c6feddc2e48189054fa900e670a1b736891af67617bbddbc668383b47f51fc52b9411a808c1826004115d9150419a3594c76dc4d7cc45300dce41d363c7addb00ecc1c16ccb9ee0a9abf3ab04440b81667809594926e151e3accc71a6ecf10e4ed9874b9421a4ef9692475c442a7f78de162aae23d61e784369019a5bd468ba8448f1b6547db857437c34c36a593a90b233f42060c04c83db3a0644bf4564b78ba09d0e66f4978acffe6e52a94fdba3bd1eae98ed2bf43264d0c092bfbd85aef1b2250842189bdb95b0f5fb0d16e3b0e08a2338e184a2ef52d9eb39419371e5de3ae8be9b961aff8f8252069b7db1ea8009596b420b28ae96520f5ca7ba8f41d88dc266a714be67800ee25d5c0767a8c3aa2aab0cfe2c0d5972ce41cdb748e375d5b857ece0048670c079fbeb2b419187cbb6778c7f64ce882cd00c568e2ed0c0ffc51751a34707578b88ccedb51b824ebd98133eee326638cda7f8a5160f98ba629b54050c5c5ebda52a1c765f821bdacce34dc6cd2bf70caf4e427fafd25e1a4306c5d4b8d8d077ca43cc811b4b181a3711575a566162e7f20fb50bb9b9946fd5019f229f165576c83455780c5089b39ba2be158ccf7ab61d88621b686db326cc3501bc3d4ba0d01f31e6a3281b6c6065b52249bd381ec7557acdcddccda59af5cf7fe98505eb6cee5ebfafbd69167cfe2ea5f6444ab4d5fbba0cfaed2b5867a4b87bd581bed7b10854f8c5ddeb7d0a4f14dc69b450519dc079a3e845cba4b28bffb71c3d365862e82f481c3c82903938321a6b501f5afb0cbbc7e33c07e94550761648879c4d6722f66dc8c067d4836d5e25541dc18bedb9d912e03ac0cf8a64e73467ba4a2f94992266432a93fd16ec090c9a845392d39a0666fabb0246b5a28cae920a5851b2b56d5be35604277269e510b008603dcbb39963ebf144ceb377d7f8dab6d3e9d8c0d3e606676279b1b89f55b20e31a3311004dfb49855ad88484244cd78a329616cef6f8d0a4b0e5c7ea295db895e7382871d7b06eb97410fac1cda2707ec8d2a259bcacbfa7c2b0d154e19ab1a69ffc453fa74bb162a669852f23ff6e1b05ad89f1704cc02f6b27659ef88d405fea18cc87c71f80b029a889c9882defbe6186c13fe01270066d082fabb4034e4b9070e4c72496a6bc4113c8c82e68192f5102d14120bdb0239057e3b6d4581bba8a8cb371eb12f5065f3a0cadf7fb7a8038ce2f1dadd5ef736cbd0aa01471fb02eb0a7370806b5c8523ece188b0168a95177eed91d507804f23cb01ff5dab494514e8b59d276616666317aba3cb13ba08d77db6b558297d5a22b0703df692259c700bf579e00a49d829277174311c031ba18b73920b11422b454141d268ef210ab96dcb1696cc9ed1a77a730578457d3b9e4553119322d2926233eac7d51298b05bb13e65064b70952f10a6589c0516849503ff1a3ccc1247a1613ed6a42425e0d67416b37b49173bc7081148859e3bcecf50fcf6dc6a0bc886faf0a2bc18763419f6d5397fc2026b3404970de784758a349a9bdfa22c9115063523e2082976c710f73a6d467000a73ba2d4a06e56629402eee24a17891d85a5cb2223838ae84784086653eec796ff67a7504f24fcc1d2bba9e2d5d2b3edb83e781cb35bcca97d05fcbc5090e91cac6a4da8ba282cb42592e88bd6e79ae533e390d629bf62598b179c17dae70f6651a43716cb3e25acb595ac8a7af3a3b3241547b0fb29e892aa445fabbfdbb7e54aa1ebca095b9d78287dae580c0795417d714e7dd6c072031b2de58976212688b61d31d53c5a55116ea7380362b119b639c182768ceb86233e02f5c04e11815a96ec9d66088ea603b865aebf17be8ea21f1c77df20e94986ff18c70d026ab59cc5a72817438fbfe4a27f166b0bfcd1be60d03a88d9043d0bcc39ab9334cfb3fb34b581490e1b414b5a1713e87795293ab0037f6ca2327210d5c9180372d2d9c8f426080d1b3c33aa39983bede34393fe742303c892e26c6403452b3e32791c5f935f435b27101c7d227d3e865fbf2c131b71340d9b02dc0779cda9303ea0655cc56c297da6dbb6b9291bdb5c045a341a33602cdb1fa6ede954c1bd82f3a1884f5e635d8c5525a075298ac713404f20e8cd22a21188e604988266b173e091edd787e6622d275fdbaf3e69270c6562da1ff0c18a5e3f8c508dd3527cd7da6f201dabd4f6000bae3c8aa54e1db303ee0fe75c95b079d7d0dfa8e12a34d63a9daf1571ee9a523db831daa03b4daaf7cee71657c9809a2e6ce559f6b2a53f44ec519b29a9c6d979abbc1d8871b9b969e4c69c20a9edaab0e4403ceabed43a8e88ee62e7ce5454d6f45d2f739efc6e41e14a4b0427f4556d1781de8b551790c0da74f882362875117ed3582553b0b61698df6f424a9e051e07c1eea88825737b853038efb7424a9ed56cdc1230703976af14473155e7219332588ad401c65121764c03379fa1aea5227f2d5c3d7b0f03a8bcfc24d42aaa4663dd108a9abe0ae90f076b6d16d1bca3eaf00a7d4a2ed69994e25976680783af3e1546b854269847fcda833a975553a0c892646d153a5a921845dfe2289415386b50ae1a1bac380ee75631ca6fe0b1df0a66856adbee7835f26dbb23e5fcf5672f69ec34c4e71033185d994a4373a5ccec687aa170456f701d0d7478ae8137e29978cc1c2bb9f7ccb06eab0c125faa595109a9a849c8a45036e908aa5d06cc10c339e8ab3210e8d03718e4563c41dcfb44303456aa6f95842777b6971b36747d32b282993b8b9ff46a67b8d5994ddd198398b0c5be5e9984a7c9b73b27cb27937cd5b2ff70ded7687d1748abd0b88afbc67ad830263588fea7a9eccb6b396391492d1b46622740412d498c052107df89361d457f31bc130da093e4ad67450dbfa891881a0f14e7fe2965964ec71953ac1d73c5ab4991aa48913be2be815dab2a13dbb0e4f9ce157a5476bf6529eccef4f8d834a532cfbe6e4d8d2ffa56fdd7c932267ad4c9a449295315a0e05f60333e922f71c4df9d3238a1de009626aedb37c480eafda5e8fe4d1c0275214ef59a9d7833718dafbdafe0cb9f3e5085598c1d6b975f3ac25e30bf5f71c59b6e14e4a290bc66299b3952ff88c6ee50050a163c7f5d5c0dec22f161181fc01885fadae5dbcefa8fec16c0d9bc19fc5b699d554f321930e7e8553e02ed38f98900cd084ce44ee5e0b5ba13ba9eeb8d9d6df39410068e0f6d79309f2b2a189a00814efc1bcc7f4d217c962ee1d103a67a38d99373d91ca93566c2ef347cec59ede3d2d8fb9c681a0abd364634800882c9331abb72cb3b6bf31b41f8d8c87256cedea7ad14b9c1b93f52da195eb4fa875f3301120f43672b8aae1447a708c25865e4761516d653080b70f5af949985219d69797ad919f8f2e6663b4c45b1d138b7c451eb62e5f6d4355e948fbb2fd4aecbdf5585ea3690901ae3ef0d93d74452b9aa6fb19467ea064736e5064f15d7972c8541585514ddef57371ae29a54b5b827a3cf5a4e234558f1cae189004bfea2bd2615c2f74095b1d8aeb87bd1a732b8487a5f00838ac13072da17d865858b64090febe35b80f987a8c4a7bcea69d63c99ede488514d6f679a93ddc9e042b04b77d54e92dde26754c71e331af6997696f14ee8b372c766fdefd96d20fdc6dc80cc8247074c87bb5aca5db7a948eba91e7e1fe8412a2732a8a1c7b9424f9e9f67017069116b790a8929a1ce88c1220713195cc4e01182890826499ee7c1b4cea1d4797aa3bd2116e0ca5d6c06dcb9d9b3f327fc2c0eea5e5ff006e65cefe9d0b596c8f97214dfd3539540cb6f94bd69e5a0e32e41f9e09c90f32b88a2adc6e6a14bf96889d8594dd0f85288dff3137adcb068b2001ddfc851bbef47c3d605348a0469f770283a5e7406b1373beb01856894c3a960aa26259650bd695e13665cdc729644092d2f7bce8473678adf0de8e4381a40f5adca685a29754b795649eb9c256415eaeba5430153eb39d58dc3aeaa19aea14044af0746dda5fb79b927e59c80ca25069845deb37b1017b3766809c1e17d6c4570ae60eaba7bf4f3447a8c62bab4e06949281c56aaf2530174567f66779d85985668fc2b9d889529dd3ed51305c1119d1edbce0deadcd07c112baf28a3f847adee50219f295643bb23aeb6b3d92beaf13de1aa14aa8c68082f5c12b656897811440f4a858e0251a07d412cc09ce8691e265e1aa6b054f358d6cc943e1af156fa5c9528200042aa5ad696c284ba77744042f1059ccdb4ed1c19b332ba4e896348e9e30986d1c8d5e97ccace31a355e2287e50a3390df3af0a5d56cddcfa4aecf2f2229871b4f0ef4276d97af500f2b2065e22e0a33dc4b2586dc2ddbc1bcbf72238500396638ab6cd61f8b53260087865339527c808dae53e847afc8e3813439b71baaec98a406da80c0165c5b8e31b3382777c4a91768231d0d313ca059411b281c99eb6292641f58cffea27d827e669bdf49ed17cab4000cd9000113c1ec174a85a41331c78ea9d765c16e4cbb904fc50301b2067db79cdceb2ec985d98052be16fa30d6dd65959c42ed26177fe4ba88452299696cf4b02002eb51b9592c064fcd38764786b8f086aaf77fb0b0f2021facaed3f9e83acf25f6ba85bb8efa18e195f544027751f5b96d579cc007892128ddc9dce24a50a9a69c4b1f8129941df6124760297cadb7b64999c9befc06b4a497fccb235d7b036d8eff485795cf81ad914df12d7a36645ad3a41f01dc49f33b96ac2342e2f468c887f92c109bc9d0b481e50141719aff2e2cf8a586cb5081899753ce8590b635936213cadadf436575fedacd9121e6136a0b13859e452765578783d4f68d12e1ea4c0c18ac3c0b291f95a507e1249dee53c17264ce5eedf84162d0737bf9f967c376b060951d1698ab393d3312a408c4f38cd5c137e8d931301b3c78439c0a6524984dece74213139013e240a7ca3286c8422d6ce20076eaa591ee345f01c9019dc402c2eb6855225cae1a86b8116613dc4fcbb4d349c338a6ce5f9f441aa74618dfa49f12840d34a43c83a655e9474ad19c9c5a8524360695e2c79978996ba769c618a09839061bc90785c01fa85cdac6186febca685d591d87b07a45f4193f0ce77a7ef551941ac1ca5e1f38bbbb150a53bc8ced02b6d164cd9035f6f0416d58cb7ef639abb62a158abde52504acc5ac99dad7ddf1662d5fe61768535cebce2afe7186040586897fca1151034df8e921ba4840cda0da8fb995ae77d2b0ba007572725cd612328872362934f81d9d0fc0767e8e61691a025494924a38e83b709419191df66ce8c1c1ad250759e7b5fcb90725e7c2aea83de347a73e6a33d6bb20e88c2ff39caaeecd265889088322a1c7b976dc9581dc2b5925f5b327922bb4346f9742b78cb820b306e4403763a35dcaa57ce587b59bfc1348102c30f97d293f20af53656cd547d684514e9783a3821505077aeb76d7f5a26522603c41a93053ac6c36b8417fa21ca991a4802a5c9fe71fbdc165d3555d432d68d8b42deef71e45364990046a4f35418ec5037586f5053d59ea37484a002ba231dff1c99a9d3192a01bb5dfed9013e9c44528338fbc3d4558176ed9b35f994259f52e8d2dcacca7f398c40a9157febe935eccbdacd8001dd4b8484fe8c99d188a5e1071686f6f4902ef8e907c3da790fc434676eed7e46ef1a67e193b88e806ca37a2ee3eadbf7bacb59ba52ca5d3e7990beb9fa4402461da984f8647ca90fa778072381fb6163c269586f457998ab6dde29ce4f246ba770cc44c6c54576d8481474b639ef4fcf24787e22da5062587723f4bc5249eb3e167ad08d7916215ee78a1a37c05948aff67cb7945d12d087e7e5ebe0cc9d843eb9f1ccdd13b79edc79eeeea93b9d0af0e87ab401ee4f2e42e36532579545d786c3998774ed8c5f477405673db0dbf9e05a0ba31afe116c05be6a347a748aaa437ef8e4609f1cee92c37d72a84f089c7e52c62d93dda9d8b82eaea6d1a6395d50a98d96b352028e5bd6f9109e1bf05d07a7c46fa8edff6dd51b4911cd41197824c9f77890a10ee67e867df4c6241445867e959d3e4caae46db1ba1c2b74302db0954b500a7a6e506d3b19941dafc8e5c123b061ca0cc9d5413136aac9c647751a6fae3414af6de787e327f15a4019abcb797148ee56f53f58611e2ca01ba4e1ea02e949806b194254986c0a72604533aeacdf1245f69ca9684a790c9457bbbdf30cb4c6c867e759c3541bdcc85c018aa3531a9a713db1bf6099e650f580c563e4f6f1db1a599a553b18f3a186cda5a3d310811c1ca6ef03632b01e66efdda0c5ee64fb89511ae1f1f23418e45f19592381b116ec6893ad76f8ccb65074f290b74c97f070a680ae8ab223a8b6a98b4b5a3305b677a3c3ab7d1317e7f412399e5d7d8c74ed6f7b63c7824fbe908d301557082d419b8898fc473a4f0ed8c6da95f3630d8c732ed37774090818159f53de8656a4687c6c07ae2de0bfd5ef504467a3e6f4b3545ce25e3b83c5ea209be7a084437a3d06e93ba8fc6e70ba9e2a104bb8e57bfec5f698d06f7827e9b702258c9519969ab9a24dd31680c90338f91bbdd68762d9fe10b79db346592ce25af7946365648b5a7752dd45e7504c4b5954e8f08d3b046d53c26bb119ce242e17fd2d0dd0aaac075f58c0c8d9162f526c7789ba96915217fbfb91a39231f7f23260db65fe6a8efba5173d878e9ed60db78a663f71e92444d4f1dc49eee9ab1a4d4a02d5fa8c15cd8882daea0bac714f18390d2d0c201baabafbf723b980d58ae4ea26f222567a4dde6d333c56df1234b269b204a04315f47a4c0ec103da6401b1491b5a7cc69317a7950a0f4e68369c29f8c1d3214bb2f3184464b55689e22e827148d003b4854a01d0fd30209d509c2e74cb95c08acaec510f1e5b46fb0171e93acfb6a8bef0725a497a2134df298d72415ca1ccb87164c3c8ef1420f73f98020381f024aae7ac981a61a2365fe184adaafb228041a02193e69d8c961260c9b30dc8461930e2efe6132e2d5015051f3eb8f0a16f117668776d84cc20ad0cb3873b84f110d2fe9a441a2fe0ae6854aa4e2ac462362d4bc205f13b9a56f43347e6f22b0968fe81a1f32701fed85ed38a5a5ea57037e76947f5734215716614b78032f1367975a599e76aa4b7287b92d35faa047656855a34f8b5d88692615a74a0d4348a403d6be92f363dca8e21ba6e8d261db24056a13f6d1614a59c3d573ae34fefc889a09087f6c9d204015369f24912b60128c7652e7ed13134a297f86930c26cdbf71ebe96640b8748ad84e01432589484dfd666559662a352dbf006b9a2feb59c2c8533941b62fd3785287b4b7c197050f17d0411c6c20c2347b2a2e190d962b0e66b0d430252a161d89ecf5c27c02772abd049c7f77e6f6342c6d62e84e556fb1b536111914287bb907ebc90fde3417576f4d8edf8dbd945a92ffbed61841639735a0f2a08b12d74b39545921ef3e755b2c820f0600907a9f408480677983b7a5aa598f69f25be2972a806351cac8d535a0cb8f3580e1de6e423b2b42655fc6cb0a27739c8dd773d69b89b85ced8e42af465250ef9e417989547241206173d4d04e526c8d5774730b24c103aaaf8e8258405c55a50399b62bd32231b83191ec09ba4da5a255b4a1ac40aa955d64a437770bcd9a9fd461cf1db3f44c1b2ef867f495c1fcabbb1bdf4d25a61e8308b74fb8b3e9e2ff2117f5970dab2e29e96e64ef4db69452a694920c2b082108e50773fe74f1f22eb44b99f0ad962dfbd2e61f4d5ee5533415fa5a8852526af77ce2945314310cc3300b7b8b4f6863df2c551674877fc4e09c734eff89d16ebb189d6118e68325c26829c5721e5bb5bee3b155d15fdfc5a8fe98dfb07e47fce1aad6cfc0569c807df77830daf1d86afc8b76312a0c7d0e5b83d5f0d46e9db0468ff05d4af00f526b44a4bc7ef4717b83d70f2f3efe15e177fbfd5442da83fbbba557bf9014768451c6185fbc78d1bfe862d44b32b735a287a2e8b58b21a588768b613842b5aab263fc76a29b5e36d787de65cb3e6e3ab0959f2ffa68da9aaa6967f23287ad11bdecb8723b51a509edc1a2b896898b5c441cf1d74d3e5a7f3d7c1d2dfef169a587fef831ca376d4d7c49db8976a2c20f5dd80df991ee88ffa25f6e392c0c161552fc8bf6e0ba6f83dc87e9f836d0ceebf521ec86fc1d4bb3af646b0e43bb18f5b2a15d76b5916a59d1abf562fb372d8cf8d7d627ffb2c197d95b7de5b03511c29049ac4410be8421138a437e08465145e37f0bd51ea35d564bb4db2a7ac9b2a2a5d059670f66663f752db53b526d7fa8b5696a552ffa7e8ce210fda433b8b72e065f269a68cb6161485a9a1fd78652f9f1afb77ac07a7dd7035693c7be8b512127ba6c44389545dfed4ded0163d4783dfc073f6235208412bea4392c8cf7dbcc16456a3ab0d6667dde8ee5d88d2c58b005debefad66dea860262161fc0620b55092800fac1bb47b01e4cfd99728d441d66c9fafcd590b657e7dc9af7debcb646cbb1303e94636bb88b9ab646269aa2458750f9d90817a0f257117828931406a8a737b3353122f04e53e43842e5af5c45bfe9358109fda6c7d36f7a4b50021553f49bfa4dfda67e53bfa9dfd46fea37f59b8620847ed3b5d36f3a40bfc900fda602f49b76e837d5f49b64f49b74e837390dca4f4f0633019e8c35c57832dada0b0babe5b958ef9d5ccc85ea3b42165ba85a0b57a124800e338719e312c03593c16437905c3a1738540054b00b692de07726d021ccc280ffa86085eb09d91248ef88d622a3c2efb9989021a1c28744800fe3710caf2854f856139250e157f0e75bae3b55f87fc39381c39b810f1f666b64eac36ebc9da6f0f73bfef98cd9e0c94929372822037082b495c10724a50ae693343e69155fb543920759c370cc56dd5d3decde87996675553d14fccbd00257bd7a675d98ea27eba608fee4139fa0e067ea92cd60d3f42058b13b46de583220441c7ebcd185ac6122ddf1f5bdf8b1bb22b02a2e64a51b10a8c28f5584c27cef34738670149d33dd86acf1fd993219aed0b11ade3b1546c1dc4dc7c02742b6a9f5591fa601bf77ba3652e18c5de111c48084b160d4ab8207be236461d3b5700e10b6c922d5f1154e63ba4c850f21bc905cb55b25b56be9793de44285f2e10ba1636bf68a8501b7890a570415423454f8b2785fa8f061a1c2eea2216975532adf8276331c89764f1ad12e83bfa2ad8f0cf80a33574c51e193a88f91ac634a8337b355b85099c947ac068fab8a3e6235441fb7ae26f18937e3842cb67ccb71523fa28cb371aa3a736ef2117b13ec570759f6d7738a4f945338a9136c33e978c845798815d99c588dea2d87fc8c61ef5bc4365845d6b9c5431ab53e3e4366d0ece017dd6106cda3c170ccefba46ea8ff37f8ff3b83eccc1b7b6561b47c11cf4ef222dd52818d5393636362ba0019f7b486286c7bddaa924c9bcf0625eed2109165eccab5eaa7293610e420ed6f02ad44cc82affedc93887f2102ab2f84c217476b832b40397e6a434cc411a97344b336487f810193ec5df871f63fa5fd31ffa775a8d3053627fc05689e23d09e7f3d3d2a43cbc7dc66a4c5a9141c638fdc530932a2f3f0adcdd61af7cede7880f0f1df37668de7cd9d31e0f8e61224040016e0a30ef52603940c49be14f653f9e86eb9a30104208218470fe42d87e419f3256210b2e413aec019790ed5fdbbe9895bf90ee98ef6f85aa88013ecd19bc910c56f66474a3e0678f7b7b271780b3eaecc9e83dc3ee0bb2c38d0d2fc60c5e0c21e9c0e55918bc4d102dcfd6ac135e139e8c85c29bc999b4f3eac3505827bc9a5db2416e86ccc023ed4c9646d196809e961a6f976c4d7d4e774c2a56bbb7e3838037c36ab86144d6b14d9d6b33eb8be13f02136ab6cc0f4d95cd40f3665827c35636c1a53e38aa9675bdae2bea5b43aae6d668166d79d9aff9182400e0c08100f55f9e8c1bde0c0c8e1d78f819edfd7f54e874c7e3719ee5e546c117035fa3de43525ff7b0b8a6803bd4f7315886612a12a378e0a1a2923625a2e2d09c988979678abdc1f2a0662b044ec2065f0ccc406df8e0066aff36ec5fa079024d0936198d28c84c6c62e7613123850d94cc4a8a266c44576881911b08417962c948c64a23240822dfbf18463ee073e21a80ecb96543f6dc6ac9604dcbc2e0b735d3eb6b7f15edb672bd71e5193640e58babd5570bef3023fc1d5e93bcfda40bac99ecf9b34c7eb0d666fd361b0565006f5059a772916c4389fe59408d12d169524d668aa1d3d0dc8510487e076383a5ca0de5ac039606b4b61210d68bacff41c3126da5204430d531fc222a12412078d330e7c9e0ca0f711af5441bc4e9180ef1f08782423c8d823b736699c6c3219eca8c61d8631886bd15aea8fb21ec43f22bcc87ad4bbba5f0e73bb8733df3789ddfc1d860a94b9fb53d1a7383d5f3402967eacd4c17bc1996f3880fb2d8b007996553df0b25b8725109723a9075b3f2632340acc8528deaeed40cb2ae6fba71f864a46f7adba68330c739370e1dc2f77ee81230c1f4fbc7eefe2c8b8fdb2808a95df6c46394ade9ade1cacf5bc3272964fc555c186b8457d6e1066dd3366d73052ba7b6430897449ba03964eecc21338a59246b2330082e098a31cb36132a23f1c54a3c19b11af32d1a043c2533c6c001272b8f468c4c54f8a3d3314f86bcfe3d7d01f37cf05a877df05650fb9b71429b55adb9c57a6d2e556e5d45d6fe6235321886ac6b1dd1ac8b2433f9ecdbafc6783c2335f8270922409cfcca2751fde89338f995efb8075e28edfbfbc86bd428e3346449100162e54f3e89d1579fc4ca9f7cc70e187df541acfcc9e883a87e44912002c4e8573e88932e104142101b1a23aa754c730fa6a0021b1a5aed4763c5812cf134469488bf074c464e77a03c8462d4f17846f833b6faf277bfaa2499bfd5d80f295fc2417a9557a13b48ffea761cb45d8be7cf3294ed5523e41bd163d6eb8de891d5f93db48a3d692bf5918ee9af367bad0386cc0449d6710f27f336dec49bf61f24ccb50e6fa3218340f0e70b59077fe00f04d2a1b4d3a64ea6d345de4cffb5f50fde4cffdc1a086f26086fa6fd3beea9ef67ab3103d041089e53e15655ebba787b5354b8c96a613eb8c0c1fbbeedc06e6cf568f9df087de8bd6463be7fa987f9fe37e63b857933b5c4c3fb51afefbcc2a51dbf8f6dbfe08ff5f02732f16420f151f2039730d010e6505d84635a5aa78ba9d6b9525108c71c495bc70b19ef74dd858c752eb859d54950799335368a7b664f4f841e3ad985f36138940bfe645debe8f09c31f5039130aafafec844ed08a4365c52bb072ae91d233e321f5a5dabc6ed49d193820ab7587973a9bb75e59e8eadc35c17e14206fb61175e4c7fd5388d037f1a07feb44eebb44eebb44eeb741007711007d5b6deace20ec7e8438814467c362984e0b313e4896af29e9739abfd982b62ed00d925aca491f815ecccc1292aef55497cfaca9b0ed993220846dedb752b1ca585bb3b848ed222e5dd1f63c148185622b90b97effedcd6b0bcbb68714d6a9fa27dd49ea469eeee0e55541caabca6a2a2f2eeeeee2a2aaf7d8d95ff1f955c945c90be145534ed575e45859e324d45d35c7eab8a562a95be85a5543a29b5a82c14b1bc93de53de7f97b00d03b14497ca467a6d73e648bfaffdff6fffbfad90484ea29df650fb15cdd27ee55734ba2385d4f2feeddf5198acbcbbcabbffe6fffe2e6f2d4b4ba95422bd8b9794520b74a1251cffa52f3ddd9142727929955cb4944aa56771f102495f6a49715171a13be05fbf2385f42a5df2ccfd59fc49fe29fe2b1b03610ec29cbfcac64c30e7279bfb432b6428df625b00730e492927eeef29b49b2487281e7a777777f7d1e8655bf797c81fdb8c9057f5d3add0842ea14708e35a0a14d6fe83e94c3a64cfeda64d244a2881924a52c27a301dbc7932e6bfe7173951458fcd87fd7eb5edc05ef48de1e0173d633d602fbaaca700feeca6665f655ff163428054ecafb79e02f82d25bc4049b580c81e125a1054e7e5a149bbabceaa7976549ffdc9d655188e7d814de5cf7e311ff8b310d643f5d9665bf526b46ba915ed26d7193db7572df956a8bb7ebf23edd02286831f7b88f5703df68ee1e09756f37bdb50049f4fd0d46c036385de2b4bf364b5a25b771db9f1f5e427b446d73cc9681f61ae7f561f4598d4ea4d4c9a87e78a9f5662c3048e909c2247acf041e2415cbbf6113e89be3fc370886847c2ac931a195fdbabd50f4a546b66d5faa97cf290d0022c448b40b91cf3a18d3077d13e02b7ad285891aceb9d3e6291aee9838fad24ec874c3e633ff04b487a0b5d0424bebf05846d6870b35ce26910996fcd4a72f791dd312fb97107eadc7a0d6ba81ea89276db29c1813ad750ab1fb593bf3fb11ff8bb1f55fe8c9ec173ab556e5c1dbb71803a691107a8f3adcaa6563bb5a245ec4e9def933e1adf347a874f0b6f6086844d7517ab31db54974d53f09b0a77684cdcf664c41dc39b81476abf12523db57f585e00efb4f2cd533a393969a08e813cdf408d9a0f3f004fc63e7c6e6b4aff14e8e55be87b305e7e6ef2c5bcfccad68f7b89e954eacb6b2eeacb2fd7975f200e02832a8479a7f8fbdc93792797fd2a6e5592cce55f5c5c5cdec65b96bc16bbe1f22f301fbfc5d6b5f85d2bd4f2a2a5ff452a48d5e6cbcbbb7897b7525e5c5e5eb6dfb7ae6b3798b730186fd1d2f22c2d2d272dafb2317e362a690cc4125d2edabf6cce9cf60bb3755b5f4e3017ccdbf0fb5609abb123ed7a2ee8634e2bf9f0ba5f84495d2aa23eb66ab47bf9977771e3e5b25edec5bb7869217cfa872d0fbfa3e0d37ef78eb8787179f8bbf50e73f06dd8da481f51b91edb80d9deda12f68316c27ee858c201f32ddf0243ad1bbb3dc46e947cf88be72f15b1f5df87d72216a8b67c1126b5857ee92bec87fe17d4c7564a3bec07ed5ba88fad4fbbfd9577acc67663a33be267bf63e57b6cd57ee57adcbedf3accc16fd9ba08737048257df78e94b60dda252b9b8b8d816c1c64632652b66e6bca43a037031f5a817b4dfb8c510ba4bda6fd63cedfd23658854cbbf198a3f35b4aa35f5179edad105643d31647ca5fccf902b606c86ba5ee49dd97f2fbfb50bb408d9a2a9487074fccf06414b140fbbc3f0029e1137c88e1e8dfdac2c7d6161108a8d3ea09d7636be8a10915518c8668a56993463a99f39bfa5efc2829e13fb85572767045ddeadbd9810faa144008b242578098db7f339cc3a76a0548499d0ee4efb45b2952e7b60fb7959f85e1ec8e05fb3067842b59075af1c2c2d85f0884ac7320257c820b4510a375f20fa65b9be86ebdc3b74adf39f4e8b4075b7b59ff5b17a93774182184ff8f7db755cc8709371da6adc1dea1c98c316a24031535520c4e9a43f5b34d1d1fcea8438afe35ea4dfea590b48730ce6e21b56bf9c8827d2cb9b0c07799a91a690fc6e68ebe5b11491d2dffbdf077ea689468f470cb6161445adab7503a42d73f85f0617cd3d6c077083becadafaaf890ee80ffd15fc748243f87ad816f3d465fc4ad5ffc0ecc24fe0cba73c1df6817a35a1fa2d1c4e29973ceeedd32e7c1bce7107aeceef7ba7bcaad64987bf0c1f8a267472963c3ca9334efd3a68cd02b1a9f05a1bbb79c3c740c84d0a5fbb4e40e347461583c65f566de773b14aae1e5856155a4ebf98be4a1d64967b0150a4d6bce6b5ad59c95dc2adec5fa5bdd7dc9a65bc7c954f86afc1f2f0cff37bd456cd2dd712177b3675c5cc8ddec0b23f4b8bd19ff95b26e6f26d4b3a7266568437dd2ed52bbee6e9f97a8ba7a092c1482ef92b0b11a3e613f3f0b8662aa97a85e46531f9f36c9dcdd8550ca2c9eb43784cf5fd6d80deb677bbb4b14649376778742a18df48c7074418b274d600b84a18a27d7c88f0be3f55e49f0d4f7058b73ea7bdf2cdda1a01fa01c1de353bba5c553c123dd927b897dcdfb7cc50a40ed17f3669af4de7b4fd294daee573f25f53d0fe6de4f38218bf66dd3943713923942503ae4e1f99473df4348aa0e2b9494541da5ee70e8739f10dc8550fddfce56fb65106a105e9c647b897799a0441184efc907a134f1932bc36abccf649f7c53083709e18392df685120842fca91089af8c91b3bbd77f2199fec6b5f7ed9dd2d37f81ee9243b19a19052b2ec7af059277108d22d9ad193d657f15a062523eda674cbb61a7643f9ac9e33d431645e8b687537eb26d1ae67724791812a28d7e3d37b2d48de322929dea416103e88224732272b198b4949243179c987aa628f6c3fe6cd4069bdab43729354933e138554c2171106da703d7f375c2d630e7865cc56f1b6ce14002882508eaec7a7a779f7db39c077cb6cafdf1b067ecbec77a1647253604b1bbc16bcafdbeabe1646f15e950221d55af0be2735497a39e5dc9749494df2433f1f2a7e886626b37aaea2a9b4d05236499684c482528272b459c0ecc5652484d0c41d4ad163db4577ad17a124950dd7bcf8e4ef826b73bc4f00120057b462ae87bde73fa339acc6a33c602ae4fce4dd0f000c079ffc6bfa3de63a40f5005cce323be3385cbbfbfabd6ffa9e290c36ed00ae1ca04842dac9748f07877e29a59c2ad7c31eed7edc740832df245915198f0754dfb7d828dbbb4beb15c83d2c706197ae259ed532dfcc7ba879fbcacad8de4cff7bd47b4a29e5942ddf63777787dd2b17ce3799f3860ee1ca158790edbf7767e1d2aed65c92fb5ebfd38bb97de2e7488720dbef6482de6f926cb78a6c69dcef98f77a5fc7416acbc7fb9a4bb0c5fb05e65b344962eeb18bebf1e9adc61c7cf8667a234109b76ce57c5bdc96ca4563eefd7471bd48eb2feaab836cdf0556e37dfc8bc790edc3cd69bf9853c62deb1886b95607d9fec5dcda70dd60b9acb0889869d0042b87103a5e10f77a7208d132ccf54465133686c3048b5b9571ce64429dd8f06a08f060a0bce8b33fd9e4f69693d9c799fc9b7c3f0c9fba0d58b4d360c5445b8422514329126114a643f40854edc855aecc7115c649bea94a89fde13e45d09306589f11ae90c5bbb971220575028febd7d1a8be99c03b350a50d03794a663dadddddd44b370e3a561823b4358d4843b37d4fe9782069b9021a176fb84f0ada004a6e571cc7b28539f43e8ee1884ebbe40120bbe35323c10bb79d5574101d4f7318e0a6d8cff0c851695c3fda9f593762cd747da8d6a376937aace7ed111caa28f654f385407626b905818fefe391ab536fed38a99695f2d246ca8fbfe6bf3d450dd1dabd19d83c36c847ebebb3b6643d649797035868cf0d2fe9440a6f48f5b69e90ed99cea0fbd906d10f7875db0591ec99514e2ce4696de44bc61ae89778a4d3caed261aed7a53e1ab1893138ebf08e96ea2bb274587d12273ffa2456beaa7ee593a83888d1cac98f3e8813fa3aa67a3b34e6cce898fe191c339de524993583ad9e33cb74fa9fe785a12c672aa84c72151c43d6c11f957f2a92a5fa7e18249217a6fd49129afc39513636039f81d1f066fab38d97b063948334ace480951f7d10da9ffce857281244805879edb515aa635940840a1b1a8f06cb77cf4723b25ced32f0e3258663dbc11b7c4822c5b829bf2929db5694cda58b30aa8d306a48edb602066d50541422e1184d625b5794cda56612fe782133a1ecb3755652850402c19f31d47e33d4e680e5d3c2b6d3d06a4851614a9151e10446650be3f5f3f143da38fc04d34ef513cd037ef68d8398b359a7ad03bd80843238c186461753f3ca485a8b0cfe7d7fa898ea98e62a6f7cf366aa1addbbc8f664bdd33accc19f0aa8755aa79fe012fc571d6e6bd3413836bc995e1362417d52f43cae8a5680b3021c4e4356fde8bbc6b9f15de625a3edd1f08d012838d24546beb46d3828a6160205c19f46350f5e4cbf10808ed04ce09e257cfada0f81b2ae754e5dbc795240410db53f4eb135f2e34de3b8dc8fd07967308b8083b0089ae0207ce29bd6d17932508a3c193f7828d64c908dc03fa0912103439016a6141915af9df03a0db5839a0ab59f6f98ebe8c49ccd83eec19bf14117b9f1aa6f156f7098ab684ca5aa1bad33a2020a41f500f55101851dd41dada4aa3ff92046bf72f2d50771f255f5a39c951f557473883816733aa67fb43d1a279b773b5c32f0a7631ad53a574b8d43628affc64fb796653f5407ca4dd6dd1afae0a2f2c6149f967e6ac190459c9bddd989534a6df2cec5e6cb6d1aa970e3ea9b4bcd51b92243f6bbab758bd99030752f0e9696b64e7d5ec82010fcc1793a3a3a2f66bf9a38389828a68ef4f4f4c494e8923ba15b26d7f341659d77f115219e3cff8a115e72835dd80d7a017ee1cdf4c30d22811cc4a1c53628688336687fe5fa36ebd21d3214e5f3472943215943875523a642cf1fa37c75eb602a949b4b850f8b3f8327651fee89290db3316b279e2293577dbf0f3d148d6694994e2877d1e5b5c17663231cd38b51de614e073b598661394298eb6d8d98742af52a77bf1e92e29dcaa9d49b9539b5366d9331c70fd9a6512b83fe4dbd192c323e4285f0e967f0e9d9c89e53a1d4c63b8dbae80a618beed0d4910c7e0e21521b3bf5625a6eaa53aba351fe9ebb12fe233a8b07ac07d3c168829e16daebf72e1fd20f66660899af6ff964c0eadf4c7828f67931fe330a57a85e86ea9f859705a3a1fa73147c82fd90539c7a16d24d7908a7581807d9f23c2fd08f7cebd97a96db02edcf1532f9af91f0a9a90fae0d64f5f6e01bf21f6eb1041914cca3aba4fc8ce160e6f88b72ba46ae9fc16e027229d9a06d24d5bdaf60c68239e71fe6fc534c3b539623474dfdbb7ed93a39e8a6ad33c2deda3a8c199efa1f14a367ac06ec36555e4ada3a0726df3ad7fb155698aa65fdb3b86a7d8bf52d5b8b2d65236da3d79675bdec1c16649763a514af682a5ba19c64dca29fd1d7b615eb9a474785b4bb5e94d339704dca9fa26a943ee904308a531df3e4f7f3a99c7227aa374fc7f8159acaa6668642bb4cf3e96f8e7ddad434177c22e3a7aba407ac16456518c30a3c9eda74073f636fed123e419e55c29c2fd9da1e14844fb351f35b685c4af64d3b47f4d7c636a2efd80688e8b9532d84b9ca2fdab1159624b5b1b5647d2988d1cf7fc088fea8162d0531fad03f6044799842ffa3f68b1e6ea2c76a882807b15901ef64ddf6b0305441d6354f0a32247cead8a77b88bc98576f4c018317f36af7344f5bc123695bd1d3c31c0f0fcfc9f34dc7b490eadf293ef9348a5333d338134d0238066b94637f728361d863d84bda992af690a66630877d8522a573aecef9e918482b21fb6180cd8f492e76bd0537168284398b873cd3ee1ac29cffb571ea48d64298f3f7691444459e37e3fb43dae68b91bf3ff2d46160b43f988d598b38a287c9424c15f29086179c904231fa39924c178963cf039ebdff2261037897f84b4cd9870663c131fecc828601ffc6cfdf39a0ceb47568e730e7fe9df3ada3a363fc47ef3c8c84acbf7b29db366a9ec75397874f56f0297ae8fd8f68d47ce7f123343afd6fa79f86a34f046b5a9671440cb97ace8c0ec1a78bfa8055bebf0e3e5def4f844f59adad18b5b1d5a2efcdd0d2f53e585f3dd719cc180ef915c65b46c232d65aa486c40f9eb6823997db4e91750f6d1ee6fc2309b247a301a177138441f340eda8114eb084b6bbec3ed55fe4454cb638822cf4cdd34b60aafaf7607f0cf0e95d0b8489ea4cd709cc861761cebf7b98f39deacf237f760cf31636c6bfe3b0ef6edec2a27c6c8cbf287b13dab5307911ed5e448fd1ee06ec2fdae170bd45bb93f528b43340edd8c79d60ce7fe438d5dfc74e51d6427bf91b388c7638982eda9dd6a29d01dc3f3291ed4f437f16c2a8f762fc270aa01cf887b66a833b5089f650014cd5d761150ebf854fa9276ad73f1fcf46e415010735788fdbefea923aa59019a50833606216418815d37a38cebf1bef2ef3eeee2ef3323384cccbbcbbccbbbbbcbcdbf1a8c0e254a63b96fe80db63b011b95a4cb3c30c9a9e7d228ee41002081e1640b303c78d1fc7dd0fab21c31cf7f309666faae71022c7db207ceade4f45a2470f113c720811b74bbbe918348dd3f0d6a369aab0211d57d5c1dcee12321dcced0ec17962a328e223848e21986608e63614ca3e54e900c2dfb11a3c686ae82d68f150b3e7ada391e141532b1c1d8d5a1ff74dc7104030b744f08908e696616af6dcc9f070a92e2aaf54660cb4a8353d16c67e6752f9e48885b1af8137b334b57a274247f4c010cc2d8fad4102035bb3363db6668168e0c9d8101cb1402adb3ec1317bb3306cb6669d0012822703026f26c87e8b1fd18e9781d4c8e8e2c42083d8dc17933d1055cd7eeeb63abc3960226f63b02d78dcd21d2108ac134572ec3a5137f4bc85be01d9ef2f0e9f42196d0073d643cc06bf5c9c8d216a011a1d444c1a1a442c4053250582943500889d04ccd06876e0d3d765ae9a76ea7b2152627f48885961adcfaf6f9d66ce90d2d9d90259ff34e6e066dabead44dd11b588239afd076f1f733cdfccfe37a063f6979bc8baf94c6b32997676c18aff95bbb9dd6dfacced4f0853836ce3fe61aae9cfcde5ad5a17816559b47b44247def85b6ea7984cfbbf7dc23560682b5cd3c676f26e69687e07f8b7787602278d371e3edf066960853edd7f399ea608e08e6764e3a047369602aa0f8a98f8589dd6ca7cae75cdd075485e57618e5ac424f083a14a0bed300600480ab2f3679caac108974691ad6d262423f84d5780ff3c66605fb24cbc1c4c94c385d924cb0cb0a692df4b5965015aaaecb9a580e264e069321c9998c2e1919f75e94e83b1db6eaa2ed71ccf629c6ca0060d4170087eb0f377adc0a06bbac253e5fc8c1c4c9883051bcbea3b5575c4eea33853819d3e6f18a21186184564856d34474c5ef985989ba30204791b728c208e793e1273d3ad96a841c3765642a538c85c127b7e8e3757737f136b17e067bc80a559cac668432a6530c1913cae8c9d8ad56d31746836931e2ac90655a18fc6fb19cdac580947d6090ed77dcddddde91f741297afb9645f165edd80c951f0d30cc050e03192a7fd59ca4b2cf16b05818fc4a2a3f83a1b20cdcd8a7bda2a46bfe8fdaaf0aad45dfcdd53446c868960544a840bd4c119ac022c22290c00ace820a4e847aac609e020f3a7e76d2c2d8b7a615177237fbf29b99ec7dc167e9595619c54283592a043262848d5441ce9f0f057f4a7eb865fdccbd447c709ed814735c77f78256a73fc71148e0ec13cfc80e974c6f8e578944df4fd3a8c5c9d1a8234e3684d11e115d9c8b9a504e1dd13468756674eceedd7d46423d93603e527aa3f8a8c46d978441e9d48c0000005000c314000028100c0784a2e168300c6455d60114800d84964876601d08a31cc9511042081863002000100260488668364950008c02b2471af3dfab3785ff64b0628dace97ccfc6af81d490e806796b58b791562db4d69258931d2fde2e95fce9c3115cd8bd7462180a15b8e12f5b18e718e05bfc287361db1eca9f699094142f1021ad5786df07af54437fa9e2b01e5a10e025276f74688979f4925f566d8ce84a32cfde0faaf0beaaddd90b0d50cbef77685912db577c5a4006bc2a869ba20bcc266c69bcaad37eca549da3c74285d28cdf389c276365e965c08a941f7c46cd936f65763debba653669cec0114d6412165dffc2444ae8af14a5c6e9747efe4e96122dceabe0370397c70ef9ce273ca3acbcc649d35b299f5c30f3e6a67ea9fc21310170bc24376ac14fc25ce009e23bbb1e789dc84c08d3bb51c167232af132cfd6071169e3812da5c0f5445ea1bf7f4cfa6dae82e8ca50d8094abfb6a80cefc0cd01fd710647f2949b3c34727137c1970a8f1897662b4a200c2fb450c9ad4902d5b728a8aa58b7e1103a141433a60756b7a936c57e011a10c0f2afca952be2e5df664566be376780bd72be089ea721581990b05dd6dc04a2ee320183b70a2e5e9b6c1a1300ba55c86ec9c6e43a8ba2566eb3dcc2d095d2a0ea96453443d328475ee0f2add26a218013a0a1d2787dc2e6cacb86be6381b1c90f94ba2eb529186ac89b3022a69e189b3c8a57efb919b007b40d1f1baf77ea4f1202ca565c8e8658ffd90da32114dd68b198c6f347fe9aed8a8ec2dc45ba3acc68934934666c0e5f1c65cc6829da64a1ce24c7190236109186ceab662d90c54a4d95f5af00436f3611cd7812eb3904db65b0d377edd21e31339e105b4d10d7ba28c50df8ad630e484a62f35f1a52115eada3235b63a2cd8fa46745c0d46ea7c8c363eae5e395a9b68795445699bf845748f2b7f1a4d023fa866b4e4e2cc24152a9ffc069864e9d6900e684b4c9c69d93f0c9b80dd26299aa44f0596bc8738a10c1a0a7a85fcc3c6d3bedb33957f02dae7fd55d858b89f9c866cb907cb6da95a9b16ea2d35a769223c3634ef52dfd1e3a53f3b8e9fcf793c07e96357ae0b830616f6fb5fe9e3dfaebfc6d52a4cf7cadae60adfd3d5adc25d4d09199efe4514e01c88d0d709a52fec204bc778ce5ed76d930e40d57ca421fd1756a05c80ba0b7f6833c68ea7404d6f088fc7e7598618806ab6668eb08bd5b649f62e6ed1a1b36085c957bd524639368320fced0a7651a47acb8288ec2f33dda8a949fa14f231b7ecd1e6de11d5113642b213ecf158fc1165c7e601b5eff1aa9f6ac5f7d11f72fd6ba891c89a523137721cbe940afa6e83c23772c5d448aee3f772a3aab7153a510b44db5deb76a1ca0ed3e50a36578bb214c3316b43dab08c43e886de55e39b301870b34b4001e3990420d802b222634a716a059ea510dd44e76054714e8baf721c835cbf7e167108b2a2550d4ee941c6d32f424ac140cdfd1712c8a7703d7da0738861d0ae7a6010acc9ab0b8898ea5f3135a7d2ae133ba7679414a3863b7375e0c11fe6e88bd1a8a4d090d6f0c81c91351ff3f673256daffed29dc208e65c5b257e2b3a8cf3962007dc6bdb46c76b037be8c9855471df335b434b0a4002c8797041c04eb6fcf04d77f707fef1ddef59ef7bd2bdf10f7457d3bcbe60444c00754e54fb214dae85654b2430ceb41602587204bbdb9da4d241fe599ad83bfa8ef708e35daebf7ea8236368a978cf4812bccd7cb61354f2a7bee71797267fb2be50812af184dd1de8bdedc05450da9620699feb5a890ec1da73c3087218bfaf81d6e58afa18f004a865a998c7d85520e16039d08667b126ae40bb99933357a0194b4897452194cb91929d58201e252ab3901c80d1e2dd13c2651b53e5221352cd431a3ce3215969c83ad4894fde421259d82d5a82fea03b1faecd4df1a01cc1e905c15d5dcbc3fc65de6fb68021bbc66f032a4ec4ac773133279a0246c92b958a22609dd050b28315d458d75451e6c79426bf0a05e6f7971c70b12c54276804a19b34827924a36ed89c05d4b4079128d27cf5ffd00e9028dd723fdc762a91055d415386c726af7ac8849da90472041e05bfaf64d61f60c618ab26c26a691d4825b74d503907aa5ef203cd28539215cd8b182161cade88a039f94cd04dd086116001d16dba8a79d71178989427338dc9c1c090409c2cc2c37f9ffaa49e79a6f162f18bc74a55f3366c59f2d4c78e757563fb1e05bb9f286b60434b9047f2c420bdc82a3997bff3af9b3bfe1a8c8a517aa334f661b81bc26e62d75141d499ebda3132aefb5079090a81a3110873ed21c5387a44109c6121f9fe401654255f39ba6e12b4e440c563d29aa8d143c26d4eab7c2f83a236c9abc788e7c7fc43a872f6e829024f936e3509bad383571661fda23353d6f2f33a288ec94a10833f48f29aac9ab6a971194e2ffcb32b63320942bdddfcc50e2b86b449acc08c0eddf9a842ea15b0322951b434cdd03b479123f66a4dc96fd5417bf7c1bf2cc0a816e21cea20fa6a1ad42306c81d962fa226ffa56c1beb839a50812717a7dde94cd1642e4f7abb09e564650b375118528c01ff9a6de07a0e93c783ef01742805f62d1de2250b1d5debf3262150a25bd3d86a2092caa661e09a45d0461b0125038b4e6de6c0cc6c44528ee38a9c50a992319c9dbc6f50bd452e81c8ee4fa3d1bb388204e2b13d5a154223043bf14f2c1dd49d6f6f7e7cf749546c750b98aa4498012b61caba19bc7792005457d052c965cb4443134edaf763a958203d003356077f73c6c60d0b16636cd4106997128b0992c0f706c8c99233d5febe3fe37a98188eebf8bb8a044c90fc1d5cbecf83bc0e0d4276abbedde08fc38ce148222eb88d41b7b05534990f8edfd2b7530401a29d2cfe9d3d93efefe486e398c09edc75f278622e9f88119190cb1182fc8cb36c30a5d4a0d65d32874c3107cf41ada9b02f890bd36852e56760ed4175e715a411195dea4477e3a76129b51cbd0bf32377e5d14d472d7fce618161ed3034f18d56583508301aa3e49448bc23b604e16348446c7028f97159cb8c85f063d3f116c2825491b6464c403420b766d69e8104f529655f90f936405b8d9bbb9c992113ca7c574c4a7cc41e6a869efa0d68a951dcdc85641b5016b237c943fb5bf638723aade9341047f08b4795c0907f6a9fe913627021156ee1e9db8caac80de3a89fc6647eb09f65e4e31a667b2b192ee479dabed2327596d3c309c4746daf238fce4a30666f923406d4aa10424604dadea1bbf5e57d84005d50caade7dc7b7225fee8625d5450a41e4e5b6caee0c53448c992ae1b603df6d2f838af9c70ecfcc1441656fb6afbb3223c2576ac7ef57bf8b35132044609a326ecad0f219097e6401a3a45e64c42dd13f9f7dcd780dd33f42283691a466986c888911bda775fb4da2539fe5a9d73d6dc28c8094e7f0fd5e5c28fbfc23426c6d02f834e363441179ae6ac7396717192edbab330d041b602803a5effb3e46317b202156a46a247987d827380cbbe3ebf9492f8291c57ee7a5329e63c72a67ac5de444b0c469dcafa9ac72c2d34c10146e442f664e98590190f72d71db23e24d8912de2839c679d4f3cc96f9108f82458b69827f595c888c10834b80ecc9d4394bcc10c9f844f368c619008e26356300610c52d8a14839289a3b6fc1820cc049cedc6740727a13ef0a8c1c8116e9daeaebc6439a1f9ab760b096227a539d5aba307fb8d5804105a0ba015152e51275264ca26d7e7a0c882c9298e984a34761c7d8e2947b6af1f4c7a20ebb193265b7e9952e5165473dbbe9a8ae93a75b6aa9e6693930ddaadca4fb04c36d4299fa1f59ab312f229f05d34dde7ea0ffb10c67b02e89c993638661b4bcb64a30164b469ee17a623555e878af063d511aa6ec863f2d412ba62db730549a67b077da6f53e360a4a85c7a14a6f92424a53faa83b6abd709d1241a65bc3625210602f2975a1a77dae1b247d99eb821129bc1e4f034cc833d14cb3e30dd640f7d2e585a97285ac2434a49c5258a971eb4b40fe32812d773cb25f8d200dd92e7223482638acb2b42ac969192a2944bc6b56970e416ddea85b9a9832a2b901539b84578a1aee3bd5109a2f27195d4d7e83cf01409220ef2caa36531707e10e63a823a5c513ed9c17b900ae0c65f68fb991a92a20c1b9d98f3bfdf116bd80192cf11724018a537b47345f17079ff14f2c1f29ce151d771690ba77d3a0f2cc740d9a248cf36d1f3d8553587707bd824c4642aac2a7cd2e9a7042a450521cafcfd7cb6aa8145a408ff9020aaa6245b06c2d4658e2fca6a30b3997c6a9ded313ac3b5cca5ecd95efbb3fdc6a9173e908ad09f955032980f79956263c68fe633deb5223f38d8c024f555ecc57968cf817584e38d1d24e73a2e40c9bf59611a17c96f922b0bb038736fe9ec090874370939906a64c53f08bd5b3737593c741abf3c7a6e42235e827310c9675e3dcfdecc052ce49036803af5ec40bf094ca38dbedeab3bb3311b9027bf46e9b3199216b8ba66d4234407c95f5dd3d1f0c5aab39a23d10cbee1cd4a87cdcc6c73a5e841770dfa0b5c5414e476782556453151bf844b4ffc775c2014e6382199b0094644e546179f6e13d5d500b5dc908dd9f1750ab4d3b198df7003648a055ce6d377ba51784d3f0a5c704d706c6eb6781e3a22478413b4d6950abab7470667ea58d134672d54e67f842b8fdcda4d3d12998a2018267f2fd63366867050a77d96cf24b1c9f24f0faf5971c2b140333d5e82cc7c7a4ced4781b152ab7d62b674478644332d7f8d4b87b1f3686df7f33b7a24ceb3fcf523440f3bb70c9ce9c7b3e7b961741e68a61ec1950d4e780cc8a88724477f158fcf88ee5377cd650591e4d1d400a61f0e5b5f450b833ea63fdf39c1f7d5aa66cb2bc0f0768e0c2c494f047a85fe1eebef23017f716a73169760c2547d4910d1eaecd943d57d339611e019cc33a8df1bc75887ddb412b00ce200c1a5a9469cbd949f1192c973c4c4e4f6a40ee8392c3e69ddfd6fba63bf064c20977047b3c12ac7d611bcbf272ee515408b6b149447e3613bdc9c219082bcd29efd5498728665f172d1f38228a98f282643446a24c02395f57956c8b10ceed1b27e699c59ec095062f51455c36be2d17da943e83ac3c8cee2c93cde6f805bda46aa50fb38714fb001c4b1a2405caf31f4cbcaded4c776a26e9368ad9ec7b9867aa65d377e741d33dc8f7a690e9f5765c3b9f8ea57a08dcf83c6822ebefdd8ba0dca4dcd52adebc1bbbcc8c7441458e10147004f27cc427036b10448c3967e67bc22339d05371ba63812d694f123a266641777b3e45799e65703d524691ff5e159431a05e25d2ec7a29fe8c16e7d6d36f09b23baad8fd769f12b5bdefba34170d7e96b25d8a665c93471d02af7fb7fb083c4735f150303a30e20c6036432a8dc20604fcf19b871596459ec3b036dabbb5a743dd3aefb86b49be0bd8a18181bf9e534ab851883a0c640e1a00ebb0c62e6ae7af14d9093a3ef3a03f365a1830dfb132eed2af84655fc6b2c317bec322ebb7c0740f5eaf7e61365f05ab75a7f624c675be916d61495b05b50eca50c8dc0e3d6e9870b04a6b9908761e7874cf62cd9080dfa61e608c67d3da3b0c86f0201da1c18c19a94c5da3a31d3ca00fff4e676ffd265d85911f8cecc4524ecc0c625c84ec4d768d57ef5c7263d6d572dc94329cbf3834d0e5fa3e87e926c1d211511350f2c2429f256a1ced9f03540da20804150a3ac200b7d13b0d3736e596f424f395de8490051a336f422e6fc5934445c82b7e755f00fc44f5673eb1fe20243b913583fd98f090092576520c570acc0b3a391293751f55bda557122446a1abeeb8cd6bfe0fb3dc2d82b86cb41a3fb6e5d52d4bb519c117f360041afa219c2fc627f3a3bf949ff4da7d32ed281910e13c60d1851c9c8d004dad0e5121540f72c2a51d9a23d19353e04a0d0146f5333affb542219c24d838232dd5b4bee8e5b8811ffa3b7b54cd6d76dac8ebc859cc66582b87e17b38b80db358f3270e60b2872a385f6831edc9368544a6fa8d760a6a368e5c37827495456f4ce52b0088fcbfb5983a7844209726bc60764da0696eb2a65bc9647732b3176175732ae8ec4074d21d88aed28df00841031e59374fd3fc40e5db30deeba071a8c1aafe02eaec5204476492b36e00e26bf254431ff598550dddd2231d6d486f062e965123b199d90a5c6b70eafa70bbc9e2d21028b8f23defb8d4c9437c8ab69afabe205661fee520c256fa670617faf73175681a9f645a6e779ccab4a6f36d54711f939f1178a324db45d1ec9006116ea9fe072b4b17bf30b65acf466dbfaa7e84a1f5a49427d18918f5fcbf823ca19c8037e9faa37eabff953d1453a714421ee6498e90aa8131e4bdebf4bfb53b13b5f96624f40c4c9c0faf725759cb23ea44ad542b673579d4d1070ec2cf5b09251e6cefaaead319f45f8fadd7533559bce4db67beeef547fc43034d6ad4628ff1fa1f923e8533baf7e42e05d65a72e675316dd2670c214f4c1ecad81afb07699cdf8cb08bd6ba2fee09f73213b53a1b1c7ff9acaa1879a5b6aa8992734489cf7804cc6e101d899038abf155df450575398a4cd6d5c5f8d67ded4dca2a1cab5ab90e070613bed9682ee39720f021954238b0d68c99d10d51ee7194b199ae5478f74ab0bd228d6a483150d2c6e56aad0402dd54110e0c54e2028bce484d82414dcfa657b852873554735df7b0ad3367826c24e9e442279466187a652f19328fe7830a260ffff23432bbb5c693ff27ef5b242232383456b020f89e40f020802dc253087488de12ddc4760a9e7243770aad9bb3d7823840057adcde946027eb597e2cd5d53591e5a7b64cbaf6f31f7f6ebeb27ab6f284e0eaee67c94c03b1c92387ffa21f15f44f6c0e616520549e747e3409cb7a2489588a1219eaee9df88ca5397e2fbbd883aa9307f16b18a1e6ce2e4e9045cccb6b6ce9ff6522f3f2392f3f89011c92a543b1be086456dda3182921e2287b42980c87f5093af076a888a2279493e6b4ea54b34a600c75a27bcf494046591013252b36ce38d31d0c54450836c8c1316bbf0c92c2e105b960d5e141ad48fcd0ed2700a63b5e59e49f4163f0a8f8f0db3bbeb826daeed14727c0a9aea73b43a6c882a6a40088a0993360ded4129a74b4de052f3d7c0091e90efdb8af15e0f724fc45adfd6ca9dbfe6d419bc29177b71a6bb33306465eadeac35897df44c6922836d402e051b46ab96d6fb58e1604d860f13d9b73b124c97069254f7c94b2582aa73206d818a16b7823fb9677d4a623d50b45246c1d4ca535d13e1b4ee527e7f57852b682703713934855844f55fa321e277752c940cbce8f00d900b00cbb786d82f302e4f1e6a256b4b4d4e5a806e659fb490d9ea368b0d7435ad5a299bad9d8b3cdbb2ade9950849fd98adc007f4ad0306fffc4e190469c43f4788eec60ebd11721ffe0c814699f9fffe32bdc4088bb64eac058d318318f236246f1746ad0747237a61e764040bbcf8c0d71c05ca28145692d4f75129942cf37847b082f2f0d91cd719a0ea2bc41099bc88a03975646b47471fa83bfc988e1f9f5d7d3af8a27f914219c9efe3db1d179d97362eb8ff115a0a3463361b427b460c6419f3c825cb8f51379cd31efa2f1fc3a792b773e0c23e74615e07c8d3dde1c3c81cbf94ce347a01381ba26602047bac694c0358a9e9fe7d83fd4128debadf93e8d77fdd94c669e511e58e737d141151c4fcfa3f9d9f1ac417826e253698722f43e50c1b412007cd78283c12fe57119cd12e8e2de59ec852b2ba4f9f6e3db0ef89b48d13323bcd0e096b9cf61fb3c94889ad69e21a0fbc15d4e323a4ce0f70616b9e98cd9a2a5857a2d9b547b3133419e7dd18c7f8384252e1629c418e507cd3300ef43718c7387463bc47420d1f29d7f0bc85047c94a401bd3ae743c319f26b6a0080386da3e18632880613c8d94c33d517e725fe91d11f3aa63a91bf97cd2dab43076e6ee5f5be823256eefac411720607409c639d7e0eecfc93251bbf0bd9046a8105071cb4c6d718c7946c60b343af4286b46ecfd7fa5c90fab7efd865c74acd41ecaee04707ab4b57edacaf1c18e26a0b938d34c0e9c470f6bf673c2a3e80c30980a3ff379bd1030eafa3ad9f632f7015811e62467d4729a10715701ed946c031b59527cfdd0aafc0507ab89d31e024d1c117857609e3733f851f965c8ba57ed9813c8c3bf11ffac60b241cf8d860e85121f29feed033e6bd49e404c6985e04480954c9b6048b49a209404ba72661324bbada63bc69310e28dd6a9220d63d4fdb0d795da3d0529d628f5b52b259f8467abe65e4bafaf60630ac12633281a64bc912b38ff8eadc549cb5882c004e6d26cbbfe88095e165c14555215fd4eca1c23638c63ac076b58f5dd0a010cc69003549b19efe6cca3d81d300f930949ab2a224f67da7cab1666254e46a9e491aa14f0589225703f2bddef5a5483a4aa12ea5026e027e11a3840e67b3c5d2b0249d5b4478f37e61f206d83f3f0761f56dfaff19075c8582049b4a164a97deef70ef322f507abe233a084834a3534a5236f517e3873e65fd168fb6c9caed0ae7ce883fca539b6f26bd6bb531e928d33be3a66762860fb8136847139513e123c1106dfcbede730e3fd24302bd50fb6e39d4e8a03e0b2b64d7eb2097e82a95f0414cb82d6dc77a4635108f287cc06415d63d0100229b90e96242c667f1e0f8cc5d2f98a3bc984769739ccc5f918158714604305413cf2284862716e6df022ce808f2d0d70fd01a1d2426d5feb364218105a4ae14bc454fc9016ac1de034068a8f9be2d1e6de2d646a2247b5e3eaa872edb170c92698c3dcaed8b0e403baa0677556efc07dddfefb2b8a0e3be5be5a4cecca14a6f703fce082437c02a0a169133700540bc75bd73a45b92f6798c16d6a17ec3958e75c661ab62e79cebe9ae82ea3af4efa0b7c4ead0530aeb9ca471e120c30821eeb847a3b62fc6680a73474d609c190d5f8a1d24d6f0fb3dd9138bcb2ca117d3373df35bbf123e2e4d8598c848fc955c123ceace35b03cd92574db43c8c28491cbf5d300551562fe2fd58b5040ba4dfa24b21721a3aa7bb479fcfe780ea5d59c447f9be90320b3984aef12d00279f046a834eaae1af5d917008d8a511c12c9ff41384e8354e2f017a1b3088d442ce815017720645809cb4f75f220717a058deb8619d3cb59f56f9d2d76161a44e2800d01d0e0109470131a5c426fc0f13bf24fcad8b73255d5901dc3a7ddc4cbe79063549e49c69a5c7a9dc7016d700bb096218c4b278db481f9cd40f739bdeb491d92586fefa98215b1f0c2d70216b6e5b69706a9da3b09e35c7e7461caa111f3352a99ca053cd605c8bbf3d1bd19efdc3e93db4cd135be54c1eff2b52a2baf2129e6e3914e84b3b6fdbd2f328a995e2d3347850ced68a19136f4046702383d3b9e26364562ae2dbe49b315166d3e9682631fe420819d2213a407ffc85fa0c65896639fc0bbb67c16c80e4e8d284ba2f96066eda4a464b318f89de99ec70770619ff263b5279d02edebe9bcc5fc20da3c666422ff02799a6e6a37eeb2d3ccd19e9bfdae5fed298aa0b28c4e70a6a774712579e3730517f69e789ca861a045e467ff6cce7d3caf06a88386c55b95658fcd06c420d3c5e3737eb3f602c5daef990161b4472ee9f1746248da134a890008d8e286f286c9a94cc04c9421f0764c5a4a3cb74de3c3b80cd5e3387589106f97c162a235a8b1196318bd4e627fa97140ac433b0c6cdbbb0a6a4b4bd04a8a9f72588956dcf490f9425a9725d8e28a0d3100ca6333d0565755c0508a8503782e6a6accac272e160982b5e9f1a2adf7ad832040871948d88ef971a05a689a1e946b197ee1644a4bd23832183b890a2c37144700e22ff008bff17aa0174852b29def8f3348728ab3393d9555caba790d1c3ecdf01132f37afb966940f7f90c80ebe1913abdc90e292e18e7bacc7ce8b1fccb6d69427b016c3779f4255964f009faeb1c2f454d5d7597ad610f07f38dba05f71d9ac7c8af31f22ccd773dcc82db23dd734982c82434d2a36ffae4daa58372984a1c198da475fded733f7e4e7c7d35345f6785108750f9099615b80467c40dc338d9f1bd36954430a80bf7f295489e546209bc6ea1ad2776c8d8bbe73ba8a171fd4e31a2e4926d9728df8d781787c19543ca937046256c8dd7e4f1f98e30ecdfa2f540cfc2677a6b5b9dc2c959edd1325693d05c6a92960b0fe5ba5f1b41fd25d9385a7b2b9fd87d6819a1469fe8a06b6564e30b9ce040b5efdef215e7a08525bd3d08d396d1c8e2a1e1d010fda008b10685f45a518b44e34332125254460d50a2af231efde5bc223647d433769868ece37a47ae5f042e5bc361bbdb70e3a122fe7c96340ec8569504edd4fb37422717461f118809eca0caebe315a63a213b54bbc19418e96a72938d6ff4e3adc217dbdbd910e7ae0ee40c315f016f41e8d1379272e616a619c64c55242cf7e84ec0bb3f8b59779339bfaf0e24311ad0d55d806cced0133521945c5b75dc5ca7ebf363a6953634311388da7206ceadbbae74e2ed6d2e727ed6253dce5070662a8c408bb3308a497f4e6d84bfcabd628ac7c1fa561d1424abdd0009adf7371ff5353d1a3032006be402e83d27598cbec9bed904a3c50a57c5255fadb88fb77513e38d43e924d9fe3391dfb8ac0da00a83b157c10e443bc89ba0acb831894e8aba059060f5d499313f5ba3e3a2756938d296db475f905aa584bd4ded3fc0da7737ec19fdffdff5fc69d93baed73542bf72a1013cb863dc296d4a18e86d6ddc36318784deded31685e10df2a4aedfa4602d7c9ee01809f08072b1b65a2230a116fba597e0ed70a848c878ab284ebd6ab3ececc96275c5aab26deb68580372890be523d35bf5e8692feb306a5661bab6ab26ccd671f1f0d80bcd99985cd158d7683d4d1126fd683916aeadbea4baea3a473050717fc9ff5a2ec0fd7abef1006d049311c80c974d8d2c52ec277a6bea45a0d7748320de43adfecd14279a21cd949cd0d729d2fbd681560da408f735b6d0d2e2a9b189c0d966d1166e21bb1abc5e33d9991fde7d11e5c575d2547a71a4f27ff9de90a242ee4261b2a7d2aba41acf45fc7f6eeebbeffd55b9cc1ae8c3156021efcc105d0a1e369f579779292c0909c6f95be7ee67669f4a61c95cdc0e41b9cc46a2c1a07051b606a05f57b38283f4021f6b43821660f27d005638b1948daedd4fd88b2c786f006982368f29584bb12fecdacd69ee17dc023db3c9aced0418abcb3ea9ce5a4603326c5011025d8cb1d886c9058b6fa8ef3d90f3ba8c554f007d07794e17d2d91da0a73301b0861001618eea5cbc13659f4c39bf550dc1ed35d225eaf281d9bed520aa6cd9daeba656b5e5910a93f82f55fc81b777482c68db4a60dd86469cff6cd08c122a12c288aade50b0176fdc2d70e819550be7761f6b133b0dd85afc123101342b7307f3b6b44c69f2c913dfe3e3e0d346e0438df3be2209dee2d09dfe2f778b2626957b5ec911c94591f9ffd18245898c8579805cc0d6a5a137d5042f5980e094437050ef9af63dc1e55116d7ec034af4ca00c92a353715976c356598b51ab9b8fed1bc8a6ce992c49f1cc1cca437c3db8a0c5cfc4e9ac0d53ba17a5c0b11342a21322a75bb8b735702581af96099a206ea48cc7a11ea58d51540ba819087873c4ab2cfcac0c628bb15e6ab13f9eaad7832d99012f88a5237658b05a903287596cef00b9b832d5c81a1aaf7de94c4281c650451414568c69256a5956fc2f201aef1cb7cbc7590c9ba9caa402b7a80dc79b3d82429c929781f8870cb7250f9f75e63d5da8b0658bf9047f05e673616a95b6ddff18ff8a6882ffbd5cb02906efb62a708c0686fc0dcbe243ab993dd0d5f5ac84e60c7b8a2b622b89eb05aaba12f3b07cbce16336ea37726ee3a340243e3e8b5800f907fc8cb7adf6fdf71dea5d1ff7bb18984d8739bcf96058872d1ab5e7aa9941ee1fed0bf8d9e936935d8361624324513e3ee183606a52e2bcd5222702e4824a4dc8bc88be45432f0ee26e0b89c2e44e0d0578eabdeb156b9189112663d5b5bfef20ac282096c8c2a2c7361138b1bb0dba51aa616e942de601aba075d304c43db8749221a449200f4655d703929923e60c9d8d29764d3aed255513d2695bf4e9f6121b654352b2ad6f9fcdba226da84d692e53e4dcfc893e48d3fe60a6f33d1ee5d6e28b077880cca5ff53468ccda2ee63ab0d6c3a854e81c8d42c94509c445b64b121ee62cad6e41e1a013fe39e7ba2172e88d6eede4008dcd1782559706b2e85514a26a9ed79de0c0c0ddacaf50911bb964fbaba35a812c881495a4fcadcc50050cba522d10258a69f4022f8d5cc4fd4da90e975cd0b1f447fa1669a1c1c3f37279729e608be73e4f4d15a7ae679165636f9c619158272ec40ac39848a8215c14442fdc9df1d409da045f073e22d02bb8fe4db5601a99c50d73c6c001056353a7164372d25d4450a9e6605e87c69a2ed72ac6fae5da6ac424b140abb41c10dd19829ff260b2f8454224ac6f301e18dda913b51bcaff827e75743ce5b560fd04aefb57d6ae6a7d3f4c6611420e12c2842cd937e03ca86f6d7e8df9f4900bc5f7b581d79ae5150dfb4a57918d85312eeb056a28d18953992cd28ad872383d13af8a17868cbc8437a60cdc0b03a4f51c86975165ab6310af5e30c8f4a61c789d37b1a49817b9bd1a90c380e0c29b725588525575c69f416d91789d7052f65e8cf19b9947fc8d3c3c9fbff5518c25f83307252bea9cf7517d54f97d7299d26a8f40a97e8967d8d844155513ba12b589a0eae077e9c47b0808a79d946cfd79df0b418f08fa2cd55ebfb0a145dcd3993cac8a33db662e23e4ab7943e14a608de1d35e587e0dd92d5c7d14b4849a6124d6c99400b6c4ae465fe1ddcef48953397df57f04549e4d034042789dd6453653a6c713da60f379b40823f48f806370d4745e37ab745e13c7d24c5cf572f57c893d6330f1d545c974213609841f3ed5e3a6d6fac705ca416a53c12ad51a6fc0e01d2da54f8c26520887f9aeeee1ae145e5b10784e21eb391bca36219ed5da91d98cffd36d2d89b0e2f78e87eb9a0f410087d5bb90ba430d242ee23ef200090ad7414ec02289dcf2ae4153f4159e9acf123d2185de8a82db11dbc839700f4103adf06723047f4c56a9a858272da30947c70760e3c22b9e20f105e75d4a59ff0fca77ada3ba98d4d958a8913ae596991d6c1fc4214848f21626d4477b0072307c2d9bb8a836ba64d432981d0866d7581b6db2d686e60e985b2d6b2c26e106aa2958cdc7eeb926e1a019c1eceb8ead8c7028fe18ff42d69078c1feb22af3265a143496e02659ccd33b8f2f041a014540859bb681cee1c3c6f66ad0d0fbb411c7c1c82098cf81587b72df47f9125c31564d922782423570080c92ddbc8a3b18207ad73960b8ec3d5809a0c93bb5fc59764c5e26a9222f5399498b59dff187eb583120132f48bb8040a7f73055b2c403545a3ffbd503798f25802fc8b0e2042b152ce9928461ca13e1bbff7105592f854579641efa4f381812921625898cfd60a423d080fb957a5642c39ed751d95b31e4472c7ee6e401b50ca974f2b81432b04ec04d806226e9e49c51ef9412f44d5827c4203c426384eae6219e04efd01ab5bd85f922025c663c2f348e6e71be8b2899ece196d9e5309b42b88c4d56d69a47fc61dd9e882469d6837e90a7bbc92fb0cd558803bd417afda61766566daa1feef78ac4f34a32466697941753b8b9e37f773263e806c8a3d79bb5ff607cb0ac8bc472a53c9580051a6a3b0193d39c7d628a2df5489c86cf122766e09308d5321be202ff29bcb2b965d0a1c1ea791460d44d89e4d0f57905ca0c1c04594b3cc902b5530ec929cd7faee8c11a82a6f9130bdb95942bd585f44b9d5d9abc53d76450f6eba29b965d734710775c0fd687f0919bf85eeff5f24b627727a143432438e9930dd1c0b36e51685f075e3fd5344e80f30058703a150a34a1b47da6d23e4f4d3747d5ce7cfb5f514ca6e9da901b89ce8c5b3e7df03f05bfdc12575ba0b2664e34b5e654ed1cfaaea5a16825da55ee90a9cc7fadd4239489befc7b871f4320f9161d50ee02e6e328373ae61186ed01452ad2901548ad3f58154f1659a116fae4df5925033b53776de5fefbde2c9b8280b492269a15050804cd3526874c922ea7a8725949086cfe87e712b991e5e1797a74e4b4d2f14b7996197fa4faa4a620133171818505f988cf95220c329cec1ff54e2ad1f6b5e1b1f3df07d92627417ca5f3be0263e89070a221ec2994abcd4dd7492339b576705cd8d850efcb825e8f78e82f71f6163171632dda7c236429d2ed37e1d90a3945e62e116a88d1b527dce1ca3a384e3a5eb4a0d0eb25a0aeca823f71ec3dbe523efed6dda052fb11a7cd2cfe71c40c58adbe5b8228f3915f28864e89207db4fb36e5043fae68607c9cd14b3f4303c8f72a383a2052e458867c8a030a33ec7211d9194705d1ab6c5a501c817f911ead7d8be41d6f6528a09cc9a20ac1a475d353abc82a53cec88b804f57c409e44c205e4cda88050d0bc3a500c960b9ae805b914ca4f4646b06bd777f99bbd7c47e36eb9ec47025902486cfa52c2120f299cdf9b6052893988a9d4ba86243e35165597dfb2a7fa28d53a45d7556d18ec1f283bfd3f92546a787170383b7d41bdffd6a5459b25a5479b8aed62e8550d7ad82fc14380559155154ec6096ade5fb4f93b15bf373c1b40342bd0a86de4d5355075f7ee6ad7c8db53e72f077c1a70f5817eed85653191e0d233907028a544570d2f94feeb51f2adf9817106c6106863c7b21afa6ba96bca9402c971818501ddfc5048b8b0556b74a11d3f9125c8bac3ce960219c022ba78a24c047ae95283291f472ac8c64b1e992c56dc35ae578de57a05f91af4accb1c29209c84497d722d08b41fdc69fbec82486a500617e21a0d4b3b4796cb5047d55b72445a992541620a114cae5c81e535a9379c78fae57cc0b68d707465460bbf8ae948a9ab463bba020f63794a6554299bb53d47a5982197d4b2f10150f6ad927be94fd38947940f20c105adc9a288de63b6113dbcb8fefc0299065b3b50d1a4f175b5ebc9943e37620a3c9951f7c433ab89b88386ff80e0bd247ae155af2b14aa1f92503c52b98e0ed84d042ed03a9714cbecefd85032b8d69a290d2811f4e2f1c8eb57d81761db23e16ebf351b3ea076a4c52f96a42c824204360baacbf1f9d07e0a7d7cdc89e7c8b58f87c36eb89cc32bda36802aae18e5d0bde1924fc0f8015856f5b6a741e3d426e1baacc0473f5e597fe656bf2e4f51388eab1d997e3b02220d09feba77cf38bfda36446ba4a0795089f8d6bdad0a9e5eb730b93bbf02d8d5b1c17e024c163cd638c8a5f438150501e9b6f7a8fc6157825515121276ca2c4811e088b1ca935f3f34ba4b7e353e51edd9756ec206e5622430dcbdfdb575a0c3f3e92910a6879e9d651e831ef884f40b8e6b0dc1d8f91b8244a628d27de00a3ce7819c72769911ddf4dfea8935d19932bc04703222ce5c2f3b1c0b55870290eeaa928da3ddc460d4883b3e8da1646f4a401a1069e49369c72a2dc72c03d9c63374033d41a96e289da1c6128bea5ae49f3e8b7de273dacf740c1e3ec8aa551c023ddf397da70694a3dea7959b2ba065f301165e312ad8e3b06077307fd69bc04c9ce5782bc691104dde0622166fd1bdf1e36edc1dc27f849ced6b2928fc69fcd2b797376c469f34afc11cc9b5d58acd4664aa8cd6371e4e7e818e4e08bbb2c002711bfea365b60252409a4d13d5d62adb9efdcf6a61e6df088b5fbb0b4b54f87c9d514413446190bbca2351b627982d274e933ad540d2306c2554573b65a1cafc66644c22aa66604efd7dacfab3fe2d205d0a08e18c4bb507400ddf78f0e6d8803092993263957728097686b6b9b54425ab987b5ab1c0f486c20d5b50623f98308700ae37fd086cab54bd9d4b84d34a3e6da582d7d0c5e58636ff60fc9a07275a5cdc0dfb8048906b521a8ab23f2f1626606f8b699df002427d8283c8036e9afb42c0e2cae8f1abd465901b75ba0a4f80b3ee56f89785cb9d98be6aa9692aa5530c10982ca16658938d19dad1dc8f981d8213ee17d282ce81e79287a468ac220218363a0073e5ab14d1c148045fc4d1718fc5243a843352dcbd93c2483dfcf6914aebdc8358dbbae9918e902721ad77386df8c639059feddaa07456339786ce13673836694d4fafe7bb25d3df8b5ba759629ea35e9477d4dfd3d43d1e5340c6e99bd233433a8b6e9149601e2034e817e19df8b2b5f0b7a108522b3b326472eab1df35e2c1c95a02fa294f1f1c9bca37a25de6c82eb6b031e8041a8923c89d68673fb30f5ae198423b6e5276743cc65e153df77482abb4198f7ed787d8c2524f6cb35718a6f86ef840aa83e43257a8e54642dcd4eabe565e861f4c85d36e394bc280e313e45334e459b3339e8107167306f0cc9539721090f0bf1c617d417a310a7873407edc2a960f325182629d6e84a4d7de9852eb3dfc4dba41ba51b5caeebbb61441ac9e4503a7ed476b0c06c0a315828747117299655cdc20b8689ca682d33df82157b2a9a9d94b9d611ed81fdaa614a51ed780743a1f7d8d104c26fca0facf1ffa3df5145a111873b01d3c7d07eefb757be0103ab7b3fb96edcaf54057285143f5c5a997f49fce0b7e7689a6e9d80257a24c6c6020c1cce709894eabfd72d644b579f9695321451d28d62abe8e96a4d417e0bf5c11f4a985f0c24741cea5c477ac52d4149861721a815252fc0b287ebaf0021668e0537653dbe30edc6f28d46138cfc121ed34e361e113a630fdbb686c4365864436b0816a49de6408ae40500fc440de5e78dff189804563ed28df48588a586f80ce1aebc18ba62245a1156edd23a919e660a985528b8d7f47259518edaef5e97e894bc06c65fe341bcbb2bd4b5d5a9badbe203b2c17fcb1b58e83e7b2311de3234cd2f09a3661ec8e4cb49998230f5663902a6ec15e9053175563b76c47d5aa0da23552433392197b233a765864559e15353fb8c43b6d91ef17af944bc04a19a69e08e94af88225beeb6969512908185a093541d261ec7f398134059f0318ad576725b9fcb591b31b1520d37f0883c30c85b353eb796a1c4e20b9dfc735706866cf576148dca7ae456d9b70cf8fac0580ba40e35a5b1b2a79eaaa8af2a06248a1f783173703a08ae71d41c48079a7e00f696c5c7106bdd5e76f2c96583f8744b93ce1703edabcd8c7b8561fb05d878e0c9b2846466b9bdf449c22fb4022b49e89220b2c7aa316a18024e0213aa650452359d5cd3526ba8685ca575e9875334aec5909348862770b28f710eb45d21f01e824628ebb84f63d5d9c5965557e37bf867840a668f81130aee0c883da8ec1fd94721073d0842df25f0839f1f46afbc8a66b8d6825a298e406a775c204a7bceb8915fac641fe5cc2425410fa7282705acf8a54ba53a9eabd3d4a25a733403c0d00f94c834b1b7e639f9a8a2ce7956191d7487e44cd89cf294ea6c6f9cef8ce49d6d980c33926336ba4892ba609ffb0a68a4c4105bf60bfa07a389e54d7cde478a0be23663eef89b4caa43b7e6afbeea6ac0f83c6657fbb32dc6917279b71ff155d9f6255d52489ce8c3d3f5962661362d72db637cacf9e34eb7023e6d8e7935f5cf40845131c3a5d1b051bba3f299051074f3608a0aa1bb4732536270a3a15121c288d9c23ff11a501409ac5521faa7f2fee1fea6fababc9f30199e48d9ddb1379a5cf4fd11880bc01d389451804ddf69df8369b1746b26bd0f16beb53e98d92c88d2790505f3724311253fe7682e10a601d8a452e7da68df9528bd54fd47063c6c64e8a58d7d016d85aa3bdb19c9a20c499422ef41210ea960ff34036d0fdf52bc8b8d549e69e567f8b91e7ef0b54d66b60ed34f54d4cbd2b753e6e6fdd6381c224c9f48a488a2d78cc70f22077d5becc34901487aba32fad13c3d6fa8082da191924a4891f174a4e9a8a80712f5ecb325ce48cba84285db76bb75e74564f7fb2000d743995ff675cbd86599e7bbaccfbe1ad32895adf04dd9e9b9fe2c99dd2d5aecad087fc45702e3ee822a11625da85a3d4873a8d84789ff6959af3c7cad71734cd0a2c084e50667a1f5643725b0e993459cb67a7e7b3dcd0964e7c11b8bb5606e7330df0555e48ecb0e1f8e7967ffb2a804261862de43f12ff5a126380736d18d0cea45e45ce05d0871514725d4f6e107b715eee2e2beb9c42cebc27dc7b1892c03eef3f9eda4da5ba8d385a7ad959bbde74e5f16390748c9bf7abd64f4efdba3c5c8a250c37f53c9e1c60044f67a51734b109c24d92cdc33ef3491270f7f2ff7d6a062d054c5b048bdad585d2ebee76c9274bfaa1c213460bfc8e6a430cc0fc6922a4c74760424835ab3161da5a4f39f574d6a573804c52b328318bf6f6e71b6d809eb1290f8adbdffc9d6eb71d8367c10babd062b4ebe57b635ae488b8375a874ebc789b3e3e0c9fc6f4f77fe55aaf3cf74dcdb28dc5af13a86a6fd3cdc676046feb0d569ef006889fea5e5804a04caa1eb2da0e242a7261608b723cfce63d517efebcd3d53386601cd08b0fdc1140b22b4290a92a73f87174336ef07365eeb02846587553cfdf5553d79c93ed2170ae6831802024a82906ac79846d704d3f086be37b8d354ba195d9b5e07a78d36adc3357dfe33045cdba0e796ea504e5c7eca08ca0f770adf2aae5279a95eaab3539e40e2d9a6185e9b6a84d6191339e60fbc33c4e28ec204be526cb6c44b6a5d268f4a58d6d781f7bf5226ed6006fedcf2fc220eccc626163a7a6275a7eacbceb7bf266c188c544f7a56bd6cfe090a0f70882625cf8569b8aca671f72d326a1a8197a7810af6c78412255eb3f49b896479050e00110f4d92a4852d4ad0d4ad1d1b118df136a643d95bc849ca5daf4b2c8a80a03b22cf9c659c690a8f59214931b33ae01c9ff4e91386f46adf7e1429ba9a1c53c70011712916ec44a8aa16cf3ad5e8d47a3b1f3a0bea5fd4578964aa4fe27bbfda378a6aa254e8cec76571822b4ec9fd62ba21231b9db8675f4f79059fe9783808d7f901d880a013e88f00a70a72db87aa73fdb158a077df3214dc61110b18d7a5c33b8d441bb4d83f7d7eb99dff63323b80dc28a59a70ca0d5e2be1a3249ec8b3a81ea67f3c56fd5488ad7e9c6c28c462bca21eabf55d2ec2b21052be9eef26f8b1d988fab05a41ec5ab79abab8b0e5405a73eee6ec412210cade38caefe0048f394a84228309064c63edf03af7df0fee314679b90a97ac6f5f7e9b47cc8ec01e3d08186e765a76e2db6ad750eddd1db4e078dee542e656fed5187b2ccb921727ab470d4e094f8427a9a80ef5194036338398364be076fdbcfbd58db5d720832ba8cd36fd4949bdd241303e658672d9eb005f1ad65ee239c16a833a2c01225f3f1daad93f9104b96ab4277c95496c2ed168e89b4f6009e605f142d4fd7af753c9347212bc6276dcefa6f2c13fde2efa08cf7a5c8122df62879cacf19823f9698ef7d4f301cb004e6f67f67e685fd2d93efcb05f5d1d0754fcbb4e512179adf1559604beb5f4247a30fa546cdd43609f827d00a876ef50e7d8b5aaedcb93af4a15f79c44b227f9ee3937f333909d904c98d66a37f6ee44b9b719585173657fd4a27d4d78871a656ced6c0fe736636cf379b8a75bd6e0403bf22b3b888831d2a941658d005a448e14b391b8f452bbe2b153c6325956887c126a438a172c522aa36353ecc23936fd5f8d9e0376a1b5a0431e47ff9a0e0afc41ba9cb63ec9f8ec5baf32d1c062cff716ea4db6897c365947cbea7e49884307faae23d8a2ca41af991fd3498e55252cbef43726fcf9d0910975b8a47ee851cc4e4aaffbb0eedb600d302de0a7021b3edff4d5fc40a74f5355e0279c6f9ec3bdc1d5a683fd5a938492264a96d2e4b08807b93ab6c94865004fcac5bfadb12c2ef41654fe7aa45dc30cf7a7bee2b19f123b3236c51a574c27b68543c04f8cfd304e699b58b16c521b022d8902f5e7942b16755c229788ba051fb86fff1a73523082c21d129559af7d50d83d08679334251265988b5682df062e0dd52f5e55dac4d96ca6948f86f4f0963fbd5238664ce66460e62db10542586b00f0192c531526ee49be1935989979c99c08bacec964c4b8656a3b82de53715063ccdb0963f4d95611332d7604120b3342a7d5c7101a3b82494084ffddc3a0e77b46f3cc808b34aeb2ad8ca4a25864316a71ee2e92d9914e6b223c4585a48a6314ec4893b38ca798cce12620c8e345694758a045093705942dc0e83e256ab686ff63367aae6d1a6251514d66dc8e8ce8edd83cc3aa214a21423d7ca80344ab04ae3236e801c107d9a780c6f27b83cdd49e52701baff41e7c323886d00e2992fa7a4409c098c8b32338d904c93607895b2fec55b6237ea6cd3903c9170ece591c573042f32fdb4a8f1d61327642528e8ecbf15b6c4db224d08ee0dc8c5db8d765426b79082185ec9b673bc0af95677fb6ba1ded98b8dfd2208bf8f22cfb9e87a0106b47feca46ca877e9b6cbce0e474247552a17510b65b944ace47e13342e2a436ecb9425eeac817399d5d35e4552d24f7e9a7787259d12dbc2c8310f2bc529732a190df8fb1648f5926a1196b31ed0fce2b099d8e79e583263aa28490dab198537ee231d07db11ae45f21a897991c2364160fccd515b279ed0ff9708d9bbf92d20a8309707c5782a75b8183b6bc293727a75f1f08af305254f78a786aff36fe78b8b0edebd1d7541249f055466caa13f9f5090ece6f75c988d85e1bed3cb1cc80cd83774df60e0a4c56ca4f72ea2d89149ef3b52dbd3a047d2606255f85b843165f8d3d599508411e2665157207aa1b6fd3617e2003e30fab027b309e01cbca41964a0391466d8091e86c84b39fc547df3fdd21b59f179d355970edc3d482cdd2dbf480ab902fff3a74affdd4f3a6868cc90670d7dbf009d62d6dc9168b4f5b73b943d2a51730b14fe3b4097b03926c5e389a732d125c776ea2f93ab6241cc772f5875b2b4cea06ef5839f54d48ef3d176ad7934014b6071f1fa61cdd999c7fc8db90b017b91860cb7cbd60b22bc3a02baae45244ea7d991d016956adeb4f2a8a8aa7e5b0bc50ae2e261e7f13de2fa96740c9a93b05db7f8bcc8ec052b23392e709959316395a12e791ccf2a6650543c31f8c1cc2c8d4110444e3f6f5286690d5b4537f7a43f586ef1720f932a9d75b53baa36c5868b0827c85260afdd6da8cc42d115d80940943b9136c5bae161977edcb4221068c6444842911e2cc0174f731a9a1300911321652ee74f167e267d78f2bf67dc1cddfc71495894707ee0198ba1577f9fded8b929451ed1330ce26abd5d08cea3451fa57975b5afa15d4fd0e036a28773f133fadf29da8a51ec91adf97eb002869523498feda0d975f498e5e7f792769f54490735aa649a83d001a93f5813552bf2336c2297b0833db13c03ded3f0ace8cd9fdf48c5db4b74d357264e06bd0efd6c53bbfae20b32cc1b015577a0eae94e840bad51c9b8847597392607c1e80162365b310342124d08116d4e8c05eb9121a8f17155291af3fd7504d900f196358985d84f1c312a2cf0263e1744ee5410da2596a549ecc5d64e637c06ceba3bbe7e2065d768bb5206080c301e7b13930838a206d0fef2f600cb52696e1da493b9ac6bc50243f05d64eb4d7323f30c684b699869e75f39e230437d0c48bd2e4b42aa1bff0068b92f75f1e40eb43d932fc484f8fd72c6d238eb7435c815bd567d0fc8cd37cb3af4feabc8aa457af6e761f5a412fbd1e56fbdfcc8b3adad197bcb4e834a4dbdc2eace0ce29b755345524a13ae936cd671d6a8b9b3264534c2ac379ac34aaede778a3891ffea0e15f3c35a160032af2c4a27b8a762b390ad2d20a6f42174be24143087144b18233513f78f073294055c0bf236bc28ce09800b9f59b9bd95d49dea44468e1a70d2e4a0925d84b873918fd0f39b4f26e097ab0a64bae62cd9660d675013af054332600a887f7f2299f997b26712c2c6df112a628f96e54b6434f82cfb837a0a26e41457662f106c94d980b04a172da279e55f3b6efd5d311897314d3cf77c8c89252b0c1c4a4347b4b1fedf67ac44ae91d5de95f707b8d24736a98fbc0345ca8a0aa28f6dec7f1449a5f818617046cc2f46f2ff9d731e43cc85edecc175299b55e50bd0163bd2d12dd0b7570d5f7c8d99cd7ec0bd5a1eb476b55afb79c12e908a68dd1d84fd7973d5c191733ec2bf42835f7493efd52ebb320e67c22e28090e52f74782c98dcd10c7b20cb4596d9b3c549f0a2675d086bf14f108fd29e720a5159143c067e85a1e8293ce42e3eca34a2e588ac220856cb170d77d7b754e065a8671c5f16218e9c46b8d88bcd7272e0af6da4e85ed9e1655d47a433bda6529530a988171826ca2a22369b256c7abaf18667e707ae16b8119849ed6ccecf5367827c06f45e229365e806bba82513dfcf2f2d91231face0801e7fa882bae3d351033595bc919435c0769abc91207e35e1025d65973e8091d6fff080a5d6f3ae64b6458cbfb4eb31fbc6aca56d6b1bb89e2893507d9ecc8d2ffa06ab35275c747ce596f6ffa28ef1b54536a952897efeabc866c60a694af6a721e8aea9a47af038b0c92f6f7fc926a27e29598a5e0fc46de31d58d7ffa5a52eb0e4ef860ba8a08e20124494d5a3e2ef895d20e76d1052db74eea4a4a5cbbcfcf275149296508e8db210fe562b42036fc4a333778903ed46953f2ddccd438d4029b5b3b5d7f0f1eb0c93feac35a311b2c2503265aa37b839840163b5ff3ed21957e37bbba912e93ff17a160d6af63fdee13b648395aeb042cc8e64af80e308693cb21d73fd42a054bf31bfa7284b9da49ea9853a9b155f39516b7b8540a9defd8f943fad2cd3f49640fef3f335cb28d25e6e9fb32c7100d8fbd7d179819f2aba64314416c3401a3d77869301697098a8bbec54e4bb4dd2c5a25e1060cb947d3675033946d967f31af01866247c65d2154962d487505a41b20e5818b984ba485f65b759d3dd1ae6cccb40558bbb6efd80b33be3fe4a1cc03d5c7f43f422736e57193609b728b25c56939ccf025726d2a82092e11b4551f0671cd1a9d6a57e485f9a7190e12b63633c787fc138862a433a0e095ebf9d7cad54fe88b646c111c8e0f68cf7d12048cf06d60c64bd695512ce0ffc02808bb76739e8988881213e7032d926347433dd8ade54fb13624ff493701aa657aaa3bfd8e5fdd46f9e5f1268183cb9458a20f87d762a3ed4a6f6ad48fdf98881e1e2b8b9e8e5ef051b084b25c616082541d0fbe8d550829e50844fb7af919b4f642ad1016156c72ad2112d7441a9b29b9b906d0d8d93fc2cc500b42a914e9239685a726e82089d6e708cae4014bee0b324aca4934209ec44ac3996b8f205f6d004450c21271bdd8c149b64f6bde21223733e1b3b51d2419156dda2949874c80a753977610aba364510f799c535a24fea01d5eded1f93eaec4d01cf26a73f07a766c04dd9ec675b1120ddeef1f46e7764f0d51b8341484b41728a88e7ec5546a05b5deb5d720c4c363d34115f7eb8d4bff666da761920b8447c85892429a03ae168b03152bca35e4f47bed068f9b5d4db245ab02bf7bb4e11d27d2a37cfb17b8ab88311b563620b07b777624438d2ee1f23b27d636ef807ac369ec881612805e76ff728ca463c9e68c688b1f76dd41c4fb8cba819d0855154ebe76df5b6613223ca6363c4e504a2ca3d1f71a09cb1ec3ddcc89e6e6bced252d138ba7ba8498c462175339b0d32f2690f2c5db5533f2ab9aaee8851fed8ade91b954e8f2e5bb1c714033862850d1303aa1e5fae8dfd0141050184a5a36bfb751085cf880a38a1a231406b9b737ca3e538dd744331ed56f0a14bdc29a02cd3ccce95a9a27af5123c5be0e3f330f25327dd2f5db3a8845593f7720542df700c57259ab10d4fb8787f39a86e094de3368743996755314c6e94ca78585ce6b8df8bd7742aafe16a2a57961519291c53f554db0cac477c8b12418c2952a4d45ed38045cc8746e0d3d51e982aa4589e1f1c3a9a6a7efebecfb98c6694ced29a7adee70564d2e68e0a782487ddd1f998f5fd9f019f729838b368e33ad4a0278f1a882a397a155e7c1f268ecff8a3ae3b4f4aff3f10bd2ca3c861e5237d2d091d5f7713bdab190f2093181551302d898392f3523244063dc9f1cb72961393d2e5998cf5ea369377fc81728c34309869b1ccac0ea008a11ec3b083219bd8cc07d9f6ba427806ab8d0bda65dfa0ab610a54f7da6ae1d8371a0df2e61a846013877a9d23488a5b5138cac5f48fd89a110bbc1740d6a0be7f3046bc986a952c55cade12f74d4b24dd859f17e549dfff7076c95da3d49417039b34b8146ffee9510c0bd4295d6d96e9439e2ddcbab69f8e076674c279fa91999fdc082e1f6314cc8b9cc33bbb2eddf726879744de82f089418e464e82920fdb0e0e55c35cc3d9899821004e8cb72b00cbe5c587f4824a4369b6c228e51c71fce0d01759f05e02ea8085da6c6bad80229cdb5b203326138035612ad5819eb202fa6b46e66f88fca9b2b1d63931167163f05c49054bc8f07d83c94b94678fc7a23ece98fd2dc5783190467c641761a14bb980457ca3a9bf75038d523e28280a11170013707911fa2717a5f14f10ea4c80d4ba02416b82fede569ea1125a31c1e0d25db0097e4360561f1616911a63b6b3f8a62a3de018f5b0247cf5edf6922a9cd4ee434b82454a7342cb773997a3c468c30711d9f1031ce3bcd4aa901aa25a99a8843392f514f520cf19860b4d3ac1f0501396042e4ac6446a9d8ab0ab8f98e08b1dc07edacd2beb7d534766ad868d3e79b4c47d0a59e2eefea4a03a7b22304c06134620018c08c182c4b4e16907dd40ecc72e0de6ae4d1bc22caa794b537e1abde33250da3be9cc523454892e1f25efe4977794e82224ddc62e963621795c1cbe06acdb6251a35b4a51b593a2b6aa04cb656a8e18b63e681a74d0ece51dd05479bcd630bf634d61b7f8f95f1afc729f91a2d82debc10475a2b0b3962b82a54b184e8e3b9c48d3055c5d1248961613d1b9bb3ee9f19e4f1a203be9452471976cbbed27af5e071229bad9c2d9bd375763467962f75ab0844af25ba0473865ce14ca6e543b40f29a5ca0298c7cf454684fb252b464b2c074fe008ccf35a129c97b9309424931927f3e4a9d4b1a860e6a867c83e16f7da1f1ef4cbe8325d57cc13b5282993039c7c090e41fcc6c4e86f217efb7b3f35a594b29138d34f3158f66d090e23fc399e136436f2a77704f34aa8b91947be394a2a103ed8a2f8ba431d750d4fa5cbc69e633dc52fe7fb6609cdfbd3a7839296da43ec3a46716822926a319ff16e128261338fcdc1664dfdddba4b7b88db94e00d3e6882c504a2b071cdbadc807e6abe30f4c66a16f16493a231a8c1271fea838ec0b1a644e168cb0503a0f87a843d6403caef15480edfbc60cd4d835341401f8742be81dbc2594b132b84c4189d2c61beb5489b9358aad8ebb4897e95be4ea6a9e4094ff325614eb34169ec764495a342515b9fd9f4b688bb5189206e3e9ff89225f506ac28d647d86f6b39f2a7b1143fd9f2b80915130b04eec7ee878b36008aedf28eb7f0d198a45a6c99bffe03738f2c9120e9a1cf9454c4072476c16eb19a7138426489a41212ec5c23ac9d94a0a533b62785be30be605c3e8adee45b8f300cf9bbed052a65902b37e461433cc58c41726ef92503a5a8e3a880ebea8a7876472b859f50e8c43e169e58097a403f1e919c6f28662108423b0595dfc9003b0a8fff9ff90e8520c4bacfffb353ca703716561f9c713631f9567f82c6cdbaa06a0851d5ff8893d718543fdf5895a5a1b4d53f781437666f0826c5ac879658e52a1d20d92eb904d485a09f88262a5a1c5cef78cfd6cbf85ad0a4c8bedf6f4a92b240994de7efb655c6bd51ad1246e11b989e21514187791655d83666481b9a468c37dbf6763fe1f715bdef24aa10ae1d71df229b3213857f0aba521ba813aff417f651df042130e35c9a1e84cf424654725bfaf85e073bc3f52f4b5758f1f568af2c00a42cd65abf769d1d61cc5b25a730464a450a08b9000560b9c46dec235222af52cd19428ce8a27dbd8cc185ac2feb2e2a46ab085821e059e5fcd9cd7cee6d62c45689cae7e1c392fd4bdea697085924efe08bea5980eee25ab08bf0b09fbc905b96d252cba859f2489c88c89c2967791a8273e49d29e6a8c75ea13b0445620c3132861e5149878647ab69dd063ffd8c0b0df22f5de992389b13c48be9478c5ab8ff8dd9418216d3532a1f3d35089a1c5a0bdbebfe93a53fdc2c14c8b3799432954af4dc35a6127fcc98acb30588416e029aa7df589236e65807428a0cfc7eb8d1dd7b1db4d10b11f43b8e59a1e380f7ffc1c594398e6360211f273e5dd33aeadebc48157a0f11aaca95be358ca13f6e1d0ce1deea7802b891038f8d806f8cd9e65b619b606c92e9d0ee6c1e71e430c0353c74c9b0ea74c213eac66503a68e94019da838b9fab4ba0c65d1abdc98817a73f167706e0ab8fab9189d5c73317d5dd58380cbc13fe1baa43b6e683726c1b8f04956c68bc8d26803279f81c79215f634b3d3c4a2b3d1477fcc8daf489bc53d6fe21b22f8339f8138b3f695de8ddb195e816119e70aa8bbf43bb470c603cd7e381d846124b6b9e64d712ec7ad859c47e78f6910ece56f77f3e18250615a32a47a46447b39752b818f7e419cb5f7eef2fd327446bbdaecbe32a62f0639fde71a164d33bfb8e78d70afd4933298b3a1030fb0e96c22b778eeab5989865fecb5273a7e2d7a2be4440448c49f0abea53b02ad977ee04a6758863522ef5a5e653c7209cf218c31648b3a1185aa1b3c99c96fd884f08c587d437dde230f0ddf80916ff0baea82352d2c094b3e8ec77fff4854b1001a9c809430a9ead78101c25ff5cac0d512db6c650f59bd7e8c2c3304a10fe3c0dcb8d797d628f1d4b476f242398f3be2266aa70ed876f4200d2a7a91edcd2860d89a72292c3dc374761e0102921e194391b38a472160b5b3986d8bb3501be27a50b97b28400ec4c9df424255e22359aca7550f65dc105d849b797ec115002945315801080cbb9696fb2661e187c9d622a51553d12e140d670a3d10ee81cb83b156277a7dda399c2f24709b843ea25226d4d625485a38e0ed2360ed30039cf1d30597510c37476661b78f76adef7debf23a039ef3ad428a790bf58f74d36139f2ac29dda3faf57412a179353fb36055bb506ecba27487c6fa03711a6aa3950df6b1c567fd7936e6bb6d2f9d2e52da6411331976dd2d466a4a600495bdfc6050651d5abf28ae637900b68c1a9d5861fb300004d1fa94b21a487ef6461460afd02da09b377c93297e91569d5b5194dbf24b169b0511923ee481c5ce08a23e64e5d3c8a6e6151f04c81e7efa51b38f021e252ffc2e4bb8809694eae24c9b4e071459aaa46211fbc186edc5e7695cc1ef54b41d0d64828fe6541be221bf1ff3ddfbd3537ca81c5183f1e0ec7ae5485d9cee8efb26c48ae5b794cc03d5ed0800bbc082ea6981310d9c77c66a30da22c3823da0f806ceb0cf5c088f31be3bebccaf75ab509a31cbda27e73c77562b646b8cff5e98f210aa08b781fb7cf121bb8dcb871d21aba8cc03db88d763ec27572edc10f600eedbdd76fcf33566b3fe54fb7ad9ba6dc3879c8ff50f4ba3385ca5932569bbd3c486b1947c25a89776689f67d02f09bbad7b614425180b7b1e22406abedd5c2ef4f4f80ce6cc1a917c8a9f55a9055cf3c2d96a54921c17dab0d61ac80c08ffa9e693e6e12d501301514bd99910632bf14372907fb704fe5b0099dd5cec023d3dc935afae0f7c3b179f91689e22aa0042ccfbc233aaf483d55e6c9c6b530e0c40a8b1d15bfcfb7310cc23da569a5e7dc34d6e8c49be4107fb969ba7eb140378eb511bb5e032def43a0a040c0396274e5805af763af0eff54950de4ebf0a818f0732582b6caa8d8fb776047af4bee72b3a94cde5a2934813ec5039019617a694ca9836842beaa9f1d9600986362b2562f1800cae43d14bd41f4e1bd7187b0228bc3fac4ba72543c1b727e54b0c4ec5949763045d723a7f360ba2bbbf58b1c64be5c41eef9a2ed060edf77f16c466c7c9d1005fd2ff9f9a68d94fa7f0c02e14d81dfea1d4a5f5083242d0f8b496ef9764a73b44ab7a8ac869bff8bb2a58bd120b6e64663fe2361601c7180974bfcbe25cfe8daadb99d8d6f4313fc02cee809bd18fd8e6a4b829e2463a1276d5f1f6a07c47448258e97e004ac3ee432597fba74700ffdaea0f96d8d9c6520eef2ffe7a02bb4a83ac7c2e3d49c33f17f3d15904026f66e55db30cc7e9c90d5751199a6a2b1dc4dbabdc064ca366b93ac60e4235ac867d72485a87cd04f519e5367cdcc62a292e4dc7700d87d738d7d56e77cc181a90b286c15c0f6a0716cfddaffe112d811a3ca0dcfb827b355709c4937035740e1b91026dd3157565bc559ea683dc1afb1204c66a157e62ca8a4c324d6725365db2db9c1384c5e52f32b0d095944ce67765c7b57ce4f6bc69eb1b812e54f8dbdc90dde13a88b12b3c4302b7a2c9fa35b1ec0c83a8fbd74b945fe56cc724a32a2c35b20c80969888cc711824892b0e9457a45a6d2a2615aa408ca68487c56de2b4709b3ca360d1a3bf53e978706bdfbc68f921b179b41834764764e676564c1d2d57fe3922110b9d2348947a35bee5254f1c6ba31ad496e3c4fe667b4dc50cef5d1ffb0b5fbd45cdcd114f122d3bddd0d13ad54d2c1f27ad3a37e5d4da2cd29350816dd08a0c061f5a0ecc1adcdcfb63a9971a691f4ce5538c05a1aee828b7936226c894e22b26ccfaf56da49b788b6e6bb61f277c87fa8b9479e57674e2a00f73fc327306e022f6b4097dac2074d5873876e5f9a5fd31e08356bc3dfbac123f664c8aa125f3535d29e26f7359f41cd80bd778b39044c2db8af6b6ae2b28c8c7bee0d81a22679c7703edcf251e66d013fb80672ec3a514d5ddd5cd6705491927e60050d7f4c61fa6337964db81961e4cc8739bf8dcb23b24065518acf6102b4872a792ccdce475350fdb3465a06bcb4752fcbd375b24bccf3a136b63cc6298ca71f00dd73fd6bddce6f43f8a8e08e55f63f433a3997a985a1137de82bae82eb13033af5b4afc936d2526eb3b7e13c4e27f96db865ea51c4c69ac7b7e1968e06d9aa08d7174814441c0dc2693a5672480469c3fa536707f9fafc64042d83cc4334128e06c4b706b70f8c7f2da4756602bb66764248196e32e32d0b271e6b16115246999e3818cd10ec4f59aab72121f863c24dda1898f21651014eff4aa6672f950f55c145722c5a29e6d15b9124cd109213348ed2ee05ab13bdbe5edcf07d7907ec0f522f7f52639f0b7e3318b9abde13ba0121e5bfb503cf9d1cb8c65f9ba576c3b6ce39ab159b949e76d6373e5b722464fd8c90f0c533c8356cd6e24e1ff6aa3fd120868d703dcc3e65d17b5291ed221b91f00fbac4b0579c2c691d92c6154daf5bb2b7a2a1b7ffdcef63902414eca7053b9c73ef39228985a7214a5cf124410339d95d03a6c8c5fc47aef92bbad9f2134b1940ede3ee48496d0f850f305e082c28246da714493ac1f063817a8daee7422a5d1c9bf31b018bccb2c58397cee8a1d0f596a7a6204042158934391d8f2b4a2551a29f3c61c6949bd5823e6bab3fef74a11426c071aaa04679f37b7aa1803297a7e287984314b8bce20e2f90d9112ec1397bc8381c25dc33c41829fb76a058c1cc2b727106e91200d74665438a77999261fab6417ea0653f215542ea1dbe3903f4347d9d9b1cfb4b99a4f92b19a52dbc78a1d410937dc8da49825261c425fb175ad860ada851010635d1d21258dc3a851e4c2e647d69c8e318f78f3d28550f30db823a2e8577cc2a16fe05a4797522addc3362c70137a40a4c8a0f0a1119e626ee1b49859668af8ab8d5a447799e7e2b3403bd2e2fd136aab0af14f374c2333e7ab94cfa0b1db68c090e788463d79a76a13bafb382994f99c39d2ca7bac48f3863181b84b2bf5a029d80eaee85592c21bc945990c895d42b24cb1cca2b620d83cbc176322f5566c8840d1ad24929e16cd988735b19bcac916bb46e21409dd12351e27ed936881a7608fa698c56364071ee3641b5786da6415eacdd9c650a146d40e03a00f91ba3b72d3cf782141756ea618834c0da4cb934a4bb6579e6327340f4b1c250b60ec17722cb1f479e147a6ba4c033077e5aea30a58fbf1bc1626f0a5e2ffb7083ee6da80736d0aff519352fc28fd7b6136c02518a57ce551b0245291003a740777331c9cb330f03714bb65514f1416cb0e90a2ffc91bd06cdb00308a05c4b326603ca4f1b10823330f1374ead0ab56fde5d99680f8dbadc1bed8078d477936678fdf20cc5f6fadd14090f5519865aecd92b6cc1f7fced70f017e449e4c76806e902bbba813175560475b624434cb52909841b62a92a3f2756c95bdb782d3d2084a31afaa46916e5670817878b7209773c24c5bf8553feaf0d8eb6a14f900e419666d40ea46827640dc86325b854301e6b9221faa078da96f3b9f56a563759231f215b33813fcd8e74398893a23f15babdcc4e07c94c6489fdf807c4c9ee0cba62202a48c42709d056b5be106579a10ea04342d8a18e976d3bc9a293a940a74af073bf653bf27a2258d9122efbf47a4b0e9778f39ed3e75d58e141b8b622e377e6138bb16b25db83913410438841f23beb5297a6fc83e1f6ed74ae8b69cf8ca2593c099a53be5bfc65c20359f162e82fdbde0a485b1bc95d77f5c41c7843d812a7fdc9b50752320072a61d3b726e3f294880d14d37450252459a86c0c2a387709c2a77ac650f84af83d72883e56c40de81880a84a6e543ac256c142a48352c0043776c96eec15617e7f0a112d196f0bd7cd50065e59771d0f72e2160a665600e7bf947c68536705452375eb599f41ccfba01010d7026b63cbb03e45582b33904a0c2ec6f2ee57b25c4c19b6cc3128b69617aec85be0c94d6353e5ba67aa55aa63b1bdcd33e16810e34f44a611a5a97db1780a9136af5e2e900dd9523904f833c9e29e8681b75aea25ba548b805bb6296b1640cd197943ef3d2fce948352a51ee9c95d237b2cddbb46476569e8ba0b9dd6146d677daa0b7144fccc8b751385911ea00983fbe6dc09a8d79b8326c643e8a34fa1860121369dca664ac833e5b79e7e3e63ef00c8c4853a3206c7c2619d5a972456392e51bfbc06860da97c90c96cb6c14a62e3b59c9a8f8f26e9477733dbd992ec609880c100863c262d9d0593a498a01e97189249117366086c5d5899f8936036848f38630e667d74638057a62c90aeac5d44b35acd21170eabf5346d1f3698303d459048a4a6fa455205c1da703439e5cd284399c2c4b8d841c3ea3d5922757cb6b392e38970015b3f17310a80e8411eff87138129e22802b983344770c0675ba2e8c49593600d5cde47bb950473f6b8f4d8424d9dd9b6cb9b794292519f709340a340a9bec7a40ddd983ec1d7ebdf3cfb22f5e3ab5e96959667d329734e0a20cf3c742b8ffbc80cfcf89b010cdd6e39a7e6efe9c9f11e1db195f2fd6e0eff71827de767943c99f59560e79b3973793dded90cdd3bd6987f865eb91a665e61f902c68e2fafb5c29945872e7f797e3eee8e9615e17a273c858ec720ddb1d44cc2cd3be087d9f2b9f3b1ffa7a0bd157eb72c8ab51ea1f3b1fa6f5d1d88f78d2813668ddea8f7cbda6985ee71cbc6a87dab3728c2895711b52ba1a7d560e4e72b58f545c1b1a84ea1f590899bd106cda5046e95f14badd1d042ecab44659c6544b71c50827bec4904670da7075bf6fb2d73e88f637d4e288424c70fdfdfef195ecdcb9ec6ef073373b7eeea4f569e627ffa40347ee8c1b9fc4b0e04e8aed3648f6f36d10f92dbf08dffef91c8d7d331ee6fc225ddb45b96f3f4bfeee20438248b7cd54aa74b692c435fc3ee7fc16d4ff5d6e9179d7c049559c34ba9493bb279d4c357fe9448a681747bcdfd3dda3dc02f739809a2c70bb5eaf218476b38f51f6736cc9ef725479399773cb2c37776c1f0217ffbbb19d810df5bb611cf2d727a594ff0d7da491948a2a5f66525028953da8d3c0b51361e5285dffd2f5b94a3620bf88bc4a622c0b448249cb367a73a3207227ada64a2a1ac382868ae6760f11eccfbe1811ecf0fd91f047f88f89611180c58219000ccc4a00ab95ca864af582f3f2e252c3c5a525002d2da99b540af542a14eaed3c9b483c95469d45ad2a154f200e0795d0e5d47b2a9c1816666868cd6831fc31f86ff0bff1af169948d4745c834c96397f6956bfa9d9999999999999999999999999999999999df9083ece7373367af3528e58799a536ca268ad10620f0c01164fadb155591e65f19d51887f79c93c4eeb515d28a9093c68d8d15d00674777777cfdcddd95ffb826c60a8eeeeeeeeeeeeeeeeedaeb9bb67eede2d93622dc80404d9032e90a8bf5a1e0023349835e12c5c0c12638b9b44b53ff64b1f661b7652b779259965ddb705e10f3776cbcab13dff93b28dc4695bc9dbb28e2479d4fcfe1fd6dcfe5166717c4d8e671c8d34fd5af66e83ccf999a51e7748d0522571dc68b46d244adf29a5746652732a6b896e238ec4d9d1f6931bbd8746ee4764969874a45d9dcb23a160481f56d28727eec397150b212ae77da520a597cfa5cfbefbee72945e3e07b355514b1f6f74d6554b5d89ce2933d72a8b18c1d18cd6ede756c49a9075fb3d8e5cd359d28fbe5138fa8d64c3d14f1fbd7c2344243733181e7d9bca5c1336e95bfcce5257665e3d6c10641990cc58092c518acb0d0335cbda5d66dbf6b14199eb4fa5fc8c6e1be571292df3c8088ecba6f4a6b47d56ee8f912513a0c83285291468189a51d0804213330a275e8a999dcc36ce4c90821a6e586f27c14599ac8fd44859634da3555c71a251a6023f31f215d49069e525949fe021166201e5ee3de62d49141d0b51f03aca7ad4a58585843c92620dbfee2c85eb58b81e85090bf7dd077acbdff455e7ed35d37b0b968e8de8b758d266434abd35b242d472dc577a16724a8b84dcdda9d77141fe0a72cd3210c77e381baa108f9667feee888c1ef5a81f7d2cea759708ea4996c9100444588bfdf9a97ffa9fd29b78781d6799a4de2d8bd9fb9dd37bf54fcfb6f4a6f781693604abbf4cd55f2ebf3df597f7db4629e7c2bd0bf72ecf7d710867b93cb47cacd173dff2dec71a59d60fdd7bdf83b32ddfd9e82d1ffa1599b75d5afa027c513a393c48a82fded21761dddde0b17d6114aaff53327dccf993bc12d189852abd8250bcd2a48989af40f1c4095c13289abc600a37a2acd18885f8096f43bfba2086e249a65c77f711e524503c59c1f527b5ab4587bfd45b943ea5da67db27ad10f3ced9d487ca1515ba9b5f5e966c0547c5aae86842e5a14304c407105f001d1ddd36da15af8d768dd847142bb79f81baa0fe20a2c4a28865c69820a5e8861cbb3205d00df908d52213a44471fbca1c3dbb1c3aa05eeab0e173e96fa3e7d1aeacd9f4614c4eacfe429d9eddb324bebe7cb91969b43fb57ca9eff4a80f08278dc21e249c70b264f485a61df586a63bfa93ad1bb8e2843360a1a41551021c84c0f324a0708107b1f3c141085c30c5011c38c2132a8a688046451125c001034207c3119e5071998188356e1aec671bd22c22e1462dc42c442c64cf43019e1e249c7052839bfde80b291084dfa9536bc392fa66a6c17ee96e331654feb09a9a3b01170150e394526e72cb240738ee20b36c4e294992f44929b339a594d9fc22f46632d2c86ccef9560a17659868cf91626bbe3559e07a8e2a5b5b067c47c662b1b8c394ac1f48cfbd0f92f5117f4b4390227ee9c72ad707e603cb217f0867b9990df967fbfac37df4d66853431d12b15c588c394cb9f59def5f6844f6a0c3dd3e269d0f9e258bece9726c1f93d9dbc784f3ccdddd65e7512b44bf9c46e0a24cc84dda0688fef9fef1abbfb21f7d7c997e6d1fe5c7df3e20ba1b3eb437fd8f7671f63413c48b4bc318977e2e1fc25c0a84c5a5a84be9539e974b5797d2af94fb7eb48f06fb7ba8724034d84130ce1040781887633f44620d3622d2a0606ad629a14334162e4104fb5d3e4e01832d88bc4483fda98f9718d113ebe71fd2378a36fd528ffa429f8b4af59352a8962f469ad49f3ec7519fcfa532e46bfa1c377df1d61384a7704502ba0d041d7dff0f4a2f2bd99e37fad456c0e64a2b33bbb75102a240e7538282ca2523cc1a6da20da18acc08289a009209bbc84524fb212dde10bb3f1a6543ced47e3e5721831a2a7bc186aa7a434d2e669647f7734e2f9090749f0f6fcdef2fc75bf3b5ef874e149aa5477df65cc455fc45e226de9a375a952c5454b2d516096d45305293399f9bcc89b2bc8493c43c9b9e4dcfa690db6c307d4e6793dd437d4ea38a88a0be247f08cab2e42320c2e8571f428a0cf13afe22fd8c45599665cf75dd9b3e1e9dfdf9d99e14615ce4941609b1a4e5412d4b7ef73e30cd72dffd0ef7dd9bde7b1f1893faa74f493fea0b41ec6adc6bdf837b79ed6349cbfa417b97ef415ddee5e9f7c242691f0b8572f958a88fb0534b8a6a3f70516520cb310eaa536eec6eb0786823cdf6682c1edd238089c9ee90defb9ed1739eedd99e444310bb1a7dee7bd0e7acf644f8534b44bf56f9b290b35006fa8b34dfc65f5df87c4b73cef9de777fe7e8494fffe7677bae000dce2a8d24c968ce08d3746c57348d509f9e2e36e0d8eb2c75457c6d51156bf4e55f45979c02109680e2727ca9b82929d5dc53d56d7fbb5815f3feac832aedb78badd736aa646b483825ac9d676b849f2d93f8466ca436a736e7c72c9399f654cbe694f2260a51feaec2906f81cb3eca440aa5b2f62d9fcbbef9dab4b25dcd9c7d66a96c707e485d9aa50dce9ff1004880aaf40117656211d2fca234e82ca5f49e94534623423bb267efd9fbec0b4b36648f9ff04a9685a2a840419e84adafa1c60639f6dd6f5f8e0c90742b5eedcb9101fdae8740300ad1e88b6821ea2def29a2e84abbb8a9845d05fda947da39c9681b7d78b38d362669d2b339b3d969dd0d6d06944ab5c1383a0a60807e28a553fd1816f37d80b3c0eaeb609c1f5c1304d7ec2820d69081a2c09569174729704f3b1d8355bb627d31b66ca891644e6f817bb241b4cfc2ec2fe073b51f9f0522d8fff209c144c41fa0201827463e82a272e4f4daa964323d4cb31f3b5cd12c0bf224d78224d71fe64ea0584f25ae8733a8871a8aff54223683da15d28944ec27e6b2e2d0e517d4a196309de40bedee1f419643845c295b46692a8ab87f9976cdaf71f46db474b3971172b397d1c1dfce052ed654832e229883cdcfd1d60416d6fe18517bcaa3d94ccbd3607f100d768c346ede66288c64b8d9f85e9b76cd1707c562b120d8ddc20f56c0048a323831852860b35e1fed9add515889c207d654472645f50fa50ecb6c0f5ed6f19f9447eb9856c71743ba9387668774fcc5b0ae4af8912841b10edcf8b2cb319f5ae7ef9a5956bc9d65de5dc6835a1aa74e7736258db6f1418df3a54da6d344451fa3ee29e1c84c8c9270771e885ba4694f222809a046e206d38d5220b172550d4ed9f9c7cea76853c828d79fd4801aa540227443d26d244270851ca540d2036e6e374a818489abfa48374a8124c955514d93024990142b80827a4da168279a58d11bab29874691ec9e3836b7d2f3f07fd04913dda4c1213c083e67374a9fa861e498cfac35194523c250a9e310acc04071228815873e70b39f31fe61209b4b4934fa92297da5417e56bd292851383679f81b71ab8a34fd45d45065e26d8af9920a8cf2bf95737e6c30cb74f4e0895813af8e1e0845305e7900150c6597efbca1cfcd69d50896d9d125dde82ea5bf8fffafe06b45dd5f835f5c25e5c8d1caabcaeffb6ca471115b336406844ab98bb6207094fa88da7396f9e0b113a36c76c747b49487bf18967dec2b55a42c0311fea08fc66297bf227c717095cbfcf1f3d1b1fbaaf1671295879f65772372c743fc1c9f6c3bd658a2c49ad496d22faed2adf8fd1da56356b0508912e42e63dc6b338be9f8606d1cf18291a6230d771fe965b818920cc7c45ca6947447756b16d4d16f231b8453de6a1f960e05fa74fb9a36e98bd0db317b7e597bae7ea5377df3f2939e9ba512e9d692bc5cbb669a4e2af53551cf94797ffaca7de9b9cdf34ca74ff33e21e825d918fd72b71d3dfded8b57a61a619ff6ec0ca722d9913e494212f9e405546a510f9ea42009c71b4d91d59607bef17ef748ecdbddd4a65d345a53bd4966047a0cfd4d863b867166726c66a2167644b0a35085dbcf13a170804833e5c1f02d5a7ca1050b165e60b16245951531315d8861b1b8c08281d902cc6a4565a5526941f5f292851717172cb8b4b414b5a4525748a15056409d4e5538994c534cb552a1964a5328799e14bcae23ea48242a481c17056e349a62b46d52364aa14035ed095ac6f375da35e79dbf23d6903af2ce3f80fb7c1fba75c41acc9c3769c4dd112681ac1dfeec33dbe353842cfc3eb0e76424c56e9cdd0e37bdf2dbe7c7ca3159d1674a29e44de088c82f42aff6730a67f9675183443c853291c6531a2cda3e64cb454cd4a013c5cb9941f2e55a058d59fa929df8d13f6e1cd4d6beac7bf860ed749cdd7a4696a3f8c07c603da2b748ac1dee371f18ef70cfd9e82d1ed99c26628db5137ffbcdf670151fd890bf58fd2c9257226f8ddc83e2e4ccd09a167150b3168ac52ec731b27b5762b19b7dac1cd9f76796457dae9c9289b2eb41fe8ab0e9bee47ad624218e07bea4ea2dddee31c6c83f220d8fcc0de9eeeeeeee2e598aca9f2da1c60f393203e920ba1b401afc41e3c65ff4fb73883839adc3eda7893218a7005cd33f73fb61b02bfb7e17dd22c6308e0eae6916b7bfbfc57b53f4b47e20b826d668c0885ddcf77bcc71e2f6771fd622dcfe932d800f72a00388c70eafe0f69b9ed041dffe1294eea47009384ec1ed1f710b7809bec16dde011084f8044c824803040a6ebf3f03b54bfed4aa1061f923d690dfff806d33491b238ddb9047e6facb983989079c87a0f68792cb50a150897051269c5748944a1e92472b573c52ea9c2a6a1da5ee34cbe41121b1c6bcf28bb884691ed41945e32fcc9e29cdbebffe2009947d7c7aa45d5406b1a45996bd671de9f9929e1b3591cb6ca979cc7f7c09e84c68ae8427f120472203b957ed6950cad80687228fc821078b2447248b28b5b2680ac7e34a3877ea940679909cd22d2213338cb6d2541aa7759a0f692cd657fa38e77949c45336181baa56aa17979614ea54bbe988efe6232239e52573c95ab254966505e8970f651228cb7cc85f52881497164a6b559d6ca8aaf64ab41aa5dc84ad2f916994ba5377caf912746317a24483be8412498450b7f34baa976789382b89b6f725db87bec499d8363924a1641b7dcf3eb33bd15b210f789d36fdb6f76fdbac375912af48228f5df95112bd6aff4ca2f291768512e8166142a44988ad7829577722a15cf972a85d40fef221964099047209449d685a7527261f1af9d0e6433e94f9900df5a1ab550ff29724f2965c4274a533218992e041ee43e0468a1da51d3fe79f4371241a04f2967c1ae5f32126d486d2a07c2013d0086813e2411e24e94b4a84dba1b4cb6d05c0eb513467d734ce1a01c14bad23915992eca87c47a207203b09248f0c618534980439a55f1c23eacf3cd62efaf2fda75d0e14e42fee6594582448699d51482fb1f86bfedd4c2b7eed61b632d45002653794583c68c88382e43b94962a2a758a6431a87af40db26451123b15c138cbea31abca5bd2e77626b14821525e21913428b56715a22b5f66a30ec71cfda843c08cfda84300f742bc3563df049a4aa8a1049240ed92473a4630e4db3f577e5c42d56cc855b05cf9d9126a263f9440577e63e936b42b7ca0db3faf18711f36c24c751843737f77377787b4884c28168b35c1b4a6b419740c66543192fb8913f96b32985863da01441a7f7f15e3b44d4247965a10a628d1a10cb3dfe8c56e94cf6252832c9656268a0afe4d0d7ed1f7bf0940ac31ff23bf34fb6ed946ae09ebce4d006a441afff7174e6cf9c7255c47820f1e37dc57b6340109aadc900691802801353e1901921bd2a884177477cb209e3f82050935a497a48ae1113ff9f4cb115f7e4014e659a6c4b570882b7fb33408ea665f106985f03b9fded8f510e34eab4403d225bd3d4b96c6991cb36481f9c44091be4afc63d7830030b7d917381cf1f227e48236442117b8e1aa86c81b230dc7ff22cd27234db44cdcf8db8d4f8092dc06d4f80428e8926e7c02f473437a7f98f0a76e7c72c415e62bfc98a2925263151a37fd7ad9e89b96b1869348cf7987c369bb8434e87f8108fa0f41f435a5aa37362bbfb45d388ef04204a30bc7115622182f8e239ee856bc388e38d2ad48e5a7a8a454281509aa445d42c5c4e338a2896ec51b8237bcb9470ca1c178431b191b8c301d6403825f6df8aaead94ccbb44ccb324df5434edfc39a1bf6507f7e0121a38f35e8affa7a28d2f80f41dfa98b0d552d36aca95873b747d9b0e6644370b325db483aa8cb502529c743afc1f5df7ae8fa4fd8485cffec0bbb0977faa8984484c9811d7cfaf429a5fceddd7d739f52bafb9c52caf749c3032efa8b49f691ef8edc41ca8c4a495db60f2026436eb407af0f8c6e3ff48d6032e4e616f11cdce73e4b1c3e37837da191db1f2ed0867c85c478fab25df5a90d613cf7f2c180525f5e86aecb97beeb72505b7289f15c569f7e59b7837ea789a0561bf2adef3daacb41bf24f3b47e59d7c376eb67dd8d18cff55c2fb68b3e2a44bdccd34f08bed50689d183cb97debb1c317eb513e30b7d6e8ceac588f1391da22c139a1074239429439314e30b4b7f019feb7d8d0a505905e478abfb1c6fd59e4b5f769c47aa5f09156f8c172f3bbbb23beca16c68e496bee5238df12d1f23868df11ee3737918dffc972fde175f58e4b6bccc17f6dc9607d2aed9dd0d17d655ed73a7c3e75a5ba429b5b3cbd1725dbee7d2ef509d65fda052c5fcea8940d91e2b2262ec7babb32b9be32d4adbe5133bd6e7f4e96b620a241700373e9142e54a91726d6e7c224506543461c4104e8d4fa878e2c6274638b9305f816870c57f4ed38ef583ffe915e07fb22c05f49b2c8bae7e47d57d0fcb3b7d847576e77bd5ab6c0fcbb3ac1f4cbffa1ea65fd918db23e64d6fb244a83ee6b32c6aff648960b2137322c2646d84f9c050a8ae47f714e6515f280406a6bb81b245e4ed5ad850c86df1f40b2b8bf543cc9fbe478c8dde3a59ef7bfc8a152bb4ee068bff8fa7c1155ff6ff91e8877a162de85316bfe2b9151f10be2c587c4e53ea3dfdcca31fcac6e6817ee9735c48bb58bc04d2ae152f9f87c5c797faebf42b563c25d51bf3e578cbfb93f7b45da8f79e763ae2b56990c78ff7efad6fa93fdad5bdecb9a8a75ff4d7e9e9d3faf44f5f8eb7ea7b5f28aff73236e8b53cfdc222f2760ff3a8af485f171e4adff2c34708aacbc76e870b10d2c78faefb96e7b8ee060cdde475f9adc3e1f24362969eeba93e56fdd3fbc0561fabaabebecaf630a97647f527d5f7d41ca75fcbafbace16e9eb022b752f36475f976721ed72b12e8f427d4082505d781a94eff239cd515b3f4acffb1c77097d96dc6a439e48e471956402c2d3602402d22ed4cbe779d48fba1b28ebaaf2722712c7c5cef39e7e6124aae2d6f74e47bc215fda60b5a15fc9da34b8bdf7f144227bd3e0f6f4373a5b1a691f8d2483084fa0107915fe6e31309f2937bbbbedd5a44bba7b3b696a733eb71401f70bc841aa3f0b33d99fedf00f92fd6baa4a69e42ccccc3cdf657b272173978039fde8fa066b7c5599d3ed4e042eda786613696696fdd4ba5535c6eb26d3cde946820a98f0cbfe1f26d55fd35ea539f51457cac9cf25a554a58a4e9d524adddde517c627fc4399e9440e9899a8d975ee235e03eec6729d045af6c9cccad76667999c73ce695dba33818b32f22f330d9925bfcc6ce33447217bfea86999bf6cd0a95535e8714a3f82bb8efb9121504707557d149557f7077586be97a0bf1aae7f072e909709e2298441f6eb27ca8c67b783da227dbfad8a2a756291764ba27c06aecd391711717849acf17f6f59a922157f4cb594e32d27d1f07848c635fa6c2e01f2962f3901d5e8f150ec7828daa1254c34e12186c25378c9055ac2840d17db493fec8f06dd8360289687c230fa4c11ccbe250cb27d8d34d98f7685a6202cf083972c61a02220fee228d80994a5c05888557848365f913e7282dfdddddb0aedb2bbbb6fc01b1b3e80d05accb8d636ccdd33db80e08ce9ab55f5e392de87b7fa555ee72492f59165a38e99472ce04cbb322de3649684e89e8344e3c6a61640763bea9d01e76b41e64bcd82f32f932447552a074d3e03af472c77c6c6f5217a80f028b9b1c540aae8ca5cdadf1fff165374d15174f5478f917164b8c65fd32e170458396cc1836bfc77da47f7328c03048c58a30191867f76463e4408846bfcc520305530966cd8e2b265a018d43016fdd8906170fdddbf735e729dfab73f33e11fa4dff988bbff86e507900df9a5f61c44bb32fbb146d664bb0117652829bebaaf344b79aa97986a9f524aca528c03ce704ddb70cd7b2f5dad14726b77777777777777d6dd36b42bb5b1d164847da4ccdcc0b5c8b239a7e7cda9d9b0691ad3dd1df469637ab5aa2a98e3adfe814c759fd3aa76d156fdcb87e09d337bad4a1cd3220effcc8fcd40f4550d52fa39bdfa0ad0adfe9e66241c02254a9ecc6c4e182ac756e95fbe9290d2f3b441b297cf41fdd12508473c0083fda82f0140b00b180946a2c456bb7d5c59692b7999f7f974f12e213e218c522022b5ec5ba397bbecb39b65575a126d690e0a9524b2e96b852787e8d2016762dcf82f224eeaafea8baeec492f1127866b7cbe57548c34c513c33837cf38a0f5529d6d9bfed88a05f01d11fccc7fba0cff29c0a0f3051d2fe854d1e9820e1774b6a04345470b3a59d0c1824e91ce1574aca053059d293a54d099828e14748874a8d08982ce143a5274a0a0f3041d27e844d1d9a173001d1f7474489b58a3afd49cc486aa65f265dae5b5bbb10c0d0df512b146bb903f81a55da1c7bc8a5b095d684487b6adbba17d3c7d7f5c871ab5c0a852df82c5a88b381e03c28d4278f9b07df0f2613b99e101ce87dd0317f1a3d7b03d83884323001fb6921bbf63fd72a1d6871dd44862c4e72afdba09f9ca15408441a55d5f1522ce8e8d0ff90a373e4f89355c3e3e3f71f3e221b4eb3fb6f8f80c848853c4f5210be146161f9f93f40e347ec5b72b8691d001895883f5f17b3ae41f3e72e317e921daa5faf843220e37e11a7f1b21b146eae3fbe897572992c1a35da88fbfe343c4e12662136e7c1db146cbe340c34e58ca4cdbb48bfbf835a58a69d7e9b5fef860641cde42dcc2cd0b01d81e820d1bf60ce374131cdb4dd4a0c138ed2400b6e98d0de9ab08e33413fe2eff2176a08104e3f4121d1c00b67368c238bd844d03d1958ce72618a79334719d7fb8c6852a0e4e332365860cdb1202856208c178ef6e7cef2e1f617c1e1bc28b988c6d976ec2dd04e3788c6bda09e3b8909326d78f1069da89fd7c0c11f477e168b8fe2f596ad889afe1ba9be11e21d67031441a21c6712b5ce37f06766191f087eec2c57e2111395e5cde45727b8c843f1bbefcf7ab97ed72b1415e9e7ff5305b19eacb7f3636b87a59592e6ad0bfc5171b14aae23a13ee6dc0c1f577166ec597bc2c79168c6ad52f4bb8749525aeffec78c86eca5a69a0249fb558a155dcab601cf742ac19d950fe5c7ff6368021d278ff5c7fade321bb9d1d75374ecf9d8e7436f4b95d7750eac3f8848d99e822e4ada88a2f4eb8c69fe5e5a006aa52fbc30612f297c796b013c6e12a2dd6c5aeecca5f1cc6c9e52abeb26155d9174b5d6c486bcac62e89c475fddbd7400dfa88ab441aff6c891a72116af471d685b2252a110e49b7fdfb48509facabf2c4a1ab699695e3e6767f733b4b1a95b4ae6f5bee48dd0d171a6ad73654bd920f352894849073a52f9b30ae49a54fc21cd6302e23953e86993eaf42aa3786fcddd5db7dbdddb773a329358f91441aff52a93b1bc4bb1ccd48628de8557a07ef9737de8ea85dd4866c83f4f3bb65e5e0294455a25fb9f2865e25acd7859ef0a1229395836357b34ed4908ba67c32f4724cea25628d963172c688f4e1bcf5832bd4ddddfd81ece8e8b8b1913549c5c5ecf5d970d6a647748704a2410a44b7dc9f6950abb469170d09cad076bd2a265e91d2493796c6e28d050b5996b570d9dd4300e1e9233464daa5bd4cbbe29453fb9b9b6be3f2ebb20dcee1b28ccb363707071730cf312eb7c2b7979903a71d3ab2616a662f66e63233c3c6cc0c1bbbd582f25028972f664d98095e6263926cb050a82fb47151a9542a954aa56652a954ca06f531df0dd7a066a050f5a25028140a656389244adcdc4c9a191a9a9b991970860b1a335cd8d8ad1b2448bca07165c850a5525f48e3a6b26c66339399d9cc66363330e6b3e19a948b542a954a79a9140d3ef282ffc58bd5cc8c99199b1933dec58c0b19ddcbe0d8103333a7192ee68c19f30b67ee74e162a58a51ad56aa956aa562f1e01a09e355d5c77c20d74c98394db3657a73ce547185070451335ccc9801ba70a192e9165885ca0f1999cd05ccca850bd6afbe50e6ae60602cebc585655f5c522e2e2c1717962ae67bae59ad56abd54a660ad1c8058c0b170f03535fc4744be6854c14283a0df2935ec45c1932a8b55f18732d0b2448900405f115bef2f2b9b03e125ff93ed64e0fbe5232a2542a954a7c65fbecca0951a678182dfab24411c0e3edc77c2aaeb15fad7d6bbf1731b7fb1732846cc850792419aa52101231fea3a38d8b5082612794525a82091a6d208b8f2b150b2448d80992a0a098182482a444612a4ce59d105d2b60f01496b57a7159816ad1e2438d46f6c5a56e2e2e2b3e76420bc6f314ac9513a24cf1305a4e5c0ac639bd64b97c35da7b5f29b6b4940bd7509161ad9c10658a87d162fd896be47394ea2f8f45cc97bad2ad2b32a470e5b7be9063c9805f480a7954b77b1937323e99a61f614c3860fc47475b0986524a4b30a36d45cc8aef0b53f78ba1273aa2a5efba2f519489eb4ab44b756feaba6eb4758f3a8d9e96ba52a73dfd52dfe90bed3d7dd7a4520b178bd6c76803c806d6f260cbcb977779cfa27da86f69104470341abd1dfd6a341a516a23d7bcb8b06ca8d9910d3795c738a8d7dea35159e06a3fae0681085c8d0257b361e9aba1cfed587c4c8608caefbebea72f1ee16e5f6cf97e8c78d88f111516630ee0c7a843ebf90c7107f9a8a7a91f7dac11ead3deaeba8ee6b0216a54529566a95432a2542a954a46a866e98bb1ad6caa41d0402d5ae068d5621b7dfc04ae912fa9fcfebfca35df7390bf3c2bbbf5bdfcfefb64be05ae62aca8214fea762fd3cdbc90f9ba2fc6ace08a1a94199506a5a9b38e87971f593ae3762e5e6257ba1dea55b76ddb4edd9bbae7e1af2abb2fd191ea63c4a1b1a6b321cfcd3d7de4eac3e96915aeb2cdefdefba2b76829d6e858956b24cdaab3218fbddb77551a2cb24a801ee67904b7ed79f8ab54b797dbf6d486945ec0e76eaec47ba6d2afa217a9f4d12af13ea7491f57d12d59b2a96ec9df3ed6f7ab97cf64882f1702f01ee6ff555d3442006ef7b1fb50e6762f6ed7badd5b5b5f50f9b28b8fc9105b39fc7b5f8c3ab4f8b7ffdf97c3b364b9db37590ad7c8b7e167390a5c237f88d7548bdbbddcee9f71b4efbe145f1d10d7c8efbe638dfadd7b7471dfbd165fa4ef5eeb6e743cfcc5491a8871d8072e966559bcd743f733890f1887a528d990724c86e8621344f04aac7186388008937de5af0410612d3e461b11f6bf3d4b91423df77904b5277d5a6c695fbf8e34daca87ce53025461debc52de1125ddd18fbe98ff2fe45a7c21ab01f5e170c34f83a417ed635eb3311fc7b7c477c427155fd6c7a4d4e55a4cdc956c58e496b69393d413a27c2c16f300e9ca6fb2e809dd6b0f639cfa72b5957692b91acc8701b8dae7f022ba58af7d2bbe4cafbd35b1e606738a9d0fdb9f647dd5b431890ff54f56c6276e8aaf14d1d1d78feb177bcf5d0f9aa5dcf7f2f42be221a55e3ed2b4b47b39e35617b75e61dd5aba15756b0cbc5b9f24bf7e7d596dc83373bb8f1fd77dd405b57b1c5df596b427eb8463209f87bf482f9f713c4b96abb5b85a29be48afbd4757eab5d7e2abe5b5fadab77c5a6cd54f7d1ec1faa4af145bf5515ffd186b9c6cfdb0d6fa31763e547b4b9cf6d55fd258a3693f6a214757b321cfa9f341b34a4836768bcb7ef415f1971da41961af976802155544d0a5b74ff93cc4948a0ce48d52ace005dd2fe0b85765ab25514312eb70ee2ff8b9aa0623cd7395408d4c80c2441128535364d25797b841d4f8840a29b76d54265a550d3e093876292536c7b861b46ca541b6c2136b10b1b94ab2f7896178f934b3d3fe1841039b0f8482c9541535e4b96ca5c17e9b1ba6ee9c400dd9caedcf5ee52d1f583c83123f78c10f9a14c56230554cde800432f0400c9c80fd184103930f848265df8f110dd31e680030f9f3031a00ac87c98efc1e1fad396dcf7c697ba68dde921f46a2888623a250128629d8000b4f804558e68302284eb8c0054620da8119601196ed7c2c06931fe3f6679f4e0d129f63378c0fc4c4ddc1d2024998fc697f8cb001930f2461f3e317fab0728cae3f119beb7648e92a991f23c7eed7eb96bbb524cc353664006ec4d921d2b8389066dc4813c361bcb7585d95cae59afc34f206830dba0317aeff495ec17188917ad5ea5449a57a95e05ee3bf09e0fad3e91977e1fa3f831e8d70b56fb05fcefed95fbc3e26d68e90617cfff9f279861ebb7d66cda1bc5c2665fcc2be9a1649316a262875f75be9fe2db4765b3dcec8d9953694712ee1a20d9d7fdd3f1aa7bfaadbde2c6dd06526bdadc04997f46e9c18638c31dae69a285bb66cd92d65dbc835f19d3dcb7429b329a5ccba43f0f19b7198b3fe7274ecb21de259b25c22d99c2e44f7c065c972c39e58ecb67bec6d256741e2a78a1350b121c58c86c4f9f47da6ed6132bf67b3d1a7dde93a9be33e30f99465729365fd50faee7b94be2b594bc4ecfcf9fd352ee62609955225b840e846259c40ca0dc1db9244fda572154b397ff4dc68daeccba4cdf8baaa63dac5b747a3ef4fe766da4bf959f6ac65393ead8ddbd8a06753ab02b7f195dfc83feb6eececbc8cdcf6c50fe50e9f9d02a8cc9eb319658ebefcd35d4a19b35c818b3237583ff893de473fa76ddbc7a2a71edc9b9ef427eef445980fed48dd5e528104153f51a8220a542e87e0c62753104d315452fdca7676657b561fe303a3f4eb17ca95657594d5e578ab4404ab542ad91dd5c7d89e9a5759ea2df93d00f895951b1a72781d6c1aa49f799e0e5f84e5f0ad3ee67ba8feb3447caf0255964589607996080222ec55d607b68af9d5d35fa9feb33dab57d91ed5c78420ca46180076b8bc12168bfe0dfa3d6c7c3a1bf6dcee579f0f4cf5b1bcf73cbbb3fa18db93c3afbea7e655ef03ab5f2843de3ee623acc7f731dfe3fb184b04939dd5c73c11aaff2ccbfbef7d603d621e000f004bc4ea632ccbb3447662feb33d37de928f8008cbf1967c1d6fc99cfe08cbc1e678cbb381d5d8ae2daffa228c762acec5f3c221eecbbb78ee6ed8e75e15488392a7c1b8537afa640a27373e996249bd518a23a4b8bce73dcdcbb75e9e82fff2f115d22ef065eb677ee663bb685e060e3fe34379650ce9b941bcafef7d97a3bef7dced68f1d4b2504f3f9497b250efa1ec0af53b39de42753f2a6d28ef5b7c21ea5bde00387ce973fa00de77ef82bef7c1c07ce5d2d36fc12a3dea6bc9b228b1f81c6f951ef52dde7b8f450bdb95501e0e617d18bb95a156fb2e3e763b7078cf06c1e14b3608cd7b9e2dd217072b1b9cf98ee65b3eeb7a7079ef679783c6c606676c08e33d193fc3ca0665d887f1b2f3a1e543eb5f9e6bbd781e7da1dd4b7def69cb8644cc2e870f9e950dd2aff6763684f1b1bb015af0613c9006bbee468c7ff9c00b7e4e0be9a78ba8140d98743deb989a1111000020009314000020100c864322a1483820d8b4511f14800c8dac4c74581bc8490ea31042c6100308310000000000606066da0000c1dd8247b847a88c117a4c73d7f6a15971e8c8edc506cd7e3db2eb54f28d0c517908f3118628128317c96e59e48504ca2d2143e861a51a27728c0010345a0146c78827a83b9a074dec091181a8fbcd1f9b34201f463f88de137b17de4bf595ff82189ed7dbd213ad40437ab528d17179923b12010df239645750fc32324471c3055ce1b2eee3e260e9f82320a5bb1fbe39f69bec472994bed9cd74e3760329f58ef17d7fbca8c01e31a2b098161525ee827ec523065273e99cad99a7049a03ad624fdafe626306c8f78db5af8443ce9d27d0d7f25ee25a01c4d7e3abe563027383acf0a0a0e5b99dc5ebda844b1f1f8d2687c66438cde7d95bc2dd79c225b6a3ce72741759636bf44e9b6617330b2a225f8606f9d6c1252fe0209ed1fe9442f40d6e6637ae37b052ef88ef7be29b4d0209054ce529983236cee508ff51d5a3031ecc10718675e9b5b6d4c3219faf13fbc827f651faeeaf2b4e2b0a44af72032b654629776dc82fbbf73adb1840d53bf6da2eeae2c5b60917b1324027f44a1a7abbc23b32dcfbd0114178fe64f27f4b041fa1ecc4824615322f4a61af682220d13b9bd1ca196fd13910d9324da83cf8d0fe9440e819ddcc6f5c37b052ee103f040c6e5bc7878c6a667565356e898ea42335407eb354e5c20a608f4fd89f52bd675b3156ac0efab51b69a97cc917e2ad0aba9d1c0010b35fdce24f01f998a8a5c44f3816902f6e38a8e4c942c5ce53cd152bb4ce2778a32d73b1b06d40f69ad5b7dff79fd1d23e36b47461160b8707abd08357e79975d4a51db59f92107aa3dbf98dd70d56ca3bc4bfcbf87d4e86514190ac94c854652fb7fb9a4628d3f6b9cd474a326ac8c7e02c098565238ff6bec576379022e598264e51ab9bccd6285c4817b44b6e3a3517833f676eec545dc50df8cd3d43587b33eae76a793c4ffd9d63ae769bac4766b4eb86c189b811fb8c7677c4661b61df928c1e2886dfd5be360dc523e3926bb0ab5368432f8ed8a0f266108c96593ab03a1beb434fcc1c5b0648511f1fb5fa22f70296ba534d6c6a6c6a97fdd38a40efcdced0c64df89078805a1e112636f0fde9076323fa247cecb1d02886f1459f6b42fbad328ff9a03beb0c596ef518869fba142b584a5cc117150b4328171513b5121a722e7649c0fc929c3cc03eb88a82250901404d7c8123405d03f9371f3960aad3e99ad42e7b42cb0176f9632a4599da2b775d22c0b48460321082d5c5cfdb81b4884468b570c6190cc814188cb1837b4a58130cefb71559b80d0cc407cfeaa67ace864503268fcd454fe02fcaa7fcc246d3a5567449a01e9973b9cf3577863b4ff545043c90237ccf82e989f9da97f0862c92fd7cff4ce222a2e4a2f86c875a77e96e6f81f8615cc4ca2f3111e312e30ce1e37cdbc113f8248adec28dd4dd4c079fcda73ef95ef24fd323d7b6eee7c792ed9b2c6aafce0045d6b7562adfa9f7b9493b45a79c875441a22fe61f8beac0cc83ac45e8b1c87fc6eb93807cde0c53c8cd92cc3fc8a88222a7646c969f57a9e49b2f0babcca9db40b2c63286867bec58604b5bfb59fd2d33851d49762d60795a89f24607ae45345315d1b1c9d2d6e51e2b51217621525932427a20160b173f0ce13f059a7c6fbc3d485afe578668cc0a6bd92740a7de084dc41ff0872da136a0d061a002f042aba717010c8fabff42d078d035a45f5a786d6f2bee58469341cfe8630e424f16b1d596239972d5c3ae4e7a36b87bba556100e8390d412a5b104563c9ff7dbde5354721a3dd63d4ae3d0fc47351771c980e4edea60f3caaedb8cf089d5e08fa0bace2758ec3c6f14757d7b41615dbe845379d030349f4e704d8fb55a14c0768631d20af15cf86ee670ef0ff1e5e63abc7b280a4c2f3e66acdfb72118bb8ed37705cdf34afca8db6d5f18b638fc292b11b396cb7598f4ef32696f2ae71a02df361da4c43037b03088345082ca38055f1590a9eea9263c22627532c4cbc155f8ae172bf3322e64572362bd322c2bb475ba84217f3bba1af4ded4f7e072f795c8f3c0f1d64825604e1c54921be568bd8d0a46ae59a07d3e108f335cf2826db03a7fe95fdfc77676e04ea48a7fcd9866fba269f933fdf8caf60791e1e3629dec63ea82e6b5c012bda19eef7edb6e740e505a412aa2afb7f410315c7a30aa8e9602b7c07562d636e6c30d8137fc9d9ce9ed86ea68cef5b3f192ce94ce6c6a4c7c8f25d8aec74122ff986226ed8f4121e255f3fa014accde00ebab7e8a91a1716358ec6bff74f0c031662be7d22ca67ff17d424aee39a05aa4b386f0072ff0ae72f2905d45ef095f46d56be077e4fa415a582899c7efa9e0148a459f4a4b9304a15f6de1dfc9e41c0bf25b5eef9f2bbfcb3141fd5dca583f90907b719947cac5b3a4888e1bb0d9ba75cae2ca375916af8368aa61d334b29a3dce3222a3b11a36029218b97b525d0d638eb19075e8f19b88f9d7d37f42a6f6de3c1e692c2d85a1a8182150d71d549760f77b8c4f3169fc16b3dd7a4bc04112231070bfc91ea34f0bd1e5512a2d322d7d34abbd4d169973139b2b43b86dd4fb80b8560c516fc958c06b487aaf8a025ec06ee7a214c97a9b1aa0a8d78ce6ee95d96f0b2b49bc1a78da6ab7fc60c045f19765bae0edab1d2d3e7dc4c82a58338c2cb1e1b5fd0acc95ea1ab088baa53ebeee9bf1f70d12aede8aa48b7a659d794f8191f591b8396361201ef9d3522acd630d9c5e0f21bf97c7d07452a1bf1933ae660e661162f1f96e70554dbb1bb1c75e33bb0c402b656f11f079751d0904639c72e385a30d86ed74d01871a887d4c0a1d9f2514d79ff11aae109a59d3913a544f4737da8936c5cb39adaa070e4d25f5539291ac9ae7c8cda23a97c02f2ca1bcea524cbab1cbe0b1bfc34ba53a0133e4393e0b0cac03da556a85467bd5721a491760ce0b0213e72c76ee3cf3988eac68a0257e44c0c6d214b5cb1d4cbdd2d348b566401bfcd5eefa9483b124b486cb4a64e90c3ec557e24a3ff3f10e871a081e85dc28c9147b4cfeb197104aa28c2614e78ed240aa78096b40021de71ef0fa66f80fe8e6c0b7c346917d7ee734779d2609ff4e6973292fdcfb9258f6200db906866c0db9901e5f8d2d9be89ca59662368c244e6bbd3180cf1a9bead5307b5521580f4b4d535c77eb69e4d368b5a32910ff149e389254b32b60dd59f2be4309832768caf45924837500f115159b0d985517581693c8eb5d2827085b2e6c2f9ff284c90e261ef9f075c1b3536db165bf744f137bcf97311b4a13053e7c54d4cb244fe43aee4e638ba092302141619a7fb4ff4fd05d06d23f3943776ca77be0161f553832101465fa46b7138a90d8d2b07e47699f443586fd9b1918f9324f9f710199476e0484a2a9414a1b4ccd965fb05192c6eaf9e500423e37f8ef85e6344c3e4d7538ffb2353818fc32593648797653117d6e687892d0948e98b637288f3f341dc31dbdce2b35c1ed350b34158b14bf66bfbc1ec6e452040fc898e5f4ba5b32a3bb4dea8d52ff2c195bbd9729e1e94ad8893b60ea4a5b2ff1de9f599152f3b522680dcc2640e552f51c63d545ecc56d0233423c581d523f5b1848046192eb69c9c456efcf7e7a5abbd4994f30c386362e184bbc2d0cfeba7614dd30b943442fc2512df360a42730d87e6e698bff49d4d71ce333cc43d066ec19feef6823479ca02badaa24cd5a9509cfc2f6fbcc1958717815d4b59a338630e2483b7e0e8880debca198fa087f0ddda110c9b9ec8ec304b19c8db6c83e7d0d770279dfa2aaa1dfc7e49850702400e7ac3b8d59d111e9dd831b60361948a6f5205dfabdaf0bd12662cb251f6d6c912ac9b3e229e85d6cedbe664e26a4e63a35516bff6ca5b3b4d099fb9db51e4a724a9ac34c29c875a80f45a53268a19901b074c2a6939fba7bfb65f711e7ff0144f95e9cc6451ca7dbfaf39772ce1e01c2788e794cd4e6c0f1f5e59eb98313523a6a18447f05f31e6bd73180692a6cd4395c346ba8e809f2da49e200c79a3a7980dc4d657552118e41ff4424c349df8d1c1f7082c4a2a984aee9319bb5dd7d9b4c5fbbeeaf68677e6d9c5fccebf73035eaf1d416e23f0df4d2fd1af4e5589d19a29af7ad6bb5c7cb7e779ac78b723257425f3ec7a9a46a75f197fd20f2e6a2ec91b4bc9c64e2c4614b55fe5340d826cdc16b23f5b289b70b801108d1cf4524668dc588d56c28c9e6a51a8c3b17102832faf00c3144a9db7c076a5db610d1c07a4336438a5832a2e676ea4d539992cc6b7ede5404142dfec53b18b0b5d1300ce3cd6811826d7b82473d4776841a3d608c4c8e01ae87e08a0f22d3d6b91af2939d2fa814cc0636183e5a13c8e8735deb85a9110cc4dafa764317b3baad516486f043f36b729d2124be567393ad19c0157b7371a255d6aa355f0b847fa931ade42190c7a573016215a6f1f749d683cbfbc7120786211a2904161ab957e314a488b4cc954b6bb379463a77bb288f82a6ae742b77a8d49acac38755ce46093f33522e6d2cf53123cfaef0a09fcdde48f2cdbd584c130bfc94f4db3519599def6b0b39dcddf55cee22a455f2be28a24b789bce110f96917026dccbb470152aa105526236ccff9506e306e82fe41a335e3bebbff5cb153d40489658151251d15371045f12d5b0c67f93f0cf7a598d84a4ed0810a683ad523f06293c442b15401bf681bf587bffb0103d97e2ecc3148caf57790f1859dee92c5a403ee9c2fd1ec07b35143c0a262ac1751b9f21b58103243c3edd228cfb715b809b3d1f72669bbff4d8f14a7ba5909fe0a1c6df9fb470a0918c3c1f4c6f4489c580edf12166f266a253b24d0c68a45a2efa2f12bc15be833084ddd0036c88e10fde545b9f50dbad54ffff721ea8bfad511684ce6206e576c9f6377a0df55192619f6cd2af1f48d0b1139d315b2d54b645dca7701dcc3697da858a79073e4f9fa8510116b2b8d88cc041405a41a5fbceaecc98d4d59e991d663a64c7225a2d240b4d2ab1f429be3b19f16e821db9c678258d07977c1cf39ba8d81fa6a698d669cb32266fd22bcbe9085f14ab1b830f0ad3e2ebe361477dce67d2448385e34d874eb5ae8e9fd828ae4b5729b68000bc82c6ab09f3f2ecc9434f232a18e621889b9b67e3e08f2ac06f8e404de1b05c310bb1baaedcfe9588f8060be508eb3e3afa06aa526f014cd8d62d40a20ef0b077346a98f114b75b138470933c84d0e862469808433ce00c298f9f0a5e5a07efa1f6ac9a733e0073fb36170f661c81e67da63ffd68b7096922696f68c967eda7cb90a1307782aa598cc396d82f328b9bef721a672022789ddf98015c634f5c6ad6b963aa01d889523c050a64c308c0d2058bf32e03f3e873438f5e2c5d64dcb3d421167be2d89d39d3f5330dba7a08a0f662e3a9706a307f110532328a02864cff8c59b9b403e2f52bedd8a683e4df07bcb279ab2424f6db4e0a4912fe3898494fdac2c6fe491dcd1ea459f1942c4222aa130e5d65190702906a6c8a99b1b747a68dd1b448b2f18025be65f0152d1fbbb831a8d17f690f304b2d9e25d45aaafa753bb37aed24f0d28e2475f2722f6ae8a52bfe8d2abdd4e69008204f084ed25b9189819c0d2490f18809772df7b9ae27315d26c5f30f328103c39e2e2aa0be651a2fb4e407f7844ae54bdcd260c5089abf62a8f51b0c68a5efb0eaa2a4fcf29c9e0a208b6ba829c523992d3cf7685bea0abb8a26228851982b63c50c955406707c883158c05d7d7f29680fa449e2931a1d353bcca98ee96380095b1f0c99a13b1dc2f3fb9bff3cd0e72097a680a49f3a8402a017747b333ee402f9050e6b6ec16926388add70aa93580d328d44594aff6eba7d563be961183d9930ffc5ed3da39c774d9f21b9cf4169e43b077b104e9820c3385a947e5f3f9ec12bd2b7789edcaf7edc4dda9b1f899b14e822bbd24123e67b227d30f72e37720d5871b3c22c1ff440b00272b9559216d0c6504e4a0f5dfef2d6e06892415fd04302a3d5592c4e28bee568a8c3b03a55769b7304ce75164e77b1a080ef4c669b068bcefc594b674741b4f7b394204d9862acb01767d86696fdaf6b1aafe0ad158780f622e354059709fa6d909c837b8d88d8bc65219443e8c66b7062f02a7ac7155e89043c6d0aef91166d878536a8911dd82e28758b92b740c2d995d50d35474a9d59b67335252d82d54ce9b45fce14d07e15b67866b331d62abf9b40974511df767d5d9731ee4c70ea46c8d88357cc1b6be797d7eb53bea8d4c1f3cbb890d80425489ef9465f5ba868a3211a1e509835192b535c3fe36a3fc9cae3476ba09c8a138d15260c5b350437029be21548ad1183747304a63725212bba07432e72f167fd9ea3e33035e2af8b9eedb5b39c01632dc7a7b56b7249af54515dd0cec5c6ae0cde632f91027b0b483385a1688b6f1c61a960f3e0dba9a120663bbbc69059761eb200df97f3a71b543718158960f2cb92a17f3e869c7b1e546d09fcaa5d8fa3ce4d515ee67e1f29fe4e67dbd10911d45959cec942c195a58c67250e97a37fc60ae07313b7b2e2fc9536461056155cfcf046f2abc1e3b4a804f3449735b3a710329dea7c678d152fe081a29535c1db06ed3c6d42cd111b97857a430823d968907e1a111fd80dcdde05426ac3628d3527014abaab9d6d45b174565889fe8ec004058a36b4e847067a0107a67f403d2c716a112d49af7e2e4b1992be9e14892dd296acd8611ae39c09789f876a5ff09bdfd54ffa879ffb47dd57b31f435c2b952a2a6090f771ddd33fff72aaf977e75e364850a0a4c832f82a69b2488a9aa9eed85dbb133851ac60752c5fd0d0f765eb8d65f8dbcf4c8251ceecdbc58b6cd619b69ccc8751f01dde5b1029ea1b116e0ba9bd748420b499d5e08c4580b0e49f79d1362c8338819dccee7912fcabb3666227add0b188f80fe9bacc15057c9d642ac23bc3493082164c0089ceb13314fb38824e7891349f1560f542daa7b4d64e56474c00d2b507e88058960ab87a634c8006102a1d2ba00ddd414a3e9f12b060c1ab82211ccdfb74eb743855bd91cf745d972042b7c813ce8d7fb8e9b0bc4ab9c7c27faa87f03a6de0f5a62abaf2e8ff91edb084e2e0025fa7c6de8e2838cae05aea0875c929fe426f4ef0278870e443f3c94c088d469a3ec69b97a93d11c65fcbed0bfd4f9bd23ef6b6441b137997e2d517c52028217ba2aae5354d9feac313450d074faea2401232cdf5ce55fe706f9d8b0278d9173f4cc40b827b778bdb4cf60745e323e46744c20324170933fb861a5fd6efee9c725027381586e4a752e8fbfc636bd8ecff392373092987e0f091584bb34cdac9905d85369efd15364e439b1962a0d3750eb1ec0139f3fd10155771cee825c42081031b2ea88586d0fff1ad03dd742822cce62fd270e7b2d042c21e03734ec9bc0236c39d45dd5b3c958e080b1c90cc20806c4b5d448d0b65823a6614da8cda63103931ea71a389b7225cf52776b05a614730693df87c1c147d065de3aaefd7a86e3b866f65d3755c49d8caad6fd1e9d39d53f351149a8ed7fbfc1a8e994a9a304a1b24ad89e91de6d64785474106a5279e616509832e5dd56e404641c31f0a971ae0d5a1b876bdfc660655e145d11fa6641b0831a4065d34dcb190c9d2690258f807973c1a45402a1a8a35a67963e0dea5a521e854f66e1bc7e80f742799eb625515d78cec7a05c32401e82c8535409972bea7e1a92aa081701f522ed5276cf6e294ce635baccc7436d4ae1ef30b9052e98acdc7d964ada1db8334a32f25ad13a0ad5f163dfb1c38da9d5ecb33e276b7d648c27fb3ace09b07b00e86ed82e1ac1537b5888edd07853f4faaa975feb7de92d983d901c296625f619562bc97a608fadbf1d9b9a94f744eb581d5c599cb4dba7648fdcc68603f3530bdd81b457e6bb9208e101c0c8d66d4eae7768e890704f11652ca3642134b23e4ecfde9748878914586786693bff95b88f235bf13112e84683d4944021f1fbf20a01d8395e84b18def0113ea85b58e129f5f6cdcfd0e631f9544db40fa0b3b2c1e9d89695d53bfa5c752942947d26ca3c10bf418fdbb18509498dc9af28b11a4630aeb6d75ecc25f112e0ffedb86478b25b5c21eb0166a101e9d1a54a9565ff1f0ac239d7f3f828bc1bff00b00d65b78808539099847c07bca07cf88bb03b7d56fc4e24c2b6447125172256b6144d921c9155f63130f0af1465314c14e562407f4e48d9334e924f2eb54bbe1d8665382042646e5dfb3e5289b83290486c0cd7a34ddd4cad6149b8f910098d83775f5749e05568d6b533a704c83b342e8f59ff57cc80e011706391940fd9de40f40a901d038468633a3876435d9390b4f39e758bc2759c7c196605012c3331d18fd012522f9b52ce75fdcbf6591b69786a9cc91a766e62d8ab8aa9bbdd36f8c7755e45c10e98b6407276dad21fd9c7f341420c69c9d1cf8631d84d11f2e960691289adc294f506a75a6c09e9d9f6a3dd8cd2345f72705774d55d7254f43db81a164475243ad9bd44b59d214539fe241dabdcec92e33e13de16789e480e225cab897d6a87b7bb197c8e948de793e4b4fd0c484112f6351c237e6aee8a067887db5c2a9a7f071a416caf2e0589433a92af738c8761c403e62ce08dce162fddee46466bbb526895b02f8712b04b832bec1199018fef179f8cb416028e56efae6b8c0136384e00ce3678c02123b0d65454a2b4a98b84af69551fe53b1758abcc106a7d3b342050ad808b300397dd831ea4a39c5a60f67f94f3318b8c47b99151d05d4b74a7c6c7a1a3ded0d8c4a68272be3d60d14e4e3a2a3ae41772f1910a2d03a199878fcc6932e98f509d785495b7a495a7e02caf5cbde38cce3f78b6bc419d9425580501993327f40e145cc0134097c87eca6093810746ba840295daaa1f436c559fa9a6fdbdff6dc234c81e761548b01a16e7b55b4768568fe8fd55edfd51a6515bf13a3690de48391af444faa6b15e1f25c5be855a6708c73f0170a08d4e3171eb839db8dee6120d4ecc90220a387a0d3bcbb29cca210209dc9e7979eb15281970a0eae6d88dab70006284b16ce7066ea26de28716c92112c30e397530b39b16bbf2f8b03336828069264546b7e5f073856e9b0a8ba5c29d537cc13dc94669ed5da2a72ac3db45f240aa233b699a54b25ce615cbb424bd5cf0b11f0b4868e1d48d90e910a7141e70ae4da5aa4c874f93051d3d858a1de519e3a1df3bf44ac77cd9882c8d4c3c165b0790a25c2c041140509d889cffc0a9cb012ba7bf8892cfcfcb7041b41590e64681a005f3831b317bac5eef36152b4c08f9ed8d7a63ed41d2645ffaa68ebf82fddeb656f7018b8296f4533581d4f173aec32804a84ffbef5f121f898399c56c103fa500475a7594116780b45b72e628ebb53510d85c278fdadade4f5d2bcc0cd604f842c7027d2e21a03e867fbca2ef87f6625af7272266a06d7d027492ed142641816a058e2705abcfd4c5dc43f94d6ff0a419f00179cf166b9ac6c7e5729c95d240be99d02705cdafd2c8b17156aca18f3a10282b07e48aaeeb1b34158c9103c5a832967f5dc8b75e8941b9828c49c77180cc40313e6e0e94a876d4bc5f1a239a34605143e89b21b4493ffafe779009f24de0dd75d9a0b7811a931f1951fd9d47e5e9fa2d691827320725db3cef3c0c99ea64e30f540c4dba5e8f225838af64deb06d1ab210e4ef39fe431d96340f6385754865102800a5da6b5736f6a3db91fdaba095158998b2020d61ea659c7c6c7060410b6e3180089bddbcedf680b18ed647633e06bb9fc7a4fecf62cdf54264a7ef959a83ca66b90fc7a1f2079731b701541a19f3fc75066e9567afd10f36c10fa8e730822e525b09da8de0836162fa090fe79feb87e794377a904e0be44dbe8c71a92215adcc6fbdcd648ea0263c6bbf989b3eb3c12edabe3a04342da7a72dfb39ac08bba94297067e3075dba7cb4d532ad99f7755572945b84c627e7083bcf05ded21eb9fff2e580fb462725c70e4670ac18afd43dcea41beddc5d0dcd2b4cab521fd4d1beda9dfe3566f17bad09251518045dfa63f62f326d02b585f42f627dfde125a846a21761cf89036e19f62fd2d4bcf39dd43a461ad91a9d9fa63ac040abeb8080cd816c5d19803f835a8eaeddbd2190b2f04dd6a45358303af75cb3b94ca3cd84ed7ab37c1582c8101dddafa46f17100c31b9b7cc52d59ad225dd7d30a81538497e9c06aa82973f40fcf99470850b0ea18fa7d5ed11b3d979feb7039e54daeefc74f8d0bef2366d78d9706fc235f4d513622ad83955db686e8c7933361f0c296dd30906b128be38352f55741d1a362ece7f19aefb735932007cb2242ec873c09b8be1967fb6d54cedfe7e877f5e642269068cdd604585c17e04183c7def1c58a756d752e610fd10a94fb96e88c4727798ee38cbbfdc882433b34f801837c22eb006933e00023f72d62860d75a66155f57853ae89c5c90bcd89164dd695553c5c25d4680c0009772283be5b846856b89b839458d5bf4dc59ebb392fa86bf1f711c13757e1f1c48c3796ca26fd353318b2e96b5fc49e2b355c27d4724401d8bd013ddd9b5f2986c78e33bca7fcfcaa42d41e6a4af11c31ed56938f7f1f7d8357b1c3084b890b5bda2a92ee419225dc3396f9b906f80dd75517b54dd67354889d02c6a0a1b9dd57a60b50f8f04c506b192015cbb9496927b32babc4d7425ea3e0007015fc78793b570e741e298d8207543008b38284c505ff1527288056d0c40949b7113399792d74a7f7bb83dc1d41446f36495d46780a25da2175f31e9c7aebc1b44299049b81dedfb97002b35e7e977c3e5a9ee264688e3ccf57379727a908c93e48ebfd54b9f0de7fb20375b38a980647a4dd2610d13a81d32f0d1cf62d03ca675232cdb035a0b5012648da47902fb0209df5f6bd4a4807d65a5a6ba8c9bebdbc830afc2491845238a23085ed3a2019cb9304de4dd466ba2e61e6acc335abf883a21c5091b4dd824c9f43880718c0a215ec15590aecd8fa2aec447eb4038b5819e0e4572336b7f19ca54ea1d024a80368ca6ab986637857484721b24df5c64a198f9419d55aaf96f676917dd7a4942fe8d90abeb597fc89afebd63dfc5a684498810c435a24e8175fe9b4c8d1b0e9c89ded8e424df512ef8ba40a5b4a880971d359ffe5d54047ebc705320a24fff497940626ad39e6967f5611f52986cc7181df08e1e9f159fedc2044401c7be062ffdc47547bc0afe3026aeb700b2b88363bb6ee5a245e824e613d66f57b42e4bef003eb25cbadcc15f001098a73261e02a21a10a8571530d10cd0a524f4f1ee77fbad9dde90b60869759df83befac2551a540c0e4b0575a897b84266cb53c2a6606b97c76f3ad0a6cbf1152ad72cf67cd4e556171412dc4b7665d52ad5a4721b9d58606115cbc8bd25fab9510c26e713f9d93ad5561109c526e18127bac53df94401a5f63d66281a1d9974325cdf12ed898dc3b8ebb3a7fc494bef6076abb3a4f07f4f28e8fac57ecff87e5b973ac9367bb640c5b6d1ac4a0d1e4fd10f6a50a780b73296d20361e27405b161f98cb9a008c59e0660659f1018d3a8cf9cbb18301843629cd1a406a15a3ce61fc29559ddd2bb1b9aacf98526da8fce774a16273f28f023d8a0eb1a5ca6edbc8240007a8eb84dccb38dd98bd8431b8c29dfca97e1c8e46fdcc868ee9aa1b39ed66d72f755b2ded744ed81c644e864d68f90374485874c32b93eecdcd8445480236c288078a5c13eecd6ac15af27d4c1ae53c19ad2b5fa509a6611e7d6509279d9955ec10b2fb34b7523a83e16c8c54205c1a4cd033a2e4fc225e75c3f7ba0cb1190e2659b5f437ee5408c2ff73e7ddcb546b59c1f43370a3a9f84e10ea841cb6f5f8124b28537d6b28c96156fb06d5b9f5897f11aa863b5c5d20f092078c18abe8c4953376b461cafb737becfbed10a154a059ce5f2de41c8725636ddee2b4deabc531426f224c347fed215136f032cc34a7af38bda37b0b38af613abebf79e9f916d4d0613184e5d3f8d0f344f2d6d559274cf82cd1da13d4d0533f7f73e00634a77a304a528564e6ff51b6e83365a05f11cb325af25dc91f7cac19c36fb6639a5bb086a848b494b55e5823f1df8878a5404d97db7cef864c10ae3e29693f9bc447862e19397feab54a9ad555471c391ec886b63e63818488691ae48bdfcdf02fe3517270d2e7c031f34f56d2411cf25450054d9b3932e0474c60359a1daa4510ec015bd85bc7f253497de486c6b59e3664c75d1b772cae5229a88885e5333e5640868f5f3e967695559e446ac1ee4da59ef891fcf17624d5670d88e424933137ae76cd0f100f47cf3d1fdc2bfa3dc39f4b6f5490c88da411c318476ef4b1921bae86f4c3c873b2bd4e59ea0a661874e3fc14ed4b41b2c6fc7965eb62ca407e784480bc7c925ac1dde160442df12ea717a139e229a9da261ae45f048adbed0ca61ba36dd644ab2ed27bb9f3dfb27fa6c1b6857353d7867f0ea97d7f0ae97f3dcdb7c5526f1aac631b187bb4811333552012ccb772d06ee2c3b5c55ff7510cea18d89b039b16cb401d43f386bc207caddfbb8e7aa9169e7712b856a118b017b8b5e1b1881b49eb12915c5e4c2f39bd0b79741b82986e7a0a2886f7767a711077c5ec0efbbce99e254367dcf78e232c0f37b5a6bc14b348f24b510b10be1cb310c58bf18b905e12b930e1a5180b52bf885b04f1e59185085e8cbd80ea85d845132f8b5890f845ac05285f8e5d0444f506291dbae2076cf5fa1c15f30657eda0b2bc69be159df721dc0decc4a0968b16ecf5e67ddf42e5949615c4165bf8b70744ea4bdeb1e3d0ba00c0d23e281c01c47f60ca89fe00d297e4e503b16aa424360a1731f353a562ce0edc88b48faee388ed35fc7ce5b1a92022df5aad00ffa79e3aa765d86d466f57be9220afd0e855c02e505b293ea5d5a68db050fd82073cb38c280abf82901bf7887b028dd10196d5dfc1e50d5bbce3bf0958d429a8a474e55e68c219fa22376a5051c3f5a2d820b89bf3fe420203c5faf56d047821cf532283ac28951e5c2c01f55e31b8396d2050b583a2f85c790ca3a30f6631e643d4ec1f2b8c3662222114cd7dbd8d9f58e5c461a23fa4dd910df0e4e8343482b0ba94ec796fe129bdf3f29a98ccde3c3064736f137f75861922411ecd9bc962ace13f889110d28f6a9b4050d1d5c0e1f4a0aca633faf2f35b59588d763928b4b52575137fe2024f5707bd030e7c8d1696270405a27b1d6f65bd58bdd7b9c528468835424c86d41434a946d9acb8195e9ded9d11cbaa5c04a1d3d9b2578e958be710fb8f21502e36c63936fbfc25f650fe2bbe5f1b46709e4bb18f15838a49768cdd9dc2d561e841910ec2e2c379316b15cad1b897ca91fc2f656a492b22940baaadee91041f4ee934034480075562f4c2e1e91cf88f3517920e9148744d78cc73e74376a76d77bdddf19628e590b0d9a912c6deddb2d825b687f7de188218825a7b808dd0586fe6b3054af2275143043997ed9548e72fafe1901424e44f7b32c8184ec4659f098884fb6822cef1f1a52d6974e0960385c3dc7cd5f21bc7ceb5f7c3a65b4fdccea5c75d64bfa0ee82bf2841e4450fecd1febaf4e2a01d79563561e179c1009de5aa18c1935534928b352a95f082c663873b52db59c5279acf313a61cce8e8b9c5b0f3a07d0761afb450d4f35a85cdceb4dcac7a950bcfc85840de8e54eb4820fe5d5bd2b71d3ee43cef22e6246d5e229664c31a2458dca0454682d0244454b68dd2c7550d06ab0fa3c56558146d730f2876758b7e6c56cbe23ade2d6c0a99b820bb2bd327e2bc39d92032e45a6c81d177323d7a048ab88119fad31e6663bcd36040b11e5791f38598760b9e7ce486fb2a6a8f8286f20ad8a2eab4ec58b64ecd2d04b3dd644c79ce86ef8e6079feca63f7fd135c048424f8db06d01f210806dabf02cf5016ff97edd1a72d41ea041d35d82b63cb46b2c1ca34078f8d2440e4cfa97c48a2c8e2d4a90cc87c918410e5fda855f0a0920cc42009e3044c2a76d35eecfd52b8f620badc2ecbe94e2e8da305f36b08de32498206c62c181d9577985d901a09308702142124172a22795f5ca5edb926593e85bbfa63753099563895aa1b90d96bb66f316042005c1d0cf4022e42df69a49fa5a367c807d62c97e22986a5a270c2f1fa1273192b210e6239433d795fc5bf03b344532a5926c29ea0709a45a5782e66131fa8ed97c5aaa5c6dd371881065f2e8d2fff7c5611e542e2e42c519454a1c576472086cc3e607186d1b39538b9b7304f742e8211f86098f3704acbd3e6095f8ac4ba8178026965290dfcc17899d592002e9ce523b8a1eb235b7927b3de4402f60ec0c4fe3447d1fa8158034ee9ba8594fd9f6217bf73e8c49ae41c754100f9b36bf65483575315f3807f5c7f4ef7feb2d4de2102f4add58540489533e0912c8bf91433294039be3706d6773741855c82aea5a89f80c0a26a43a30e13022c71d7607592669e2ba60f819411112bb1e9ef0aedadbae970ea13274cc08de8b664a5224a40672b9a10c89eb081c52d80bcac08e07e36cb757273a14d5ce547be0a3b149a5d8af805e4fa9a81eea6e6b70322a3e79c15c6e74e4bff9e572388af12795cc7100749ebea7b00d2f68f0a58293d6c0b482da38acf0c034218a488b53aabcbb38c63b6790480034c65216911e1543ca349c1d5a4869bb53c6dcb6317e80e9b85ca2a86b45a16dad12b10ec3ecc201893056d3ef8770a3058a5bc781c0b32d7fa569ca6121c8d6f720e4bb2514d07cb831a75d9778a12765cc2600bcc8f9cdce86a0aa309c6bc592207d580a1ef79aa4fc9979ccff86949757a93510b111cacd83ddfc8036d14f08737cf8acfa645122baa2c65e878d2ea235f2debe999c07428ba4670b7083cd7c4e09a7f3eec61be3ee29638ba665297524b7b7c0c3a798e951c789525a31081fb24a330c8e24015714a52d0ee2441902801e84c0ab24f1f1602a3f66007cb273ce011634336d65d27bc049c94408f4a3f007918798da10b4b29b5a4fab6e9ca52d6db9e4804c4b0947c1629a6426c02467d225c8a8bd87762cb4a26a12001b2dea837cbc320d763c5d9605499652cc8c5a044bf57ae3fd5989b3797d3de2b9e278096aaabfe00cbf49a216ffad3d78b45de27b168a5bc38110ea98b95b4927936589bc73079a98ed82052b57eb1a8b5e56d49ccbece59aafea3b185d76ba79709c97a94a54bc26a26bd8185ee2d590e42d5362bbe581d86a9b10f48e0a601104311318ab7e055d15b0759772d96878c1623186c34297a8f7c2920e1122dd2030970f74792c0ea86d3e3907f497abcd642ea7506e76eac665d84a51bafd44825e88a8ab2f37843647bd6b113a414ec4174116c36ef01396142a24f5ab7d722d8903e8c6d6a0f8a4f3cc106cab1518dd43d06b3617623b909f2f4debc4999641837c64618a976d7e4cc01bca6e65e5f48c3ee0a4fda35e48f783a1713ca183114591d87f8e1f674f50376dae923797c1b490f11e2c0c95b80a1e664b2ca608d100d337113c05f4415a2b226153b96a5487523598ca4383be74e947e486231e9b354c389aae323ec00fceba26a63094dc2b306f3acad02ada3cfafa7997397b1c2b4f6eaac7d48ad08743925eead8fd8ba41610eab03269444df65c8e5ea4ceb094a3e9f08074cf68748d73dd2c366309fd808f1baaa3b84de2fdaeb32f2a9f77667ea0bc7acdcc8053d8e9be21e3189b92f5905715e129fbf288d43518b85f82c78b17260ebfc9a0348e0102efa5a5af545ac8c4bc299b6db8ce2da7a43572ce7be4e64a18261bb4d1001a3aea87ec3bda87267b32d46f61995561a80debeca5845a316b2257026a35945a39cf3072426d55e047b071250a457ee49cea0f0bb8415a0480e24775b61add8b2c636c2914bf5a5c2e20848bc2d5120d8bf078e5e8df00fd9886bec512ea111fc0c058a04aa8d60fa1158160b7578f872a5bc7ac4702a2c042ac75a2513cd2b5ce185ed04f6a0dd59535d5e5ce24c3ccd3eb15a8c22d769992b8ccce58b21f6ef37a335a5e69914478f3febd852da20ad488842d09353aaba1401b44849ac79d66dacfcfaaf34c15b6a0dfb7770b92c57eefe491fcc354e11e656d230d24c427eba0487950e4a2734f711a3928bc04c5054fbfe621e815b01568066c871d25a51a1eaf9fe5f7e4c136d8d7c2ea34fa3ecd02e91555c6e4693aec5cf2507919860bc0ba8ab08c889323b2679f5612e5f5297b0817572021ec263b0d4ee9397920438ba090449472437b96608cf89f438d5e22aac07f7cd9f8d94ca56c43d3de10d3fa12e349738c953486b1842101c4eda7f8fb384163f98797443bccba5c397b19c297c586014bc009e70e73e879ce1d41413a4dfc9add6a1b50f66905a24e313d75bbe84cf044169db0c42dfd6c078dd47df0069608d0956115334c830776a478355c65331eda42a383f8a744eb2c723559bed349b1c27c8543669c15d138e7ff89e4bbc12f7f26aa825c120ffdf75fc73336bf66485a51821fc260a12238ebcddc9eff509804b99c030421513620b33afc28ccde515cd6927c408f22d9a5dacd41d10430278166ace1f13e4e5f53b92086aaeef9d99d878c6ea360582be83224c056b943101913d8e08fce21a4087e062c7440a6a1348f3304215c51ec4da5a3a6a02f230487485b4daa664e32d69029743a0f015595c9d0788e398655157e9f74a509312aa413ac1444baf1291c430ab6a88fb79e00f00370719e7c89eb7682297c3859d771375fd6b4da0195294fd6ba5193277eb25289fa4008599a0aa09b958b58eea609a3079661f710436e40e17c15c7dc26dae9aa6e2711ee5d0a2b61eb01a707d88edad5086bb8f2f9594cb6a35abc007adf1d63fa151f716d92e8bf74f56792eb6ec964c8da55731e9aee6c241bfc88f55b5c1102c82013c0bd6640a11b26816744f90d078015d45b7a988728f083a7070b21ee23f7d5022a8bfb793d948e34cd30fd2c8fd0de9b9d32b98b7887007a14b0384431dac7a5e1342a59017a53ce5152c57997a54b0f04dea7550447726a59c002ba03a9147783fb8a24803ef17cedda24b1ca9043ebbc3cf071fa953bd4df432e1d73e85860c830f75d06d885f1a90494a83d3e12976d448e4728ed372281781f3cb790ae9ddcd20ef36cb731dbcf3d14de15b612ad5794ca53aa6156ff6ec1b31158747e304f6e5abef9a016460b21fb79b13f22b20729fb02ba267b3b29e926f1bdd525fd839787a22437d119e8030ca517beadfaf02dcc1b2ea3f7a84fd46f2f4612a11aaaacbd8e4cb9a647bb50ff35857fa08ff1c1beeb1704b7eb5ebd989b2119c5bb8e5dbe12be236a9062ff9911201382756809c405b972b77214b90008d9d6510f0e75dda7e2ef08027673ffa3962e5941bfffc8b454760761b5c60daab29116d5c52ef8a0ae262175db8e2b0946a0e900c2b566ecc4bba07143df04a8601f6c2692a4c1886edd3e313861db4d2f0202c5f2ea4a64543dd7e8fb901bb49d2470f13d2c353d066e2c72f9b34c5d7f1c8f3e02c07c4cf4ffa4e9d1049b7d03e07348d675eb81fe82a23059c3b27dafaafc0a237292988f43fb632ff09782898b9b86b1a5e20657407b35c14318b54a4e5b0c595ae9ffee5a964571231020d663dee96f9f230f34f2c5bd17113e873cb850185a64925de0c4eb310114cdaeda063ed3c1031a59f496d02467e6cad43d598c999d4e75add8c674814948de9fcebd82a397746f771cd9b588de00916812b003f0003a3223c248e5c9c97739a95c645027a67985c54f419d116f2b8f0c399a06d6793a8130f820e170555df08382fc6e1820ff9b0278041e9d57b458acf383399c8f67203d40e1e8228fc9a7372c85164cdd1ac1bb6253f52bd5963582171048b9c67ae5f05f5d456f8e73fe5692c5a6882410b5eb9ab4501b8c6954e9dfd70637f78fa99a5ee3b6bd4324797d70aae23f67ce72051f82d786e7ac69824a92974e973e080916ab0711a069f3cc81b5fbbb4e4ae719cd9ca3dcdc74246a7262ddd4b4384e855cd76af03fdca9fe3dae509858d6d7ae5566c1c82ab0c2feb2b80b2819deae9fb6bdf106a4eede1bae05acb08277e7369ff4af57f7c0cafd410060147a2d38daeb0ea1405c209bd5ab3d454b0611cd4994246f426028780b901a26856a145e422f5b5e4ab3b4693317302bf6ef7213aa46f1509c00419c0c7a7fa86db030cb69501f67185005f1770dd94bfda05efde758c15f019f54ee41e05689ebb7da068fbfaaeac5137b07985f6c67ad4232c871bf21f4e3319522206287e5e6f3128454a43e9c8b2a371c188dfda06ce49802687000c1e5b24b33e0b4332b0675de5e2da5a77a936d1d8bd33dd2a52c132a7b927f324afc92bd6b069ec059d29d191ee07fdebccb657d132ec537d304d18de24c58d8f0866f40cdda912afe868d76c0f57f95e984a24d3d2732aadfcb961509ec0c8d9b876caa812b3eca55eaf724332ddea8eda29aa360a6b83a70bc2bd3e9ade5df699718d892f40e7fa5cdaaee841b0e3c25be47e74af07c051858976cd326dd4a0fd28312c530b6cc76c56656a64dc244a0c3bdbeb63bdbf663044dd368304580d6c4af8e8952e8f843db5b8e9d414a5fc353fdff414037d91694f3fbc2f8caa88c8fe061b327ae1a8a0c7de686178115444a1077700558bfc0a5f1af0f7c94762eaea41bcea0f71c131e690cee41b09e47bc8301aafdaf0e552e527606d5487160ad68d70bfff13c920843b90ab27cbc073a9735e97850d4411518d3f33f44ca5fdd2a06afec51ede0d42ad654ca9da30d48eebe20459dd5ecfc5426a456582af60f674f9d44fc2ee65a476622b71fb44998d0031f9e33c62ffbab9bb182542c4b9ab5d82c5b2a4a58163976bd68c0045479fbe56c5bb465261d4be2e3eb14f118a6f7aa551f98513b9ecafcb6c005962d441e02355c96eecdc49acfc321e816d0c7f2e088b25019ce8c2cdadc32018f6c069b888e9c5c8f53edd599f2aa612854e640960d873d51f0bda399c28601d617c16db88e817505d6f4035125ab32f610091b9be1e91b460c5baef79e753bf3b9df7e1f0e935d1346b91900da1b25793c68fc2cce3718086ee842faa4f17116986e2811e69f56058be5af0535180f89540b46c3fcbc09e1e9c2e5359ecc495f72097a0f6e8507046450f9894474b1a0375fb2b4538250947176f08e64bd1a571f91cb6b276b3a94c0819d24eb1dc36c280b36ca42d72f271a57e91cd8cdb83dbdcc9eb38b18c5e71734c8b8d3df6dc48b859d679ce4ff4f1c3e01e65352073cdee9988875e9b631307acb87108f296570111449484211e23e58c4a5550d83140236d241b45cd339d8163163b052b41dac9659cbb400b8420884198c3e45b700509852212108e165838dc74583879fd6b94613ecb09afb2995b8e4442cc984a691c9c7b15317a3173547675106b96647191d635d4f402c36aaae560ce5589e9889cd192db036cb312c30bbaa6b1c61b1853698d0772afa24c27648eca9c1e61ad578f1e63676adda8e1a52d76647df439a5264d9abe536e7653192c6a1378bd7de765f3fd323572c90d8e977031a1d13b96da27af115eb7f84474c72484968e8f164ec3ae02712e58624ce85960cbf512dce7e2ff9e4b382f4684e08250d25475e1da606dc5ce75e4a5a6309189a17153e156257f2b51f26bb4a290ca9bf35d2536c0179a3b463e1232e1faa1b0466066647f1a311dc189094dcbd25c01b98d3cc6dacf48f291130cbf47c183e22f1659870899641fa93edadac70bfb84bbc48e93250be487034087844294e85918a143d69b5b103f5cc11a29a95e451eecf8cc0778e24175394e07f7173692b57268f912c4e7943983fa5ada7391806a398b2b5eadfe4fe809748949d93cdd727f6172a0e6aa0a3c747763231c481134cb6da4d34866d2ad1420e771a4d8b9e13a5c4b078069675142a3fcc2967401d8bbc9db56ebfb1c5349743df2a7ad0b67462fad436a00b8e90b36774d8e50427df224da429c8ec3e8b1b9f7dc7957d012a7f15aa6898d3a5331475e5054bb93c1bbc51c93b8cdff60cc901aa0045479ecc5854ef9d41a31958220e9de3534fdc6deb84e5488f68e120c07fb2c3c1a0809ca0b4255364a732ae3aa3bad6546b1b25f6cce48257b1347914f78558fe7481dada3c5ec10b4ae16073b46085cf01f4223c997730fc9d59b33abea8d36da27c720a65756398d1b88b2daa46e7187368b1bfca4f7cf42d68c308d6e4c05aaba0a069affb39f9c62d4963bcad030e75e54ad7c96cd01d495324771d92962223007f2d8c210859c5ae7e01fea485d8eb56a3754d0c593afcae3dbbb605aefa27bd7cb72983ca5c54ce7a0dedafc30f4e336bd8e829e57b7b56fef23125d514afbd452cb70c205041c2845c82258aba3f7f4908af734c366d8d9341ec0be3dc5c6fe344366fa03ce44cd9a61b6aaa350439a8d0c55e7809e77656100e4f13b1c9a27b1a03bf56bb34c23f0f009a3390ef5c7ac80e5d7688e5cdc8b2685fe1b27617124ad753ae82f00b8444c671c284e5f3fd21e26cc794a00b6eb4e18b0ca228de420030cf4773c701c05b3377c9c11f1b3e5ff76ea29c84c4543b602057269bae1242811638048e931a7417abb64cd851926408a8088e37b07c074d130ab5de2a37da35efa0052ebcc44cdae954bf6b19fb1bc189680b7a2bc53320b340a23a3df4357638342ae0b5aac59bb466c69c7db5bd01d961568f734ae5a276ab868532a3cb3ce4a1e0e26b5c85d04161056f80ca890b83062b043b0a70aec0bf34c961d67726bdd6a1f5af2f2134119f22f390ad2579ff018351e854823221a042ccfdce7af073aa1e098e7b40915fb48296d159f008be72780d765881b5f943ba8f63c61986212f4b37af6e1f6743e7c7b88d77f87c11e7b35355a547195d26f1dde20d97f651ed0e61a7d96d518f6b8d0c4c806e6665ad21e024abbd6fc29b4a8e816975e6e85f64d9d414025f4f20eab87b411c2b448eb69a59c70bae943c37e9594989da2d6a47a9d1372446ed0ad7c1de8c2ec0189fc086e3110569ac0a8673d6f93bed58fd43756ca4bc1bc9b6ff2c7a09bd103dd2e29c29e4733fb08211b366971f073ef7dbc7c7a730fb453139d974283d3994e60250ebbf487798d7a82e555157b16bd7250f16b09c2059495a70c4f64fe4c4a3e15114d594d9d38dff46a53c7eeb2b9bb7ade53175ebc614ed8b998052e4bb58802857736655a84a10a36468ef613892df676f83b775ec474682fce0e43a8b4f8bc78174a1e6c9a9ee900aa124d3bd7b64c02ee9e9cc567282165f13d02999f14187b68eaf5a95bee79d29e05e71b6f72ef15b0fb2d97056def62d07f1bebd21479f8f85558252095a5f272e0d4110b77c63ab9217c9bd00799fc45547f902cdb0b881aeb8cf0f19db9cdb21118025a8575d5f38fbeba1e58eb756b58b6f4ad005758d7c4b72611373d941b5bba356a5e6a40a0331897a6b4633b8a35e12cd66a245ac7d32189ca28275cb1298f6af2a7d68f0f32e27b3af6ddc8aa35ed7503918505ece9fe5be4f5a6cdc785495ea178e1d6cba3010f4b92e5f3a5f674466b30e02159bcd42a013ee5e6514a68b560949010cf761ab1681d15e3ad0d06d5ac355a0763a86180947954e51263576a235c259bc81de3fa1b0b0fcc613a97808bba2d6266cf4a29577b50571cffd91f3fae6e92d68d4b57c2033469fefce316e691ab06636804913f8666f112bff39822403469dd69a1b035230ca91268027bc080e6195d8bc848153270b075a84dd54e2e83ef8979216351b3c21befb8402b0cc2a2bb39bb7481b0808a8ee5a475b00f868606baf730745655e84830c31cb91d57c60b26e932db893df49ed651b8568235da4668948dd4288d8016f210706cd5b69754d8a67597cc97064113f7e66c76e52fa7753328d73f178fe4c6b167d67ce7d9b42e9b7f71e37f4105c040a7d29711d3d70a29a5120d73705310bde1bc9c156a8e9bf441fb699d67f2350d2d048e5a671185a77c6c2af7e6a98052eb36dcde7914d276d96ac8257e441c776a123f1955fddba80c8879c45d7275c56ddd50141ea32de13456bbd001ae8bc40837a904e23be2713e9fc65cb57b51eb3c22018dab6d427bbc7defc2f81e2bffa47301ea0f995af7dc234d41dcf020e3732d16656add292430612301bf2dc85dad03751b9422847f981bffb2d6a5a29b1ad5dec9d0622c942527e82dda6f9586e80db7766aad9b4bae5cdb4ac5b3812e189c6449c0511be4447ee3b3377748d2b3489d4b9df643e235be3fbe6e2bdc290f0162704abb1cc328217bd66e9d940fe0fe6026fd62520f623aa6b6320d76e4ea1e30cdbd33d869955ade203fb0d5659226acaf235685d32a1f4a1cecbc6004fa84ddfcbe9e39ef6c9b02f6a2f02043f8c20787654b9d828ebe0ee3f191aa8a1bc85670bb0201120e776169af15c97e59a0df287f461238de4187b283ffaf33917120cbde56f885dbdd565ab78d9d76756814c84d0c3958bdc2945555ab527ceee5dc0e7bea9578b81dbd674eede94386702b6d677172cedac2b553b74b2b79ff97306b227d5048aef178fb469096610aa4cf975f651ef0da74c1058fdced02c8e8aac7c27631d400821c2515241055f55406047ba5e11c1fb79b2c040118cb738823a3eba1037cad9e3eaa2c98e1e517181546e0af3bc105b3b8e48eb123be905a30dace2e257f80b30b8a354f31e85367a17cc9e0e436bd675ae1c1853255ba7b75a0bc089a83127187a1585583d42f7a0bbc045fdce06ff8b94a536755276333a2fffa474d2fb6a6ecc76c78853d04509d5a2d80a32a007208f6576b02f44a0323d6df511e982317ba36aa4a1e65e4e00541a5efba502b8d1450e3cf36c52729c58f18ec9eb00b0d5eed0089bfed82e1e0cd9e9895db3fdf6800514399b0aa20e35bc0b5bec7339dc87ad5eb639b97ddbdaf49d6c7b6379ccd4af5d80b33c86b2b27983f5ead8b84da1c82c91a6f8a13478316b9961ea688262bc1e6eb2ecf79f2908ad8aa472fd36d9ba566d2f32408e462fbe5a3787533057e518c54abd192abb8a70adc67b2d3cc0a52587983013227dfe8da1a6e8f262c320906503e269beecc4d2583867e439a43e244198940e4354083398c629cea5ccd43cca1ea532aed1880ec77a2e300a4788a1faff82da5e135464072e951bbe40839e9bab213d9b38f594382874e91cc9692b4bd9cf4fea12c0c874c73fb8feb0ba584ca78ff4c645b105136d11b461be19f9a1e93f1424ea2f59d7d0b285eeba09c95a6fd3e2253fdd5a5643c6b2c4d21b48eca0ddb8b77dcc711d4de071d89235b0c1bbf8a6009c423ff8c089936cb33279d9534f0ac3456de1ca2e458b8151c4172c7e86691c988ad36b4fa097a80d0e4e5a6e7a235e0202a5aadf2040c39a288c3edb198c4f721b9f6005d018230ffeececa1959d752c54b12c3c23628e8e4b6f5a0f9ca347ee369e7c56d7e07fcadb43fe60d3a0b6ddf268ca055395a098eac7e42ad0572dd5bcd6e15f94edf608b506e1d6112a5d7d28216a40b45d3a4c003cd51d57e7245a4b3d6b29e74fbdf67a87e2f9b8b92d0e5ebebf365309c1f77ce5dc60d289928640196e9bb8c42694468bb9cc74ef521018f9b71c46285adf044b20168ed0999f9ddfc066fdd91f3858ccb9a37da913f06244fd16cbc45a795f58c453c2c01519c2fd63a6d1f870be8bccfe90a7a40f2cc27163e5df63079632f4f5eb0abfc5e1308ca2adbc3a881db8d71570915abbe0de03b8f3886a0cb058e1a3a4fef8d1c37b0907a41eb9ba18454c8d4e29438acf338ffd083760d351df6608a530d1da8d56bbf4c4ad85cf384dd3884604fb8b9cb20cef6af796d6e10d98603282f252118e9a7433ada4a1a363112e9e8f0837f36ca32b20baab0ce798de63bd7213677d0ba4ddccb1fb7872b9d7644fd138f86097d0c808168116ffddebc8cb85798563856dbeda1f1cffcf198d39f77ca5da3699fc797697c87ade4ede7ca29f97d4faf13ea47f3f227e818199bfab1730dfc41f701eea420ec355b00a2bba84cfd0c2c68e20c23faa2318f120a6c93f5f4d777809b15b3fc5adf9c7f8b6a0d18be382c34565789a85b1f84083543b099b134fd97a6a019ebb0436bea9345f1e1c7dc1b7a77eed996c28561560cd0598ba6bf06bb56e3d9319616e333353550bcfa664749f1def4b301b96c32b066e2dfee89c5e19fbc8373337e50031f2146a8c03c9c05990264e44d850d549575c96332945706747ecf0f7d8e449ca48e959d5cd899199f1bf4a9846d70871a7dd6b06089eee4aeeb732524cc6834975b32f568ca49cbb6baf7fb503ba1e3be192e6cf10f0d8f2348fc718cc681430e795b8256888964b7b3b329c75e1a23f149d52e9950457baa7556671fc6cb1f1223ae6e02eb8060f7b945ec39ec9ee0e1335d710c841ca56a125f9b5263a1a2fddd2f66d06437fa9c980d152c85617b4263434ee0412f15393684f435dd9287522515ccc9459ae96cba62838893d73c2500837212bdf1134def965c64ec4a9e0f867cd638271d55efb3a6b13456fa0ae4e7daa4435799fdd80ad32ebf03466ac65ea83dd3c2c37c3dc2ecb6a88486e66e81e757922630f4c2bc4a787164fb58481a7a3bd44bf8c9f9320dbe9a05aa0c3ce8d8df8e8015f46571820bbbe7a58cc30fa60a1ac19f54340fe0ca27ec8533abc71a60bde63409d5fe095750c2713244b097a43ad3d7decbff6521fb5cff8bf6998bfe17cd7979db31e4b92724a7bfdbc85dea351d1abc1994204c4f6fa8cec0021bc5662eb1c2c12ffc4e3428b6414d48341962946fa72148e1eb9734b919b8ea6730be483f4948e4f4b5dda09993d38cc681c358978a6bc329fe028cd95081cc732446e8afff89ec45810724df76b98c1b437ca09082b2eadffa4cd26c5ac30426923bd4b0a265c2cd8e86fb074cc80f20597d9f4a4d16e6239263efa6d0a532ad442ea92cbdcc2ab4c2708c75322d684b1510a1a96d3354f17a58d01ddc94f18ae71ed3f59ee9c87e15567b7867956f277f1a5748f81a665ad9bc3f628145401331db8fc75f0cf920c72c1c0e7cd35179ebe6c34696fe1dffb0446466c27f2e8b86de1879b6f0e4ce70ab5b1886ed9ac03392879160304f725109769836a7a6664e1e754a2345042361b7ff8fdf216b7328160ec6480bd5eca2455de93e0e2aade588097582c59261fbe6d62a6dedefb822768dd6a95c548a86d8c916d2338bb7bb3a147042b291c8370601b5fc1a2aa2b5f6cd1712c38bcd463c5e274f270e913c9368759cafc51c62490068d25a596748101a987621dce8342d966a28744471b01510dab50335ae41232a24e2e1e5940e45c06c394db6163c5aea5b3f2df083caf964e54f74a73837d44fb4ae4e639c4d5de8a2c7951b1a259e39b91f42195f4c30a9c151802bb5520ba1bb884581191ac5cc84c0e41ad7fdf7352493049a70421eff02646a1a03c2896e64a882d0945b9dcaf0e6b9210d498363e99e196ce5a67979786b941a9193deeaceca696aed8d4bd287d476c24aedbe87f911e136564896d537516d4fc861bf74c5731058f85f8015e0528286f90d64a5092658db7c9ae0a9add5a006c7cf1c66fdf9d9918c74801ebb634f49090a6e6a4ca7ebf1850787e08eade85526297fe5c67822c4ab4c4eff86a7bc0c1fa41267272cd27e6e7c4fb772268a9d49218b052f7d2e7aa1080be88a421bc8b88a14eff98c5093139b4adc9c0fb9c3677ae8f73a8879f08d398852510a6b70caa3c7514cc438790869269ff1cc40a10c6acfebd4fa5d7fc1ea311898a607f62bf5b51c9911d568396865194d4d4f02e1dc562007b59ef10093a6a3d6b17c43a4915d3dd8aa09cd519a2909f8005df89fab795bf9fceb5bf350ca2d3210b3a8d4cfdde13116131ad242f312eb8529dd22f0c9328c9ed5882752e5901f283a041de80565630bb45e17c1dd9b2184e257a61c3c5afd2c382016300ca9c3fb600d6ab9e001e7832e66afb34d60ab58a3c4652d0c33d9895ef58830edff6489d2348d74b39a411056be1739bd01ac9cfdb83be909a4758c0271f350362c48f087e1a067b51e53bd7fa204f4115f8640a02f040f401dcaff766ab0c5e5ce0da65b494d4ffe719544e441c0271a7f5261adb9b9de5f16c75eb93b2ab3491467f73d163a15d042f56f2e0d56dbe7b72c528fdc39e52ee0e6cd3a804a37e6d473723d750fc0a84208cd856089445b3bf05b6d034e944a8898d09e4212964318bd1f01f9480663402123fc3c44f62bfca5e02945c97cbc73cf7bd73a0cc120d0e68a64662dbd65a006ee6124c37cae69d5850afff6b0577059ec378f514070bd29a20b217902e61acbc1a4a55e1e254b4451d6d277b29f07d646af7d9462cbf000e67baed120291c7e5f0b31b4fd4eb5befbe6a6d4c74678a186852e1da6dfd30ded42510e3607108b2a82fcfce7aa015cbdc7cc67972ab9e241c01b6bb33f11f87a2fbe5e0eb32195e3e862028aeac7d6eb78f98800cb02b50cb400580bbb525496359811f77a4b2fcc96422526e0005de936ce7ed0f79c39f0397ed67dda261a9017a0053aeeecddd11b561ba75e1a25eef7140cbd1a8eefa6c341fdc67cb8bbcefc377f980028dc8e6a723515cc45a94fcdc4977f54211fea699e029e9ac6b1207dbc24788767245c4455180b22352e59c5df97303ecd2ad8c353e48723f3e58025878544f78d6c8faceae028ebbc9b8857a2126e3e16b8261bb7add956b7de74e09b09e15ad2c42961983c54238cb1bda7184ea763e2704d4e4d0ff81f5ef9cee84328c432e8533034c6c04e6fc72564f715988e4f158cc4dac3967c4944d6c795eb2461ce7e7555d8e3f6493258cb80ddf197849aa25be99a8060cfa2509204254a13df1702d599e390f10df20fbd93ce5eddf773244220a652c93b112007abbad5b291e8738dea521620d5535d5a46ab625e8df24b931926f9fee5364f83988f95d011521bd38c589edc3686fb7508421da1209a8d13174152aa5cd399803544a507746eeb7d6b3f77a487bbf082be2e534e00be54136f70375c065abd2c5a5d9339f6b3b811e030687a21726bbe7f7777669f0ae02f2dda2649f173ff3288ced96c41e8f0745d04a15796f38feb36b6fe4011abf2c0bfe716595a69eedbc00857423c2019b92682f9d238f1fa523b2e7f4cd2ca3afe005736daf99c09808a733f6a5e4dedf97170b18c8790a26548370b7699fab729d32bcb4cd83ec08fa8206958066d6f6e039e1bc6b3957bc69d17547a6161517fb15a95c9096819c2704fa1f30d88ea651fc34a9063116d0bdd6bab714c002ab094f90787b0c9488e305d9b14cce61463f10284d7763b8cc4a4632b24ee6a94113c47f0316cf9b210a73e038adab3f98722b1197131a5d38d6b0a6ab2f354a39e9d1ae331588de0c17bd26bf227e0b9ab4f1eff356f546c2ce662ea930db63753a7a0ae45167546c1484c4b8c6a4541b0cae504f64cd450c4658e2a7485b021550c2ab44cb9cc0c8e88bc73d46c47be2f598eed5d770ab6c349d79dbcbe601db673fd34d8ae935e76f2f9926257f3eb4a4cf108a45f7a031e806002c73f74f971cd197a62f050705759e7ae6d8337067ac7572537a9e1d6c4e5989951d43238b8288082f0585a10fd2b031a053668c3d9f797543e6c4947c185577feda9b8d72868f2d4f4599915acd4ea56599d55acd0ca56b39215acd6ca56b09215acd08aa107faa00ff4423ff4401f742855c94a29508f82b72e6f352204235d14468151e9a072b20a05e4b4837ae16b5ac9d703ab5ee96bb5a8e605a66d13481f575d7ed3223d3ad1342491da3fb695d26d9fb53e693337b7e337ffb45d711d8ab0a6a2c3ed8ff17e00d9cce5973d2b88499a7841347d209b16aeacb0bff2e741383e9cab32d413963943ee413de49f6bdad77b6e997dcf79d2fbba381f837eeea08033fef816ef51c6a917e65d63e44eb6d0d712a18250b61c12eb04706e98e9cfa95419ea4ed8158f27c623dde591dc78e48061bcacf29459e15934ed43d5025011a1f5e001b7d04af984ce7a88668d52916858aa1fccbeb98b187b4e645e1cbed180cc542d8893fbf7132b253107906d92ceef2a2a0b42d0d6ff4d77021ae1b614a5d12964a79e4fc06d134b89a7d05e8ba5148a1adfee9a80c052aba1afbaad2cd50e28d62531ef280ae3b36ab04044cb565fa5d84a191acca09fa62d1e50dc84b0b0c49319243661178e362132c1b524a4a6462cd15be2d9a06be3d36ad15e41ffec4f555cda84314a243d6e06f247971fcb34887fa89833531ce303968a0819a67b9f6742bda19c4eca15b04192e3297c03c4898c4811d685d7628ed78290bf9ab5c58bf704fad7f0d3566c6a5bb365b020df480453ab356cd10859553b2e8d13e63f6fb5da91711b1081175fb82b253feb64003f449da2fd7c68b51dfd154e4427cee96185286e21dda478ba577017ba40db390e470226f234fa3c8f32eb02d3f23f48e9ee2018ff4830a728776554eb4ce88835a0df8c3af565d7b07e60ab963d9fd0fa42eaf5c1d85db3fa4328d3ca3299bccb9320e6d812964c184965674f00d16438eb02081555d758898b00aed42262321223eb9f809285407c2a71788db6908e5b7de0c274e38f76faf5188e26782cc78c6e81d86f62ec782e909bd4f2a682322783a9642ec3da511f5461acef74b69589f075a4e164477147ef63ddc627178d59fd61078eeff7e4dad4e7f9630f45a5d02217cb152d0015e11f236084de8f3eab748f36a1300ce20cf521610b66e59d61ab29d0e977f05a070a1e83eb0522ace4a626b8de21ec4e2882412f33a4e2c232c33ef0f9f6e99ee8301085753eb6e05fda571e47adf22650fa484f7efb2afb2a0a718acab9db6d3ba6c383a71bb607de95310329cb894139275576fe4ac6e9de8bd1cd6ec9066be7816fae8ef2d73d1c602dff550a70995900b2e4c2fbb585af5ea0a0f2c049f54f502d77531b1aa0cfd7918631a02487162dc9505ce9b5839d0f6e3d97cf9671f21131c9bed3c2481dc38e76d6dda493931ac5d1172cc9d849f1992306a4cf17f2b7bdb752bef2e98a6a5e81c8bfe6403aee74ed1e8710c6c1ff69629fae3dcf0c8eb407efeb401f37375aee32c0dca233e133698abb4f4dc3198f6dba2ee631a351708b5d6a348627e569377c99ed7e87c7a771899a5496d69d2385ba58e14c1509637f81c1378fd98dbf88bedb57d56a333d3bb2410941d5e7ebb4587bc0cd8a215c2499018c21f663b4f8ab693eb1092bace32d88569c1d9ee8c3fadcae8117d20751908ce672d5263e0270c6e12836d74480f2876798c5923ad3f9db7f533709244a1b708983a587dcc2b51e888d46482cf87e39f359ffdc98084faa19e6766d0306fa107bb3e79d6e18b757d761a69cb202ac54571592870bde6ec57b45d59c533f69c630fce7bedb18f085fde66ba6b73542c3c31bd77c7d149c7ed69a567df467f4b5e6bce56b3bf5553e3242daf2387e55a8eed5868d64cab9850c12f10caebbbcdc84078239eeb54afe863d47da2817eae5d76c488dfdc1942f23275b55641364b9d2a634dba529e4a6104758b86178943cd7df8f837944c93a935c6b77b998c0adc63a55807456882c4f433d0257a7535d785429c122a2cd5f67432b47454cb02530f72c01f5ec682c421d353daaa02191080385e6e7f40504fffd8ba64514a88a91494be60d156f0a7fae83719a92a01ddf3ac8aa99fae7ccef60296e425a7eff7196415270de694c0830c08a2d96ba0121abbc446fdb8a0886943b032db5eb95066ad6f3681fa0a9e27daea0d771652dd7590ecc2df9f61d8e9066db000bbfac380c17f22d58b9a4588326c2b3e42a4f80abb83016bbafa434e9aa0324270e35966ddaab218fda3838bbda19cd3af2b742bc3cc0c7668f11934d59ca859a0f6ceb22a866f4952abb5884e7d85dc4245d69234c20fb1c0052ab432fb39cb2b4b9eec9e68d9a5a84c85b38f4a489fb6993fb8120ca7e0979b95052e26c82c24133a054a1b190188aaf33b3addc8421cbf1423e71bf50058d27fe647c2d5158275b05c5cdf51455bc4314bdf38ace1beeecfef49ac21d6c7c1debaf3a5dc6794088d7e68b7fe3eb8f19fbd1e4717e9ccf0b85c0985f85b55e1c7b1986bd57564831f508ff09b0679606528502066c6849df537065957343fdb512e6d876d1494050b0cf4781b7f2ec325e1dae0952b57d64f4f566e0a5082b2a1edf9935ee74a28285140abcd10a0fe3c12f9b4fabc8f4acbecccb73c9554edb977437133516e0a41e6c567b4fad640a128278a2bfaebe355952b1d2f7fb61a8382683d3b5dcd6350d9b4dedd2ce36fe717c9a88828875884a0787964aae3479d5dd31d62d984ac7404d626cc3ef1fb312f0929c48496cdc08f234398f44de52dda8ffc9fb626de15e2352bf25723b3761e147a2e937725a9bb25a0373e1d267a53fdddee0b4e1add092817e49cbf4ff2287a6a1eadf7deddb9b0fe77aad1b99b58169054543290e18fbc1cc675974fc0d4153efc2ab039b14aa428d4e57fdb1a22ecafe194c70251d80441100989d8ad81e6161568c72cba3869bd8c78bbd14a597d012b15f0fe9d14de914b19d617588d63488b1e34ab7a8c8d2d7e3902326e5637b92699a44f813d3dd7ca33648e136757671aa68806ff981bcb38568749ba6e429932fe8a20fff2483efb01c54f0161260ced68400aec9afe9525afc8fecd10f9d3e1235ca6d759dc6b9216877d4d835a00a2a3c965a878494bde6731d98ffd4958c46502f01e5327bdd12e19ae97dd355cd056a5e0b7b3e65808c67e25a6a184968bed8b6b4f7265e292a84a014077f119a8483c3160d10698f59a8a6cac5ca4cbd8c8286c55de071c76547c252b14b581c0f2733a7999e1c0786851dcc756b32fe261501c79c0def7d9dd9beee4ff2fee830e72b6825d0cd87cef1a6b4d4ad5761d1de70379a64ed0b9d028fc82ce0dd66590a1cf4e2a5968343cbee1b8ae1546bd0196fa5bdabc89176c5f2fa76f65710ba75f8a9b7f84c60c2bcb4dd217565b10d6fc5f9241a0a4d2a03369013e0d43b8412f3681a8ff3d9ea74e6acc8bf083cb83471f9736cbcf43c85eac9d83bb150e0e6f67721a118a06442950ee03579fd39618c90928172939e018236f7b194ae34d59041d28a4068730bca3795b4e4203c041a4c155cf2461a225bd9dc7910fae1e98affed39117dcc32188b582e43f7c765accc5044b38ea03adee82758bb43b7f89229533f0531b904c8b909b5296819cb689515c66bffeee03478c632c451f3b463af8958b324655107041129df64189a2d7441aa230b8ec7643ed55e7537df6dd5958df402222f924497db44cb1df5c04794304584111fbf9d72a118881b1d4ab4e6f80ae60b7a6884146ed8a34055d0423353e74593d8368641b9838e5ffdeeb33be3a16785d142e3da513709259acc0fab2dbddbb4c071dbda8baa515b7980fff1e5cad8c700da8c0097c012dca8c1c21588c478c581d824586e6d3091269c1adcf93ec255d362b9feb297f754c09f6a07710e260a63cae00309db63ae6ebe4c5dbc393b6dc0c12be9921b04f2b0c4c9a0d2c16e43988eb1aa88020ea3e52a50c2a5f280b3a31e60b565435bf16ce94056a6676fb0e772f124ed61ad4c3a401352ee7c84f4801f836560563c523223efd796d8c190bea8449401da88f660250bf13866eeec051785f9253431ad6d6680930ebb0c5ac8778b2391e5ac3a185d289740a5ea039882ff15f12344179b5964170828a35c974a95f86cd9fe760de7c36e062599ccde2086f3768d5e1b89db52a3f4a03d884d05e0ec095d6c570d7c8508f336c3805c71405f0349b99789e171184c045f6e0c3c13edc4bdf65e8830ca2243b7d4e232f25be85c736e66fae067f4fddf865cc7d7233f61e743730d2790740f6d2a57af64d7dda6aab1770d67acc0831ab8755e6dfb0cad770417334610d1ca0d4ecb567e5b8a65ae94bf35bdbabbcbc80158c614acfc9b1ca40f8e4fda9c2a2ee8013e286244d65e5ac20a5eed13d35cfe9b758723fdedc42046e93584bfe8e1c8f98f7cc720b91a5afb4223cc5e3fe2d8c18bf17d5fd5d1208a311b91a05dc38927a56fdae7e1dfcfd1f314a5befe51c8c9f8f13b983a6a480562afb86d1d7b0dfbb2c14a47300c06bfbd762fb9001767631820978159b1d990fc19ef879016c36e30ba3dfd9ac1eecb4e8dafa1ecde28db776c99869de237870087e5a454f45eca5a4caf72ae1792a98b488553bd1887045732b719e0e994a1cdd9758a0684c64954c1a7820933046349d8798c50497db0d067e68b11c43b679262dba148bca030c5b50b27a1a50c82c7448c4a6c38cff125338db0d06d03f7a30866c10edfbd0a91e4e0b512ac4d22bd08724648020ee2fe8312537e72eee9317b81e35cd14ba21be70e5eec0bcc5a27f5c956103a35a64f441b6a09a4533f794e7ed852e9ea68133657294e3d4cbfb6801769393015a5a2de5e82606f37caa6d465ab3f30709106872abc82a3116b186912bd980e8ed51aa60313860368bf106ba21e510c9fc4c485a60fce579a552e500616666d0247acf618a478ebbf46bc81a19b9d9c6e0fa739c5f63e284d17e89361b17c073ee075e64b049b3eb997db6c7922baebcda472b2144e13b9df964b693e1b90966e8be485d79210f800872d94f51bd8c0b78fa61c75232489d882c2a7e67edfaef968ed71baee4e1bee9c4cb661fe12300c0f5df410c56d126d35dca2a245d3e44a640c99d19538cd456d5cd7df61152818504bd3309082efef8a9013554e7ef0088bf4e520632ce54a1f08f07250f360a0d64a50f2bab18cba35cfb766ae02e7bd1134e8a20bdca36e6b0106b9745dc312f7190a7a9c67f9c477b428d81a2f022d968eae9309ed73a044b2cdcd56b46b592d3ae94a6eb830b1665b004838312528ff96e520ad8ac55847284abd308a6307c1f67f80c1289f24ed28a40692e13d6ced140291d4c086352b2942d551bee6f7496929541a7483d2bb3d23a465d1794bc53c01f3102962ea8f028443c5e33fe9a6a04cd9f707315d65484d7e825d6b76b35444c1f9a1a0ec154b9f5d2d7fded29f829273001ee77c2b8252f68d172b744c217542895c355d3e870e33168b5ec6c7f8861a35304a6b2ab4aac646ca3b542697b6001d244dadd3acfeedbec8c139f85bd463c80c9af817d31f177a80ba06f80d9a76fa7f47a2507770a30207657b2644eabc151db9ac134447b5ff902e947176901ce12d7d28fc1e20c3783f255293c84c6c0cb784b5d2f40e3b34c4a08cccf9eacde12ec3c6b67b586b880e1077123ac70e0f86ae499047e1389e998e36f38371caedef37033459e9745585027fa01048032807df6439ca9feaf4eb51fe6d2fc620e3393f2c5dde39b954a0d25d888bf48e72b3a0feb2fe2c67a1aab3dd10f72d87168f52466f63b9c3895bef676d2daf8983fea80194f467d036d3bcc0b195a7c614bb4e07c1c8eafd953cc81b6c20abe52352fe7c0148f9d98ab97243ac0e0ec46a93d72e37300fb49a4816aea289df48842c8bbd38df2a9383e5a016ffcc1db6177c01713a3635ba5242f20a08e5c61322b0a540b715bc6f8353d59902c3c15a75d7302e3df555314bd4c7508b3d86b40488f2b396ce49d51306a6e3e72d1e3b9849801390119063aa9bcc5f7c9ee8efd5acadfb9704c05205a2fe340e155dafee2899dbf6a1f4b98f5b2e7d21d0282565a5986f9f3f5ce0c950f564128241bcd492f38f66455c73b2c66ac59787a8f0d0a5d5300ecfeee02e0e216a503406e5297339a430d633b017140f1245ad58f328f5f3e6c48244d79605e087f1e51293158d7cf1407116bf0647c85dd0ae8a5fae85c63f8702685801c9b3aa618fb4f2ae5956bcc39de557a7c3baf26e9e95c6e5d6114c4ccad6c0a61cb58f92e67a281501df5cdb6df8fb23deba633f2b3018771b0e697011e362425ed931d020db47520823adb408b3f50c063babd5d35d541c6e1a6f850df8be2b4ae8951f6ba3a0e87f06e34a4aba37eead35bb9fd99515e3cf304e0bde73c15a032da172ebc2a939496b5cf5e1eee69233bcf0d0baa906ed703d84af44d8a0124197a01757427fdcb2253574f40e3138984ac39d1c42828fe67c2572ceab96a1c55413fa6483fa88e1e56cb093b6cc209b64c496f990489994307a7a8ee5ebf88788a3fede76ce128bcbc6b7653bb1cac458cff4405aeb0d1d267e1a7645334499117e7aa47c8ca27227b0cbf785f67ce3810529861eb374c48c51aad720820162927041354b47b22ddf08cdd29796676449da8a64358ac480991156a7d18b43fe225d3612ca03d67ae67401262b2ae9e89ba8b099039a71db8f57c08d66e97a56d2c4b4a686d87a7b50995ed28e40868755b22663704e1a0835e921e4282c0910ad7447a1672d9bf1ac5d860650879e392313929c8a7865d0a65edf0b4084432a6132c04a99147efe0c5a0ae2059b37165fd7502e0130abe4a139ca8f6a9481361526b1790d91f23fa7a0c486d286c6aadb1ab95e13962ec73c127d8d633e9195613edd531f5c887593b0eb974e1ac2ce7d59dcbcf15ed88c02d1ea27c99540dfe95a5b3d3a914295bf5e5b6a1a99988676a3da73f30cee3e15cbcdcdd7c4b10c9b480a62b047d6c4957c361c51d083b8edc8651b80e3d88670449696be9da5778f86ed0bfc682dfb805d618f26078b12c6bd331f453131de51960936976059fcd8a07a34820aa48802360d3a77a36530917368e49d8b001d13cf6a4dc9f3123c6613144b4a11f360767683ee82f641d113672202c1f6b9f26b810ef3ab25869268b89042b70c362d71f21688e150062396686ddf4e01e6afe47a8f8f0bcf068e67dd9b72ed0ce3dc25ba2506a1ff4f045ed79eae8cf251b672b23a2b1032f112559d1c8165aa33274d23af50cf56c4b35bbc8215a0bc0d13cc5846431489fee29dd677512fed07fc083e3659e209cea56c61d184c646594dd22d5174ba60abecab26fadcef5cffff60a53a8c5e69cdc5118b5586cd3ac6cc2825c69284d8927cb83b88497415f9a1ce0606265bcf8ed3f96a6981a55cc8c09c2d640c94ab477dd8efec60f30e3647d3b504872e4d934a041dfefeaf3a4af4f70d1ec816b5c1ef41eec187309fbb3abc76d85d1fea7b70798d870ad126b4ac3c6a04cae283cc5a209695710e6dcb5f4917ca880c99041b28233a641b6ca10cdb43766aa33bd41fc965ee9d6efbcd5a342080ee7c284761057b72798bd27fa766b8ac80d64b2506031d7cf06353451b52c143fb5ff68fedfeeeeeeeeede524a2903040d590dff0b326c9467a329b8322457e8083632c42d62b11a8b7554c0f066d929754a1d17baa56e49e7879acd06c4cf4f17e20608c8485090874448a8081cce3b2297436268c8634244d4a4a8c863c2c8c889a3230f0a24242992923c2accd253f2943c2e784bded2cc0f32361b103f3f2c1f23040c1090918fe51312eaf859f657c495e170df12b3fc725f2eb6579449c7afb357348998be5d60e4cc901103c7a686f682c6c58c4c0ccc8bfa39987c7994088bcbcf8b0ba79d2c2e2c2c3c894ca63ecbb3701d6c54fe95df5012d9c3760e341d088dec939de54e0bb585cac2d11ff5b1d7b9d839d9f9d939da79aaf3b4731bbfb63abff1abab731cbff2ce63f8f5d5b9daf95b4c833d7f7d6b37cf7f766b3ccff90a84a6abdfe24775a33f2d366abb5dcdc13cfb6342f4110d6518fe1870dcb0516387060c3ab57e03a3494e5111134646339c907174040512528c4f8aa4a48f8a4fe953fab8702abfa56fe9079b0d04e2e747082020d0485010122121b0081cee885c0e44626888091111d8a4a8880923d088834eb81c1d410172302909a4e2ca944025d08a257009c65ed12456d4061dff0c1931706c6a682e173332339424011a24da6e2a79c04789f0166a0b4e3b790bce69589e3fe73ad0b0f090c859863657cbce61d681cc4eca9d17cb8b857316bedecef2d8eb2e9106e357b276f3eb49ebbfa2b5daaf299aceaf690d865f5b341abfba6a3bbff2ee7a7b69357e7d7597da5daed7b726e35d1fbb351befe2ebeb4716dbed2c2c9f836dec10881ffc3536ba4303069d5abf816164882216ab2d2d42e0000119090ab24152232454040e473be2452e87c4d0100d131744444d8a8a664226641e558646a151e84478141ecd42289090a4484a0aa94095a152a81472215c0a975e7e70b1d980f8f9e91826840a0464447489424262115786c3894b50a59813732d7b5571f68a22d1f1dbd4d05ed0b864663130311798dad192077c9488ebc5f2e2b4d3f572b966ae77711d669c8b499c94e2d05ed939c43a909838942a779e3f77b9385f6fe78f697ef55efc2ad27e256b7e3d6d7e45fbfe35458bf16b5a93f16b8b36e357572de757def7db4b9bf9f5d5f7efd7b7e6e2f7abb7d67ff3ff1ff9467f7ea3b6db79df2213a28d1e7165f8676c940557c52f63a331706c6a682f685c6cb4c8b6585d5969522b2a62c2c8e8c609184747502021895224258954884aa292c88594525c12977eb0d96240bcfcfc080104e462041614844448482da2050e77442ed7f7b720c13234c464dc6351d1c8c49519198d4fa494e3d1faaaed158d41c77f0363afbcaf2850abaf28900b26f6e202535bb4b070d7e76014fe2891fdfc39eddcbf77ccf5fb37d721e6e26314e5889444f62a3b07b5035165f865aa72a7e56ab9f676b95c7ef56a2fbf8ab4d8af640de6d79316f32b5a9bfd9aa2c9fc9a7694b7b7a33ccaeb5b833dcabf6e6de6515cdffad1b5d19fd6466db7bb66f62845d29824b3515c0ccc46855e5c6036231535bf2a47a55169e4c2b8342ed17e7861b301f1f34323840b20202341412a9216424245e0702d47b0e472480c0dbd98ac101135292aea98bfbd35928937327282442191904829ae2c894c22ab5895a412a964b35734d7f1d7ec153da2e3a7bda071a1b6686179adf0efa9eb5122282d578bd34e94160a8aaaa384c5b31fe551b80e2a6945492e25913d8b9dc3ab03797572a9e397b5ca9dd44e6d1494cdd7dbf763afab441acbaf64ade5d793d6e257b4a6fe9aeaaab79706fb35edaa5657a95edf1a7fd5ffadc55eb53ff5e3b6ddbef7e7e0d82e7fb0d9505c8b1616234314b1586db580a0f9f9110208c8859199a0202442423245cc70b82372b91824608686981011bd3471292a62c2a83452954eb88e8ea0b832a4124955269549251557a6542a9556b028cba572a9e3b545b35794051dbf8b1999590ccc8b8b8a6ba37c0e66ed4789a8523bc569a72aa552f12432990e2f146e12c12afe566926316d2ae50e0b8585a252a170ecfad553f955fc5f49feebb9f22bda4fbfa6fae9eda5b54eaf6f8dc59fbe756b2c7f4279d68f281bfdc1b6db51504c207e7ed0146c14c955f1f38d0aa9b858a45242c4000119090a82411213122a02877b39c2259743626808c64425226a5254d4f1b760a2c5c8c88923f3e864427165f891904c29ae2cc94ceaf8f736abf8d2543295527b4d63f68a16d1f1c3c4f69a7a71d92b0a535bb474170aeb84c2e2b493c53ab1b84fd74f9cc5a39a40a7e2a6152aa5b96442ed1c5a1d48cb5ce2e54eaa4a55a7934a85f2abd74de2a5ed5fc99af04d6ffaf4d65a6fe22b9056577dfaa36aa33fd876bbaab54d3fd84c36a10cc3bf377a0405c502c4ebe7470820a015233c28088990d017a182c31d91cb75ec4282c5d010932b233211994c4dae0c7f91a9c8c4c4951919999e58294d47a62396bda244ac680a3afe15fe2a2e162ad5a3444ca92ae5b4d3949a4c218be7a443ebc44d51f0d28464ae760e6907929a9058ca1df4849e4ca6d309f5ab5743f9554cfd4a76f3eda5adccd7b7c67af351b7b6dfe42b90b49fd01f8cda6e3f9d3e07ef6d92e2ca7052128a82626db4486aa2e2bfa5342999944c5c302d9996547e70d96c405cd9cf4f6721440b08c8c89505059948844ea1b3882bc3e196b494672e97ee1545d2f1abb858b46c7f953ce0a3444cf464a2a619b2784c3aa4267eb294e75092f053760ea80e04d5cfa18e3f54cb9d13d38909fdc134134df5ab27f6fcf6d2527e257b4e3fff796baccf7c0582eaa63ff9d1b4d11f8cda6e37994e264444a8912bc3afdae810174dd916aba753935451111346286f6fed740275740405d289944f29ae0c7f52121557a6745a012bcfa573e9b457b2a7f68a926045c5bea240bd45c9f32891fcf8c474a27b92f06dc8e231754099fc44a43cd992d8886018fe9772a734519bf9637af335ae11df7cf2d64ede2c7fcc1bfd416dd746e404c495fdfc9c8438010119092a726be6e34787b8b513922bc32f2454c495e170a72558c51f2b4f39ace25cc72b1ab4a2465ccc476d985612c1b4fc639ad647f7cc593ca426f92909ace22fb7ee2fe5692889f8e7ce81ec40c83e242b77467224bdaedf6af0d64c23d0890911d1a94951d189892b33323a3d717414433e5a04d380306d2447adad0e64142724a424e18f317e5e47fc55cb10b9c530ad814c2077560cddebefba17d2d12218863f07bb28773c2163101a84066d140805eab8c8498a2bfb3690d4f177fbe4a23c296115bf529e29794014082d8206755ae7931558c57f3a2d758cca7cb8425e3e6021df7743a0036b73c6d7a6e9bfaa623cbb69faafaa3319e6375f2a720ff2090e8d16d3c66badb5d65adb755da7f307c1aaed74a73bdde94e77da6646ac6b4dcb3725bbee72be48d9f33edd7560d69dce5848e7c3c5a5919c73ce58099ee7a9e0e0e0d8d8d8d0d0d0cc66b3582ca6aaeaebf5ea3add6ab5d23445a13446e99cf113f6ea934461f5b18a5f33144d4e4a63470b2b6087978f4d2502142b2234232247b384c84609a3266e144a548155ccef388ee3388e2310abc492d255428910c712f5abb4c402a52aac124a4b4bac1237094b84e3e3252159224bd4d9ef3b745b0cf3f13aa424254863141e5212cecbe1d8e01c19e1e08434363638384647461835816374740487081b1a9b22221b9bae3b6d8b61363644452b2052c286a808c8268866463394a3a10963210d4d6ea888dc129a1ca60de930244213c42c36c309cd6ace35d6b7c5b0d94c08a702a18b431eba0bc6d45810d0188bbd54b5db5f2c061484032a12030a0212ab427da9f7e7da545544d5987e6dbd5ee556d56bc3ea4f926b23a2761ba6853fd4a4d7bf78d8e1f5224914aad5fa7fbd76e021054a3eaf1d78e879e92879e25b3e9d037efcb75a3e5df7c30128405240f7c301378c5a69cbc78e560b854ad3566b870f228c7a5a3b7ce0b47494803c1d354d678c6bdff77ddfd77d9ffe3e94eeb426b5eeb4eec85fb5eeb42675a775a735a935d9912090f446b873bebda61dfc56b28328507f98e6dc38c109bea581691dcfb911ee5997ea28016d80a04e20289b190a4592e78942cd6c3e24331ad4cce685d25112dbe1243f0e9c360cc3300cc3d047ab7f9e1af4d1e1ab9f097e7c61dac827a05fd56108eed447dbe8ba51d374c661187e1c38ed87e3a86923ae8d2078338e60b7faeda727097edd7ef04cbbc7284c0bb90ee499ea307c32bca48e928e87de8d9aa633d6da5e990e5f832098afb802d7c0b7e05bd0720b7e3eb9832e38bd6dc1febdf5fec310ecbeee73d7d6620fd417034de0bcdfcfbfa697eb2861f1d8c77cbd4888c562d708ef088ecd2542737f521e6656a880c494d01f6a14273dafbb8488d30267298de985ba64f93938a67bfaf97ddfb981c4faf99f773b8b6bcc720cb7ede3c9b67d54ed3e9a488b692b99595027272b7cca1f889ac493158aa2e8c9ca24821b454de8c9097a42d1939393e904f550d3c949e7a1a6ce43a15026138ac66442994ca61393e9c4643a3931a12a344551f402288aa22f138a9a4054eb75b6dab476ce95817fe61a8d6120483303ff84afeafa20f822cb2b973b2567b9cf7aa97840e8db18181328a2312693c984c680e2890965024d68f7e5a3260f06453b18504c710f1572749651012039000f5c45f27f354f14954a572d8cff7b0680919cf8451f03e0fb4d34b5c21a244f54dadab1439592ab79a2a854bafad5e36feda8c1893f9461c7abb84c348535489ea8542469d0485358fc2a92ad5fcd1345a53ac6f853fc38349238f18339345c2c5a268a35489e28d2c6262525921d9b183f0affcc860627fe8fc6a6c55a995883e4198ba550c8f45773f527fe57ec43e2c4efa9b1146b902cc97f94945fc534f5f8c954bbe0c4dfb5b0064d1285511e3f08e49bc179a2527b5bcc4df8e431fe254efc19b5edb657369e9c2713ddb8f51ee919a8dcab45cab3d79af68cc9f435c3b9d1f303080f4480346e89ce39132dd1b38dc22a592b7e7a2ed285b01143b33ba3c4ed74dc6c54863f86397c513fe6a31886dc07772c721cf07b1f5ed2fb30872228be7e70fdf145be5eb2e4117b389636bab7a0ed2108fee7720714b758ee845c831ceffc85af6f0d87e2dfdaf7a2a72314579f5bf2880f825de4aceff3eb1c38c25bea081f14450eae422aceb1b4513ec87100df7bb1e4de95e53214f97ac1d11bc1dd758c31c66fcb0fc79839f878eb2bc3e3df5bc3e17b0ffe8a3bc843b2bbc2e9733b0ee27fe2679e8f7b1cec20677ddead818f7dee0a5e59f76069237c1cbcafd441f6f0bd5b0bf91a01211dfcec79e58e1641310cbb1e3e18828f451efde2dbd02f0ae9e05eb1b857f0f17b6f4b1ba0900efadcee716f3f205f716bd792b7d401886da9bfdbfa73ee720fa6c8a184745d976fdebadbfad35f7d6e074f199c970be9b9fb9c0c86ef43ff7ef4b4be7aafa1de9dbddd063fbc60a777f717877765dd87e50ef8284ccb7c02b7eb2b7edeabcfed5786ac73b22e77acc63a3c8fb3708042baf07a2ca39e83c7acaf4cbfa77bb8e35d59febf32bd0ad9e92e5e928425c23e1e2e8783718e10616303144483693a912066f9f18c87188e01a94205a2fef080bc7a9e78dc712f459d24188333b770b07a1d90f2e0b3c32cb50182e2c1e7858aed70f2d073eaa3df87ec1eaf41ba9d93c99cf70af6fc5f0c4e7b6519ab99c511561c498cc9d2b45a7fdf293d3dce39a595f2f83c5718e585f2384d59a82c1e9f9c7cabc567fcb18a0a0b0dcbe39515d5467ddcd2625f1e6b99ec31cccfc80a409acc10fd58a7ac4a395729102575b138d9ad175769c1b2e2a2b6bc68194ccc4c010a30f3e38c8c8c0b1735c07a600080f5800500e6036603ec06980060038011006600d80fd8016008802500a600d802603c60360fa3e1610c78988b9ff9d1c58c0b179f8319705b800212808003fc3000010620801b6cf011801e00e8a9a188c56a8c1837d80d7683dd6037d80d7683dd6037d80d7683dd6037d80dd66f7266c8c0a9d1dc6037d80d76b319e262db1e23061c376cd4d8a101834ebfc9813143064ead86f682063633c369276c0606e3490a500099873d4c2689ec47190c8c8ccc0c301db01d301e301a6035c07a600080f5800500e6036603ec069800600380c5c06a0fcbf130023c4ce6653fcac864643e0713e016330001dc60838f00f400404f0d34f0d8a163861cfd26c7a686f682e606bbc1dec5cc0d7683dd60b7da10191c376cd4d8a1e1f2bac981e1921103a786f682c6c50c8c0c26e3b4532683c9609cc503f3b087c1c4c4bcc060303031f0c89063061d3b78d050430f007a04c087c6f1da86d730fff223cc0b8c0d37226c0324eed0112c300297022442478c0c51c46255c6468d1d1a30e8f49b1c9b193262e0d46a6664377dd3377da31902b36d97b1516387060c3afd260786cd0c1931706a35b4172e66663218cecbcb0b0e0ca76b589218f547b5a50506dbd135b40d7d43e3d031681e2d83cea167d03af40ecd43d3a061d0b2d7345ed7f01af6ea8f301506fb1c5cc38d061e3b74cc9043069e18905ca123d8c810b788c5ea8b4ebfc98171d3b759eca66ffaa66fb2212f7b9da14cd024625497193262e0d46a682f685cccc8cc60622d362a4c556d5a6cba6e4912f32e2c3fb2acacb4b4e4dc741d1868ecd4b071e305e3750caf5b9ee5c716969696cfc131dc6270dcb061040d1874fa4d0e0c9b193262e0c06efaa66ffaa60eb1992123064ead86f682c6c58ccc4c06137b7181add0b0b4b0b0d0acd074bd9224e65bc4701595951519336c60e4a4359d5f5b34187e75d568fcca693bbfbe748cd7355eaf3cff7185afd4b8edd08041a7dfe4c0b0313244118b5596da4ddf666466b216377dd3377d6b19a222f1426390e32dd74c06137b515ba8ccf80ae7312aaf5fab2489f9d7f8ad968a8a0b9a17b49a1a4e2d868c5f5d5dcff89577ad675ee7bc56515151f91c9c739b2123c6468da8d5d0362ab4d123435cb4c80d0c9bd88b0b4c7dddf44ddff46d6508bf81613373c55e5c606a8b1696572bf62affb156aceb569298df2c7e647172d26ac1b48b7ed1310da3657aa663b4565fcbbc6e3d8b1f5b2c5a32b798990c26b6512117985a437b41e362a6450bcb6b85ef9bbee99bbe0da9a1bda07131d3a285e5b5c2f79fa82c5a2c58a8276ad7274962de15f379480cca8f28697a72c2f58a7e6916dda25b68556bbd5fbfbc3e413939f91cfc72535bb4b0bc56f87631233393c1c460377dd3377dd3377d1bc2823575c2545ce90be50405252686fbf04a5f5da749563faed23495d25a6fcdf58ad65abf5ea77ef5636a957add56f83e8189bdb8c0d4162d2c377dd3377d431972d2a285255d69db579c76a6563ac5e249cf9d044cf93125953acf13144a0da8f5f9293f9e29e77903515027abd70adf377dd3377dd3377dd3377d4b87bc56f87e15178b542be54c4969a55a5da754a71f4fe7b93a41a95ea3bcce7ffa319f506ea893952a4dddf44ddff44ddff44ddff42d6548cac5a275a6a7d3293dd3ae4f16f87908887e5fcea956e9943ebd4e79bd7a3d66747553a529e78972d337d4c94ddff44ddf4e434e14d4894651d487eafacb43c29cb536ff0bff43ffd31abd85a7f3f6ddbedb7733879cceefa7fc5ef74f779dc3370d892977c6f2234df356dec8efa8c8f77d314392806108ca943bdef7cddc6686749eee8678dff50011a37dada851c7192c82d5912c1fa34e1ee76c3e2e77cc56faf847d6e3d30bab546aeb310a4aec1fef3d7b3d76b9685a3ce6dcc6e5310b0bcce397c7e5cecb8f318f5f0994880c69312d07ab44076295e8bfde2432599212d0dd47f7243f7f9253669da6dbe0748bb27689aefb74299aca3e61936c152f6b458b5d2f116e6f10dd5e20965f6f91d8af3708e6d77be4e5d74b048ee6d76b8404bceee3ad374793f9f52e91610003e07247664666c6858b99991e00f408800f1b6e10c0000850801f074040026a0a58c0afb4ae32e0d79baee2f0a8e1d5cfb9b506bcca675e4686050dd8d83260a30bd8e80eae8a5f011b4d00020ef0a300041880006eb0c147007a00a0a788c5ea8b17e28ecf2508a2e7a96335c3e7324df97f8eb7b7e67265f865f85caaeacc6cc67365f863f85cdad8e8e410e1787b6b31e4f246110d3b8c6ec8a58f2304fc405a73e9802408eca044815cf2f083cd5603a2fffc0801047463044650101221a19c2266e07047e4723290883134c4848808a7894d51111346d7a8c609dad111144817e94a919474a9b832251efb5a71975eec1567c75e512074fc3a66d8eb4d0e19f64ae38901c70d1b357668c0a053eb37307266c8888163534373f139f812919991e1b4539551df0006e03e58255c58255c704c846627f9ca9d98999819199999191d3b78d050430f007a04c0870d3708600004a891e598e1d5c7b9b502bc3af3313fce6cf407b5dd3e33f339b8001b03f1837f08300001dc60838f00f400404f0d34f0d8a163061984e001023212141403121c424245e070378eb091cb2131345483c90e115193225c4403336164e4c4d111860209498a249ca4622a94943017f0125e82f1438ecd06c4cfcf0c2164000119090a8a81044748a8081ccee6889a5c0e89a1a1cc8488a849512eca4cb8303272e2ca8ef251860229236529ae2c2947569ad9b6cbb057b4a8e3e7d92bdaa4e38f01c70d1b357668c0a053eb37307266c888816353437b41e342e673b03713a3cec470da1913a3c6701fafab9cc52333014f86672b705e7a99ed1c703a101cb1dc8189818979798989e1f9d5abc9f0ab48cbf12b599be1d793a6e357b4b6e3d7148dc7af698d865f5bb41a7e75d57a7ee53400fcfaaaf5f855a505e057979a8f5f636cf875d6d5b79786e3579aaebec5b49a575fdf5a0cafbecdadddf02a5f81e0f49887f93166a33fd8767b4ccce7e01bb6fe41dbf0dbb05122ace2f711801e00e8a981061e3b74cc9043069e18706c8bd59919206efcfc08010464c3488da0202442423b45d0c0e18ec8e5604042676888091151ad492f2a62c2c8e8c609184747502021e5483123294953a195b4920ccd85183f967a492ffd60b3e10061f3f323041010cdc88ba0202442423445b8c0e18ec861f56590980d0d31e9d4aea8a863e2ca6cf7447784557c14b36d9fd92bcd8dbda23be8f86dd4d8a101834bbf81913343460c1c1b1a4a92000d5ac5bef3f239388c7994880a1303c369a70aa3aa382fafbeca75c079e15d141d124b6ce760d381d8744865b9e3f2e2f2a2aa2f7cbdfde5b1d759c4ce427696b3b3a09de7d7546791e1d7b4b3e4f8b5d55966f8d5d55974fcca3bcb8e5f5f9d85c7af6a67a1e15797ce52c3af319d65d659de62daec595edfdaceb33ccdadf53ccbcbbbfcf8b2d11f978dda6e7f79f91cdcb33b29ae0c272575fc356cd40657869f868d227155fc3c36ba43c70c390219961f04750ebf8adf55bbc8f1c9944d76d5b6451ab8f574a59739eecdd96e0dff8087d81bd4c9e7c717b037e8e7c718c03fb7767e7e0c04d680bd316f0d6f00730003dd9af8f9b110f626bc018bdcda101804f62628d7e8944fd35495becac2e04f6ddc515027e8e9349925398a21f8799d36ba46d7089771a2d7f99085a0f870855c4f02564075fb832404b10a223fe15a7bed0cc70c4d0decdf6db1ddaaa10c74ae67d78f5555a8a45029f59550cfc12356255dd97dcf5aab527a0236cbc736fbf696da64e2e39bde963a568f3ffcd124fedabd6972d36afa52e43ed8fcd21c79c45f99b80fc6db3495dd6af5f8d7591f7f0582e70dcb0f576c4279d3b4c5965edd54ea2689cd3739e6266ea3e54d6f31138d4ddb9a5cafe039bee9bb3dfefdd1cff24289df89265ff512bdc5db52c74a33511f9b78afbaa8972df8ea833b5304cb8fbd3a6e758c7281b578ccc5ef388ff9a0787fc8fcbdc959e08f6fbab996cabb7ee5b9f998af38ccc78fff963accc7a62ff197dcf49de95bf658dac05f721cca5fbd88f7ca5661f19ac968e22115e70a641686a50df371e8f87a41f3f3325f81cc48d334764ba2288a22b8e2f8c5ad895c76cac376ea555bf52ddb7675a7df62a3fcb7bd9d37b9c9d1d47d6cfcef57203393ebf84cb3d9ac97df82b906c2a77ff1f56471145fbf9ff85de1eb73befec95fab70170bdee247ebc5a837718bd4a62f4d6fa2de2c1f057afd4b16eabb57adf8fa9fa6e70976af8b74150fa9385720b3d02c1f07cccb9fad364528e677255f23c03593f03513afdc09ed38767d7c733493a00f6e9b5986e1e025bad68ff9588469b988699a278f7ecfe94fd40227b719662adfb4575c5a8d69409a89b76d2f9a81e079a6699e7521293e682164563932dad72a62a0734d6fd0ca4f85ce209b845542b5492d387eb95c038220887320089e679afe7f51605503e59aef4b02cc81e09903c1dc38d69c388797e0219cd348a112a6e928b4aea2eb0f9530ed53ea4b304dd4bf0428d7804019a63f4dcf13086805735f2ed7844a19a6bff3fe43a55cf39d7c4d43a550a9eb9b84d65f9afbb4aaf9e08f29432fbf3b4f1dbae30783d8f15d6e733f7aa98439095aab4d5223e1dc8e5e72aee00fac7cd4b6f607ab7adda12c719cbde4601058d59a0916a63f0aa015ba06715d7f696134f803fe80417c4be2feac38c9f2e4dfd20fcef24dbf7e4a5f159856f22f099bf6f735719a7efd4abedef3344dbed270139f3ffe3afef97cc57ce4e75e694e51ecb80feefad5cd9fdd9af8a6ee264d2f7f862c79c47e8ea58df0c56f61da3dcfffb27c1a4c2b774af1e48fd55b7ade97e5f9b3d5a6afdf8b6f3d12e53b8e227edcc33c627ef3c4717ea9e3fc52fcd9ad952f72b3a4e9ebf7e6871d9fb9b2fc711fdc3ffd750f76d934a3e863b9bbee79a527f2992bcbbc7c9c93c9d13b3f7ff96b7786a5f8f8d7f3d713f3992b2b4fcec2ebb8cfc7212ccf9fb9b593afa6b96362afe3f33cbf3cbfcc9ef718634f14b70ff6be6bfda5f99c71e433620babfb76f1bdbd0ae9de4e97d4f5e327ce552369247dbe7e3d8569721ba637cd17d24bb17cfc4270163f277bfc13c219fe2d75a9cb920b75db64044bd074db640453f40e08d3c2d7a9d7a6d8ab85224d298e97609846b9e6fabbb6b3e7f9f83ccdd314dfdc6bf99fe86d14dcbd87f281b90c661ab206c2347b751156cbbf1aab16a6e85c85e822b89f5fe64c386732e19cc9747e79be69977f6e4d7465a6d264627265a6235d77415805c1f34cd37f8db4a47ccd32bdeda65d7e794ba0199c2bd835cee12578489ba3e9c54d9a388bc503f527df83fe0965fa137ebe05502ea497dbfc73afe5e337edb5ac6189bac9737249ee75d6c5ff3eae995c59270a5d1fb49052c73431dab7af9ab3c6bda27716465b986c6363be169bd7c6b4eeec8d1d47731ccd1fb3cddf477ea4c5a4fd7efc1e1f1f39cbbe4872d6fdbe6fece13339cb8a220fa2c47e90f1bdb7e28b3cc867cb1d44461e4449cff8df7f5f129b0fdfdb0ce327f8e7f3cf385f6cf1786db94334cbc9b033dd4164949e19c6e2e13df837746f6ff0eb1ff166f1005ffc9e107cb147f8e5db2ea48f9ac49bc5e2e13df83ddd87de836f81eec317d2c70e77379bebed2c168ff04d0b803fbe05c2375f48c7db8adf63e42cd38f2cdcc3e42cd3f83dbc1f790f4a7ac6efbe07f1bdefd1f530969c85398b87f7e4f7784f8aef3de63ddd934ff220e377e50e22220fa2a407b6d260757e78568fda0f8eb8c1c87df8fedabac87f8016290bdfbdc76dbe5ecf3e8842702687c0423dde5a636cfb1dca353e6e1040f7e7de7bef3b2008a689418c9904e77a874870aef628c7d9f1fbc8353c6418a67d4238bb3b64d753bc43bf7ef7f727d794bce33bb07a49551dff6fc6bc87c7d5b94332b8437807c17aa34eefc35eaad354ed7776953e0c26618c312e7500c917638c73b6d606d60e7542ebcc26c55dfaa65aaeb7ad587681adbb7acffb3e9b6b6e0e24d3d0f461b963fa3be22aac385bae9e1eebadf7369018789e69faafced2554a099cf5f52ae59f5cf3faacf2997ffe2c946bfe73ba3d8f8b2f446765e5c3ef59f9f0bf0ff98b3c88f8fc8384bff24274545e1f7e8fca8bfffaf09fe585e8ecfdff3dfbffbfff7f161e84f5fdf91f84f571081069c1c10ccb1f7e0b0f12a4e55b58ce2daea7d5095f5bc8dd29213a2bdbea70abf3dbeaa86c213ab64ca53b1301777082dffaeeb3adb53311d2c5c126e78a9130cdf5b4d4e7d74998d6fad39ffcdda72f7fb4e5875838bf83eb8fcbe2eff6e97ab957dec10759ec74af407807577b9dd99cf61aebf773a963fc8fdb72e7e3a00fce95ecb7e7e4bb5d7fb2d7fb2e20b1ded248aedd22bf119cf9f34a76fb7ddfa198fd434922fe186ebc04c3f28f160b6122ee1d6d6be32558cd1d34edf5bba9a3dcb7258feb597c0e6ea1e7f7ad9393ebb1d2db32878bdb2b4379161c2f89bd2b77c0cf37754d38d7fa5f8574afb56ff7beeb34a57bf9bacce1bd09c5f9d94d6e6d8d461af195956fe278d541c88f97749d263a6fd791dde6f1be7b9d03cb035bc3c4de90a007c1de5a77e4caf2b9046b846ef6bbb3fd2cecbe46ea8edc9acdf97ab93b22765bf278dc5e59f91dc74b662f3716c2446035dfe81f58747abf669b4dbfd6ae20109b243fdf15c1354a1849e499088621e5207a2eb2a379b6fd7006e1b41804cf335591349246b23ab95ca391322c7f56d5ff343d4f8d94eb59471184532769a46ccb99487704d3568c5405a68951e01aab3366238d949ea7ed8172cd99e69a4b64914a1b67eff80376e8dde71fa0223fc85df76922cd5f38ac7aa0973f21d6edb1d744d9966d9f26ca697ebdaf9212089e679ace7a2804d5c2082918638cb3e64318ef8f3527c63c38efe3305e130edc57215de3f2012edde7feed7adbae5fae771e40a24029973b0ff821b6dbc7aeb421d608bdd206ca9743c7bacc71e29539d28ec3b206daf18363f9005315ae0842f7c17f7b8e74b423d9699bf1253fd3fe2d77eceb6daf7dc035d95ec33e67b130f7c78c7db081d231b76ab725c647c07f87186de4aeafece4de19d65a6b85dcfb63b443d6da7bad8db5343f3cccac001253faa15a6b5ba9bdd75a6b6dd682e7792a38383836363634343418b75aad344d5128547e8d334992f9ed7a269104df326f9e282a95ae5aaee7af16d52516339ba1a1d9dce0c8985979fc394b92e8aa70e247879298919999686ae5e22d2e3133b41bac41f244a5ad7fa9b1198d0d4e6ebf48c6fc6a9e282a95ae5aaee7af16d52516339ba1a1d9dc748cf1e3f878b81c0e4efc27237233598c89a6562edee2123343c3faca40f244a5ad7fa9b1198d0d1144bc8a88cd1345a5d255cbf5fcd5a2bac462663334b48e317e1b9c2344109df84f21226260622f2e30b5454b8b4bcc0cbe320d92272a6dfd4b8dcd6832798382545c2f2c5c5a3056ba6ab99ebf5a549758cc6c2646630314748313bfa94850ecc5c544532b176f7189c11a244f54dafa971a9b05e181ab48aee689a252e9aae57afe6a515d62312e2a8f7f86ff1209c206277ef3270817986aa2a9958bb7b85c9906af8c3c5169eb5f6acc6663d112b179a2a88ed355cbf5fcd5a2baa8aec71fc3cf0356b3ad53c289bf0c726d6a8b16134dad5cbc056b90bcb21395b6fea5faf8b4582c2bf34451a974d5723d7fb5748cf1abf881f87c2438f1933bf8b4b0bc56f87e97c557a641f244a5ad7f39c001ac15b99a278a4aa5ab96ebf9abf5f85f3f1c807f5480035e2bdc44532b17d620795e192a6d7d9f83c7ce76379b9d268f8cb04a0a7552488814f23afd7d77fcaf75a4db1f916c369b4d47896d3254d4c74c0ea19346562f81d5cfc19e2691c82930edf43d947f54fe975169d9819ecb0cf45c56a0e795dc422f854adc37845592b36eb9637cdb7ba440c40356b0e97cdffd3764325dd364fa8692c03561dac489c2a1123dff69935178493dff481e75f334398974b71785531b152d9deb5dba774937b93524068262c43f4ef48fdb98e8992402ab995ceab98a5c432e65a3254e2a59182a9c9a933852480ba7451141ff82ec10a470054e27880f30808874c2f741fc8290ce471e81640219052bf4fc6016c2a56fe8c5f8e5f7f03df96bb854fa1849300a67d1b744cfa410bc4d32410ec1c2e4d79b6c82341abf07f2bf5fc325168ff2c7f751fef7df5026f73724fefd720f1175300ae7e52b3945cf4f26611a0ee07b3880afdf04f3882dc6185bcf5c85987e1cf57b5db639e76c3d33e3f57cfde6df6d9e6037398984d52c832048219305844c2c6022fa4a1a11e51af1e3413a2a8840042ed8bea26f09ab73979ae8198ba9598585c94f0ae51a130ba62064d0b3057a36bdd0f30b11d13d289c9f8d7b2016ce902bb93c368a7e39b62de59a0f07600fce4f083d97356eff6e11ce9534228db0100ad964e889237ddd2bddf3bae02d591da800094b3a3e9048705e17c813784b98460ad91b943c7aa2e7d74b70e10441ad49a37049eb7b26f9f85dcab0bcdacc3e8f7fdd5214a7f763f798bfb7937cdf67bd0486e59534fa86c073c98a9bbf09e74a16854b3ec80051b8148252e86bb8d4f3939a244923adf5e5e91e6b8dbd5b6a8d963b17c55a6b3d1482a7531cc9d2bcd66402ea84dc3b04228c76762e6162cca085f948a41e5a7b64e803dd0e96744050898881ec0dcaded81e4ea1874ee8214e0226c207ac1d81458112fc03ac035c030c038cc346f4f0f1128c85308d957adbc1c74bac58895f71123d34ada8fe7ddfce67dae7d6580dc34f6d905ce2fcf02bbd9445e26de376d3911edab05df59d79e6d7494eef9510d8393f02b7e7e0f12b77beffde82412e075e70047d1fbc234a3a4ac40f628bb0a004241df47de8921ce92811f11589a03311ce55b4d97ef015044ffdf92fd2c59dd74689437fe63709ab5a056789bf5bda58f5d1bbc25b2abd2b7491b7946b740f7491d5b13aeb87d34567cd29e72a9a982efe72df3e966459323919af56c1b9eaa21798c86e7f24d7b3837f75509bd5033eea513c08887a1fc62e08e92811419b68b337a81ebe48c4dee0554ceaa138450f45a50f67851e7e2d10979092804404a41ffcd0410f5fb480056fe207c411a4353861604151490f451488b6af05e18fdfc62f62e0fb42d0c30fbf6f83f9fbbeaf5cca355727fccf966bac4ef878e3f07bde3cae8eb794612199238f30edfbf0c9236e4d7894c95c98851e9239a526494c7a189248f470e703b18a2a773ed4d9c3a35c939361e183e079eaa25b3405f6c2093ecaafa2ed3302c3c25ff293440fc34f89a01e5a81733d7c501cfa4fd3137fc6fcb365ee2d853fd69cdf97877012e59a1f19163e68eb01be68cb309de45c75116a6b22fc220c1fff388efcc3ff701808abe1d79cacf2c31f35110474c9451b564b708ea90f7ff43e23b01ab2523f3d7caf0ae797e31f0eab1609e3ee0a4430c50e84692b1de5afabc7fc01acc751f20764bdcb676ddb471efde3971b07cd59a9d73f72568adfb03df5e58fcfdab7df7227c5432cf874bde4abfe09dc5e7e6baf5eafbeb52f1256c3efa2e8e1f3268c2992b56f1f51741074910ec2a782d487fbae106d98767ef822115c73fa312562c0aae1af6a8d68cbb0f0450c585a9068bbf80a27eaf4b73c0179906e8a155c20c8a683e26786851fde201f08d974acce907cc515670d7d3b2e57bcc8fbf07569a3fb7b84d5f06f69e3761d86fc0661357c4b74d34ffdf8e5ffc83529c74019167e0a0741141e867f5a1d0cf47df8855ff8b81edab0bdfcdc853309ca7f5ee7c4bf3f570c742dccf7dc5a986fccc93556a728d7e00e5858f8212832410f5f053d0c812c4c8869e1f7f03d189c2b060a1f17c134f3c30f47bb796c13baf8e310a8ceb8d3fa47e8ebcb76fb99146d2211ac865f8a41f4f0c9af0867183e060ac133c5403dfc2f7f88d361a378400e390e24d2f5010b013f1911783ae3f5ae408593aea88a0a74947e6b384340d0fef7fab35ae3f85e83f7c7af8c4148bf1f7e3e5dd76f93741cd43908a37dad9d12154ebbb7f9a6fb8e78e576f8049d043351c65d6b9b01cb871251b73a679ac33181db89b09aef15ce551b3d8169ab8fa73f95a139eba64f4bb9a7741ae17baf915257c2b434ddf8af51fae91622c2b4d7df7bef7d9ef223b6810d6fa55756dbea14d98cca26f626d5b326d275c08a2e0355741598426fe11ae92368265ca42858a113ea703de729f4ee81f5fa57bbd57a569021f70a1d252bcf4cdfc146a143776d1ca593051b85ceea759ea2e7c7465898ccc2dffa955f6d167efdabd7b37ed5415ca01767f18ccbb01eacb73abac70a675dced2df63f52cde83921efd2bceba3d74901b96603464d3d19c75390f1dd65b9dcb2770ef923e42d24648e7cdad3a674bbdbdeee8dee934b93ec5e1feed293faa1eef949494dca5781fd88da5a98df2e93461f17edd4d5370fa3ce5b9ddf5aa6dbbe772fd98c9d549ae5eeb1374fb23cee40ab2ee47a25084094758b310744e13e1c0a63dc8362c946166cfb99e7326fa597deb7de867bd365a7deb7be867e9673deb7b587d6bd54747b9a607d61bb15e7f0fad5ffdaa915abf7a1f2dbe7a1f2cbe7a6dc5b96a23238d696bc675bd7abda6f74e71a67f71caf10fb6591cee667295a6699aa67a5b1dbc7157e57227cdddfb5c8c55699abe2e77528d552a559aa669fa186b15b71646cde572a3894cd9b9eb4de412e95fc19a95cf35ad957dadce88a6ecdc575b8949d69cff665903bfca9b258e595779bc779875159dc36ad64bb09ac5ffb6887ffc1ea78fcb1ce363f0cdbf7c2d3fe539bec75c0fe1907eca986ed563d7ab541fdeffbc4ff9747bafdaeb8eaeda91b2a3a77c8aaafea7e979ae60dfd1d394af3bf4944f79fcaaeef78f1e89f70549bcbb75c6ea7e55a954aabb7afd3dabf4b5cdb0f4f15fd57b7bed9efcae94017cefbbf2c6ede0abf8fdfff1bbe50cb7ab7e04c9747be09aa6fc5fc57100dfe33884af7a20b39403997590ebf0c9cf258feb558f4b1c21b7269ebe8aaf96eb92fbe4fe7dfab7ccf1fd7855afc2b87befa6bcead7b507afc4914395d2f1357dab87300ddf4f87d2ad73f77bb1c87edfb9fe03bfdbe2a7ec5548dfd1c313ad8d701d7cd5af2abedebe3b9c315e559ff2b8dce9d1bfea6185afc291cbf7cc53759e98d0d3ea6fd0dc6658b9e237b0b8cd308f7c90e320ea1287c8737298b271e8a0b8bbb765cacce213144a8a854a3fba7a73e4bfb25bfbd31395ea4d9c977c4dbfab5ee4ebab5df51e5fd58ef71aeea4f009dc0e721c3a1ed77f8f4b1c29efbdaa2745b57bbaf5533da8eaf466fd6ab75eb5d7db558ff7bae306160f16d79fb26f68f1d58f2009aa1e546ddbc5357ccefa1ecd55cfea59f19cbe921ff2bc0af9b6eb39f97baf3b3ac9f51295b7a50c42ba8a9ec0ed2e1c28ddc5ef125695b0aa9ba0e254b275bd04d3b8ce611ae6dae8e3c2b96aa34c94714a3f7dc542d74865941a19a5e826528cee4892e4f844c7bbebb7d481975ca17e8958c2c8a68fa7708d52b8ea1a69238da493ba133ade3a15cb1ab8a7af978c974c791ef2a838f5504ee754b8d3642a557f6be032fd9bde4f5fcfeea7788fbdd7291b0f613597c3e570391c1e5328e57d147cb770ae196753be82d9a6ac56a97227ed3a952a659142419da0a7d36496e42886e0e7a5ac4ec72285823a414fa7c92cc9510cc1cf5bb5362b952aef63da1d5396e8417aafd544e07038fc568773be623dfe10e37ac617dfbb74956c0eee3e2d770c51b9e28a2b745a3fde4f558f7fbd3dfdcb592a7ec35e1e62e17cafa7e977e9e3b4c5751318963bae8d94ce35e3ec7d3c842060210bcbafe22b98f2800938e82b16c2a53c1375bd95d8220d54a0ab3e07a7e955a5e070389c126b959235271e2a77d27227e5490051a1ab48bdaf902d02420bfde27056cd3f6b8133e841b6ad5e3f9115c64ae89c10c66923bca409ac56d1d79cc45eedb1c56295aad797e7212ace7b6484559b3e42bf402fd131d032d0431a094d039d84b681bdb981bd1935139d03adc4adedc0de783745b946ff6a5b1d5d2307639bcd66c33bab2017915760618cc06a1e55aed0af9255e1ec4dca05e00c4e1cf41ee8263c2bce35eb236da48330c2de5cb0c879a46b2296c0355ae79ad5a79ac86945156914b9096c3bf1e519b7e24194f4ac340fc222d482229bce8adb64d8d2b962a173cdb8f51af5323522e519a78573d5b95caed14601ad57a8846a1da982562a9a110800802000c317000028100a86446112e45890359d0f14801671aa6c5a64214c490c39648c218418000000000020800184210057bff97d86e3d1364a62bcce129c2a9d74f2b252eb4ad62edc08bc71874274f322e7e0891eb83eb4b69cd13d275c8afd12e4a3e0a37c5040368246024e47c001dd15dc8a8a16f5f671470494276bd5bd217521108278325ff9aeea0583dc5e703fc3f6a1de47296ef6955be5a93acab372c7591e8823460c6fc9af1f0644cf40951dc74f02e7d364ef6e59a8c5dfcb97ba4ea1cf313d06c3587c4f1d0a7459d2cde0f558ff97607d7d743ac61ffe3bb4ddad67e1f4a7d300b497e81cd9c92a0731a571294a39a8401245793e55869f3ff05a59d983c819c222373972e07f1153e5a0ed6906e85a14b2429f3302ea115ab55b0efcb9eea918b3f5fb92ac8a9783da4b034d4d92db4c459599220a8b337fb6d6451281a7a3db0d974707e87658b064e90209105ff5deba1319ca20ac15b0db285013015e7281d8255e9ff2caeb5f3da36d16da6cb90e884dafe38609e42a82160570e43eb0d0158d012c5998a65bb8a6b12d92c531b39f60e4124bac464ff90896c885e4bc466dc5d5653471e1d2abbab830075e9bc64cadbda7c5cccaa4c2177b4a874f45a2f9043eb07d07e5bd020ea7dbb2b1b653b2efa591b262f953e5e5d20709f3b286615b9804ef0d5f0f40b28b0f1c680610133e200778efbf696245b512b255bf9c79d9b4d474d8531a93eb4d485e77eedbf4465d59f4afe167b53000b6c80c0865bdbe2e497bca4193d852e5e2dbb39e5f963266df27c833e6d4bb9f3c132a9fa0bde83159250ab5e644c673561e0f2f4b1d6536c73e376b7ced881701a050533373533ea13388704ba4439698d6b15bffdd034e7113cb2561f05b44359f5fc47fb8b5078efd84f8ab1f5afc4d1947766221c8cb0e8c6f1e85f24c0180940ed4c01a3b8188e6eb9d68c8c375e3717df4d44d2a64e2bc315f5f000557b8240e405c4a859e53dd1dff432faf08c5689819d12c1584515c1be4da8c845b0433ed81ce0e8fccbb82f146b85048ad16be8dcc306158104d5bd59ab71c424ba293e7ba5984960a020362eb170a8dc3ff914bd10cc6f7ee95f7c71a84a5e93e1c6403d7c472fb534dd3815ba7e7ac92852d552e99fb1d66baa8e8fcabbfc1208ca5cd106681498a74241707955391a3bc6dbb410fa5413b71cd964d530a09351432c31bc5f1ca1ee29e5c2543c0a1a2649351a53d02a5aa695cb4de3973d54ea753596943cda609909edaf8b0bfde4f6076804ca753ca313f3c488f2e2d538b1e4fcffab98782f2a70e5a731d758622a0fe4e2e06dd89cfb9c8771f58bae41b0700f14a10c7a868f380d97340fdf205b823f336a29566f58f7b0bad391c2c59a1ef350dec0e966d000fa6064fe60207a1234c505a1c35dd302783dbf919542728d6147b6c7d9c7d74d48b6c3919a5a45d3a2026c1b324564f244b846262129fe1d036a909d432d13614c0210127ec33bef627fa834fa0a0968a37cc56cbf8502c1048b029c9e9031dc0dc15dd7b05fe269185af3f6d5e214ea396c1560eb2f248feba46e8c90dc073d3942b1cf0551ed6e496cd2fd84e8383d5e013c9950c99985a6e485f881f17b819e65af1f7b9580fd6a125571b26c07e4c3bac56dec59e2c77161996fdacd61c9eeda454b25829ab40441df7aa085d965c29200df43dc49c11c8eb8347e5e4f23e2d3e09689388ee2248b8f64c42245dec4f83e5377cd149439fb1e6f2a0d2ae0ba9800ce4602af0dcfc844e5ae22f1239ab96f7e5edba14244816d5262e803eb08368b320d26852c05ff93d8d3b9e331336adc7ac1033da01cd026587ecffee2be605d2f06391ca30c44f876b1672d0fb70da8c13c7416b346126a48f00a19ed637676fc53debb2731f09706ac74bad54a102b32a14c9e1e8113c6e5c60900d23f906040812e5830a5bc8100727cf02ded239e8bffc3d158c266c8ef2fb40e228b1d0e0a82f61f58144790335573128bb3c4adf4863f7594b0082efc3f5d4a4cec05a56e0bcc59c4c911e1f6bdde8b2b688253e091942e2351b721ef2c004981443890612959efd0afa58bc9892423d1d048efafa782f808db83a7e706deb557c493fb5f6cbce6d331f4430add3aeaf158fd9be9702c18ba94b39eb87282908b0e33aed73752698d39f2042920116d00b5d20233c3e43039b94c892f141182f3c422ff42b2c291470da59586e72290be27abe9684069c1511f5df0a3e6962a20be2972c0c40f5c320977e1d674428b065b38f9c3d4e4eb89c7a0785a2b5f6829b5093ee6cb647e7e0a6447d2a78373a1061496d4a7d57c99558203983194e131fba42cad1eda6192f96f22f55d6f0d5c3a4d3e25576e7923ee5d46a49fc9eb23b98aea935a1433e43efc9f6f698bd1a95a81558979c3037ec920556aea8ef87fc3aa11212c9e69051a9beb9e60e1175b99e1944d661329524679b0419bc1bd99e0366bcf86ce71b41da8fe1b3c5089c86b8c75c5a8f007c7978beaa3f2808121c17edc480584ff63a2ea5423d9dae547ee832e89fe2060d556d0d3f4f4c4bdc00175844b50e3930c7105efa7dfa402998117117d80f2fa4f4ee49f7dae656312ad088d6029616d0faa709f6fd25a335ec61f9ca94742dcfe2d5e413bf3d9281614fa503c55302c4868b2a23420af22566946fa55276653707d6ad8f30054d38d61510ff48defc10c48b63213a43408c019f0132b13868d365c5b13399c6777d44331542a2c77dd823fd4741b91a93339554f295e74b1a697c664740e77100f051c77ce226df3a7ce09d8220311a8029b9c049191d7a4fdc2902e483bb6d9b9ec264acee8688150724518acdc5f623f9fee2157fdcd9c2c1086ca0d679a63a62623f91ad99d3852aeace0757e761491150c35498e9308737e44e9bdaa447ee6281fc28a0bf731a091c6404538755eca39293299cec70ad0342da88b6e18cc51f9e0351344ef1319b81a7a3126e1badadf856fc694345e1ea63123730e20fb8df0ca079c95b0d746df3ba451bd92b1007186ee190ef889d56a29fd6ae770226fb65bbd7683cdf19e31ddcc690c885c480f176bc0fa83b112ce237caba53f72a50210061f64e306bf6828ee7c3f29919ec9c98f926d54c5b2ac9923152f1ea2e2aec2c7abfa492e09f11086594346bcda5112b347401a149a3660910511eabce9e49c00d6025575d6c2fe795d03185686a7c888a888deb6b6efea2ae3b3aca73d91dd3cf08427a797db1a84b5810ad90f74fd129c2c88e11b334185f3f0d70bc1392a1364309d5eac98d27993ae8300dcdc27c081e0e6edbd39e376e40144ee8be8978c003613a4980a79b0f3e25ed5c10dded7db3078ee89dfa26c1253aed160e887b3622f41cff5c1f5cb32753a35b329c6712fd944d70f09a5df607a77f228bd2472a2d1e172bbf85df6671da6b2b2adce2e8ca5f03e3b85d7eda76ec2a4ed5d7db523b49c9bb0e3cabbbbc93a4f9942c1a5eef83572c3c8cefb57db1f4482f000dbf3dd039fcf8767c3702302bc0733794461de4952628218d0929c0b728637f175bb78db47f7f0f00bf6bc4adef5f8edc53d959fb904f23a4899693c68cc31cdc847812f8e53e3993aa7cee201c26715b3884cb6ab3606c8b621d69ab41d5ec58a2c585459c7499d008f11f43bf062415278050df030661e5d011e1af984ed7ea37cd092caf5ae0feb4d2ceb8ce9254043795bffae1d67e9363b0af254773fe57d3b89fe745fdd372d4e082c33817751cc96638aaf5c21535a64a6d978b0ef2d21185e61bb9a0b3a0a8614f9ff9d841668a27b0ed58f79b25060c28bf777e9d65741a507bd6bcecbbe34550c6ced70708365f2ce08a0c3e333b32c1ec87a2271b1d85445877b270b377cebf0f594a0ffc073823c567a82b480ce741b2b73abcd724407007ce1be4725ea3a51ea91c33016c5f0163a9537824d51d1052f734bca8e361499c011872695d4bb05b72eb4e89a3c1893d105ff6d1ca141d023847d4a78105cfbf543cc3692af0c2b8fdf3e48c1314b2bce63287c72ec90723332c778b7a77e0b645e1aaf4044b9ac3842fcf7f53f08328342b88163ca9e942866dc0b6c35f805256dcd13b1c5411742b671f982108477d40303a19314aea291ad31e4e7f759939073f1a6b2664943b10f53782afca099d103a53b4e689d01f255e7bef3d867e783277c1ada6ea7ff4b45046793ff488cf20dc82b7d030aeb28536a20c92d49ea7f55c5cf5d6a52ade7cb7137598a46efc029be2a1f03c54146b3a86fe18792e926894ad68096a191f35df226a83227408f3f34f061320f69961e025fd3fe854c7ac8a76489dff3606a5248449aa120a9d83c18d2a7e345644adb5d9510a81e343accbb98bf266bf3936806368ade5c841635e771e5c7097b31a27365b2e584a4799022e6b5da538331bd326ca293e61e31f21447368d5ed31ae98ab04f05fe58cfb69e58b766fe929247369a6a6c43b5b0129a3bc7b7b995dc9e51b8f1d7e29438a9eb28c44e3e6346f107c6188315f1cc4046af69f4a79a51454216e045d1631131f57e4aa78aad3f410e4045668c1755434633decdc9ef68c87f98b7ff3ff4268a0c6cfb8976b60153a6779d32b050aae5be4737587a05f5c1d0f1f2b9d702849b1e6dc626b76b804e521701e8b8ae5680a7cd3fa73d11019a7aadb0a84a0be8b4ef7209d2e6800db8f60d00d3d0a591830e6097331b675000e44b2f1ba98385dc1fa55eb5ab60c84acde375784931042484437a2bb2086b918f3fcb858d61fbb885eb142ab5dced743f85f8d1fa484c3f9e8c35afe7a025bc34ab4744416453cddd6e8440d376a159b9ce17951628d6e56ba361bec32e9632a8dd7ed3783119d4229716d72ab7951078d43ee3d1a9ea6058506403e1a61df181cd5a6f96cd0c6dee2c8024df0845a4826fe4e588c319e5c5f3320e99053b45c3f785a2a14c54c317cacb374e6a9f8305938c888058b098987f11cdb45fc484a0389b72b61472828c0a5279153dbb5d39271f310b3ad8d0f50dd5ad2cadc3185ddaac94107a2958aa8587b8b3ed2416ce826353bc26049c0d1decf84b8832ba19496caa061952a6f82cfa319f4deb3067523c0e48c7edd2a1c266f304da6d34a865894ddf14926db19978b9a05e88f34382ce4861bfd06bb70f32f41d00ee218ca9ef94f999dfe71450a836a44511f4d5dbf271dc3ff1bd673e5b72fca92db2d365b2ad494e979c1bb021a325952837926b0228c07dbd3147b3047cc0ecdb3309332ef5d0f74412e9a2e06c9f62949955948550885c470a0b70ef2a054cf59a28eafd8bc49d884e8959ac10bee1ed5841bac00dc4641afd7f3252415d984d882dff925d1cfacc6fe8f4196f1737da6a94efac82bc24efd7365fc2b47ce076ac6d60898ad1cb0b14c39c9318ccc1f75b0ec931cfbbe2cc83b10a8e1a81592756dfcbc56049ba15d0bc2c8221641ce834db5ce5b2d2239f00c1297ed3933eb21bc4c1a3be54e4c96d11ebde6cb289ebf7b0b2b00e1985f7038b06323d20886df83074731bf1a2830e8b762e2a852ff588b070a80fe562f06a037f88d360c22163240975629798ef8fbcc45d6295011e4b6ffa2f0382023738c244e7c62e2620769f50b4a8f81112e382b96cad0d55745cf43f33665c36e511b18110733db866ea19c46adbace968835a479ec81f9fe219a77642ebc093f4f0c73916a1b9f2eacb0e1618d96432a0a1f93159b72b0010e473a5b0a1221dde0bfb7e2d070a1fbc101e605d1fc411c9386eca88928c33e785f8ed24b1f7af660d0f8f420597623968b140eb27ef7c86f8584ccba15d2c97ca6953bfebd821b536089a71d62396090b1180a0f7711fbdf8f73734646310c0032260000079ae8684d640258e00c33d9e409249358a52c7f135791ef596e9eadf85044382c0864590c5227902c6e5d8da0921c577d1f63ad849d57ee48f53ac1778e02482705277349c180af36b50596a63ed9ad4e36be170556bedc7ebecfbc4b72f04b75a519f3adf9138057645f083891893b96eaa31de17299d7078bfac0470789565dffd226165da14c15ddb5ebdb6ebebc9d1625389cefec9d3c3433333ce46c88f65f4b3ca5bbc5de2f8d7f81ca05cc25c57cb86735bd93dd36faa23a01d06f16e9c193577a1e3b5f70e21c70f71930b7e450443357b3f29d4875cfa7cad5e65a08328753c155f44b4ccd89023bfa7d047f46fae84507b36c850fa8c3b937c9d623bc3c27456dddffa21e24637611fa9e7a3af962d8982b1cdc15bbbee302fd910474cc5c42995e6223d90a28a040f80b79f7923e69de2eb0f6bc127b51600473996656258aca4c34be4d1033371c01429e2cc14435fa67043a7991a0030761cc168fb16480a43c99963b004798290aff8a7dd419a12e8b9b1b885980f9dc0d8a788c688cc3975536e2c12377ca3d2df4cbfc0e4e2791f2bbaa1a182ab265fb165de20c6f344ac10aabde419902923e2df7dd45cfb8af4d200973dab7b0c7f8bbfc4aa418a60e49198c4371181447f0c23a4ad1c3e04346da888b7402d364d4ff1504f1581fa6cfaf604c227aa9af903d227b7fd22bee8ed4cf9058606a48c6af4c43839cb9eafb65b63af39eebaed6af3731ca4a62a0a3f76a470b02c5fb117ca50a9060af4062b56f96598239ace8dbea8119dc8256ef9ec35f6df2a5762e3a7bbc25d4702b03d9431cbe90c950512b466de954e760102f960573e0823064e79689b65b1c5d8a12bc8b8eab7eea66bba9c05502494e2c3f3407a4a4176b5c728509502716bee137d5e210735c1ac960da94457d4f72aba63ec63cb9f86f39bb2313e88cf942a3b53fbac5c386d259164e309515988e0b6d6c2cc80cee64c3d8d60b218f78d5be5d17c06556cd71aed6b93aaa5d43dd93082483d13ab566205f2fb47acc662e0db875d4b4fe27aa1dfe3c168a9a07a3961a5566301144db2b4386d4003d481bd6424397d1b5ba862006c9ae65dd6c111956b866d1d413fdd2ab8d4e73096588c7ef89c7a251205ad898defb0805bc8fd48153323f5862ae7dd1733fa42ca9e9cc09996e088010bc5f21e579da7e0791a7df4829f6898f44696b7473ab4b44fc913eba6ddcd3beb6f9fa80066ebe2cbab04c5c15e951c74a3291ec48571b7e6be2141ea83fe0164afebc6b9a69090edcc8fb1e30ee8c3e793a0f31ea9ed94c68395d428724edc854ce8d31c238735a17bc44cfc3e201fdc16c7f93f507287715c92cb3931fe69517ad501545904fd14d2225fb8216196ba9ad4f2a57a1b35851ca07364c42c32911149d46d62c90c9d15d61a276ef2de65baa825506bafc02978d5f0233177087e011e8af6540e410ea8c9d28334f9947effc21c2080c9484f77881bf265a041f5beb0ca73fa078414700f45720af7b046a8e83c0940ebcc5a9a99d961a6792bf41c97123187d782d93a9d4b19b07940fe4263d83c7788ab269f6e90e0a38bca4227ae14be7a0ac72d49d09ba6cd9603acd68285eefd88deab3a69927ad05020bbaaa7365e802db128e3a49423532320f3101f9e5ec22ba7c30d1252b09867d3d0049c80e34896419dcd66eec6d5c40f82f63b404c8f2249920ccbe8a6ab6b49ef622d4913f4cabf1f88cd2bf45b4049c307c45b59fec9b9f63b2ed0838ec35f1a8f16ae99c2ec640d2abe56ccfb6ab16a8f26d094c267481db715c8fe5b67eb8e09316eab65161e7dec1e647e9e87a7ef9b198cca7077dda8983a4fb407e20e345969be0c5156789712aef9810f3a03b1b00a7d2e5e2fad3843d27a322e64200b428d11f3afa5bcf3e1d860772e59cf0597560542d04f9bfe67ceefc1c5c32d7fcf6f927715f210ccea18f2b14abb0a3921818665d900a7dca39e8e27809767942835b886dcad4bce3e4548a1d7fd9808ca6dfaef3575a9153aec78e7e6154b18d01378b78474218683c04509bc637decfc1261a8bbc74a2c3316556813da51732d10788dd4c3e24e70817e9f4acd5f890f844dd1df523e86be88e895050813044c07dd847c9332002b900e5c951b8a64df901542048a43d2e7277264423b39b6069e266a24f774487184daa7ae55c9d1db73015f214a151e8676ba1d42a15dc150ac98b76fb4dc2753adf45d1e455dbe33626a8f6e9e01799390373605ba9692984471dd996318a27cd7392a1f5ba62c6952007955a3b2d4e58068a3453279b46dfdc9573e18e1a7b5118dcdfd834e02275cff65df6bf759644191185403f54646aebe470116473d187b57160b8801daa4adfa7b697ff8616866394e65228628c09c18617963f981b8f44aced2de361c691de260f727165b6b116b15c750c63226b57208fd68789e13bff0332101539687e503a3e2b27f340130ab7553778fc386312ab8bae40053f555e24f1dd37ddb8c971b9c99dd1ba314a81a39d9b2930d9b1f0373d9b476a36daea20ed655e655312a17941a833aaf72aa27449feec7f391215e70d93128ca6dd72f52e7829f184a4e4b9a34da9fa8dcdec1152bfdd93bf8f18733898340c706ca197eb1c034a05c0d2185a4b9b0e267dc9f5b4d8741895c5c5e52074a982ba63399574cd7099089e03f21b1c26eb3705cb5235a321d47994dad1ce3cc97dff0a3a6c3f03b3ab75ae14136ec3d84143f042c48ffcf2626ab3b00c3468e8c02b9db139738f7e1a84b3d02971687daed959db96d615cc38c269533edd1a446ae84b7143616cef92dc93822a6fa88b12a71d3c118fb5488dbc5cf032ab17a776c8c0a9c82e20068606fd57a5f44495a26522b0a1818f22ddf24cee2813a5bb32c30d19b033ed1089a682546753764a78ac950f78b8cc0f611c616ead320fac391c81c358a493707073b659db9d5967a89b39ec2df65dc07bdd50d89b0712cb03ea1405f33b1b901d25ec966301ca6c2888cbcd46f8329ac60664e956abce0804f5f842a054e07744361343c9f99e585db2f5d997b9a1db2e0916108f737fa260bdc3636523b3115ac230d4545301a37f4ed465115e0450051b2388d247d3103dd13e464af717d356bb0f3e7dc970f0db7d059de6246e76c72f4566472f0dfb8fc0a5241b8366eec475a543d566cc3d007cde75f980c5d98f83ab8eb1b76d9233fe92c7cb8fd29eb287a8557b5e788cddc14bf4447e67d8f4dfcdfc3d8b5794a5fa4d0269b254ce2fba6a01524d3213674091429da51d86d2e70cb5eee182b2fdf17b5886ff03988536a2efa2f2e4be8ddc8c040df0bc8f4d42c60385e6733189f23828c9d28be61df91462a5f0f7cfe3a03db28b1bbe882786fe195a360170cc761bc205e5a65bb54cea863575413b54c0e3422859b9e423413b7525056e64c615d5f8a0ca21eb2742bf60652d38d91cf4e43dbd339f19d2affc26db6e0c8c103e8d98f9e19ecc8b0d536326fc60f83b633c6c8f8331c24409d70a141375fa466ee1e632daaa2ef71b8c874df433ebba9587fb00163dafcdefc793ec44fb3eb668f19bbc58a4bb363ce066679570fb38cf46f0e206e3903c2f439c411d071a082e4d4e1092d2cd0a4d2f86dbc93eb6a82c539f71d9e13a8013a8ea33e53e100a38c4d76ef69536e79819e0c24e337fd625d181b4d8d76286c1bf4c4b8e864e85932eeb9dd90ac7cd71daab0f589176c1ba51b128881daf20e896890ef894b6a39a922e6f786999067c947b0f66c66929891f52cb770fe6281ed6a04a0183c1a7c8917053287304011470ec5382a9c0d6327f70840e69056ade7ea238107488bf467b702784ffafee8cb00f99e8148f06bde916cda76e9d949a13c60da0c72474622068f2b8b4f15cf3e4e3cfc8d6dd8336d2b0b268f72221b307b48d4d8a1d95e0addb77a6238a6f75e90aebb4acfd06b30c12a39e55316127da60c4a8ec358cd687ad3705e27b4106fc8e9a0b1f7eb76efcb6fd5bee574f8ef784016c5953db5e358a078b9e7834838efc4598312a63c4442e44478afc0e11a2c16e85deca1ac69e3628f5ff5478ffc1f7d25483d493a19c4c3de9567fcef4858f49d96eb143a53892acf8c4539d3e82ed52b583bb8ed5b8d60268da316dac3e4d93f15d6a6199c69350a0b6ed966bd447f04fd0938acf09223817e4ac0888dfd9a5d5446d8071335662db43d410755c247952aead0aa869a0d29e93d1b01df8867dd709e38c9eb4d428b664ed43d22f795a9cea4de1c6d5516927667b6ab188dab44bfe1accf901c079ac5cf228a4f3800a72327c22e81ab207d9494021dff9c2a0e5d5f3864b666850a80d58236e352d84b3d76bc67984a05687d80a080704a8f9bb1d5724298c3bf69f13733bdc161f04048fd6c4b18667b3dafcb9f01dd43fb794fb0c3f8cbd64a7ef782696aa5612f120052a55a0aac9b8beda630072aea745614d46373988eed167c2b31c9c592e3044a7e74be7d2506147f6b8197ee023f88876ec77efaa735b256cc20c82ce4bf5b9989e4b07c5c27002d35b879bc78d0178f1578a5735c11f1a053a81850c264f7ced7aae8b41c85f4395a4f2893be36840930595929a22ca8439ac9e1447efb3ccf90236378d4d64f020409b5895711991316f39d8e030f649d7b429210a692cdb3a43d419d578bebdb8dab8d11536b94bb92c5b7aac4463ba904e017521f3fa8eae32edfd6f6d399ce5bda68d0a232bb02bff4c609e7f46e9d796718cce5f6b57fdbed35cc695f2d67315efbed891a7d697b769aa323d2720b807bf0635db45b7a16bc0d429ec7af299553b36d66b767aa8ad26bdde5441d0f87999e81246ab3f1fbf006c02cd9bdde8af90be239d6e9507f7ca33a8a9ac397608f1e5888327c7bfbceb0887d1cb42bb1bf2bebb050990c147316212a0618f85e1f3d895e29bfb043377f3fdbc2757da5bf3de4a062f5323ed5babda249b8a1c74da46ce376a8eb3eef7eacdd20e42f3f0cf731322df6f09ebeab30f55c73ef2429ca8224ba842581d708c030afe494068bce7ebff5916dbd31a5836a77a06f9ecce44e2e61b6ddd7b034403877142d598187f8794fb6dfbb148e43076151339103a6db52f3738be9f553c4cd766b1984e349d389c438f56f6211051e63f93288d2672387bea561f24885d9ec09af94e9dc88558eca3132a7a19d411409d209a5488f57cf914abce648bc5c8954342fc9111ee370899cc49d8bb7e5a1f91548928f4fbfd7528be8450fa43423135928a03ac34df5a9bdfdedc0b755df8a7e7feb4f2769fefab90d954039b9263fac8df40a4381759296a95efeafc41f410b2d1ca8dd2fbe6b5823e98eefd5778ed5de84193654a8969dc2941d15f5bd3bd33ba322a876a5e942365ef4b6dfb1118761cb291a7c5134e864518d0072b4be90ab1860dc843a681f732678d4fc5f9ca3408badc90aab232679eba691074241f8bcb1309f7a362f562347a66a1ccacc3cdcd233e6dfcc37c435c5851e152d903c7a703ac1a7da59a4777587adcc6b6d773a4414e18825bb24ad47a66f0ea2e030a21bbe6cccea7caf2f16fb11b1b51c838562372053ecf9f72c922713b9541a95d1182b7f54b589bf2e808a481ec52cd1e8e154c7489792a3c28de38322ff721adda5b5323f8f337a82267bc38f5c468106829d0c6a7b7cfd06a00dbce6723b429538ecdbe115aee0ab6ff70adc327b2e9fd1067696b9784fd41bf23314297a98a1f15eb6e2a3a4a2bacf67cda9e0f9475def224916a85aad7e0b609f4c55a9427f183d0bd3ffa9a20c897fc763c86c3e19e10d40c621f38c91ef79145d1a68505ec4b196f7e39933cb8f548eba49df0c5373e0d61ab6968c26e3bab1e86474acd0f12c9b62537ef2d370d8ef8371b4e3b9de74878984b89776ff8c7064892079df5bee8d9c8646eed11ca9c314efcdd246c6e562b493446af9312ce0bd29368c04a5c962da809b1c355bd4b430ce130148546afe07a5a12a5a55e12e1760e6ec9cb918a88b4a2847f2b46562441b781c51dc079a8ec4919941a510c770d2ef00d1564b0660046ede4f45505b539340d16ad0b15d55649e592485e263bfc2f1628603f24c83c6fbff83f1d8ebc129faa25f71c8c0e0df28a2c1a95662984a9322e6e032edb43268219e3918e40c68b1931c44ca804d21c5efd8b36181b20da2d38abfcbf4293957536809a92f9ed43b2ed9728891f4384da19c36a7c1471c15b2fab451b39d5cc0865e5c4bf8f067375a7dfdb07620d60c8625be882c232bb56114b76d0142acc4a794cc0bf026c2b7e5d40c51fe8f1774426eff92d9657826ee1fbba6814789d8250ac9120fa2a22525d605664db0add1111b95bcba7e0af009e57f2cb035912ffa5e4a2312a89a8a150e0b5f5fc920b508c5bdaaf24355943e4ff298fce45bb8da2856055f9430214fe96d0a6848b4271b65440024b515691554f17ad4b94ba1880f90f637e390c2c39e4772087fa325617cd20d12782ecc7d9b5ba685d9accc22f9c8b06584499135e6965e3d3126880aca156dbb494d64b4bb64dae88b053a801da19f9a28629760c455f3d423fae3158a65e4b4424d45aa6f8b2e379bfeda6e67bded84f96f490f3139cd6392d1be6079fba3518a3b93d735db95327005be86cb4c80f97edfb381090e6d36e21234a8040c2215e52e5c0d1bb207c60724ace2f924054da31b8563f1fa499389d5c18c4868c7248fad6eab6e5e317200e5d7cabb4aaa329e8e203447dfeba8911bd29e32d33b44b7d44fda199737eb90d72a18bef1563e37c75aafaa7142dd4781233987161c5db849d437e7a65e28613f8e1aba7d45d9f70d48b92288a85047bb80413a521bd1e1e236680b58910c03791581afd65e286922777c484b9ba5738d7bec4c615cbbe4ea58ee86f8f37c31830382f8e87e405fa344f8cf03288cd58e9ff8dbf51d1a47ad312ef8891a7b4aa2da9f18d359e08b5e30859fef360d46e150f62c3211d4c41cc8138246f61dc02dbdd6f574fe976d3a0d961b783a480a4d9f032232d8a2c6c6fbc481781cee96d642f485146ca504079f0050d63902c861c3a3804ed76d08d3171197d70a6c80c7be046f3918718c90cd95b126714aaa0afbbf50573403bfd82822563b874015133ffc07902ad4b490b09209672430cd86a81cfdb12dacb7d4dcc64a03eb9bf821b8d49998e9d8bccc415057369df37c110fe5a5b21ea7e4fb0def27f7d838169a87adcee75a936f6bb867917ecab02885a42ca0f18b8dcdad3a0e3847467fae93bb797a6b67c76cb5ef900bb77710293b58370cd12dfbaa2383d974a6d5d50c3502b7f60cf8deaf0a6498abe7ac4f3bc2598043854cbb4ce0cb425c29a6902c2b5669dbfb78646ba2ff7f5e74647b19f7b6144752360dcebb7aacd16ae6383ee00928539d3b94da1588e561fd09b05ac640d20c8aed86a6f047e82afe5d73b20d2ab7d3b040cbd87377fb199d4a363c2a103fd54edbd8d955f0dc0c260bfe67cab464aab54be6a1a1a86a20f21cbd3988b2abd84cecce3e0cd562acd404da09e8a4ae35ac225ebf4a8662d95b397840ccbc9f42a220098372dc31dc574b2d8877a8f93ad986ba95290f331923867b8a8fb589e6fc8027cb1d8030336431acaad52b42eb77d2c1cd0c76f9804b988e09b5f25f1c7a0a3476abc2092b5fd7b6dd95ced9e51fa0b9333da1a4a8909568ad690f02454599a1efa39af7e4ec02f6713b639ac6bfd9c693e5981c34b630264a52499c2d5366d8da43f0c4479ef67a9f7a0a79f88f6a78985fd61a6ffa5e57fe48365dab1fe23911b064ff62052f0b8cc7f9db070c660e53edc1d7c4db2a5bad69516e2bc74f0c35f29dc88808bd8a43ac91c38da4f0d152790a48afc94132464b57528335a759e2266b67fdc435ce0df9ebb304f8ccaa39a23fd9826932d3b82e90d757918eb2465b862a8b23705d3b8cbbf6375157f5a477bc355d810aec67f0b6e89ca17252528a72637da3fc6e2cd6ffbd9e0b5270b7486d21d62df8b78e870e57b4acd58ff7b9c1c0647b91a175aa5877b8c32592fb61503af4fa8bfe72ecf4524702a9734f5d317ca0e8853ccda863a32f3bdb0ef9c5089ef66ea8514d1aa8ca3b03d23d03d56449a9b317aca387c1b9bcea8092f97d5ca26dc8e46185b077eb42da4bcbb16190c0645c5d401486cdda6183ff4d6b3cfa5197e0d0e90b271b7e9095d75dbdb623ddcc78cbafef3d2a1aa4c2e748462e6a58cca61ee5a4c688299b0a49857a461255c0a3356ec331f91b90e9bbe22b35fdf81286d43ac13efb7f2e6c560b6bbdcc12d8d9eb526082779cc3869a907f5b579b1c1b0820ee4d7b179cc0503756a67df90484d91a48a1bfd975146eef902d96933069575251591a864c836948ba347b3250dc4266262a3b262913b1bbafa6ac8e8bf5cfcec8f705a136ec245e9b3abecc49146b45dbaf63e53ad10ee4d48492335f2768da87708fcf087be2628daeb1d5afdcb9d1e325cafd15ede7f1fd9f481297a53443df9139783b49bfc241d2b742d137f3507ec3697fed41f7cc1457414fe69eccdb1d399afb321f456d02b80e1d5dfd77dafeb804adbf6b7b453c53e9910a4b8986a5342f08a3705b16962bfbf837193928a1eb2c13f88383ff71ea296450e89ee86f4395b050eeb075a1923e6785a4233a8501d9bffdb1edbcd18d5349b707833b5ec137baceebe5335e74f08cb19860053b2730ba5793237b9c982426c4bb2c234beb37d08a945813feda92587ba23ccf294be840d4305bcf74023bd7926401492e4dccbfdd420380300353cb9e9c76022b57ff93e0b8665299116d40e2ba885a6ef10329758a69a00c08f665b80774dfb5d38710bb6834680c49c6b11ed5e515796ba841343c0b79b0141f194c8eea53a021de7353277d691064ba713369e6404072b11a2ed629d825ea6daff17a762a4ab8ce430948ffb4eff13a870c6d22811b153bde235f6d93099eb79b5cd4f7bf0c1a90c9c10435a494bb154690921189343aaedd38b013b689c18a8211b185484d12a2924155bdbba7b864d37eee0196143fbb890f798b0c36cffa4ad4c4e6d4fe020cbfad575ccb5984f2853a58c63ca2ba04605a2528441d57ab2785bae0200d963cf62441858583db4985a9939e92893925c56cb1be69c6ca98d4416d1548f3ba6c9a136f689d958c0b718e4a8799ff9d81f0291b1164993da5dc1e83362bd1914d8357c056d260e7ca10dba81b57d9686c2ffc4246c99bd404b62008e2915c021b01574a668d04bdff9c26e861380d60aa2a98440d8c103e66c3182745a1ef488f8eaffe53325e20ea1060b84731aef0211f6620f662c2277b49d2f1a195d60f68f72e7563b76b6d2b477b12ba6b23d496d93654bd133cbd2d1a5abcace3dfed2c8953ab7baf58212b4956effa617f964b12d077209aef6dd2367347c504101a2cc7be1c934aafb57d558223f73fe7965bcc2471cc580bb91f1cd732deacec43964fe2f54b2a39715a90617a06a9ec8735c947098753b2fe241df5ed456914e668e7c96a392e23ab9c670633a8810488c69b02d5137577a84adb824fccd5d4e7067f73cef7e0ea695a6b3869a082631c1594836b66228bcec9547a6e2168cb7ddf168a17a28d70c37ab68c51ddb0db706030e2a968ca198471aaa9f79a3e939019e3ad8a5e7513751085e52c3e1270a69b19bdcb019865d2279987b841f02bce2a746da30f796b308ffead37a09c622ea14dd704c81f7064325ef5c43183ebc04836a417fd666117299604b362d6b129c5a6be3a1dcd11ab723b1288ca5c2840a29c463275bad5d82a09de202770c17280553efe26a281101365a3638dc374bf5d6e4ae25df96d2d42750f23e4aed3793f0434549fbbbf2697991f98f34a0a5ee516ef2a4d542387a1651affeec1c516f47495413410be900f08f5628ad80c6b353a7897edf4454d171f96a447a4cf2ae1b116cd73047d157e73d0eb94e3bce9355904c5cbd43d33ef5fa60c11ab49406cac219b81e298118812378cda2452d6e5b96f76cfc3259133166da0fccb9f35a481a4c73d3ed3fcce35e493d63418a3754c1722aaabdb3146a8c4c806bb0eba2cfcbbc345482ad517c11297a31ca279b0ac4ec81d98b3d550bff1178429953e34cc3ecc92ef900e1f6f48b2a82610347325fa76d70d53ca2aa1b10a3b3c8f94156bda1f30c400757f90ab0fad1b06a29555ad1dea4448275531d6200e057a97b35ba9f9bc746657bd8c8e9a037df06c55ce2e5021350326d8279ecd54734434670670c09f38f7de9a1b9b728c24e26cab2578b80498ec489f33f90f25f9aff33239c686598d0a27577b3b46822594d1c646f0043c5053508412bc558abd359952459564337c6da7f8115ab1387b148ce730d53f53af2a751331e92b1c2d5149db3125b60dc3efab9ce98badde5c129dce58b38a7aa31bb96c388c6945e0f46383c8a8681550f49f9950ea37ace901daaf1a844b4e02509d9d29bd13d2cd8633b11e5396dfcdb4c2d64a209efae2381017177d88aecfed0bded82a72c834cf95aa53aa888ea01a640154778f454f0e7bf8d1e5e64aa705e4575d67d805e68cef0b93463d63d28013e2ba8e288dbe5a7d335052e31b6c0d1c10f1e5a8e0db9f9fc4e236115388ad7bb70516da4418ca296c7c248ec74b00c2459cb64c19598602ffe801c502b17f971ed50d8dfdac7d44a2324e86eef2e472f4e8575bd3668eb3e2535c3366a86508246e7fdb09b47ae75370b4037998606182a0445a505c3cb9d4476e7bcae7b3c5bd44329f01223f2ef6b8329932f3890a3f8d15a7dd9f3909b265bdf501106e02c1aaef55af7da1c6ac1f436d4c34b35ab8d0ce50ab6abdbe58c87e0201178c41b6e3b66fe0678edfa3e0f50c622ae91c163169fe04fb610466311f90a6b1b0b6f6267bb7e801ef3ab7fef5830e579525fbf5adad5d25f6b33464b1a305e6499997110e64a2a4b451938b486643951258b2ab9ec92df4c3616906635cefb61e3270bd23d93b2e8a7b2f4d7a20d107d9928bbb2884cf12ec015e0fdf7a57d6972e39e0597efa6877faad7743ef6a6b77fa277e6377aa8de6f3e6b427a4b8a11e0c7a9cecc3ec48a3866a2315d838f9d41fd257a35dfeaa17a4ff3756ffa4b916e2c05fb81e4a7c8cdf7b852da64d8a1890db21fd13b9b3f3e45049b08dc287de14c3409059966041d2e7210504dcadfe65c115d68bc5ff708a0afa879a47aabf65d86a519fe7a9c9841484f2e336bebe161c65b0f4a66f2eb59dd0ccf7afccc20aa27a399557af832e3a10795999ce9596786373d1e663cf2047fe0408b9aa6abe6f629d9e761745e611ad73dee397c19aae5a86dc79b3d46eb5e0c00f9116e07048d43960eb3944b25239045a87000e29d0ada407250590584272a7e4050a39203c8fa543805e240051590bca8ac00c28b8a2720e853c9fd40561a75e074c122a94514c61c724550e1f210effaf1f3e7298158b63f24c1ab054bd47fb2d5497b39ee2ef5a7b28f7bc9854f7f6a00bd28b0c1eb055a1b7278b17a03cf2ffc1d18fdc5ca0dfc5e38dd80e08bdc1bd67ec17383d70b9436e47bb11a6fe01ce1dad9cb2b349c9cb865f878f1fa8e042f08fde4217d0fcf670a845e272a73e76933702fa4e79efe3ef32818520245ae8258f6702910611f5ac1caf6ea14f06e4fa202f7f64d1520b43fa5202ffb41d46d583957c3bc1d841a922a60c229aefaf3335dfbe92b57183266a22626ac58522cdf08f8833b668876bb27b7d4bbe8e55da477532b871f0d6539c468e8cb6144c32f87ac5da1e5e1a3c32c0f101daa3ca8e870e5c18f5e0455ca83d5184206b9bde01cc3b97a6055398e8bfba381b624699f0f0587ce87d7787b99ddf2dc3a8d550e74438ba872a69edbee87d51876eca82091e2b58e6ae9f2dad10525356f4bd466bc8da2b6e06d8dda326ffba8adf1b644fd1114781b505a4acc7ae64da665f981d4f850375abde13b49afe9e46a538307a338924e0f1cc07243e2a01292c1cfd2a41179ad0c29305c656881212ac30506ba324060a8cab003435486bac020a64c7cd8306d4ac161fcf3e161cac9fd3ed1af8cb70e4ca7998babfcc0f5a036ca4af44b9b3e7f6ea4651e089cc33a1575384827d5d88e2b3a179470f070c10607830b3e1c245c10e06071191e6a42539ebb66f6ddd829f29e26480fe74826189bb8646ae0abe3eca37e1ad75135cc653a80535eda434fad25a4fd230dc3687cde965adfb4bcd4eea6f5a5966eda2d357ad37c6953fa6020c90795931609ab5f288d32c77c4b6aebcc046eca37d071d35c2bf7151d69f83a137459094c8883208201897212c435212941de8430097a264d086011b12de1c00a3257b9a1c97d3df3243c25f4fffcebbd97a48acc896025021ab47d051c0bdb589f40f06b378d79b8488c106de7e63006e087e6760331d710a7d1d776624349b87fdf849b676efd9d291990cd177cb5ad9b5948c542fc3c7232e5ba6a6a8a7fa6e4294525371b1fb219b8dc5fbf363b000f65b9029533e7533fd3b164d74a7a72e771f1cead2c0e26275543525418af6cd6675847720f17d440143749e06cc2075724bf8fe91dce1289281fcf2b2bd6ea5ca6a12f27f50417b7094ba0024a1fe2eb3a912032e9de77be36b26ca43dff0cc93dd3d96e4e916d35c49c1238eefa325d3b0a336f2a278895e43d5a9d0d7e1b68beb55969869995bc6f5b4b53d1d98c24b497c0a4989cf66f9b627eab32a9d300c3a29ed7dbabf523d4051c5a76f43d868a8f7f6208fd11d42a703c62830471f423a2a394befe05799c3d05d62003c82d12090af7058abdf162d029752804ced1a5f4b6f14e709b4e6a9fd5ec2562e8281862052ea939349a0414a62113895e1559f4f368ee4d31b6a4d4ce12b11159f93ba5f1f925198b7e43ebb61cdef881e7e83c7d36c638b473af630d66f18428bbd45d069e377af8c3f93ed103013b56671d25b1d91142b9106f24712d95fbed1485051681bf408b52847f9a31b98bfe81ae3f7067694d26c4faf37b77103176ac9102f804b2a64220c54e3c214c291670110764b777a3d56b4b0b476e93565345a77ac00255420c68730c3fdb71111e82464b43fddfe8c75df8b8a8c9d211d8d7c39ef92963c2254de5333921541e3e46f3976b9c63f2b9184b32b4d3b37d17a11ac989b2896524766d6692f34bbeec9b450edae366f43ba8c3a6b7e31a5cc25398b2d7f03b2723044e9b6426c99274020e852fe167ed092b925ed27d726a1f386dfeb6324d38c638a3546229cc41b212db734a18e7b9490021af984077b872a321bbf354d6d620327fd62feb4cc7ff2e4b853570a51c51910521dd9ad4b499318a8b56be68119b3c0d5dcf414fcc29e4e8a05b9a04ab06d9a68ebfa558cebd60c33931d7ab08fa6495d57850cbe88dd26cf9b55d247e06634ee541df84ef843c3b59a3d204af3491441e271c048e8e940695f64eb985e605b9121a09876283e26635107baa89ffa0f226f9113f9a874f92e53962ce9400b169b2dce633517274c3df2fb8679423443a42b798f37c7ef391b61da4c5e27fe70824ca9e8f1c4244197d39519b3e6a26e7437c54d64969255c6337653ea037c010c75602984620364a26aa58b69256261a5cd5f9f884cacc6f101696adcc0e7a79fe650987d0312344a6b678a86a4d6ce3ea3c78614488e70241034ef0e419ea95ac0217116b3a566de398db17eca17830d5fd6eb6681166a08ba53e3575a00c4fe30d6ae725b04f4c9b7bac0dcf74e0518e8bf96393e061d7f4ecc7258c3b740a36d852e5d3c144ab841ce6c108e81a712cff63beeea469cdfef1a65f86919b0f2dfd35f3bb8979b6611c9dfb91a3afe843be92528927241378f0ae6454a215b2330eb863b2a0bb2d9565ea7c0b1b7d0d6ab68a30e5490923c5a0eb1695b7824f4ccdb6c586a2540326025f00e57ae05edbcdadc690aff048f4db4924569879269dbe32e773efd9a7ca08c78b9db818c3a7c9b93ba168cd7cd8675dd5a13498a0d1be497be487e57d89cff27ede33e47c571b19a7dbf27a9e1a6504c245ab1771100e65a4ab6165d46b4aa980b833f49dfa862289c77e8072bcf1ec4bdc076340309c97d38509998cda72223b11ea010735184279739259f2fba865e784eaea38a52d0a1e53179c25a651712114c176e25a354aa030213ec614a020800d7cb3f32091aaac40090125379f2ec58e18073b339c2587040c594d2476915fc69d367f1017002fb2537975853aa9dc1c84edb62f74e730cc9bcc958d440b66196e74222a61a8967daa5cbcd8bd39bafab78b15336a949bed61df61b623e50f0041d83d083d5b0219cdf47b2ef901a6dfa9f05b37de89ea8afe1690b033a095dbf9fdced531b7a03a0da2d0713981fdd8d69429b080906b83930a0e95d5d504b8a13b616c05122ca55c0cce651b78513955423393288db988f1cfcc5d71ac1c7de0b32ae178fb924a9ee9e537eaea8109cae99ef20c0c12f96de61545a396d15a872e8da46990208d76e2c2891a1b5f1f4ca12a7221e513fb44f8bd47dcec74f71c88c853772315a6736f267e3de1601854d973f1cc1ebcbcf1aed44a1772046d84be55989cbb6e216ab31bddda9b6d86143b98334cb06240ff196237e3baccca0b45a2aa1598c161313a190adfc521d6b4034a62d285c9949000fb5dbad10578d34057f081a7c77337ea035c121113e81615228da3959475824297cf850ac573973892b52683aa49c75ce02f6bdc6c927416e651bd4cc0b289cf5f58e826f9b8aeb9cbec21f54dcc3b4d2eae29bfede4fdf4934cd4a4f9e8c543bb005993bc4335ed54bd66276ca2893c19499c931404cac866ec2176fd79cb7a6fdf396ed2fe9362cfad3cde8401fe53a55a75ed64fa828ddc73e7c449f34f8a3d79c19093f65feb3d7dfb991326f2dd2a52eb08b6e4b39903e86420a2eb755e0f509d8cd9906cb20e60c34e92b01b21babf3a9f984c0ce266bc34ecabe791b58ef3388f53e6f1611c876118062b8b4c16797b9c4ee87e73e97fe4938c4b932529a5686f60e312d3f88c79bc5bf9d6fd7e53abdeb1094b48c23966e1c2ee02afe71b5b23ebdcf0e41850a473cef89e7bbae78c348894510a83daeeb132fd836f8a7f066f9a7d06de34ff0c9a53ba52bbbae94a4d75d295dad57108f7634f6ca0abd72426d48a0fd4770d18aca1f081b9844162829502d8fdad1c21e9700ae7a9ab84383380ddbf8f20363eca181f88605d9bcc80820236399fce7ba82f8ec3263d8ee3de549022a2d7a0a4ec910e1947ee49f27270285c847f28d7c3df33d7c7f243d17eb0d8c5d66423f3cf98c7ab177fddaf37b5fa1b9ab084243e4316ae6b2eef52f81f2afad29ecefaaf14c25b8efe94d1ed0aebaa7fed1eeb31e5229e7e5d6d6d95af5d51bdb65c63e3afab55b5fef735aa9f736ca19a931f78af44085096b8ce07cfb3035dc088728acf29985e42a970c9943af05f6034500a850f7a4195f08bd33028f69629637c1060ba398cc25a628edb20ee90aad85e7e8219e5c4c24fcfa5e1d7094377d5d3ae2227bd74296e3fb9507e3f1ea8db84dd26e3179d0f757d8b49b9bcc94f7ca4fc0ed1d2734d6f1b2f1d33a18e01bace752212e256ff981bbd55f536c4831b32467697c2389900568b2f93644b7089ac5c439352c51ea2ea19c89c52f78f28d983527d57800050f6804ea031af8fca1a90050ad6e7b1da03b428fd90c69d9a36dbd0de18f623f60f9fba2d80640271073f125ddc7e9bec99e6550412518e819cec8adfee090f863b169cef036eb7945fdd6b7011470f653ce4a18ddaa5a42f537f50149af4719ce7545f3c0e4d52cb8171185c8852a6b5823e1ac18e62cf9b72cf8bcdcf535eb5304e706f968be2d7935af50e4d5c4212ce310b572b5ebd5f6fc2ee0aafdfb639a33fede914ff4a21a1a2c2265cb37505aa7503c3a3acbf2b804038f6804ea031af8fba7e4b664335a36425203564f1da979df5dda337df67c5b0bb69597315e65d5356ae7d9b5bde2dfaf37db74cbb9dac2dc94f458aca413691df90277665f2def27dacdb4d8c15157a79b487dba9b001550c9fdb239ab52e20b7f08487100c432f4b9334e5e17b68db73a32acb4c0b7b95ac56ab99cefb9a2a5ace6fc421b381ea9e2a457c1d05ee457abf816976a8128b3184be06548db82afb56a1e60f4a59bc4578065dbebecdbae6ba2e14ecfce0534c1bd6cb6f903ea0242c50d44aac250025321886f27981d587e7c9c65a3a1fcfa7be77f412ef6dd3ca27579cdd701a59acade5f1fcca7f462bf3deb65d6a49ef7ca8e2e7401be774e0cee1ade2816e0359d7d63d18060cc4381de65496ed6fde3ad7a95048515f60a5cf3ea6aafdf2b472a134587514d496cffe961021398456e4a5ecea37f54863a6f825fa1361a492cade9c4ebc788cad2557ae758662df993bbb4f2b8ae940fd079e9cd040121efb5e9d6ffe4af79b28de7df3a5df4ddb9bb4b55b93eb607e06ec0cc75587b86a5b00813ac4e66ba2b54f9696d6bcef36b3724df620762fde56537435ce771920572e8401f34540f5455097682af35b785972ff7dce5ee9b7eb76d5d37c839dbbea44b78ef896414766879065afc33bc082a016f721a6b1be27d2f0b4e3059506a0abb7598fae4571b8df700f9919d6cd95b5110bfd7caef53d2a8c26e0763157940b970818194bfaac4539b86cb3da88e30a8fea1931468ac8a1a47e4e6019c2df918bbcb65b9f24234f8d07fb7f395f033aa1c2bd2eeade8dd6d864ff0f5f77cfb0da89da92f713d1cdf7fd65db78bf9b78c46253faac1a0fe8b4c4de3b8ce79298f11d80b366d6884a8d5461578cb85329f7dfda2a137a2d8b79313cb26ecd46f64e210b772f7eb5df7fe0eec0a7f6ec0cd877adf7d220a2ebb33cfc026e6889d88e8ed5c9771f4f72b0256d38aee7951cec4c0c9ef3b892832d69c3713dafe4606762f09cc7951c6c491b8eeb79cd90d6c557ad2d6a1de343bf66f82caad6acf3f33d01dc5fb573285323d7598820eeae363e6dd2d9b8d05a000f4024586f6076739bf97fc43c5c6d454ea9f200765107f8ee8375c4907fa3016d68deaf34ec97fc201f508b18a42a3ed0c529121b6ab5b8347dac299bb5b4b8ba3fbabdb6c5523c3b9fed781fd2ffda425b302cc6a3d85d3966a2af1c8211aeec0d22df08e6b3263a40deb7caea7fc4e1729f038d9a780e0f170d08c3e5a6ee6f56b691bd7322e6426ba74a866e71d01069a57e63c75e64d73117438d5ab28376615ac80a25f181ae4e1798582b3650cd552216ea8a0f7475bac0c45a4d15c56bcc66e5bb8cf7dd89632ef4a649f831b2a446f4cd06421c8d19a4d610429805cac9d19e7686901d2cdbf2b2dfca34d816e5118d72286897eb486618d043aec7d49b1c8e94e7b891336dacb8f66b0c8160c0936bc2c66d65d5b557f24d4e1d420c0b3288f1d9f8ac636d277627162f9e669db3a2dc3fe6d4a9cae2664057baa8654b5450d9f7862fcaeaeb28bd372b79e5e7d1cc83c486548d2af33ec469989295f28b4c20607351bc1cb286aea8d702218e850c420c767cd731b613cb4de41703f257fd7358b8183a5bd1001d24a9d824e2efb403933b24e947aa83fcf75e7ea8d5f8ceab44fdfb74500a9de5901f8c29197cadeffa23a686899e58193263e9caf4518f8f68f458cc04fb60da2b5a66cc388a5f590b03d2669272191464b2a961af37c1c2deade9e90719b6a0ac31c7bdc3e85bc4048a2f33a00522fed904302f94834be86d7535247dd7c3430c3b923238262c134383a81643474cc3053bf7a838577425eb475a4c7a032a1697fb71091a938c278cfcb7d572cc246470b13bf18a52b6dd508e790c012c350f6ebed19ec80cb8b4ed3d11ab4fc9b060d286942173cdd169854f7add309d75bbf75e11f00f2680a02e198a43995cbdd2c4238b630454e65573852ea597b9c79bc64811763c72a9851133f97bcccc99bdf78096990e7e7c04afa30e1d18d0d0368aa3723d485ce41e5e0cb840e0959e0693050cc8de446938026d7487b8536ca67fe89c163532d2af7e1e4f63027c71d434d3ce5133aeecfdad71f81dce1887b5d21011e53efd8c08cdbd0246fcc43315e661a0c762a07f5c1c47a8fea00d862c36fe617efcee771559ffb47cc09e538aedff003e7483eb89ed7f981fbafbc14476e4b7e7021347688d7adf596d248e31e8cc1a8903fec2b2c657c7c28ae5d2c1b95206604297d58a59b5c76caf4ac542f2dd08c099e009070fb38bb7cf6fd92d2058d8b00bbb99ab19d5b5cfa5d2750a742e7bfd363e6e9c18d2efe031dd1816fa627add0b4adbb710adea0a281011596cbf003c844806f84ff7911c620eca675802dde3f8b7826d75319e742c0fa07aecfcd8d83b347cd34aa4a42084a1b4c544652f893000ba10bb30c384a4a7d50d276cf75923be11c46e9fdba74302da7ce4a8429fb34f8374d2f34acfb0ed5b19f66587ea535a0d1667745f82ee298f44db9a7bfafbfcd388f443c7c383aa2d4a8749d0fad31123044b049d35eda6a95e0aac31c6b0fe079c22b838626522fa434467d3c119c2e2a1f2a0faa42cd7f2114e5a5cb3ab21c9139a3e666b06c6f75600d10f225cde92f665297e17b046beb9751dc513fed8c4d543e54ab7fb80df51750d9276450ff84000afd20c575e3d42af3c36afef2648268a9117c752fe4a9f3156d30de1fa8723aa53f57f0ba57a5af9e76130b6dad27007a6efa8ee8d45829d56cb67e8866bd47a078dea9f121a7cd5326d112366a54867f646cbf7299dc269cc06ecf755178f72d94362baa6efcf592ccb3a9eef09c7ee6ad3a7783068b91edd6ea009dfa07df08679cebcae68a34bfa5e28fe39741595045301068e744757cbfb0f3e3ba600f0bcefcc32aedb5cf3dfe64fc77d232711254edc6c53c2bb8bffb103a9042771d745178f4e90f1d8bca6a71adf737aef91efbdd90aff57f490f084878878096b77465b8763144d14733ed2182868140da8d3c47eb1ce9f518c3171034da0285066065f77223af84c246c37e0c84568710213ea43f77f0be77a5ae90dc918a0d022d4293850dd7f23bd62830c14afabf0e2c768991ffebb089e0bce1cc2afd3b6474b5586b84b6552bcd1467dd3a9642e4ba57e6dd7fe7d7edff72d010fc1d250ccba46189627be50a47ca9b38f0d5bc94688875e042ec0e896e74d4fe0adec72bcd9db33251ba354ec19a6626d589f96eaa368432a81c76a3862b14032e7555705372d67e88800c7969c732e2eaf6fb3c0630e6029d007692cbf2ac272aedd196d09cf5134518cfc3c96e256f28ea1926e08d77fd4ff936aa03cbfd56baee221977dfe2b7d43a8a43784cb277160b3f1a734e17c24e70f0e5d40bdd8998941c8e52ff8cd7a7583668c1aabb0661754ea107d8ac5f44f5e0aa1012c9da61538796bb678e892f2c7fba28dfe9bccbeee53c3f05ba881464782be30834d5c5ae83331dec2d4fcf2639b1a7883bf63e8861765b3dd23ca8c647cf28a717fc13c7bc4905a39ac08e76fa7431af528eb586f5d8bad62bd55ad602bd4cfc19700a023fd066f344f3864743cf1a7edb477420da10f67b4680bb29f9aea11cc8a01f366eff4ea728b3eb374f7f150aab797de7884ebd8c5a1d796c8719afb3f77e09fd35af2f87296f847d51c4b4a36d6ee0ecf155b7b2ab79e4042b60302385023342c2cafc2d95124214ebbb7d3a102738d8479dfd14629eac09ea5967d392f1cb8bb0413664ff611a16042456854e3a7df123517b5fc6dbffd7bfe3c9867035bd7bcf86fb1e383346168a591a05db3f3192bfb1e3d82709063c365e53d2d1db40c97dcf65b24a1ba4f631f24ed9b17ee873a69bca90d77231301bc51bc3e7b319eccf15df364adb82e9e882039f76339efb5e7776f2a1278beee907c09bf09a0005d4fcd20ed6d6025bc3951982da972f54741218c60a0da3b60e74c6bcde2c35fc63f54f32429d9dcf637ec9c694964c0d42a96aacd0dc77a114d0665afc35971fd51399f5c1ba4f2d7e4603278940a72fd2be2387f0ccb0f12e40bb62dc4968f508d568e0358f7a6e86cd1f1d65d050767763a6fc2e788e7b063d9a5bf21d7b9a18743087dd111a46a0ce59db5807f8c9d80c0136c155ce9f48f7f54ef942c0c3b69d73f878a1df2008f9247be61037825d834aa3d0c243a80574435fd4216c201e6bfba26707d77060c829b4a91303031e52b584a924582c4cd532d6e25ef182ae98670fdc311b567f177279c94da1035691361ae55683aed4659d5cda5872fcd7f46c13f3cdcb86787dff592f5d0028f6a652b0ce4e3f120ec8a1ef1474540a7b2d06a3a3e98302a7eee3b7af87cef87d30064307915739ef0bef62651d1c0983d598bb1b41d19b09cbdeeb4fc8f233597741c2f993a7ba309a63a40e74149bba566a1e2ac2c3fa24ed3a6608655b22a25efd5b79f390252ff03c38feadb74b19bfe21a5966743c9456014a88062f9deb2163c78e6227cbb9d46ed5f39284c12828c52201d1e70d986b72ba24578c0aa94a87349c7da99ceee65aebc4e75aee6cdf17443b8dc389f0fa81b28891631832b881f571681402c1e0da0a9ec51f75204492aff9a87d2599c7569d9bc9b523de4aee4629d071e2a3c76397ba56fda363d4b7e1f49c2bdc8b05df880b3760d92cb23a995169d461f99cd34a891a8b1fde19c6b6016f204d7bfdded734eab2f912248a722f483cacf7d3b469dab67017db2a8cb739c290bdfbbb8e8c873d44c410b59bd87168945b13b2375d97c7ac8bbfca27e7dbe10fc7c765f0fa57a7be98d4754b7eebe1e4af5f6d21b8fa86edd7d3d813c308c5c3dddece3b250ce5c3905034e5c33e8c28ac7bb58853443f7eb22874e4040f83082fe368fd33d411bc05b2f46687095ca893e746b4117dbb5ddc1270e4b1f6871936c8d13d820f407c1096f80950021a5a9db2830d703865ab758d017c36981acd68bfb8f0969f181d9fb435b31a1d36a8e945f69e7c004054b8aaa03f261f507d4e9417abed28455c9bfe669e8da0f3c13744189cbaf8ab0887d7f465b8231974d142317c93ca82775e4a732c21b5c30a83ca0fade97b784b02f2d7d2a2971ea1528ee8d4f743ee6a844490bc25ebcc3fa6b102441058ecb725a8ee899009daac6ee0f833f77681552b6d8e710a1961f5942f422c91840b847a21774793e801b08ca8afd908b0416794d8000b027c22270a89f99b06569661b5c81d65e108ee1629a0af5d8d3a0a8c94baf540cd9785e9e0f0fe1fbd911871edeb99f7b7f675b8373964d14233f8fa46c607ac64ed7295fd5b951203f5cded53069bf9767cd39a87611dcd35f2d01ea1a91a8c36d3f1947a664c509dee1b308a08542af9e6f8181559e6e3a120fb1325c5a5f0149af608b0dc9f75f6d3fb34bdda5c8c479286e20ccd60cdcd19c5c44b4c19e2f247a142ab3fbd59bf104a94fa017bb32bf275a0308f27ae0dfb6c87e148d40bf29a959bcf3d0f7173813ea821213c903df8a4cadc88e099251bca67aa842ec35d91ead0cb3efed9a0927fdbf4c6a24a01d851c2b27bb60c48d43863e7e5c1566146e62f83a064a36a34849df5f27fb09380b143d3907ea19e61e6b18c6fd8f80d5470a0326ea11a6162aa986ae2bb5c42ea3a23f0c1af459806002af789f87911f890232541e44f7fdf9d9c6f0af1c98bc7c92145085e42ccc450f5eadabe6dd428baa9dc00d5d30509e5209aaf2be4ff56e1d379d22c7b6555ec8ecd513553467b87678cdbaa5692a5562cf9004b8759af33347d0d9dad4def96de1b342d850e98c4b32f5648f5c5e11e491453c2f05e8162443cb16e17048cc338ab859530da043e54094ef792b3df7bf023986e602464cf8b2ef4ad7734ac30b4435151f31e95a1e9fc8407c3601dee50c3c7ae715cfc0c29a804e855f43d5e023b8825051e912bca59c2a44421ef04b10838f2413e9a3d8bafb687b25782a4ea36fed12b16af9b1ba542322606ac91ad3fc40addb858b2fb3bae5f7eeaabf36695e93e48489baa5c076e12b2b167b7ee41255b914b1b53adf2a0398bafc14779401543f5e1c1a977f643794924e54f83785d0e41a5c40ec9d9c5dd106e8c990ae8ca671f9d901ee2458b3929399c696231861ae148cd66df6e18a63c68139a9c7a16f10a2d882b5cf6a75d0141e7cb165eaaee729870b10c7d1f67bc8be506dfea845655ad9debd4db3dae715dd71d12de14f118ac50bb18db6d16ffd4d07f3a68c4410162bfc9632d98e50692e00c8695c74fb7f836e1448d702c519f27fd30ca467423cb6544aa1565c2de3d2bc9cd6c9764ee43d70e4fc2bc9730ff4e4e05bc25dc3327b84d14793d7e0d0fdd4503bbc2c330c7ad5a462a5d273ca6c02534d2ce20306d51ac5ec29793b09fab3ce39b45214c1557eab96de12880855ceeeb8bb753c2cfca749da59269179893d8da10fb0f93d22b4fa27c385c15e138a4278b5b9d9efe20430e1c0150e16bca81b40412a5ab8a39e75245fdaeab24e8d1529fb3d333f2706c0cb72357bfa88e51af51c65f85797cf759cac43fcb86ec0c1f28241c96ed357ca9cfb40f8a8b6b715ffa6950276183a50ddd72206a7937a92f55913945369bc4517061f210b93278764c5a139f2ca30396135b3dce244b85743e09386d71c96bc94f6580b13ab5b9bf0d7c96b2b258e08cc0916328f61e1d2bd4975f48c0e7b22cd9414d290534cd98c114f64e984f7ed0ddcf62b0e888ff129da2d14980d7ee42d08587ac1be454b6452be1c2a04571168ca6b5c74eaf3aa17f9ecb87439aa89d8843688e25bafb9695d80551cd3ee5e851807b2cf1f0cbd96c04707c090640bd6f292cf5c9c3957eaf9b06dbfc4fab11eb6d8bf009997d405398056ad1213c17825c7d64e0ba6bb00ad47fd38e01cd13cc3abeed68269b92d8478f60470f248225eb177ab2e50d6f0ec6abdecc341267a3aa9495ee360fb24faed2a1806981e9b669363d306907614c9a906768e670210fefee727824626fc1cd2763fe284efd4bb1d0f630b7859f5860f41a77a332a2e57041203c6a606028f68f260006e63a5f0c85cd32dc63c53d757ffb8fefa3b49191c7fbd9317531f7d2fe3da36818177a2a4af2e70f417778e2a24a7f383bb742e7072a67e98dff2e19d5955d2e41c9b8c8efa884e8b35ac79976b5720518062fc282fcf796d753a45fa687ab16cafe70d319b4f9d7487b626e0208281beec2e1ef78980631892698e245e23f03defba8ca6a33825b42209fb0fcf00334e234e97456fa9f486fd0d97d7452ffe885ecf377a88decd8fe8e19fe8dd7ca387e89dcd8f31a1877fa2f7f3193d44efe6193d44afe6193dc4f4df4ded854930d3452375d511b0c3530e02f1555f9506bfdcc13fd5ebf9562fa2d734bfc1e8553ab9221518639316e8835295e582fd7dcc61e8e3b6b1d1b7869cf803766c173094c7b2c4d414e7b6d3077c5570a0e3ee817b4330f3d4bd1e6eb7e2e6b8d92f182b320cffb13483c712b441451c91aad238d102cbdd60dca21b8fa035d0970605d510a095e8cc9154b2a19a52416ba0344eea08e353f0e84375994fd18c5fb79163e4321645d737a469028969fb94c75a026e7dfa261e62eff029b6562ab6ea4fcc17cd43ffae5a647a734894366e8c31404a0c9b975b87b7713fa8728bcd0c0016b6219710499bd224f0f9b64f6c05606a1cf63088b40c00df4a77501570a51a0cb2d156ad7e0d0dfba918042dd722d8bea6f67d4285b5d48a955827e7abb5e56a82e785b02232883c157d14e8c4b4049b20881ef93409d16abe256b857425b1e854fbcf4da2aff7498291e5facf1dd5464053255209a2b3f7f50f4f61f86601c01c5190270d06f92b95e284a3b31fc8807de552cf7dd546505732390bdab0bbe3daa994e325bfc4e0952a7711447ab5ece0958af184d1d1bb4342b7735def9e6e27a08a12b7f1c4290e8d21699e324983abcd860e0708b078842c620ad92c3fce3999c7e993e5a859cb1556b7f75e10c209a1a3078b01adca259cbbaa0d059c4864eb963d834dcb65fc08b093bbf046214bfc155025645402a60893cacde19caebb825d80200a6c807112ce0c84df4a53d27b72a1f11ca2ab5f89c43873b9e6bec638141ef5401065820d171bc986043b2e5729586a8b88f923426a49d5012b114409a3ab978501795a2e2248fd5fb9afb853b6c2dff67f204ffb7e4f2ff8ddda6235c140a2db479c84e4062dfd01400cde66fae914092e562123f9fa31b70bdd198ebc77e9b3e051fdf2efac0f1f0cf557f163b47afa1075f078d2d63f6f562a0e124693de029d80781ac0c8e38be495bbe7072f177a6781e78b7993c17008400409224c9101acb4e98b7969d1a4ff5e008672192e77ef076f91137d3da6d8d065971f42df025cb083072831933d99a320101360b6a255c2c3ec904ca05fcff9821ce4f2caddfbc10b45e8eee6f0633cda1904911004a03ad1e54ad01c113f3279dbb72010596763307325d14925d1b27a82918527095816044eb64b882e8b31f3b1e94b20e4b7c46995a2cc6bfc175637c5153060f804b9c26f6c5155ae1ac77453703c66dd4ef72d0b8c68a2f589e26127d80b5c5fb2f44f5339833977f38ae6637cb1e877298d82e193cb2a9fcc4395b98a049d55627ba509c787928e710d0118dd8c5750b3707cce615bf318c98281682b5cb3e4d38c4ef23a99c4564faefaeca59fd2f37eb33d02a3f596c0de3bab509d7498248ee9b1305b9400952e556c93c01a3c80161ef4ac7a07b082c3bb57cfb7195bab938dc6984572e7fee0b3a2b2578d5281a77d122dd686acd16c08f189a1568ac9f5b76633b35e67817fbc7a212c3009373a3c8abd158aadfaf2f942fe2d6b942085cbb99dde63d23f74b87026055bed74164db3b03f0f1389ac9e9a9780e2e22db6f2073d969f50caad635fe71a2ab4d1f47f1b5c51015db88617ae37655929cb436525b858620b1e47ebcddedfd85b7ea46dbc94ba7a1cf07568bde14b73368118c59095c719e27e985832c13b733007eebe9a9980b4c632041432b025651680c5839f4752062be89feaef7c2242081e0138e4e02c4312c3c1b7e811d1ab6bf47b95c717ce871cf5d1055944858052d559c418292eb3cc78dc7cf6490193e51fc1ea7ca71bb1a0a039db02b9a3583bcdb9364266f6bb520001a4423b04991f0a8d36dcf597c9229bd74fb98d7cd8b4ff116c913d7f86e917939191e5b612962de9319b296a6fc9c02f0918cced443e0aacfd0d6cda354a48e554233240329a9a0d308f4ada3c01dcc408eadfb509dde21de9602a7e690a6cdc9a4244bea9065569c57b13097510b96587d30f5115be498b0eaa62e73e59f69b8d99b6e2dd24418a91c70533e8a9f65cb01075eaf001db26ad86a79f4a2ecf16b21712d6c8e78929259a6bde6aa614b415532091862a72a1456fd5df119543964d9917fc08f61f983c2e7902752289f272de0ae944031ee69720a16c6ab19a3e880aebd8a1f58c6404e6541abaa135b40c2731e5896b6b38c3c738140d0a7973dd97f99004a2b4ce55ca138285219cc69249316f923098099240fafe307e2e141d2316214b739de0b917219c8dd6a0015794d44399896a45d2b62c45cb2d3e22370c9c276b989e4f62073dd57bcdef6c464a5dd70843ffdb3b5cac16c79abc90b44a822f659a7abfcd680bca9b5f52e79e0199b71ac6cb1670c16c77b78a7fd8848de793981f2b284310b1200878e26c9e3c2fe15e08d2a328c5c58a0897733d5c44c03f6fd9682d4f83e07c10c272e940206d98b3e49dec5386c08b8b84b46cc1c564e1a1a7d3802d21b93a2a7b475826048512fb1b5e45ce552a024e52b66c7213cb06c0b4cbd2fad729a50294f094b52992a9643f4ab0f63662ceb4350119fa2a10525f8457e92d0649757052a88ccf84aec32ba781c5c6e25dbc5a5b57b219b5dae6f05be451fc862a58a067850492c5c031136299fcf0548be411bb64bcf0fed2b63809416b4a7691b5d1551f67f99c5d2548cf786e9fdd152d9c47d0887f17e9f17eb42a79b46427d839cd2985d0dfb3147eb9f0570e7fa8a374d5ad5f84238e8f02f3b4a2cffd2d120891821fb23b881c63efcb77dce523b94da94a0d88da11dc811df6e2e17bdf439c25ecd19bc7cedba8a89fbe76955e55350d6d4fdf922f026d020df7e27a3ca913d61453ced28e1f7bbc5cfec09f1c066c9b44c54c09b7f7f8b1321b1fa5414717dcfb28ea968b07d837f652ec42223b84bc8deec2358cfada9786f7b3e4f98861bf2831ebad2126dee24556d45fcf248b4a3ba99a73cca71a354c49ef9ac9808019108c040698371920efb1d6f7640589cafb7ce50ec23872b9c35c2cd12153083c983e19f57e183f9096fa44471e2c3818450b1c2790e9e2638c0a4e65bb5d2c9069414c62a82db049905d51e23c9b9bb65012855c77bdc7fb61c1fbec7b31e7fb94bba14fb69eb0f427cf65f4ac4fc6b179d29291b4b9c1dedc37f850352a5b1eba1c9bc68621eaa16d9b9f6143781979c32d4e6c90032a86167d5730da51491b652075b0f9319a356926c8de89f43b484e9801d9de24ec071d01a744be8209f43a0ba92a018f0d9dabbbaf4e64024148c33f1868ea5a4e9e99b4ea0fdd65fe11c9c4de9f3adab6689b88904d24b2bb772619cb07a407b90737be7cffedbad671a389ec3c89ce13798334bb2184705316ae0b0161eb787531955ab84a18e1a6fecda5b41f447ec4bf9ef643fed44a9576e3844308e7f2ded2aacddd543b8088ce07a76fdc347f6ede120eaf140e32e760b2775528d318e05ca6d64525c5753b5206ce457e3545ca0a1784054a0934594a99dbc6d9e85cede0caef4a8a3b5fc628ab897b1051bde543167c9c0d97b7ef712e3c3b3e644147dbac9f5a0f370961019cad6fc06722acaf9a05dc24ad97f379785613c24df27bb8495e2bd946082cb81c5cde4852b84c702e0e10c216cec5e5ea7bf84bf5f22de02f2b59be5bc93cb885577247e126f915e680c5c3cad5b79c4fbf4edc376e924fe57fe076b6e44f1f37b21156ae9e8737b50de7ed7d7c1ebc6dfc85e68ec261dca97fa8cf294037a22ff2e18b5f9f3a98f755dbf0b5f0c8d246a409dfd2b6d66e9f2af7fe134bfcf7b974cfbc253aba13a00c5ac9d3a6153a8c5bfdf222097983d965e790dcedc60d97e3664740768745d55bb832575ae97d557a5af53fa4f596f6637ef5eed4ff5458818b18e4800b246438b58d2945403efc094c1f41cc979a0c7d2efe53bbcfc55f92342244d07f9a3bcde70fc77371c7e3766e3c177f35b88c44c86ada44a5cd103b243a60c812d74c314ba660bc0bc6d0bb3b2ec21d99d007d00710c75fa64da98b2cc18b1d4c4666fe8c974106d0696a44b05fc99c60f2d9dfbf7c2e1fbf2e9f9ee262ef2f5df88bcfb79de1a933771c0bc2b20c37bdf7d69af4a3774726ca48be5774e188b4eba60a7a12e95e878941cf44233df63208621ed28f26ea5dbffb8b6b49c4ec13e52f2ebf11dee0937a03ee48862a2bf082fe3fe6658aa19bb9fd1fd57ea97f02f6aff9f55d0bc2fe15e3bc328ce58b619b21fc07796afcbf73345850462619ec32e06b5b8d1a34346d23b168db45d14e347a354775907f11ee4896387015247fc371ad944a2a2b2a559049be18765f6499619ab166a1b4ab0ab020428b0e4d55051b8bb23493a74ee87e31e836480762d42b869fbdb2b876ae2cfca573ae8cfb2942183a27991997042950a7f933d6083c2722a2d7ef0a498c7a6ce89e8b7b2e23f8f441287a6d0b7d0d894410fb83a9f3370a9d730e4a6c5b22e22c4f91312ce5e5188eb9bad315bdbfe86bccb2876e32c9422ffa8845ff6c8c480be1c983e748cba2432c66106211628e557921c918863de657cdbd1ef5e973a1fdf7a585408922b1a20b59a254622b4bd9dd62ba9e6005146c4e3233ee481935a7f9339519744e4460ac4eb11ce4c633b78d409fe6cf1e7f69ed6d1e58e2b95ced650c5bf9368eb9737cf9d9439c7df795525e4ab3f496412bf88247586d1467d039cd5455b0b9deb2dcc93d98eada655d16d34209d069a60203e8baa96f6d900caad2d6a933758282704bcb026c60869bd34c8584070d4114d6e0c1e519ae933f17509e7fc5a7ee447a30f51f930fb552d469225fb8772c26027129c6f6f81ce4f1a7174fe18a16e49c64669c165af039cd9fb97a507322729571ddd4d9e32f98f6fca97b3ff6ee3d79b0df260ff63c78bd2c3ec0f14143213f7fe91e9b23764874ce901d5bd97ea5b5a97c08f463df0f6d0ff7e34724e227d119625fe31521be72c48eab5ce7d516d37af2b88946ef48bba78d8cd3a63dc3eb884f1b205c3c3b645c3bd7f3e0415602f7e5a595fcdd691a7197f7f74beedad4e1828cf1fab92ec8930918ed9c247d45bc2accc5a493fd30f93cf89c3a524a2ca7abfc726a92696bd6515881855043c199bac7a190457ed74ea460dcfe8965ba67c91537a739bb909999ef5c876d7a91dfcbccb833dce89ca64644fecc9322759a3daec3735ac8b974b2a302ea7dc5ae9f0be87bd4b71ef2d4f9d6cfb7fe47fdea37e883861fd6cf3e593fff47e51381eaebf7a8b4ef616943ccab87277ee397b7aba7eb4f25aeb7bf5d371076ccf2b29accf5f565eccb10c155a67e096a11d894c8fdee3479dcf45c4322f6e4a9532dc9af0243d585fcaa2b4c1d873818ccda676b9c0723214e10c479d964504ade601524bd8b4cd45c01b6e40b176aad835d8ef8b2b85dc3410e2e21970fae9bd6d1389dc37b296ca8c82fc27777a7d6c6b4bd18edeeeebe98bb5b4a311bd318a554c3e91e60f4869a8ace116196ecd717f9bd24c3ddae9ee89a90d93e3f6e9a9abccc4085ee8eef1e8cbdb178ea04d55f8202f3eb0761ff7aff4b9321e25a10f3ab2663b5254e9816a9bc7ab4cd6982a2367ff2834372208e09e2b8237d13b59b9b1bd1750cfbbc2cc22c61c8149be8f8cb76dd1ce14242feb9763a87279f1474534077fabcf92cd717eef29ec68626e8a19ec8daf503c6f5c13213f2c536639895297dc2b4a97aa4b06e2c9741d7ceb5336d7aa6cdb4e90911c1eebbaf269086de49d4c559ae7ed15c61eeb5c44d2fc84d97113735b1a3e3261d699f700b24bf77d718fc2a23bf2b08e6625550cae5f029d45826787ac4c01cf34b0c77f53c5b338513902e33409e3260f8facb647410321adc4bf6ef7b0deea573bc66a252e079661fddf387c13f614195709f13a836753a4b7cdd1c6073c9fdeff60f20663027c7a4b254dca86c27d7be602e8d7962220e89153bb942fc727d57c532c42fcf140829366fa60dcdae2f22cd96091f334c9d4b0b289718a30d89f8b4de2b238d3a94caa9f36020cf73794f53b48d5e146dbb24d29b4c9067eaf0e0c830128e14a3f366da5c37d54d443d18f478785e5f5df4b31519371d34a39061b8f366dad87415321a5cb50667355105b58ef6e91c9e13560a602e9501381205a535226208bf884841d3f88b0f1867d8395d17be7e461aa93911915f5bc98e44499444f5649ffc4ed389fb7c9e4f456fe3e0a0705038a8233a8c2c5cf9f4ab052dab7201f4e8c0aa600f045a137269347faacf8b7eedf9b8e949d4f3a13b4e771ea53b12256bb2b40142a2241031e4f732471a711817f984bf3824459e783e320a49236f88e44de22091c208799345a43f1f9ff7e32f1bdda13bcf8b1efe22df173eacafaaaab22a20fc055ab99f4e19214dcdbc25e20c5c82c60df440eafdde8b17c54f5e14bf795157e974d24507dd73eedad10cab8e339b6bae728535ca8bca8b798066772de9930c403c8beab3c226d9c22f4f1f833379ca7d0c55741125a99f2f4eb4f7dcd38042811a04fa793fdf3dd0527d554c11377c89b533a7f497def32bccbb7cb6ace411df4959a3abd6176925fc274fe7154151d2bfc974c351ee859f07d374e70c77eb1d29a5a4d2e4a625ce0619ce0619bc0ccec6bba4bd7e5a1f3c57cb72e1a7b9e02bd40c9709ec627805e476de1c356d8c078ef021c60737fad7440f699cc691559049e9c5379320e67e11bd5cae6dd705576563aeafd5d57e58cd3ee6fbb7a5524a29adb7b3e16c882ea999dad9a09689a057b18be2dbc5cd240ee51ac26eb2c43757139b5b62935c45576e2c7195eba8e6967825d7938be2d71263b9a25c14bf4ea1b92516e54a9a4480a8c8545db9287e1267b99624b67265b9287e2df128d71917f5dc342e8a5f96f8cad55d172ab91859e299a9e61590eb726ade9069b02c6b076ad3cd409938010becc7afbebeadeec2ec0f527e573f6bfd0a55df5a1ed5db8dcc3602c4a308e24ff812cbad9dcaf296ff2690bbf9eb2a48bb4b1819235c8e2bbf9ca24cdc13905810dffe23c2dffacded582c71283776487ea0931d6799e2976bc049b5cd2dadff01282092f55d05b1e6fcf971261eeaa77ffa075a6fcfaa285245163b7ec397a4e14ad9fdbadda1a71e0cd43ada54fffc78ea514ab110f812c37ffd4bdce50128a096b2db779ecb7b4a77503ba815223fb9719d018514416e50a739319edcd8caee36862621f3c643464266e9a94a56b2db427815c98dab1c638ab821043ec5222236b931cd8e9f8d81f2a99c3b943efdc62ebb8da1d0c6c89494dd37a094be53c48d2c65fb1277f1255557d64ebb9bfc00486e6c9148c928115439958d6448ea6241be571ac2b8db4b49772789c22f889be4bbf66a7eaed4fc1dbfec4b3cc8532f955f2a954a85aa975938d38e67c185fcfa874eeb457fb5fdd63677f7207ff1e7ae6d16f6942f915aed76f77e4bf3949b829c7a504f713dc851bd855b23432dfba8953cfb206010f1b38f9f6925c73e88ecb1d06732268ffd12a7cd974c4105225bf840093d299354c93dc3ee4e7d1ffb711fbb994fae70cc9df21fd85fcfde7e10d9db772d082c7bfb4e607f7f892c137a93c7b0cfb07d139120b2bf9a4c0c43878b1fd429d3fea1f0ab71d3a3c9efe5cf751a47357137df792b1fc9158640c0779989531c122457d8b3b33f94786c967c891d121fa472e5c3fa4a2bf1d0b69aab65e103dcb8b1030e1cd695e40541aecc001e76ac8fd9d21cb083c7c1f88f578734f905e126204a31575acaf917f97d95e4053bfe5353d64bd14c20b992a32cb1433204273bfbc3dd7930ce8473797f82fc9e05bee328542a954aa55c4227e18d8c17d8a9ae657b45d0b91c8aae969b4c082114f97d9503304928a8d3d9046f98fa189e5fa765325f566d5dae3610f48e115ad5925242b72e0b774fada0b7124141d309e8d5fbd3cbc27d72ad7978a8ede16508a1bb651b20239411babf6755a8d5110d6ca6133d6be6e481510addd05d9603d55a23b431b0bba78c104208e194ee1ee38b1a0f0f0f8f85dda9a254ea2814f9e1309d70708773791f910ce189bc391ea0080481806c6ca88d177788ee2805e83eda473b0b5c8fcba07dfc06ce83fcbe811a0c07e3551572ce6bdaa314de73150fcf9ba68eb30911429ee6b96182103a7420a07a59afc1aea64d2d66dadc6ae16032e120a3dfe03418cee57d05c4d3405e636363934929a5b46c8c8c7366f6aa99bd6a4661530fe35a986643d340f3e303754b99853b3f7e4db96cc8ef5aa775b8465d8c51522aa58cd5546213a51061555595122ec805b91821ac288c38b8b3093a15cdc2ad5ebe7371c6393f4eadabef13fb031d5d13b7856b45db88121d7f9146804c4c282727f624e59c2e04e8a734a58162037d05bfb1b37930567316381b1beb434729cc2832025f7ee7cd6b4caf86d6f86c82d7b4369508ba1442e8d01b08085e7f81d37fbeac1142de5a5a909d7cf88e8968ad14bf7feb52d476b81c6d4cf49e151662fda5c45d1ef517a95d55030145585355d0b2dc643299547a0b38d924bbaf30770e209ba2b0f93d1dc3edf7e7350fa681e0ddda66ce260c51ed20cd59e341ace05a721c1750d0417eefdcc66ba8c89bebf43ce1489eb295f097cd3df7457e2fe32f9edfeff0970612e3ba905bd3bca6faee699369c5c3ffc992d476380971f52ec4fa0a77140e63fdfb4ee22e6de32f537b800d0d8d626acdb363366147e4020a46f2e678208410c2f6ea5c55d99896737a77773784ddfd968d69082184b0815e4d7636ccf8819f6945cbe6cee5783e571538f7c6e5c85ef3bceec102d482120f667e55515adfb48592be49b2050e72df340e5a07b90a77eb7733bdb8f4dfdbea2d1d543856b86e810092fd7da7b946dce712f9812047aa04b656b43c688e9acb01e3f64b181d937f6524eafc5cab761e2d6723f673892feb84cf653b89c98f9ea1bf502d965856544aa5122905a5743212954aa59249e866982dd1599211969e974aed6ec0e4f7d44819d2259a5a4d4616ae9b1daf8615b1ab8ad725a96c42a2aaecb26ab535709fbac66f2d3a92b02157bfe818680afa0382f2344e66b0aca83c8d93192c2b2a4fe36406cb8a0a2942f81e844fe36406cb8a0a290565243271a11b6935e90ae93b0565243209dd149491c824745350462293d0b5aa0ac2185350462293d09dc1b2a24282b6d65ad5592b3a218a5b820a86598b5d56ccf033a2a33d1d2a061d8352325c8e957f4fc9d03a54caa85015908aa67a42f45b5553b5a00ae22f25b9e32fa1b7d6471fd65ad94777faf6ba6cbf778cb59292658584851cd65aab4a6b75a9bd5806e4b2fc8c3f791abff254853453504622134c29f641a9a6429a29282391c90ded7080bf54ff1e087ff9bfd73acc2d4969619d136a13979ec6095eb90f566badb5b6da6b6be8b6e41a9848e9abb33dd03ca2485e7a472a913a4fead49b7a33c45f66fcab3eaff2d49d9ae378527409cdd72b591ffc62da45fa7f7e274bacf11945e9bdef3d54bdb73de8e67ae699fb17e141990aa941532c4f97384c8d7f4f5335ceaf9404b7e2e4542d425312f5dc5fdc889b3c95f3fc3789f3e3347b89327137e7c96ee4b2f117d7ecd794cb6189e172c4315ac7ca12325c0e957f5fc9d03a485f53b58c0b24bf9a7a35b55d2dc85790fc503af9fd0e4f8fcd4dfd91384fe614c9dbcd7489b3410625032d611a5406ad51e32d4dd522f9fd0c9af22554dc132d06c5144dc1da57e6b9c2cbc29d331fa5d2578fce1fe6ef387b4b5eb3dd3c198dec2962cf5936e77dc732cb324aad1ae5afa8906e0aca48641282165e15c32ed77e55c42e5730cbdeea8c6525d2e538099afb516c0ff419d181b99994524a8abaa21ffd7d97b7a793bd7767af42f601ff8819548652c7e5b04212a175d0f8f7d288cb7185cb31e3df4b23b40e967f72e7c88a8aecc96f935d649f3c9f44e2c1cdba6374776a631a02fd48742e399631babb1fd1f269cc6029f58a0a2905e5642432095df843674c73fdda3d2ce66a39d8ae62cf1676f12fe7e0c32aedba61791ab0c2f5382961370f38b81d98371c3210f276b323e1278390669042ac0b1695b02da440d4a29052482995b0b32f408a590b522f0065d48218a516a494520a9459d4a254c2cebe8059cb0b305b79b8a2a2926112669942fc72630f9f6698ed02cd324a619641482db5d6520b2da4945a0b2184145a68bb40294629c52086651686518cd2a694524a29a5146218a516b55f504b29a5946e01524a29a594524a29a55cb0946e815208a985198418c47009a39995610ccb328c610d21a59052e994c20aba05ddd2827cc24d122581b8e9d19febf4adb596b5dcbde4de5ec4483be4000faa6bd9a8572ecf06ec7078694b18bab604996298ab9cd249c18b286a4ef68350fafd48575c2110a150dc1738a9054f12974dab59811eb502ee258cfc7e081b13cafc54dd02ae2fe0f6c37aaa32bd83a025f89c664e56507322d2988ef11c8510caab4aecf3aaff05a01fec9c6466463f372793ebf0fefa23b4065d60e1050e1628f8464f658fb4a679952635d8b2b5adfa52bfbb5f6aed081f3c6b446cf7ab10761f5c96b022c3254a9e9c808e582065f0d92194d24332bd850d86e073929919f180e744848e71672c1b9f13f660a874a8695502914e381b25c0d2044fe40b977068324d059f26a44e32332730083af1e03abc979949b16a5227ec97385131eece86a35a13d117b95242215f2087e4e73adcec12d599a6eef5f3516e09325092dd4240f4a51b07b8412a914a2b58e6159a79a47ca9012a44dc5779971da77c43152c04538124a84229099e52b0902c4f6ae5d9f866db8310fbd01a626365925d11bca6a95e9452482984d03d87f6910b1b3da4d68ff0752ef4314cb1732ed4d2da88fd017e6b7dc44dde47fca533ab617b77cd701f692346f2cbac7b31eb72668fe8ec6adc47fa5bc75f5c0b6534e2d6a1f98632917fbbee1c82d9f41779ccd165ead87241a642aeebad7ffe5da47ba78f644db1677a44a2e413a120f9bd89bcc9cf5a9aa4f1c2a53c74c74d540c77e7f95c6a7980f37c7070686868f0c457065ee40acf3cb2d7a95e402d287022e724335389d1e316a29cfc26a1e8f160240a45a33bd543ab69aa497720b42c4779f24b022184104e08e14f1b037b0115d67a88bbbcaa71648d8d8c93e00839489d6466621538a7eb65665068f07322127fa6c6cd8988bb21244f7e3289bb420894487e52e4d7739a606a61c0815a49947d107f2955f09f7c02e8d28aee58d06a9292db61dcfe793e3894defbfe52badf79eb1cfa101eddfbe684224c62b13ed59cb02790df24ca646b171f86eef3b97787b45d130d89987186541a8dafb5ce01c3dd1a277b936b2e610643720587e4502534b7825a3bfb4374d1d5969496b4321a45d7a7924bffa4013baeb73bfc058806c05c2a4bf6f9c89ca45e903ac95c3f93f59c88c05fe22404932897a3ba1c31bf974eb80c38d37b3d9ecb7b120a275f909fac417edf2303ee459ae0316c5f9a40a29e19ecfb89660cdb77b6dfcf7b3eefe70545a04fcf470b0733c473a1475c8e6ed4156814f2e3223f777797126788a4f4a1a1711ac7799d58941dbb25c86008b9c2556efb83f5100544d28471db5f9c5fae354e0f7117e90e1de4014e951d5053490086640e5eed5fa964b885aa0cbf1dcc17d142ba38b8f05ddbeefcea63a6da0ed8b90194032d97045b2efa5e7422954ad1d98f767777cfcee87bf87ebc98e768352585efc7f020dce431f64807fa712917442bcb25a94298e8a6aca0ec40facdf1f4f8f4125c8e1c3874204109257a6b04200718526b3e90b8db4a769fc3e5e8319c8d943b2c1690dd9f8c70c8026d44eb709d838fb46ba445f6bf5dd33ac670397a08ce46ebe822577811397e6b2eda6203265a702074a403370b2332241c8161e1c3ee78e03a0212d5081fb0ae48a23202025a042526114220adc82288d94700ab9019420ba16768656d2339a911292f421c33c4303f1804674362ef2ca7bc5fa7938e650f7fb89b8e659fe1e76cc4af525af24784cfad7aa5ac4c1492cb00b2eb17a528b36ac862b3dd53b0730e4e14d2fcf7e07ba229a18bb6df89c8eae92de783210c6593534a29b22694d7b3d805a9c9f10039252e8503c70887245ddcf09bf342e537f7c535f9ed0693df02e0b47049f88218d9bd733083cfdd3d769c9df33efb25e27bd9eb2c662494934c890b43677ad9844252fe8616959515959616951568a1b4246972edc72a9a212c3ee998f3713c7164725ab82d442c3b887e6bc1e100a31329af46cab6ba13d948d07b897b3ed8d5c29eb75d0ef31fe661adb5f83da7ed609cd87b97e79b90343a79d7b36949918ff8ef2b165d3b261f7dd9edf171499c12e094566485b094df6ee018ede0320093aabb49f8619aab5f9f518a6ac8626f6614ecdebbdf6f57ea09bc6f4629aa4f7bd14a51089bb0da2a45210c4e99a59c50f38184154d1e707aca8ac8ba159c5264d56aca0be9ab09b986d37e750f99f40976b11c67e344646196ed9cf8aabdacf44bf4b299fe068e9ea91cd9756c5563c981f820b43ca0258a52ce38a96321cbe3caab7dca492b1f9de4e8ea5162f24f502e1cb2839bcb7c272aa291a9aa2b34525796dd13e545d8a2d0dc138a44b15c73efc462f3a47350526a0ae91a839a70b87100a785e3714976381200cb3de84cf0411928450fe2897dc07f7514a1a4a27dd85b04099a5d3b367fd29cd99817c2a2c49e4358bc4ca2335dffe057f7ebd36b1b4136f9365dd572ed587c97af6772a19c8c481515940a67a3756608a32d84f490546f25a19c8cdefcfa55d5265108abb3aa2cf9190e9d9c5c37a3a05c19ceb2894a4bcf9623a7d894acda94942bc3188994619b6dd5e455b13ca08aca95e16b656565e5ca70cd2a2d267f5d2655b35f82252aa670a5d295612b13f181c4cdd7571fe1b72966d5859b0a964c932c2c5786ab1c12cd98715ddc4556300a2651e10860007f1a3d85b331331a3566d0704cfe9cb9868da951e3cab0ccd05fdef28039c331637c492dc33057ed6a719a0d0f939fe197a70d36c686ced1e18afe861d5c1c4c98a8a5a5e5cab0cb2837dc6079c07c7d05c0bda19d0926ff92272a9773392cbd0a50001aa70eaec373f18ce120320cc4f53dfc05c78d1c19e03042c48f6fb1f61f73cc72acf13efe732ff3e34f0723faf8290e66f4f77b00e12ec4833979b7012bbd778ea66d24fcb6f41b75d2c47ec5c648ad7b82dc91087719dcd7c042221a9fabea4518731796f7648c0fadec213e973b5f2e3f4e6d59de3a95840b3fc1d65d64ff1a84bf70c0f500d16314db4621d83b3be37a4c5c4f762d2f24f45988e2b0fe6afd853374a7215b5ac7c0b9788791fd435da3791f495243c3f6f0234b1a1dddc366e73a59684497c2be7372727070496ef2760f93ed35de49770e26fe461dbc2657c78aed3731892bb19f4db13ca2364ab1f77615ce34842ed239f85bec3a07fbd308d95f17217ba8b3c86eb5cd24d4811bba4664373b02cb301f16b31eb8ec8544bdea07ac6a2551591508684595983304b20a298238843802280428f3ba88cb21dfdf0f4fb132760ad62ec753c76004bca41f5592a4758ae6132cc2404a404f5d85109c0174f0efd44665f6b2a9a0d9c24fd3e67b12c6182b7e594a7955ec738a44efa216c244925614470300140861e95ce25b3847944ddacaf28039fb6ad12923ac9eb7b3b0f93067537330409ae8359c460fa404f4d444afe144a47f733c392aebc281f43b84605048cef9b80cc0ddc3338b3690df3b1b757ec44252daf6c081bcd9dfe097b4cd24cfdb12db28e59b547b3393d29dc9d25f7c10c2f8f0cb4dfa142d6a1903f97d0b1945cbe3462924e5571ef6ac22533212cae844468d08f833657482928272328231de985dec0356bc7926e26d3fb69cad733a47c21f796ef2e34f1bb3c9afef2526e2fdc33de9bc1e7628d8399713ec9c4b8585d0904e23931cb5cd7e7c6e02d765702efe215fc11a78dcbccde4a71171022eb2bf8fdeb1f7d00e560f0bd646ec4f6cade6d9cbf6cd8f5fd91ee68f3c7dc06abe9c36b45c01c8eebd481d5de372f0df6e983b60bfb5c4df62fc6d76cae5d02da7cb88ac104f6c89d71dc131b211ae66468e414bd7bc18b8972e83337519dc5fcedac6d47f5808f615c340b02fc19f308dc8fbf79688f7dec6f8dadbe1783ced7ad656fb96d5dcdf8b4f4a1198a2df500170b911cee4ff39aec94bd73893bf9bbf55f3b71afa6d25f41b0d0560bf6909d80040097011e052cf25e68a858c3ec34244a337c1424efe8a46374e275a13bd8613f634f724ea295229f71b2a729e0b011cbe6771177193eb6091fdb3e66925381ba12d9050823fb936c0d64cc8feae75d81a49f69f4dc5142e076f2142b0bfb0101a7ac23e8469ee09fb7aaf955f125596d1ac0aa29da8242d3935b5646a44040000800023150000180c088643a211994412d438da0314800b6b864c706a4c93c7a2204751140441c8184388310010a28c013433344400c4016410ba3d69c4008f9c9eaebc0b82a354d17ee112976e66fb7d3e19960fa8a40fc093cccb47e8938692f9ce4ee8e7d4070d602a3c3edb0c0188de14c824211a9f1a7e97fe81e7d2747e3c268bc6e46147c607f6ac73ac2b0b316e6252357d79ee9b2ab118458cf70d081ca118a0ceaed3725a53e5878190cb1e3f71bfbe813045faed400ce8da13905b74aae4677fdd42fbbbb7ede904fbd6d8a4cc8799f5b66226092c555be0041367186f6bc2c8441594c72ce841728656184a2931d4a9938327385984045f36a56cc84397fff70210e97d9db61e7d1663d6e846ef9d915c7aaebe4258fcfdad6e392b4a945eef6f5cd41797de9fe7fc6f59591138f88970127ccd3e80fd189c18717e31e7ad51801851fcc431c14979e5212403ceb39c4057e060b6aae9416fbe988a9234482ae46b65c12515dae71bde085ab8a0ddc2a8bb30b1c53566cc79942aa419ba207b972cb99f7cf36ac211da710a2f5b3d7514cd7455d1c49587dcbaacc061bfaa97d72407db97d718bfdc9e6362bc8df7610aad2d8ffd130f049252f6256b883e9b66d2870a03af478da669e4c52458c82b6143972b127e9f64da49bd186dd99fa90031103879c0c9aee77f08dc8cfe72b221acb81554319b6a3943f7cc1e80f5dc20c69b6975eba29b35e22e3c7e6644a14e39c9404cc54d58026eed4fa1ae1460ed681384427afdf2b4d6c01aeaf98ddd1d638085991f99694505b8ea349d5923acdf9ee41355038b35644607faf8e1d9d545b18738b5b96412dad8a8030b07f936f7010f0c8592fcb10089bb5c2986e66dd0aaa7e18af2aec7523b2a73966695d84c1fc71a73a349c102600dcb5a2fd359d484945d539cd5abad8baf034ac9ee9d26adccdb31b240154141d1c7e63370f32ad1d5cd2294f97c785164240278a4d4c53a309548771c4ebf438513d48a58fb48cfdd479a7e1fd2327b93a6b3a7b496bda471ed298d75af345c7ba4e5dc275d770fe9397b49f3da3a7bbcc7a24b58d12f3c541da670da76f6ea148b20853ea1bbef174bd5eaa0932d190b96d2af8af0de3b4a6a8d0cdfbfd806e3ffe9d12a7f86559bb6c813a07f3a56a46bee15ad98da59ea443f25f61a893b7746ed18c81a671dec366d6a0a6db83cce45f7cc98add51688a3840079b886dc7f4aaefc33a2da31925d967c9640edb6c22b81a5101168b2b45c895ae142dbdaab74124bdc76d7d8fbac71e8e5b8e7c31e515429177f3fa6c4a64fd73b08c7614aeef29866dc0efe182aed82ba7fd27e002bc196c34f409233f1747ba093bdf66ebfb29f768ed99396c2f8e1281182c7e242681dda6283fa0d5dad1a8c1355cb300b8d010dc6e53cd165868ea77f0fea1c332ce72c04003d4a015d16e858fe6693170f58198c165dba50ce0a31a0d485413cf3c34a3b280d15b8b4a18c189cb5c4f498660af0ec7236913cb526dabc8df3b57c76a2d2fd1ca8327bc45bd066b01fc4494978fa6cf2936203a7ff02b1c186e30341b679b89856702fc727c8ef2fad050f62ddf86cebb38710abcb1da99609eefc7e057cc85f9001c658744a785fb53972a2c9a55073c3f88b6fd7b875e1332b19af61842232b44e68ae59e211b65c784de7e6b7c592a15a5bdbd6aab1c62c5c25b1e95e35c1921dfc7e972d3dc1b74abe8b4f819e08d4e1c32054819f6ae8aad354574323cf03fc4ec33f52f838b6cfb6ba3666ec967b099bc2a6f5cc548a2bce24d32752a58f40c390a35a8e6f49a74c8ccb6442c1600d65e804da92017fbad6c7ca2cc0480ebb8de52b581c7c797b02565b1393f0ed43e9c83880b10bcf13f815c4c5fd6592f71e6ac5bd7b76db46ec48f66c857a8e9c68ebb12c315b81fe2cc01701355194049e14dfb2ed1617e6d36104b687f9a0880ca5c6612b1a1709527e1f9d35f93d36ad4c0c28d7653e01124e0ce08c33f47b0cf07db84d369aa38c1f855eed2c4a3f9bd86cb0ee974326bd3495f91c7d49ac79424c77c20b52be23088faccc3830b225bb14844bb2f2cad7584490916faf06416c0349444dd6671efc30f14c4c6ab709f0b64b671455169c7c51c259e059f74255b2451147d864e8351ca8322fbf50884deb88a6289f12b7a79a0c719e494f102ddafaef6b3509591cb617d3cd2cceb414f2a46735323cae3ebce5fb1888ba3c3c9193c5c20cc28d2ebb206ae4e9f7c03f0002ac9a1152a243c2b8a76d3f512cc033136f22ed44902511477fe922aa9fb9aaa246b276eb5ca670f6905146177454c0dbf7c05040f06b3f5af3dfaf41cda0a38552781b3b13059d4b9d3eeff68acff7b5709347ed17244e9f512dfbd4ea009a36f1fabec9c1b2ff7ddc475dc4c13fdad39e1d5945a32cdb415fe18c5ce43faf3e714852c075029a392c65953674eaaaa4db52de307405b9e68b02e6fccf846e7135085650e4cb7150c50775b841858e4a200f51e231fe63c4642ffdf238904cd945615041c3f45f0d14851334d05e669b017065c1e4701eb8dd9bae63ccd0162963deef2c36c19ab5994eb7d30cb35fa0393c12f33b8e1e6ecde12e83b3fb1e4ff348c83add0d20ab4e74cc04186b91b5cbb4e376bfcd5d9bb1dcd8e7cd87b6025290594cd2c4520f1f202e92dfe636f51bf47c1b5195ade403957d1ab0fedaa24415ae1e01c9a13e785af50c1eada3e29322b2ffde7c8c3cf8022b04f7f54e5a9acff0f278a64b48a46a0bbe9dec43ff38a78a882caf37948b85b4503fc671cfcc38ffdcc68290a117bf8ad333aec90d0c42b9535ba986e7206a5a61fadd248d4c1a87bb176bb2c05eb1ce0b8a12204cf81611293adfcbbbdad8a13cb272906200d1bcf287d8be2cfdcc57a9af1b7bcf2dadc9f9d9236f62ec5f7e2bfcff43219e87208ab5c72a620c65f823a6c09ed574b01bc96be416d30dfe1e07ca7490ab1ef6439108b6089aa9ecbab3d4db251d251372e852735970f41053e3eaf3bb0a9fbf78620e4b6d90f29d39d011860fb4829c84c79b8e0678dd68a50e3d6c6452906989a868b7d78739bc4451404407e6e2637d69a37c9f268a9edd8e6d6d9ae900a8fdd2f7091825483b45141bbd55187094133322fc4aa7a8163515b4dd5769a7ea2284dbfabbc9785791c40fb0cdba2601aa9b8c1e0865a9bfa311cd8c1e618cc00f070a3d236a5c261b5d18612204d4de197f6f834b353cc0be4c0f50160a3e80e6fcdb21864cdeea02d8e777a65673815d8382ba4b61acdebc2ef7a62a3604825df1f51c329913dd36d18b320b3064d0d2f0abc4d9ee3a820f9b7da25d66b3bf58c14a5eeb381262eb23b70e850ea97b81749b5b589f3c1aafcf68971135f862f7c16f14f9b397a0f033fab6af03e139c44ee581c7eef7170ea7470c62da3c607aabfc3355a4e8952bc6728738b2521101cf49caf0b0662191fee24e9c98329a2ea617fde9ec3430b8623e9707e75198f3e08b9b2e14e85728e9ccdfc3abb9d7c29c6d9a2e10e1a30549cedab0bc94a8f7045200b5a23de0539108dd5725d93a363f825637cdd2b000984d805c00fad7f1c20962dff6a42d08ff5136b382bd01d16a8f004f08f0243514805ec4b282d38eb78d27068027a20297337e25ba3fefc150e458b418f064847e9fa2b45caf7175167814b7d3636e3ef86ce178bc111d6720c64116b99bd8d4d34f1b062a8db307ce7722ef52697f61561ae9f6f48659aea05658ee3744b974a84b617b179616a59751e9353b9c01e697c67b790e2d93d63bfe1abdae15f54b922458a825c5cb1ac389a1945e174949cf880f19d15244cb452ea60886c3588361227d076f09e4bb8572bd848aeb6044aa02be8c296994fe6eab178885fd08632536d17cd7a610d07b20d75af1e36621b8247c600649a1d9dfb3b4097d57f21a3670056d0a372f55eda8d48dad93e133e4aeeb549a84dad15bdd7b9cca8879e58a21aa75d4e298090786994d2cb25c126dd0e83859eb3ea95a0e22a9081b8ceac9c8d357287f353a605d68f62a6b3cd191f67200d8a5c0a6d24e3b58a5334cdf0b5a7d65e8de60b133f7afb79244a008ac7f95d78a55e0d0c29edebc9e5e9b243389dba58cfad6f5872fbdf0364127825a7cda4b4bc3639349c5fe44b4759d3db512ce32095715db59ba883ed9574c82d6d6388a9999d9ed49a29d9c726e380f99e00506d090ee5caf193a0d5c38be4b7fd81e58796044065bb55056d5810a60e4987099bf6e53c055bf9385b0d81c86609ac6d04037987049bff7075decfcdbb2b5db9f80a08206a55a8b7a6c417b27ba0d459c22e704649486dec2eb3e3b9e05dae59a8c13fe14b09cd289a11f0427992196d80d618cb6cd4ad4203d72f0d4a5472eb6178d9902fd2514ef201c49b3632fdd859e57e34402c0bdffd3bfa43b48e08735b2a5729a581ff47a4c4b3090f472d649368959d7e114f26b86db3acfe61dbc2c6d725e218417fd7abcd50e8fe08d4b83bf59ff744275bd957f2d127ee7670c54ca699dc1c04dc2d903e0dc461ea705047f8ef0b5a7bea0d5d4f9373f6497d8869fc74131982acc9a2debae86027cda79cca2ece97de7915bd7bb6eb9a5eec06a15a7067a546e43711bc351c393b12d301ec3b217d1e1a802c2f61f34cd0850488668a457d1588965de4f463a1397f3e8901031064ff2cfdaceccd185288c15662752d1511716a4e40448af0733fb61c097bca633fa000e97ffeff33d67f51dcc25a23e02faabc1fb40236285b07f7a95099006f5ff77494c21e4b7ca39bf22b92b3037e00f99653fe5195d3a2867419b2a492f2844d79f29be1218a4fe4ccae66e492c43a95877180425d61bf51bfc66a12a2a0c13c23e48739a522e7183120c47f0a8517cfbbff67f6872980f1c9a3c016af2cb8d5c4d9dd4168e7b77ab04d45c2bc60955f4e05dda1dfb679b722c4de803dd50cb67b038fcc1451812f2800e1caef09e4016c18326068ab5636f90ca1257c83821e07b5449ae770b343c47d65c3b603894753b0137a64e8223d06b9c1a4b5071b289c0efe5fad2b19c9ab050b7c12a68e8f656b82f1bca9386658b464748510539f4b7be0bae43336bc7d65441652d7c03ed4cb71ca03a1f50c36a38d03df97e327aaa7598f1f5e03d4c102d123c4e0f19b1fea81bf2b3579fef664f80ce162f60b551063e1d243ff8907dcc07ab4ca7dc2fadbd624ae6be335e918a794922982c3b942f6a2f247709a4c09dfed07421593a8de8c938067cc6e2f75310429209292eccdfd45eca408524a216a333aec350567d9e049ba46e5acc34d0ffe613790ed0ead00459dd68ef1cdd00e100779368279a7c2c6f93be6b486d076a67c14bd84a517d9651e1768ea220a0b8a3803487295a8ab55ba3a2e03eee6ad158695baf94f33affc81bc2c2d10c286b81bb18708e6a6490ab1b8ea48532d4f72bd826216f942627b4c2324b72fdaced1004adb462372117778cf014e8dd1b4bb220fbb2029d4d8583834af70704fed473c682e301d7d848e30c439bd849e78197412f78e48688f242968a9ddba6d71fbd8458c85af55dd7a265abbfa695aeb51e21e8a2f8dd8e40bd916a3660db7c7a3b121584c4d4e302129cf589dd81a1e765c631e5e68dfc44eee7335a3008b965cd8b04f70f3e7ef2253f865c93945b40b40972bcd0a467730b036e68fb1d2531c6849a487f8e541f69898064998ce0818d78c62614398dfd747b7bc65a81a4d634c717c7f91cc62fd540cf3c0031c01f512a3590a350f3ba509212a37bcfceaf9d0e8434e81f6fbdf0954d1e49263fb6286638c93f40c0fd14295b41d624c0413b38318b0e4b174fa701d371cdd69a247f0790f587aaaf9db7fa2a44697cc7316bc445053bb6421f8bac7ed68c9bdf90c375e4d5b1c18b619bf0ecb9e4e3708e72ea25a1094a111a76834f83c7b5f2d769e5c87785aad4de45e798803258a1bbd9b5fa7e28704a51312d58702308a55e4908524d7c9e31724d8488261f8f88bc66224ab3df5344be1911d1d4e72922d794886866b88945a49ec5f0dc1fd2e522b8cf544acf25535d0ac1828ae5f5426b3d1edffb4d857abafa1d423daf5d6df1e34e43e53dfa58dc45ed48452cda14214c452ceaaf2143b0d734093bc43152742705203e2fe02600fac2496e84d2e617fd034be881179cdb472b184a83692c92765be3e2b73f82e93dd0149293f1c12868e00a3988d9db559ee5adaa7fd9902004e4c8e82ae6a93b541e0240d18475d5fd1a67bc642a4ecf28ab79596dc7f2a704c339ceaaeda2f380f8e45484f06a5418a564d0d6103c2dc24c3d0278a5872d1ac6ba592b83634ab598a294fc6df8976a6d5c38d0314f2240da8fd9c428aa059d65af46151d3490b09352a8ec2b3ea026fbc860063a3be84f36d990a9f8ab4ce7c1a10b7dfcc57a304da69b0f30e2aa250f8835aa200460075120479f9624b049a8484b0454c396a49c4c727b3ff1478d1b5f16cbe65f4e06a85120ea14e415edb7fa4768c9cb846f33e59f6ac73d07f48b4f46742b0c6da0296c7c03039294d9d0ac8440f6f5dad9f311e0243c60b036af2a6060b6c076ceb145c425abe89f6000afc425807ec84218372a483f8a7031c9f237ceb36431cfc33545e8b2300851c3ed170b6ef05e81d4876084d4e6a79a90976623647080eb987f803784792b2500f4e0a54170e556a89730a7b0a6db25bdbcd1d82799e8dae7e75a9a5e0f16440206c401e1975881df4ccbb81d1724be5f8a2c91339f61cfecf3dbac0ec359a6cce240803f1b02244b94936fe4090f4ea5a90616466cf93aa6482ad2bed35e70d3be94f2a54029acc66b12379cd6654183e350179ab4e5e5a9609eb8faf164fc264d6375fb19c06ec4c3a58e61ace5495eef6c4ae3a9cc1562117069f725297d1afb93c663ca1afb12b62d1f2f93ffeb17565302dfed6ac70c94c02f332fda393f5c104fe87592131510b2569a5476b24b43ca2eaac27f992ffd1b4c17e847f643358ef749871989b02fd86b0077f414b2c0cca6d5d1bfe4dec20a54bb2263fabcfafd9c0e1f4479c4f609372dcc6a28fdba30d9edf94c445151dbc32b18230ef5c1667558a46a0452dfbc1e3ea6f94395f1d8e826116f6bdcc5688cc780cd34464284f94139895d2c2c954b9dff4b6115062a1a3c202326a80d8827a1a50f3d74b86cc5b66e6e76a6bf11633282217a696bb54c7150cb4c0053285604fd8106d45540b370bfed88a898b7db47b57cfda15cf040333c111a157d80576a96462542faf823ed3806428fae3a4ad1e7c714ae0e4dbef1c07b0aaecd88162ac79e3d218e9372ce16cf3ba4c3f62780fee81581ef810a0a934fd2ce63a475084da8324d8194c7c8af01ca111e50abbb9402c319fa7e2802d2b7275d4c7fa0d5375d42da5f13f5d915a94ebccfcc10ce16d0e5c1ba3bbb613324486a8f83324b67d7ed402ea3e33be6304df61d503ea7cf0bf6acc1708c40f75a790bc1b01fc86952269f6e3eef7951906be1d22a23bba7ad71030ca4e4282dc89e21e995003b24e824ede8e272360dced7681336bd7760242178af37e1eb124c55a4f0eb40fedf30c6d531032a0a7be10d7deb54d58f9aaff7515697f6c5ad2e884daf442bf68326b0483e8062b78b3c157bcd7e49652f08fb4f9cd359a05fc20bc71c9cea5667d343d6fcc23c06b6abdd2c89317f3cdda9b427905867be316d37c6fd14da1103d04f95da058b46866806dd6af35b3f691ee226c201190867b32504cb532c8622f91e4421b09e6331b57755866b8deebd641a3d57f062f8fb6d80cc0e90048e9c1a910715cdebfa17ecf340808bf512d768dcdb3687b690aeb6b0d7fb9eeadf4788fd3c1dd3b8041db5a6821654c80e02bb049574eec00b2af53a33fe7a4f6f016e909bd7a2ca22adfc86ff649d67fe9228041d4071d1a51b7832d9d622f1a5ea762eaa0a7722e24c2649c5aa5342bd34476fa2ba23d18e03a1742bfae45053b27ed11ca2ea450a09211a7717e6291053915128c442e97cd80a89580b92518b1d83652de4d2dc9800631a78c874dfa7a7b4930c341f1e673376e72d7514397a9904b70f51f02217e6725fbb7aa1684ffe03f4446e17a99a105bbc827014b8b45dbf1e5fd5c41d1e0da18cc1935c3a6292da696630a94c0584fe4f9916bd809786cb0b530d580b702eb11c467535843f1febe594b9823cfa7a3b2a8030b83cc24fc02daa0bdf3b7f63bfe311f9d812594ab8ba01d189f5a49e59994b55a7c64b5a43b57c0e3cee9d8876581732aeae72603657c6b92fc93e51434cea559b9463bfb4423b7dc4981ba5c31d6d5528902e0a119a3146afe05ce875248ef02d4641f128af44b6b7b742705fa737dd406e9e6b263997813a0a199b41c6b0903507a36f33e4e8cfc4936c073bca90acf7a5db327221970e019615179c88aa6bc042f9e80b55710b54162192c90547df6464dcacce2d29541115f54ac166541f90559968a0db5050153a872e77acb403c4f01487192b199db3062dcdaeb4d223c0bac68513a5740cb8101f79412aae0256732e7291eb47a64c37d5b96a0a4ab4a0bd4039af1dd0c066c23931afc88fdfeb14851069c1dcc75b8a4a0a4dae4f8aa9da208d2dee010eedb079637f95889f2ca98f6a9b98af7d72370f109d9a0150c34fd18c7c5d938d5889304aa3b050193af4230878d9739f13956fc0853c0ec7445ffed7026a24ddab1a3eacead85b84a3a8c6827a3d44a139be8ab2d3b92805a141b21b4a0d678127e5f0a044035222885bd4d75ee790cdf4432cebfd5933a57e3dbb36fd35900d8e7b74f2c946d79fe2b569a10a82a780321a3d1377b2b543733d7bcbe77aa8c0fd1a5dd9465eb8a6d3f8214927841ce40c96b5680155d9eb3a566c67360fc345492f8b5705618897aacc9aa9e1432e371ea9194ae3b152e1f7847e4049982ddaf0b6e481ea032d5d4f8406faae290bfca2fa2256ee684ce3ca4149509674a99b29216c0c1cf0c9b31ef836de9d9ec72e74d2bb0c91e2e2e1f8a9d2c72a09ac4c2d778b153a5a6c99de1787ccf83cb3acb70dc67c98f713b8a70e82d086366d330861e5cf9a753acb02395583d71bc627cd76e2535b0fa9b604151b940dc9b882a35b7342852308a95cc653e3e24868b075bcf9b3aef72d8845da817744ec07dfe9a2550c2712590f2d3c52ae2b1caa183cfa60abd1350bdaa8606302c672e858b11f5c79ec4242a8b7d877cfef1ab372d9209b814d8e30e286cea1c6394ed30d934eac8a00eb21ca69307ec22715c88bf3cb47848a1207c5c6463a5a98da2472e9bc67c4ffd925f7fccd993922300ab7f4bf8ebd226a98baec524b845c9aa7f34304a10e62e6e65bdf3760a3b273fc708baea585a7160244100d0af915fbe25782a3f235a4af921ed0ad6af46df1b361b3f065b93fd61df3af74a29743e6955408bc4c8dbf4362605dec55e42cd1e98db4dbc739f07055a7faa88a2bc961d1ce197ae70c12db870008aa28c9d44f035ce66d2664f734a93e421250058de0474955bfec46c7fe0e193c99dedd5267efe683fa59eec66e9b35b6053d973d207b020932b71f2fc8c1894910aa26e6832884d20267f569e2788776b92014c051fff23179028e3945d853b35ba3514433f8effec19e187b6ae190a87f1a79cda50ea3ee9d8762820649cd1c4f634360e6db8f0790132df6da500458785755e2e7133a66eb7db5b73da2443f8505c6009c6a508a68b8490ac2acde015a21c3df3b20114622071c93c0d9e7ee82a952ed6eabe5b0656346945c739b0ef0216960bc70a7eefd356e9e355942241687b54175463eea1f74e1876c660b504046a8de41badcf8b7a15990e986bf8e4fd737f7fdc98978de52430f5eac455fd40b45699e7ab4308ef8b90aac1cbd7a158aa4623f81bcaa3f7505e351bc17bccb656a49b57c7ba11a8a77c7acc11765817dc5ae223b3f25d8975a0d79f4437f5d16dfeeab8b80fabd3d7cbebae9aa33d594bd5b0588df8a5cfdf900ca347e3da9cfdae9936a8c8a73b2148f8c5ced72a9574716d0755b59fc10e1ae54df52c82f713cc51d2b7e45fa8f6fbf7827ad21fd07727af49fe53109aebf6d3b37de06bed6c4164cc0b710cfa8c89bea7edc28fdf190ed72d4fe19beeff4e602168c95ae58d5b40a0de52d28844f32b3ef09a3b257a5141dccb16b47b995566e2f5f587253ba666c6a698771ce4e42cc24e764e8b00151af0651fadd5883e36d0279f0943fa57a0e9900a083cef09f3dffaa7e0ea2b436b0b4fa88810670ccdd1b9bb919ff3602dc1da3742f2b516f67528eaa3f4f87d3fa8033ec3cf761038160a0d3a36d0626f9495df2225f8841a4db804055119a30434591b6e34eb95fbb45d2151fa83e53b40dd5992e22f41496d69cfe4017af357147c4454212232d330d9b893a96ee283c930f00dab691d50b56d2b85a5e228e76064413aba8e47107545c4f5095fe182bc1551b1734253450f018f5d19c3f4e786106ad50c74403aa156da7894dcd1d915a7d0dc714b9adf22886a96d6eb2dde1010a53a5290f222cef842dab01472983741bd447b1d83844b607c0265f88862b76b4fb1087b470e8aebc621b1c23347b2bfa7b22f668d3fb8d36e49a3d986c3ca180f91fff83575e78a462bdeea4607416d32ce533b9d0d226bea0f36c3cb2dd7d8ca8a30442f5316daad4985f0c84383ecb3ab7589044df39892f46d8e944bfb5418e27633d9df041b0d2ad911a1b7033b057960cd6b79c426e2d42705714107c68d0707a9090344a3db55d5192a331eac84d7db1745870010caba36d4e1333cdfd00ae915bb6da29ddac658c8c646c66c3f80ede9719826791b71e60d56fb46f7ac9bbf6a13e898bf6eeb355515495d3d0404f3ac107277a464acfe532b0083b34c9700391846ea96ba320554fc2d104b95b65402ea46092b95fdee6fa73e46e032ee1b29ffe7742648fcf4b7fe1d1af374ba562abb7e0f9f74dc095a43f99d8ac8294b6ab6e2f8b3f692c10b8eaae4b66c5121da0de27d5909899c966c21788ca775b516f0a2fc6bbe41b34c44fd0a111e3b38a305c1ad00a21a22a8a05fa09250e99dbffbe897e29d6eec4e675c6890716bcf5249a1f0827419fa2cb13ad2d358e6f138801faa71612e1dd44c8bc00bb24fe18621957d7a397c09d607cb1e8e3e37c16f622ad3425bd98ef2428154ad478ae90a07e4adc9881ed30a03aedb527963ddc99fd2b90b255ca6643ae245723b9c71f49b1caad0027ba0f93bf859f1519ed870cccdb89b8d553ad3672faafcc6d5d1384a35e5c78f48f6f6af8a0a2c272638bf829dc4cdc3db576726bfe93b9d1617963a2370e8b1be4c5ecf5029efee012238be8b5ad847467d165cd89b4a0bd3567cbdc57a819c7c20a31fc4614884579fa3db5b8c85864cadc473efdb250e8c00e76603d0ddbb09171ab71779fe11142587c611144b854e3454818cce3d075c9e6e61fe80a88b896b749d7e83c5f2fbba5565505d95bd956af680467bc1f39cfb363c46678f7e124d89665c826c5a74632b6fae7f00e3c627935c04608baff6f415f991869787d7b3a4baa41340290b81acd3704eaafcc5ba4eea1e528e8e66893eefe6327d10506600da979f95b85bf2adef3eeb2f804a6952d350913552ba3fe59f551264ed29a3042e3809a0bbbab17dce4b65176f039eb09b39b7ece810cfc60f6503d32a0de6ee17e482441580c4ec540e3124e6c506e9a4a2797b8b25b7938e8cc2432708891c90cf36a5b0eef2f254ee9bbf5b9179a518be1aa42fd5d3cef33c562c36bc9951ce8fc79716acd074321e7024511a31b8ffe76dbfba22204c3d5b78cffb36d6cfd8899ce62d1f0d9a729cda41985b7386149a9675a14851266a5af3c955e089e08f4b14e6ce77de400c7474aff896cd943f21e0761f4ab52de219b0b992051e8799def5a1a1b7ca2ac5a9833a3914caf3e28d4a873b340bc58aa38add7e918bef330ec3aceeb2592694383444de8227c06db7d40880c7d9d9be9d1966c42cfa45cb6b2a19aa96bfb9f17dea5d48e507c66db445ae6b4466385eced3cc7ff2d1b111e937335c40f363112792b63205819111b046031d3ad8e68387adb9c14a3bb307eec8e5e42a2f9989f3dff475ce70cbc413bc1e2210eb335d80a4f593952aee287a8e4173b0ff9f87bd3b0970fb67e5066a2cfcbdf8020b7dd25125a697bffb3bca933b443cea674f4a9d7a25dec987a44b07a029c241abdc3dc0d0301a4a4329975abe3716933bd8e6e8fd0544300bc32830de64d766aaddd686533be9e995e8909c5884a8001056c82a2a720578cf922d43f7e881850f9fbae078f4956ed0f37393a9e5612797a720f90b2e0fe7b45cbe5d6b2a70bfc5e8a39f6c82cbc1db7ca86b4e32cfaa3068cd070d7fd264421b8c5f9c62e5a709d9cbd3daf8033cb75f6f23a45b291defb4e291460a652af736407dd6ef23e49df2d9c191e06fcb03c9efcbba0f5c2cdc4c7a52b6dad3513aee49690f35dd642d0f75e535e97bf87eebd69ab3a700362ddc0ba75fad707c7a7a11e78c3f4f36d17dd00240a862bf4fb252173c6b0b4e3640b58ce842f1c41d1455dc218ad60c25d91d224144109709bcff48f9a91c228a075770448aceb9743c37d85fcb45229ae23f3f990e5bc6202cf53cfc8b423d7b1b60a116001f29a23d3a5f60cd2703b298f7d6e5054627856467b822e81561fdf3a0c52b2383de289557d2c67701c8aa53540554ecc4f7915d8b32ca224ba7f0a7f91e94c6b443dc1c3e1864ac638ca70bbb46ae0c5e5a9a536d86915da5c70a26839ca1d56cc913aa661c16d47bd7e2bbe86107e8dc9d468958f87a3b1a9e8100761cb379564d8895ecf81778a6a3751d6d633c2a510c168e944a39e6da9008fc4b60bc7ae61a2fbd4d36a5c8212d2c97f37221a1480a91a0633d5a835946bccf3e77e593f04411a620d68e1e67ae17ad56af72031b4862381df77c851b72f21b4f2ab1876480d3f31984caf00fafa92f149f632b45fa5dccca10de2fab5de9dc8644f7dd57bb2741094ea160221126b7b8642221214263250d88d9d4eef4f328d498c742a31cab5d7eebfe69937ffc7299a7c010ec8ed31b41c435582ebef982bb8350b2285d6508b001e5b01facdc62b8170db13c3011f7e8bb491554c836b73f4e5134bb47aa721719f500a5f4cb8bb493b13e1d06e7300593fd5e8af272fcac82f7362f95694a16bd25352900725388fbdfe3e57014e695204fe151384fbe3e767b1963c7d931af232380e32d9328726dba27a1e64cbe1e5d2275d26848b7725ea7df9a0bf1b7dc093385ae8ac155a8189977f22fed74c666d979670255121315ba6837cbb2c1ba00162a1d336f284177fe2e1b2c691b148b265c186d840fbd00bc9ee20db609e1033148694fb4ec8b364e25d619099f902245e9039158f698e6f12b9fc221b3f6c6124578fc9efae752171f27fc5f23d67f1bbf3409466ff0de8c23758f1876a1a664f24bdfc59cdb84d2ea209cf1f350300839b8dcda0d3ac65e160e21e0d416edfee4bd0677d3653c75ea1d6ae7642048ce278773628b2d0e88b039b71fdbff064b12969267bbfb3d12598753936972a39e0489692df64dbaafc030714326119717f176bbd1f14777eeccd9352a5d239e00f04b34f6a55fbde83c011d6bd8a90cb969c9897ad354c14f4f204f1e442e5ad8bd4363a568749207c459ad52cd1140cbecacb2e0872b8731c2f241ff36c1db3c951f59263c9a60792eeb065f204be37cce6a06ace30f9c7528237cac5b28f30db188bda7934ea60997089888e06a2d50d95eaf435f199b70032cc74670be6accdb783cb9e64ea272ceb7ddcc669ca2543b2a2facde51ecffa5e566995bbad2c4326c00a16cb40d083c1eeed5540f87ad42514028edf28f8e855713674d8839c7f6affa9a75a4a275d78b6d51d9191d795d2a2396844db646d2816201102f8ef1e34a493f41efba1ed3a0e7e83369f1d62a9de6627c8037602bd45aab8fb5239ca0c30493c1ea248683f01de85f275e59f440ce29791e79a0937a13a73fed7f8c658ef27f0846f4c19d03140a60c2ab24772cd2cf52286595af5a58770b1fa1c87605f475343ccb7bac666584c4641ef90908cc754e862c90cb82d68409e2ed8a5af639b3827dc2c418dcef4c2a41af400c4f06c38af52e284231805841da1af804797c32881e9b553a86b1ad13d53a22fe2bf4418cc3a7be07ea91acf4082c519bf2241584bc555d8ab355d96ec3f894d36c734273ba63f148775da05a806a08e3cd9f1d30835abab3ed4414f558354417a0994b3e545aa5c4c8e18424f6265181e692518c4dfc0bb359c618bf3d60b06b5f0a0f2e2cf8b61f6b0e0d8a408126f3744c891e47a19fbe2a82fbac1be46eef1cd2fd7b83ff2e3d8d476050f9e15e8c0672f9a27534546ccb99aad3b175b27827230472b20b3622ef0d16a35edd2d9a6ca715c7ec5c8eb221494af31ed7e5414954fd032cb93d67bd7a253fda0206a92aeb4e435958a531cba90de122489e0f1877569aeffa50cc2c8d3802175a4c81ff233b50259e41c2b4a497f381a31ef013920fad71e044d2a6019d23e85db56cc5aeba1e38d7580fbe367a7eea0550398b812e8fb33ffd847c0f41179276ac756de0cecfe8dcbc0a199b6adf6b122b56c42a93b5c86ae4575636276b74f76ffd573306413ef2f7885b1d87f1c07a832bb6e61d7d7afdc75434737299b07494add2ce766529a158061b3f9ff666d79d19a6e5b2570f2660762ca3fef1c575c61d596ad4c618eefaf90034961f0ace4acd512f709ab19a75fb23cc31d896f692d4a8236c86775b28fab09592edb1181ac766d2c0f989fdf0fbb6c7d4ca1b4bb5a98199e144ce844ede4ea22738f256f6d0257f2f977f790e46cc748398fe706c0ef7660293ee0efac1830e8155fa1803b1e69fee6822f4a68fd0cd11e70dd2e3aaeea5c05f9f1a9e4f146529a927d9d47c232fc98bce204425e0d963751f0ef97c7ab63375cdb92d6cd0a486a483ff8835a5d1ff407ab8670a6455140b23e3909755af1cecd47bf2597b0b54882eb1a58464e9a3e3bb08407fa71172128948a50f07c96e70805eed127b813839c83a8a977b9a6ad15765bd8002ed87ab1f50e97c6ca27cd1f5e90462c69ca42039972bc56ba0b7eaa052be94c93018eb43130c16d2052b055fd8aaf12a540c2c37112b1d9c9c634a01c29d3886fabb46bf78d1b0c62e92a954580c9b2a944e257364cc3c417aa289ee73d2cdd3ce23f5f3e2e17e2cf91a52bdd56e653cdb2dd3a9350f91eb6e1ba5478bbeefa09f1ca559b871c19d20e3880044a7be10644d78e4a106717793a34067bda222a37ec404fcdf7f3faddfbe141e2c084d2bc9ce820b27119470e237b7f4f32ae7f8c7d4b2b384bb7d20b6281e59100c7ab78540306d1ed18ec060761cbc28ad1bf72a0a93eef08fe9919354db4862d9733d1b9e0872d810ed36dd3d792c91b4c5d4b37d7c4c5e784022f80974018248d5266b37c75a1c75c44cb613baf944f3092c1696674d7bb9ca77e8884167c81ce29f3d3035fa05b5c840191fcd5811e834bb276b8b62a39739fddfde9294eb1c3d951849904785fabc7824ca0da680df6850bb292a5d3e03b27d166e11105603a8c67ed5aa850725c9479a23499836dfc2c57c3b4c845c85a4cd58f4e83785f461d5a3924d79a239cfd25d9573e71942b507f12c2907f4e2337ed8becea72151118b28ca9f5eea85b8d3fdffa6b01c67ba38a8749d167992fcc4c7920e80c4defc6d361c85330a4c0a155d867fecf1e0bfe6f87c5c495bf7c8c0c236cf08333f524181293a1b8aa2888ecb6d9b60c07e0b42ed2af097d0956e49356c8989939a6190001c274067b5cc574905c4b56f86eb85762fe06576f74e53aa43632f62105107e1c0b2349b16dee623db2997d1f33f7c433ee4360d7d00dd540eeeb27139083d3d34dd7888e5ea8e2bf6900b2d09665e595ec7c3e03e7b647db38f6a7e827a3580783682313828a95022a38a5c4dbb3f063c72b14193169ff04531c07d1951cb636c3101d0421b01d8e496a4516d4c7431c0f4d8c7fcc61fa33f3e26d25d60f1ed92c54e9de3c3d30745d5ad67b1e776db3c68c80a859bac135dabb78e4404dba400fc3b4767dee3aab7158f7b685fbfb45b293e4df4886dda83562c4e4c7193bd12764e559c01799a1382d2e268ff9365a214767a1bdab84a81f2386db6614885911012e2f6c97d566a6cc4e321e76397ee783eaaa15e41bb46f4b74f594e3249e9dbc6c65714a1254a222730814320aab7689e1f9154fbd87ba05c89cb102b41b5e62479974972412593db5564c005fbcbe27a5fce6ba3d0664e6b45af37e82182f25464dcc431fec3cc86328ac3548cddd2135b5f2d5c4b6d0c742bebca41e3cd6abe3751099da918a50356b926e0275f4afb717fa2c1796b13d06d708ec7040b67b9bd8c7e9f691f52d81ed4cc1433c3e024216fcfda70b781691230c3b886054edd96643254a325e947c62ff56bc632820c43a27df2e006b11c6fd177b4d1ae16ec761c3dc17038fbda061caa9bb225b4bfbc2f6ad537d4ee7710787e5f8f926681d2050be6b1cb02d0c5faee0762b305e8571bf413cba1bfd0be6ef66492fc7fdc7f5eb234458cfdfe5341c5ea60e4db61cfb8477449f1d29f0c0cf4fe1cba4780a9cabfc4a8667a657dce60e904acda05e2191d6b057e3af322c8630081eecd5e797ff17121b03626595637ca5bf09fef8da3a87c463cea8ba5643faf09429ec006cafc167795a8dacbb67cc7986d3f069c03314675e90c9b809a9f78c1542efe58479d288d217348d94ee20c94f73dc54a0f6d37c5ab1ba439a7b8de74a5cd978f78d6207b11397040f2732775b4c1fcd51dee916939c58667eacdf1c322e932bc4a1aab0c6d6e43643479b46421b19a54d6076b0208af99037b2b32740f169e2741bd8be39e1425ea36b3b6479a9ce000df5409644bec58158969f335337e636ff1c528e62c753dc4df1b489a98be2fe8e939631c9c646213056c4902404764b108fa88a44816595e52d14feb3926298b634185e1fe8f89dd00b4e0b34210bb6ff63ed13328d54ce6c1f6fc79d9ff02663d743fcc47c1846c5228d70b9306b424fadfd2661624ed34513b746e5b0a150671c1af951a6541ef6cbaee7d1d067569a5db943f5b29f93bf137a3beecce5c62251c6176a1ab0ca9e84c9b6b315a5e2f7d01c02523d1e7bfd31afb9b5d617faadf7b0e1656c0f4b5d360d1f61facc18b680b0b2f7c1b8353bcec336976c0ee43ec9cf97826a5f1f1f5ad0b100701a33a7dd8cfb6cb1771058e3a0b0e291692f48a18c28a5e119ea4ade2e6e2cbff7f7ee83f387aa252a38f178676e49bbbfe5aba0baac2148a4bed3cdee0f207dfe60c39fe69cb8ac1adca5110e5066c554d0ccffbcb98ae331b3b7b07371ab85f2251b82ed29eca303e870ab9d30339c0e0013fea5596151ac30f4fcc41ec9412ae8e58087a1204dd4ad5d94827f91426cf02c767cb1a05f426bb7f9709370a376420a9229863ee24bc8d2f1e713525abdffe99a5eb52a82f656878a82b7f503b38a56deaf06eb356338cb5c1eb3891619d14c5026507eb7ab0f4213a651b616d63760d8c6d203253df5774e07772c2d1e29ee6df09d7c3564d5032a0ce6b56764d7ebb4a51aefb295368a5a0156621c2d12851e304ade6e5f6e27bb8ba3733ead70b649c48324696b570d09fb34dfbf800e43c2db02cd15ba356d68a1a49a9651bd5c21774cbba731997f15e292dd6253e13042812be0a71608a22e5c9d7108a033971a7c014f0024a3e7893b49bd9ba508807b20c0012285eebb2d5588aedfb4827e08147fb11d24679645edd5d9323c0226b74bdadd51d785793f8e8db998d283b2f40511f3f6a9dcb146cd9b2a3a3ef8126df7138979d7aaac8724f95b0a41c2d49cf79f1648f8584faad33dceb999b47c9f89ab5ec0b10eeee84ac58ef9f54ca1c6a2f1f8ca4c62cccd41c560a8d974c61e85984987f597363f04291da2920c188b9f89ccee595c1dc6e54828117fd79be64c75b317cccbbf2901884c06506251d6c66026af25e3bd1b8f4e80173cc9c60c6debe3250de21809378c1031c5e6793126b80220ab2b3c8ea1888ee72fcc2ebb22a462a975222c8abdeff208fc0d6e9eb16541def7e044f80b01e1ab2cb855a5910d45c2a58b2e3f540d17f7692b1fc3a52cc1f742f8ab979e8af455b7e2ae4f6281c41ed2625cef081635d1f5d53247ff5aa2e7126e48b9777db1e0cd4e253ce383a2182b492006915e2e35ff872d039ce9c847859bb61937c3eb27e493e03a00c849e85c0812398a8fcdf39964de465b2e4e0b64abc0ba08ab6bbb9349b80559e40068531781780931029bc7e00bd5788aee371d56d4bc31e6efb4b4b6173306c614ee2f2e688b959d36649c698e8f6d969c8f660bb1563100024d4995bb59b2e1046e3f224bd9ab6b781ed127672a55abd37e91e28ce4ae3dda943528ce64f40c75975ab18f8b45db6346d61c608982fe54013b82eace169d5b08972a91a53921d457300c20e53ebb29375f78eaca0bfeb14cb1f182365930a95c9dbb7ab8928096687be08f61c3c2a48ef0c24dbee70c6d3c8ef92fa3d031131f99f99e3cd0dd571d799e01e9c099d674e3a1b5b6d01d9cf2d4778929b56b589da08c16803ab6e1000a14034c98fabff587840756d789f8dd5d76de83eb44507538063c879f932ee43ccbc75080c919b24b870ae4564720669713f5276cd738375485665c34efff02e57a2521fe8918e9d4ea36b04c88f22064e9a97aa0ef8b4ab75d6294df099874d843d83ba86558c53a26ef24d69d784eda74bcf83fd7b22fb7308b4fc8b598824d771eae1987a170cd3911a76187235ae4f0bf4c6af78b53cc7d1ae8d96558ac3ecf7b1322d323c2939a47be415a38c4f481cbaf75f05a337c0b1c4910a683281fe6f44f83466eaf5f9dc5b729d6ede16278a027290f442e0b64890ce37411ebd0ff42198d3be20eab33f00c59dff387ff0af2bd595bc3e02b64ed279becb2bd6cac47e685ee0cc162ff37bcce4cd6471cd7e227f908ead1f52c4396129ba9b619bcc8809ef32d3aa82f2e9031d522c26bcf6a5b06e5748cc7132df3b2fa7e6f5caee1af8bf1cab5ee97f43b23c1616f98c84543bacd285ea22dcf9d921721da97524c78ebbff5210a2b0388c04a8a9b4fea6200a440945803d8e55d00dd1d887ec32eddaa315ac78f2bd7d240cd4a209691ee0e4a42c8c15638c548402e352c8a0230a92be1710eaf26e5cbbf5e647c5d865182b0f28f35e3c0c730852cfeb5e9b42a0580f766730059c4376264f099c7be5917e2fd86904f4648100018eee0d8d6cd5b4a607e596d01169645d4242185ad6be3747b8ca7f37a0a6ee2c75ba945f3de005f7a510fe8a3a43493724bde6d96bd871c1188147b25c4f7d9efb83b8cc5fec6b359ca46a46c8ea70dbaab045af7620d2c24be4ab8f09c39a7db0fed35643cb5f8eb76fffd63019d419ca34fa25c0f8551408eb907bb70209618b91cb140c4c9094993ad4cbe552cda5afd72d4d60e6d0e0faf7cd4c66d294f5f73941a53084a4a692fad7d6937be80f0241e4b44239d441a4d3762ac8c4163d0b2447e9d12c84c02ff053b56e401c8b7d228312e3f915f1c3bb83f874c77506d68ab6edc2b91d62e214a921f81e98e57f57b3e7361ff4fda8208536158c129a6d49e1aa6fa1c4f9a2912e17e1df35b4c14510772738badd258db5f75216220cee4e6236ccf4784961839d9c07cfb155a382bdaf51038f96fe608390de400d3124c63acb2f0591de41e4a3f9c4b5f704532351dedb181ed9eb14c67de9e1eb3cd297517c41c984b08b6277e26ffc9fdca12b41d3909d087734b05e641fb269d1304c1b60c5504631c533ed9e7bf3f86bb381edfe11e915d1ad0011f83828f500108e69cd74bde632354443cc3172c8109c9d636b076c66cde12c7aa247390e20408229341b0d48f96d5bb6624a4b6a16fbecaa2f969fd19223b13801bc616cb5ae107c9f3a9b1a5f1a031a32ac3bddc5ba8f553bcc66b7956c94677c678beaac787d6aa25d4a3b3ef6688316cad8b72a6db298bc09c4509025efeae612c0101c6dd66e282ace2206677187d7c5655a61e59d527f0a8968a3578ceda70661fc1dc207aef56b32d1be8baeb018e5b9166dfa0dc51867c56c22caf0e3d68cb9075f58a74f5316563708fae8b48613cf6b00c706134c94b941886a828af00228f7d79b794e470a4020817440b735cca0e40df8113a127fdff3f25367326ba7af40d121b9f3073327763f17d23f63d5944e86cbdc4612f226d6d2cda465ea080350e6cf9176ca90d3681943bd0ba709bb28bd8ec770f32d24975532e6315218d0dc4a234315256471ab0a59bfc9631f4142b4bff704b0db87894e600aac05c3eb2f0f8231fb8ca99145c64fe852e5a202fa3a2bc8ce45a03a298173163bf81b200d0c57dfada03b5d4934f44e563c68f20531200b20e1ce9807998b6cdd0ceb07bfc646bb1fb82ebd58fe77d7d80183f30df7130174a4e2ac7413d2f942141f4a5858583e355559b0503a1e0dc81e98c04d2b8634a5422a777d426d15d7d305387db458a044560df15c2a7127591e67dacbc531333734b2d0a4092a29a715bf5b92349df24b0a31e50735ab05abc1f422dfd22aff0f1def012bed297f37b0c49674528d5e7aeb4d099542f0d224431e5a99260b0dab179e6c6c338a2e503ae33dacd210c461154b79a77069c1779c04202e6b37f2c15a620520d0e2348062b0b29163245f6288484638d451c8bfb7a9331deabed4cc5030fe06d10d1ef011681ea1ca45b33a20d3c6002465952fde83281119d09b36c69390642930d0dfc4951997b903adbdaabfa268ac41625348d845dce84936aa370bb76ea8916286e3b0afea2bace5e6b6f19ca530a011ebee8b61fe71333a1fc96785f1ca8b522a854034a162543b61d12d6a0640dd463ac0ae4f3dfe597807b26006ad55ddac31f265f855480fa54155e3bae64535210c5294818a73eaa4a226aa540953f0684ff9ab9c1bc059e41e7aa356459dd0763c91d251ec23eb86ec0e772a9ca6f105cb38dc0301f10bbce4d01a030b49d845ccc70de510f290c1ef21ea661dc96fe5154d0185303a446aa56fd4518b428452399a03f88a88c28ed315678243394f889f8f3469e076942c9246d065c9403d093b79ef0a05668dd1a24993ad7d3273ce00eac966048ed6503867affc70a01a3390d1ad4e4f894a3c566a0808f5814335e342807ba91b38297fed2ada812c9798943e75eff1aa1d6421b8967c8ce77ef98b3212e69bd3e7688cfeffbcec7e57e89dbf2e370c4d81e68db767299b7ab615667097b7e5e4e0fd50736427a0457901b6a074e1a787cc70900060edaf96ccc2b2147919821072a37b45e4c4513184205fe4e4b5fe9de162fbe84c1442c0efaa89f888006517d372265df2cada25f5e083045c37dd2ff35ec0303fcbcbb7a376efc4f16378c7f864aa2c2886abb628ba5c2540b8a52beddf34bc56bc734802cfb7899a4f4e12f33b77b558b698fc9625d2da0ff5b3e37e21d4c912623617cd2a9797e6b6c34a56d070789fc57044d3066d682dcc43d921a7f921f3a3c0ac6d8e44126167816479b1886a1d4358019d1a02c49193f1bf73dc0a42767312a6c5c7542bc93fa08cf03c7cef8f4314876630b7347c0e1f88450d5c5312acba5ce00e8478703af23436eb23613e9b171b26f81399f7df013929c25ef2b394b304317b3f14d64b8834891566fe005bf87801cb0556e06517d9bb7c2bdc128ffd569acf8dda227cda4f93512dafa8fcac1cb7efe1907fa3738f8448368f9aad6864170e48311e628bfa4db8e56b548ff3b892983d8ca7befc421c48ed0a35803098ebc22bdb2485710c486e6e2c0874823cdfd6f6e240d1f173ac033ee41a613097c14e75c530b108c9f28b2791a366dcf3eae8170c9f17f3e83f12cc593606281e42bb06ffa9d774bacdc376554fc63d0d55968ab9a059431261a59854445382a4196aee342020e35701b0b94c058270e018d1982e45171de2874a2a145e120f8e3201dab77b9ddea80c3e59ce554dbb7e9cdc6e609ee0343f9d9f87be9e7c88669cf09f88c0d1ca9b6a4af2d2ea67d0163f0d0a573d47729abd9e08a053e962686686de97308f8e77d6ee8a001e6cc7d53aa2e8b21b504e888c0b2db7f85f9eb0bd684860f56dadc0887230876b87a472287cafb91db23d9ed65279f0fae2e6cb32b96186ae7d8ddbe50f5c0c3108c58b6f8f4ce06fbae04f3dd1e27e374649c4b6286fb36df8b81d8edc3f6743fe0fa3ebdf8f344ff78fceddd2ecc9ccbcf3536f29bc7872bba10d4d38f93379be26c004574d63918b6a189befa3387e132fd40f6303af39e6383a629a79d034c9023131feed1dd0796d29e5faea5ab03de0ea3b36d57358cf0103760a4bd1af3e1417dac90ea0f8c59c8c487f3c34c08697e648fa1ccf731ee1bb77b9f8c16c98e634eb91bba6ba534048b8bbb06f8cda3c45928a3600b2e22e93ae77e89800cd468eb919bb22ae2c0feef456af29719c69416ac0c4e221a19ec0c13503349ed57cf8d93d5d08dbc05fbd2874fff50a2474db7fce8ea47337ffc0f3534f5959f58b5b84a78e53660f42c9857c7c23761be59bf2daeaece4ed980f92cf089e6c8ef75f6f008737033a97309b8b8846c68e0a37e34c56ff7fc6120714a2f44f5150c7080dc911940e7d8293bce5088c16d25e8766876998d9cc6ce6fb7e5230d68e7b84d314cce2a9475b5a049f821645238bf3db59b7a2304ad506a0bebb78a5a78db91892746604cbcb1345a23f9c18cadaf8b58983cdc9f55b0225a4f40890357ee0c351c1938e48afad013d0e7b1c8d33eb5a27f44519aa3db02ccc4ceb0e8076bd9a0ca0e2e5809185ce68f9c168d91678c8be1ab1d6a117fcc24177b053a974dc1e23a38ece074b75835760a6ff4ee376c91efc88004b3234f3709f67682805ce7e07605d975080b08bbb59db75aa4fb0b6291b8f293a9ff71536fda864574fb7bef4ef3fad8fe786cf1ecc9b98896fa752f25dd81b91c523689f03d77905448cab99f9ae9edf0dbf03adcdfc6708c0543c75ef34e98918e40424f00c0808037f3674d148af13e924d8dd7e9b2cfd5127d0eca292514769613396519e29fdc446628d65bf02965d0b5942ae029db6c43150d798cc1cb879346e094099fa8a7375d9a5e328ed1037c05de76e2ad3e59665ec4a6d6419c62e1cf65f5b403ba4e5d7214c74e50bd2c4235af119d87ce5645784615c10c840a41a9e8f22e1a4521a01121d93e30bdd8104e5765b3834fc0a19dfda2d4e86580372c60122371191b409cebf7a7d3766c1135a95f1a302b01117486139dcf09f4fa6aff10224bb5d1fe240bd811624e8a9eea69f9f0ab91a57dbbb2cfa50a423c59a3865444d1eefe6f53082043a8cdd90cc3c5d316c3294fce6b238795a747b8d74a3d6749ab098fa87c06910e202720602a68c6f4582948b5009c725166db950b3d3eea6852b72ad42007d9531f1f0f847463e1c97e58e39e5fd604d91fc4d24bc095e152a2b2780a5dc4bdf103282793a45655a642104c5354ef8703243dbb1b7dea8b34c20410ae80c08e1b2b3a3b53a7281ad079bac3d0bbded67e0685cfa3f9c780de1e7a2939ffe552b596feac9e0f83e2b4ffbb44487713e5b4b942d91d7fa3047144bfd45770300ef4ea548f4e7d53854b58b5f23d735571891d7efc738292777c6648212cc2c83442162a00900e98de8aec7fe7a772674073abb6a5a074e9eb5a7f30152116fa7529aa243a4c8b0bce27d81526a889217b82b592c60ab637aad677b3e2dc198384426cde85d1ff3224171f377c67f0a192973e9eb7e573186dbfac68b4d3f02b70ca57cda0e6557ed4fd478121bd3b1ac398d3909105e9511b1c7b6e65c5287205918c938556a97394dd6ac02b94a53c480b6d33d5be126444c1de8c56b422a6ce64f525632e22c9a1b5a10ef7dcb383650e2fd02aba824fde165110de2e1dad447b0a17b627058ef84cf7b82c044dd02ecbb0b44720723f06bfb2cd037789d16d0bd891767c96fbac2c65b8b3c86b7146465c7cde6c408f4c58c7a15106547e9197efb8edd7b197e0ab6e0bdc2a88b424056f42179155d7deff04e5eb056d780f1dce8e8c61e7051b6b8e72bf8386c6505d64c2abdc17887d30641b8022e3d75d320e5a04506b5c0e4ba4a74f501d03e69dbd938c5fcd5af52bc3c4c95be05819117b346192be3bc8acd6530ae56e87942d416a3fd94c08f2747c2180681c638b7659b03444ddfad20ae07bce3e8a275e5f5788a27c04bab90e8fba1389fdad955c7f1f10343186f9de172638486d1ee748dc5da7c9f384d06f4398f84f95973e8bd78500c6b83c1e60a043acc0b8836a361e8f24c74964463164883c271da9b6cb70cc87dbe525f2ee3c613012938e54cab55a8178d2615f2c5674f5f0c0202b7e2bc8381c3716ad05703a9faa528d4ed5c9e559ee71284945f0d203f3ac693305a6b5446db740c0bc261373a0a018e12ca6f6beb15ba8fd884ac1dd21890621e1fc9560ff052d9427c5a98c7fae552643df94b9ec0ef2f53bad3d86a62947c8870f20d0d2e48805d438a5cb61af76ed3bbdde5f016aa1443f5ce8d94d12602d350f16c4687e52074a48ec6fb1dc23946937685bc5b04a1693fbd6fdcc2ab025e8c590e4a81751cf293d33fac3656537be4b88848584c90b3ef645b1da90828c30e101dc79b4c8113004cc4bcd4401447dcfbadccae99693b0aaa50208c6f9edf04ef39040849de70dfc7c3a02f02f2c1ceaac73a23bf6fa51240e1c837e9cc018a910a86aafee6fe1c188590090e11d002deab6985c4c265e145ddef10ca9444e3add0c8a6bc755e9a63919e9cd95984619070070d1d034f09888b80a7a57f5ecb557efa04b6ad7c1ed51376529ebb0d09f33675adb592d3c325851d9c4b34756102deb359271d68a770f3542a97e7f6472f91539d6d06171b862802c6b1a33c28cbc387119024b57493bc3100071c82d76233418472c3aa26b4079f75eb2c6887bd9ae09cdcba8632a69eb14fdd939ba60de2cc470c4292567795b22256e077e6bc834d8df3256bf8637cabc09a65c6d810e3da2bafe953ba0cdce42d6c7f08ed39b59adbaec1f46dde10bb68c8ed5921554b12f90e1a41f183fddda5b183a42be9bee60771fce3b01dc81bff8d3552a8d5cd17ae614441addb757f710fcb0f25ff0176c008c43af796d76c0e96a7b9aaf4024efa5c41aa3f46b6fdab7bd6c017338477b205a3405cb9434e2d455478a918a67fcf3b169354a6d257210ac95c54727f8a81614dfcdbe955930366b649538ad65d13d19aef4e1337900303e623933ffd11b0bc996024f9ac1da62cf95ca7db85f5d57b619a589e06dc268ee42b644cc86a27fd0b26e04ef72b9f081e94b79cb95bd0865b8c40a9343d82177992a0d40820332f58b0d146e694203f5ae122ac924b83ab0229b2de21a52c83a58c0416b46f9b4a09f5d5c6950f5ab5a82d5061f191467e19c2d1022011d6eb2b6fa0f0682a55f6cf48433a9fc563084f72968dc6153160623d92a879ac51b6d22c4487dfb4b8006cfc959ac61653a4a63a12b30b7138bc976127ea0bf352b16a0bb65662dffcd4b30bbeb54c8d1c89405664880a31de422f2212e8869f5846669235f1ce6631f0673f5dc14e3595fd998c1e2853cd714bbb6aaacb5ca25065bed31ab211d15bb4f3544e61a6e0033afb97b1cfbd9646c477e570dc5c79d742b2fac1a2da0235146e000ac25ba46c8e21c51385d5e70d1171fca6c77cfa154d45b39ddd032bf2a58bf1c58fc0680f882907a867016adcc063b59eff5c72fe16839d6698bb0560d3a2953ee42eef18b7a873ac9526ae30dd655bef58864be5589e26d6d9a8b8796d01a16600409db02b0b5f6103a6f9c3461031cf6bf1586008e728116b3cf6c844f773891efcbff9193ec3f82fe24c5ef650d80fc946b074ff372b1efafacf2ab1d495f195ba0c3e09cea8e45af5cf38f6890ec129afa4ff1dbe15d4a2cad91c4a7f1f19a49a2ad2b6b7473ef9a39739b2d699ba518ed627d005662ff62971b67768df5d7aec66e02064e6ba0d1a0b2364b0d0a31ec724f8eccd761b55b022860df0e53e6b263f55d53468a3cae181dbd2519319851945e35281623694c845719711e43250b392832f070286974fbae90a9d5267278cc18ea288d027590633ab3b6d8d3831b721862163e4c1e2ea6c3e4ae82ac6ae6356163a784ed75ccf39d3e58410054fb0957a3dd6014f146757dfbad44b688b8330b4eb88f8d130bf2adac7cf22b71534e5f9fcd2269812c7b1964d5e1af81238700811b4500a1573e7bdf8ff8e3a301f1fd057f563225e88db091c9facfe1b9ca4b7f933bb97df8ac9aeaba1f0891e812f667974365db6e4e7ae44755f0a650129c81b90c9de6e7dce705955f0ad64850bbf605469f5d19fb39a93165665883232bc1024c9fcfc9fa1abc58d613ec698ff766b44f08cb42a474587a2eb1d197105b577401e129763f7ce256984949d1a6a21b7c75c22a1590008cca04beb3bf9abfa3577c1a1fdb5ec61e924cabad0a69155dcacaddb0e3e7629228ca02c7467db9e51fc373517994fc664160c4ac468b998d5476c8499a072912715515057a4dbb2ebbc0949491aad5aa6ae0818628f5961f5257f9d6d9885ce06fb995f82fbd25396e2ec6da4c69cb1200999020c1f25320fec776e9acf439eed398863968273c61b94afb94f8fa9ee8d765f90826a526dbc0de7b111927806f21aa8f72081bff4811a1e05415dbe54e5d6ed7d4cd9697e33bcfcae311b354c0abb1ac2ff56baf2b617b92779075b8dbaadd33a4e1fa4e2203e7afbb1d73e739c65fd038ff22757d5519a0ae57f6af0b4a344cf339373c84b6f46f5992d448828c0fbbeac3eb126da1f1afae6e654c869048a64f5da1d26f4bde20b8000c7bd863b1d253636d95f15c8c6db5a1370fe89df42d279a85f3e756c7e5c58f7307e83b97e3a05b564bbf02c904e53eeebb752a5429c10e95b64c6fa22afd2aaa7569bf3c4c68e2ac5394d455d066797787c55c3028998d29911cf1956eea5c4246a181eaee2bf4980b105bc06121860c25c79e91cb34c918996028fa9ee720af1ab0e58a67d0323f48cd0211e878d43c15eb3a6c482cbdea786c7f2688957dbc0b84241e420c7b89cfcf170a7bc0e07327a2d3cb892239eb4cdfb7f9a51d246e7329aa24e6c4f455d6f814516caa4ba1c1d747c7bd34627943cf632755ad52c91c8fe747ccd64ccb8abad0af70901f66d1ee42648cb70b026e0cde0bcbf956ec09eaa6f193bea28556002a09181d61597b0cd6cc8edf2fb83bb1fbae919e3c3dabaae479157de878571a23409b6e75a8f0a6568981600398c9f6a30190a2151f118df914c135401242634722d6aea54b199c51aae13f204af347713e714580c477bb0ce6c61ce63958fb4464249b22a67cc8bdd053ca4bd68630a814bf6c19d2b33aa635b8344931aa2dbe02cdbf8a63b895a1574a9cad5b520b7e84567015af543a963b093371ba7c83e84daadc0493cc9181ead2d32e40ea2665d54469bced84caeb634784a428b869ac6bc3ec1039024902c0c83d5f06b673221eaacf862f9972b73601f8d2667155219da1fc823018f11d65e3f681263b352a3430c1d1a683188220d501d59c5d0a24f6b5f8e7dc90e082d4cf601aa7c9dabe546dcfc5daa5a24c9474bc742bbfc17195175edb5ea1f08ddcf6abefeb24f3eeb6ec89fa4c9b7d54a9a8ea9b5275e2174abd7d840422dc9a7dfbdc6079057c377970bb440c86518939224bb466d53886c62a87729f96cee6dfa5153c736d505c391050c1d933d7f4b14c42397c214705ca4a10e8209b0b18948ab59f6e114f287715d74c4e9fed128bd42769bfe7f1938a0914e3768bec693158c960d712044364fe40c088625c0510058d622e67e1e9c69786df617821d1cbcf069fc311aaf85085b0715b86a46626cae2514e2f32826079c7f3e2db074d5759833324b703dfe9123ad6abd894c4d46abcdbd3b95d96fbce58576e35b3f715106e8ed26a2070b1a731d40138ef338a5706b3a6ab9536c52f0a5d0bbac540ddbe591cb7846c2921cd80fd913a1820889138c69ad7541557b45eed83aa6f11efd2b7743e283004e8db16fe3bb6dd309cb8733a3e63a5b87e0957b73522298e8d7d6b3d59bb595c4251c13dbac7122c1066a592ffef1abc9b815ffcbe54c0298ddeb5f2ac794021af2a879957b0c51a9e6e629369f0825ce2612ffc07e5b9612d064a0a484bd408b18dd3594833394a38bf8b4cd39b5541030b9e8f36f87e45328671b044c0832c78d52ea4e61038cde07260270597b106b4eca0b5b656da1e285188883e0667d629d4644e99a86067f14ca97dd64cfcd9d5cc386c597e91e598246dc2d103a9410af313a2939505f7b2d3f999a9be0dc699ee8d2871e90a1bb3618a5969e68f6710b8c5ec5aebdb4736a3fc2965e651ee63e5ffa2b1cd47d04b48f197c0b0eaf74b398744234eb593e02d75aa941e8b7e5c0238025de995b80ac41d9765b0978baae28d5e4ff1df3d4428fd464d718b01bdb7119f4a3634eb9b74aa706952d60290b597f56511de4d5401a0f227d4c6661f65244e66009b5e6201b6416cbafd05ecd95a1bfb50030e7d33040cffc8adc10293aaf962e3fae18d76beea7232030b70fdedeef7f36700b480b712f17f334f46438e2137021f74c68692e959dfac6beba39dc797acbd509b82f10547c9a383ae1425ac03cf94cfffc847cf0194cc6dfbdfc6358b0ce0785413df3b58831084c66f4029d2a97540ee2ea559fae849626e632c8ea82441b0751c4b9c03640165c858b279a2c829d6b43161d1b49bb5f7cfab9db099415b5aca8189d9e6051c1d08d95a38b22cbc322545a735bad40b060bbccafd71845c47bbee036da8728416c5f07e41b461ac8e1a90d142ed5c491555cd14161484398021500e6c22cab367b2f4e2f2caf48539890871cb60af7c28dee6a3731f3fc196e85cfbed4d34f57a482de14f4ee4c3c0c50661f4b64038534bd05d43e953cda88fff673168d85658630fb0f552a11af8bdad56c040b5b968a73d6cea7d18a3eba2135e53e92e66171c6ab8961d763fcfb4c881a82067ff66157ab7d915c26a014a588c62418f8562a80409867fb4633804194737475c5170515787f7453154459c073a0471ce2e866c111fcdd497502ebd29ce88e2be04edb35c93121a38b18a58a0006950e16cb080fac45da5d302cb8f5fd7c4174597273107dba6a34df312b4bafac8d34430c801f11e53e0f4c7db45af3ee6e829961443aa4d30706a9180252c6a8a5f449c31917c96f63ab3b1d5c3adea70fa7c955e454ea4b4853dd74c9b5b885c3150f736e2914d5d30b62c7810fd61d7fc8398931ff6829277814653aad74a02ede9d745f1f8e0eb99d9565d7cc7fad48597f1a5adb02da723968524e215888abd2d76d4f9a2b70638480a0c7a252e71d3d650bd649a951a0067184e0b86382cb3aad0e7dd6419ae17926f09d3101e8054dbdd2c40b5a3b254f10881a9a24ed747ffa3ea316987dd11404f23af37f0269386c1fd187b1c4f03dea0feda83fb4490556120e937a375d49efe91c103217b9fd13cca98bd116f25df82180960dd8a3e92324ca0bf29d90ccb6013eb5f4546cee487323b4f9f024c24a12a5b089c56057e9b84ef0d5a405a15351d593b9dad6a57b255ed229ba6d6ef6c907b18deca30eb57344d280d52c303148ca9ffb540d3ffc1ed84aba3b6617bd5b2ef11f434f8fe8d0380a1cc24189b1d65d1dee03fb2660d2d2db62566dd444484ecbde5de010f0ed70d800dded775f61212ba3c7528b33c5119823d4d8b9b6741fb59ad6e939b7171158993c2303e391918b18b784d85143f92e0f0f70886f1d0613ed2b56d2b39a7a3835fdca5bb97900ebb739ccc8b247186bd8474e81d667acf3ad7755d57d781e01f86a9598768dfc17bf6f362ecd0f36e8545954587b2aa769cf04cdf23d66ee99ef78dbe12851442c0281ca390620783382474992689b865e52b9d2689362226a1a4703a24be07edb5b1431fd8bb44798aa549501f18bcd61b09b4de25d9ec03a35cba2383c5c65f5e28906e69b959e2db72015c6bb11488002cdd69a1491ca6638deb007af7e13186e63e5c237a38cd735c239ae0d1c3696e44cd671e635c6a3e73205c80e8e134d7b3c15db6c138295ca3c68d1dea70f38563bcbc5819316c1789d8868c6b726bb11147cebbf309163b9d90615d5e0ed33abcc6cd14d7f80e47ddcc8251e069ae1333739af39839cdf5d104781f359fb9e0e531739ad35c1f3d7ce6eac480375f9250eee9b80f0f3349a85f1da2be6154cb77b01987c5b326293bbfc99ff2786387356a589787b68d741197172bb19002b83c4da2076b225dc7695e634da4fbf099973819017859f4c4de8d7789510f7132214ec6bb0fafa1588b722c8ec01eead7ce89b21390188572273031ea0e21b187726516324963eff39a48d78480991c9fb90fff81e69abcdbbce63a3eb1c9bb2604cc5c93779acf3cc77fa8b926ef9abcff30739aff50f31edec36b6ef3c626ef2260e63407a2e63d3ce7cc2141e8e21c329d689718935d5e628165022e81e01dcf3208023c1dd7c6871b27ca7b022c026c9ca81d414c971df7e13922d17100eff2c774b1b99fa8d3bd7bf2bec31ec0c689d261e344f960e344d94c971eee3d4e179ae768a4a7077b280f959a2e291ad47bb0a87fbad4dcf3502894f71afb8942a1bccb3715289c8c775b3ac983b5d409e592c01d4e3f3d9e1e9e8e72fa8d45f0e9746b92727cbae65dd44f8769920dae40ba85440241100441d251d748b602a93b1dca37116a121d4acff33c4f939c0ce95e9c148e1d863bdd827ac7c8973819d46de9e211cc71338def3f5c4de37b189ae466bca35e9fe8210789447a0edb83ad21dd9f0ee3746f8e9adbc7e9d2c34d529ec3f660e344d558cf939c842131ca661b0cde7c4f3a0c9b5318bc06da60d89a6df03d4cd721dd72ba7c9d790ef1e9f144f3d34b9ccc89c6ced86a475a93946ba0ed64adc3b8f7cd81ef98c43b095f8b93c2de4936ca78f727fd64330b3e9d64f3864f076d66e181bd7b13b499070e0b86f1d0b5c8912e6833f8ab5d2b2325f60eda88bdd0e60ba3fc36835f798893215d9c14be3a44b959f4d38d9c8ed061dce86d1e0e1c8fdd82e3d9ab47f047bfef5eef25f2a45ec2d443f05dcb24fdc266895f1ce3726418bc95a4e1fde266487ff1eed4f37e793fe164bc1178c17bf21ea3bfef390de6c62bff4edff77d7754c1c3f4673d5beddcde64e5df075e1da4af54b73779cab58787711c163cc9a2dcb3129f1ec3825fb1a73984f47bcf668abdd1bf4bfa48c657ee47bdd29865c777969b5b081e5d9b25fe482b37c98d5b931412e91f69e5de1cdf574823ba634d52b41046e9dfe8f4ddbbb9e6bb77ef92dbf1dd1b9dca1bde473776087aa313987133301fdd9bd1578ec1d82cc1d14f5fcc872f6ee6fb8d77eb8b39fdf8e60b9f5ee31b1de6a462046b235b316944229148248a6f25699cae779a44e6deb8f9e221003789016e0e3783f27467bacc989b2f00dc7ce19bbbd4cd1dcccd208d9bc17bf371b8f9336e0ec19b532c37a7e277f30b9671f3cbca6803ad9c2e58abf77aaab792feef4739ca2337ba3bbeff300dda2cf15fed5893142d8481e2c93a64e7cb60adb5d6da83bfb91380eff0385100f8ad494af81cc2784e612fa7c237a39346f7eee9e6905f1791291a3749d14218a5936c25697cd774bf72f0c8ce74a943fe02dc0c12e0eef0015c69e356003779716979f83861d478e995bcf17d85f41b608549cf28a4df78df4fa4d79d1d76503b37dfb8b9f6e095ff6610d721366ebe047073f77233e872f35b6e0e75a843bea3bcc6cd2f95bc41fa7e020f823f27036a1157f85a8947ff2bfe6cc5c7a7f8d668f8db992e3100375f394800dc0cca21a99b2f1a3777e08c9bcf727328a3488c9b5f64b5839227792fe9e68730eece90d2f5ee90954bc8b30e2e7dd73eee001193dedab5d126391f7430e9deec7de5b9daf17efa6723066dedc1237b09c19e8df864732afc5b491a2b47b1f9c22b879925fbe22bb6bb8acab5ee557509c191eb7a809aa6599391dcd9eeedf006e2ed3dbe7b1fc9a7542eafefe6aef36e0641956f61984aa93cbf9cdc85959c0c78cd64ab13919b295de5294729824bb78f220a1e5cbac7e118bd549fc8d7ca730762ef61984a553bde6374a9bc9b732ad0d6276c1db24407563b3fdd0caedcdcdd9bafebeaba0c7ed7708cfec3cc9155f967536ead2947e92a2f5de524ef26bf35e54079e9282fdd53b92a87e9149b8f4d5e9df04e2e5f9f00bd13892b8e2662ef56dc8c77ef1221314ee95907974e2c76938db87409deb33985bd7f361f7f2f799ff77da59bdcb36187f226f642baef7234ba44543cbac94b3662d23792d87bfd5eb999efdfbd3af422cabb3c61ef1fef9c087b378b2e0e0b0e85ee85220673978fb56ae70029e80182c455871ce007923924573b39f2589b0e8e963598228b22094b4c2e44010516c510b2983788020748545a5c61030e0001c28420567414314832af28826491051b8c946071c5199090561223720a2a00210b48702ca9a21b0b2458a148f7d2638525a4d5430579841a47a0a2a7084282f02326e1e94729c345901cf4c4c716f9a38707555c3d3858a27b7e1ce9018112d50c82331a74d89c579665f384b32a649bd7336d33691a9665191543b22ccbb22ccbae61db754ddb23c67ec9c42c7b967d2ab1bde2ed66d99565d9372c9bd991ec138968c37af6eec9aeeccaaeecea2ab22238c34e2d76866e3bdd5e2318bace40b59ddab8dd4bebea3311573bada9669a6ab62dcbb26ccbb26ccb322d33d2bdc3ecda053bcc5e7dd0c9c75336e5a545aab228fd6555b552da3ad02e0cd440eb6b6d63476e26cf28e767cecc3b1371eef8ee1929e38cf8b672de1867c4b76c1960d7280dba2b8a1a4001e70bc7ed47902127b79e4f1893d84fba25f6702008c64ec3a35d620f0fd6e301273086f35f30f6c30342c097cc74e480ad9bfda4434c2666a0cb1308906ec973672ab1cd1d8c3dbb357792c0d82d0bbe43ec75075dbf3ed1f5bbe74d45b718e916facf1f60165d92dc482c0c7bee2a30762db35967881c12d7cfc479534d5f66efb70ed6e9221661198885f184b5acaaa8a64b28a2aa6f2eddbc787046636168baa541b0eb26aa7adf6c5d5e980e6978e8b0a2e9b0fa7579e8d007ddf5ed303cd0744bc4d535da2dc2577ec1dc5fc14c6ec62e8231726898c115b92aa770f5aeea26ed990b5bb7434347af8f267860cf8e354144c55905575605dece48178bcc698941fbd5ddddcd43b7ec10b23c86b38bb3aa1e7b5eb03bd274a2a0bb5bce7e067cfcf811d3d784a3718cd656033246034de474f832003191fef881e3cd34d3eb5abcb1c3d378eb8dabdb0049831e66d63b63e2e565227aa4c773a28b3cd1ebaf2600e9f5a04f0bfae4446f6e5e7361e99064c1972cf829b24c944eb21a40e231a573a26b74f36ce399811e24d19bb3c9c0042f391907c419398d6a2da7c3becc148f8ae896f923f0f7dd3cbae89ac8f6704327f1f71c93cc7ccf3a788e6c85a7c4a10c1400bc896502892e06fc315d82c889f206111d6602bce80d5e74cac988249800f05a5a74310bb8df38b71f8403a28d98fa1eba367aa83919af071d6cf27d347a733226f3a1912d11e9cc9c8a4b6e0e92462834cf6dd7e633163c2fbf594d0214e7ad12817d37b9336a4b0d5a3ca1a1fbc9143501e635b5bca48d92af92749dea297d703c4f91e00ce6cb053d3faee8968ada2c71a5f3f9a6367d3d05eecdbd893a55ca1d681ac8a58b1705494ec7a9399997f9c2e938e12bce96947ee414d5ab5fddd28f3ad46620b0cb6716b39fa85ac30884b825624aeb9c474cda2960c24af2e3c78f1fb2c2eab19b3bdc61983f734e0d237d14d2558f3baa575c1f1f6f374a5240e27a2950ddabce198516bbe5a656adfbba320cbba9d7348b5d5eeb21e2ec1656713a989c64d06c773786454e870abec1acd463fcd5f115866158a591e2bce0781e2d9e9840e231177d7c859da1a373a374d21b4320046cc2b1092178018edc0e8a99b8ee355120e9e3338de0a28dea8d8fd8a28d2a4e2e68f1943149c3a601afabeb40f0dfa13b7487eed01d2b89b49274900602a481584ef4ac33521189f40eb863e71308043f3f17865b2aa5bd24692ae28c2b401cb18b6625992ea1dbdd7581baee0302e93a1004c1898a913fa86203b9445df6164213c1fdeee996eb5dafabeb40f02f02e47a2d325d2c1e5a8b543f6cf5a3434c8658f56307c5d7a53cd3c5ca62a2fa1d782bc983e0b692e0b692383169a5d5a4151b82e3ca11960ed6a113f4b5c69ea316585c614553c1ed204ffa036d561ae20d1c32ccc7cb2fc41b3992461f0bad880ac42097906e08f8c479c29e22467e5c48601e20dd2f2f2557f7b9aeca4a29a5ac30894920558999a4da310110ee56205565821d27c680fbbd8338a30c3ec0a09b2918620ccf05862f3f3a480791fde6e93f0ce7109e979e59d53f6690b9448ebc3185481a3d6f50011ef983870a9716ba1f59fe00bb0ccbaa4b4f77260a04bbeea254b8a816860cc1dd462e80db0348e413d3850ed9f97cee1322aa4f854c87502de0c62e2d1244dea84a704196903766926c0921f206dd9942e40d4a77306f80fb55894a0cb8cff567922de03eb502f7b39964f2804e21867d2b4917707f522ce03ea556a03b8836a814e81079835241afc0fdfe1c42c140af80fb18ddd1b42d84b59bb108e04a02b46b90ad0a7f48cbaaaaaaaa28adaaf96a4e0cf454d6696555550628112dbbc0d069013f68b22ac76df5b7d9fae83dac1ca09e3be9f2d5de7b8ddb21afc9e2ae5993757b2d25e59aac946f56cacd3d5096bd5908acfdb71e669ed495acfd5eec0c9d767140d223b763e5f5deac3ce5dea00e6a1707c42b9776189e437df4183653ece294cb615283bab1c3f066d3ebcd302eedd0c5bde9cde938e990b75492daafd2e966232eae66e2d239adf4e2be78f1c2a65b5efcf266d3b592b5b13444bad2677c78ca557a62ca3593a7fc9a55b1af9c8ccab54bbb16b95c2f7769b5a94dab9e4776fb5a3357ac935dc076e344addc05642a1ffdf746e5292a37eb60cd72f626e5dafb2a56ab360b81ebac7771b22bd2c5b540587ba33de592cb61f2943757a33de51a77eb55e3c155cb43d372ca5fb5cd66c7ec25c402b26fd72c02b26b17705decdab5dda6a8d8a3fc361f81531eb3f3d86ec603bb40e03cbabd38200a07c4da473ab71266a65893a3d80c83473fb159083c3a4db7986e89745b3a10bc4c6cafb8268890d8e4cdd57cd8e43023fb623377936b91ab76db60269771406c924371c5998ceccb0e3aba43b7c81b0110cb8f4e0f6322ffd970a2e845b6c4569c0f3a585e26b66b75a3478031a1d0bb8342b789eadd416fce4603dddd6e84e963fa1cfb3ce81a915dd367bbf3d87974a7e07c49379021f7c0da378b3db397e44c08d88e9dc776ecfa68823b777964bfae8facde8a313787e2ea3bc2d2696ad5e001bd22a55885bd7a75611ab3f44a02a536184be1ead62f8b599c14f881ae3e5611edc0aeae2a56f1ba356712daa16555bb43f6f54fecb07ac4a61cd52f0524ce91efd0fad4ccb9c5161544edc3799a7d9215051a5f37a73188c562a1b86a02d0d661beaaaaea74591609d09943164aad1ab369f54eaf3aa90abd47e961e6c79a544eb23924f6bc502679304057fd5a20e17dd5bbeab7381994ea34ddab939ffce274fc15f84c3186dde27474af54429f57af9f5b9f5b5353421ffdaee29d983e6f062fed10bb3967524e47a7e3d575cd8a7ed6aaab6ebaa8e9d364b230305d5dd335d3ac682a949e38bd833e9f16e59dcd45e0ae5ae7c0634a9f9f4f4e3bebe7b4ddaffa71b95eb2b475b850aef2cfbd413908e5820e33bfaedafea0cc7a5df4ba2e4b84c49f7b330fbae4727807bdb99a79d0b59a39e7fce7b245ecd83e16f4cf23b5ff80ae1e38ab8054a6c42828426095a7a898aad06de9b2d38c7ed8c3c20a2ab0f7ea5038b1c512d8db2209fc02c729de70057e4315f8f3ea5a5c4017a77803115c001ca7784308b0ccf6caca6c1bed305b59bdd4ba304e26c7e7d74d39ee4b87fd7a6db379fbcd3cf7cb9a72cc5f9fbfe62d4ddbb6c86d9b45556e8ad351dd7ba92cbde43e9676a872531db6775f3695176ebb56d91ed87f7135dcad14a7a3faa7caa11d7b04b0733bfeb1b908fc39ad42bfbadfcc4bacf52b5b2be893db617d40cdedb0aee66a1a77f7e67aa8ba978ed04dd6bd7f6ccedd3ff74eedcd75221a831eb91a293999926b2e1d4c87cd4387bd9daab36055e57cd0c1d5cde919ecdba95b2a1ba7700319b06553b0e6d2751d76e873fedd4dddab6b27ef4edea6775741213de5768822f0cdfcf579dd7a756dbe4cf59fb76caef7660fa4cf799d5e348bc0d53599ea3fa61a3bfcdcfad1bc6ece143d723b489ff78674ebdefcb39a785a5b713942ff8d1daacc9b532eed10e5fe3be57498debd391dd5cd129bde5d33d97c04eee6b454ab5b455fbbca74b311b8fbf7cad54c1df3527af3d75527dd3df9777132e03b7b727298a6a9fe5dfb2c4c873444baee34dd23878387cfc19ef879f5010fb2b9080c9201af5542f03491248763eea8077dce4a8709defbb5ee0d78aea632812edb609db6f40b350f33479f965a9fd03f9f6b35f9f309e8e0ead667b53be8b5ecc7c220e926ffe0ec9d74bdea661dfc39081e66866e62330ef63eb2b98896eff2d058c92fce071d5c5255d52542e2d02957f3e1d03d9bea30f4a6d60d7dce57a734643f9f443406ddec03e774cec49fd44b0f3aec3985d598a9970fbd30ce4600bbf6cdf6c064b47b63aa5edd9a2c935c4df5ece6d8e1af8b51db1d812f49a3bac417bd1e677760d39cc6d7651b80e9ab6bbeca3917cfd74b07dda4a7d69cf70267ea0a5484a3dc1a25a986cd58dfaed1f54be4d9385d6c40301d521eaeebba3897cd74f14ea767a78df27ae8dd2f2d37205f1c17f330ffe932af8f0ccc2de4165be01ed394c30211c0c96e07023d4e971ed943f76a90b901f8ba65f3c5d6411fdbc33a959da4b35e9c8badd79d3e62ea6cd4fa81c91352ec0c91981422a0a281204507aab8b44082aee106120d49f226b184c10e3e8e4d7841197004553968b411b10b4caf59394e2dddfcc5e19877815fc9d3bca69ac6fdeef76fea27a527ac53e5e4d1622a56ed0521c0211c9b10240b5c71330853bb302bb34e38b398bcae492cad57bd83deda708cb7723de18a35bacd1984ee46fe979c34e8ee1991442411c99c53ceeef9a63d674e631cf243c82da216510b2c3b6a8105094402c1524e09440b724a9b33c19826a0707577d377cf7ab3bcbc128a2e386171e107a5c28f4f89148ccc2814c1b1048463134a104517014f40e7076e5ad18a565555ddba6eac0947cd3018a6ab35d51000f709a0c5d75a6937aeacdc0253fa03537a3b84c4dd261c7d4d3504c0f104c05be06baa995b6cb105eefbd8b2ad708290cac8fc65879099351567c85f55fdac3ec44ae3a9619005121c8954d113b34ffbbe721a9cf6f33ebbccb0aec39e57c5d54987ed035fdbb66591dbb6caa252051df6c8cd5fde8bfb10720bcea6e28cec209bd23e99e2ed17e743bcb83b6f75cdda9cc6d9dd7c8858ce8359765a98f3f31e20053d1f7969219e586ad0999d6ad7316baac15e3f83bd62910aacbd62d7acd46ebe3edf19769879d9882d8b63717573a8523ee6206fc84c21685adcda06b124d624fd4c757a1ddc1c0ece071d8963b4b57aad72b03a933ece90d7b1a4ac4255552a515e03bd6f65345ab19a0792461fe99ae71db4a4631ff819044f2f25697c277d1f59f091db910328b3f27d52e6bb947b0ccb5d0a22f88f5105fe635c8b5c8e18ff0560b377015cf3acc43d3db79e1d426e81512929292828282838e080830d02dc5a1b8f9c0c3e4c6bb1001d08de486234cae915a95d200882a36be0e8e077ed235ddc257309e9bc4b48e7c97877e5919371f9ca352bb15899e28a29aac0780a2242c0f8f85a05822294d1c8c6c806c69718e326dca0094ae01b1f35410b7ce337ae599b4bf71d04eb77fa08bc97742fa93201356d6ef7fe5d7ae0bd5710046f9671cae1d00efedefbe8deab43ef2624196f0ec78d8377844d3924be71896f3c7232a79b75f08dcbdc0087e997d43700513fbac82145324ee66321a204f67e2272032220112244aa207205112da698e206f83bf82994d070a8fce4277b72cffe300ee357b784d73c7b7518dee5ca245666a1038cf884eed03e745eecf0e2fbc2d3f0aba79319164c72014f5d0e73cd058648e7e27298fe8e027e3ffd43f19e713a4e331eb919969f4c38ee631cf5ed0b6d3430739ac3b4a6c91cd77900027079d03cc7f551739afbe8e133d789a1b1a600cc5853006a6a7ad8e176c67a36f8bbd926cb11fe4a27dd7cad3c6f98746dc42b76647387617c073b84c4a76b24ef050c18df314e0778baf7d37ffaf5979bd3f8f4efd61d4ec7e9a47218cbc35d8690d800281503d8ccf2193c10098116575481bd7f448480bd6b8f820937604208b0cab55f81238e5920c9a20a243846c104258860c1088e44b0f0c42805e5299f9792f210777598d2e7761c81bf6ba2cda5f372c8e122ce3bcaca1c9ec3a501c1d168b4528099effbe2ca4736a7f10db98d4624d2c8f3de71f7bbf59898c151fae99a3d5dc5c61046e5f5c0a3d7fcb3a39b53f83b686db04762c1de419bb7cc82493c60a6d6839d798da5398bd53ec34adc45640fa0ba08cdbc870331737b38103477e5352b37a7b03474239bfb958f465fb179c3a35f9b59f03d7839617a64bd5f4bba9907f640fb5d1c16bc13c2a8bc10a7c3a4ddbb5687b4e850a3fb419c8eef9a72688ff8e47dbb4954eec9bd3edf3dc7e9d0eedd0a04a64fda9f713ab4ab947e5b77b4c011472cb91bc73819eff4ef2b56e2ad54d2b447ae54d2b4ef3bc9668a49ffeeca5d703aa4e4709cbe8fde9c0e221adf8c7e5af9fdc8deafd878ca69ec314173cdb3f834b6e69adc6e58fc195b73cfde388d9d79e474dc38aeb11a68c206013e6335d0848c025c1b6d3d589d18161bf10c1bb14ae9355627c6c546dc4506d04544d245a802b98d179c0e8947374b1f18c461e3e0b59b9cc6a383972b3a56fead5c2bd9d34796f46b778c7eb3e4707cd764dcdce71b2f7d64f3fd0474f08d6b367797f1c8c978a58fae8d6cdda940b4d0911e4ba4de4a24d249a4935abccbd1e52b906e899e672d37e35d932b87e96c5a59b171f02b37e5b84434be91b937f737be626feeb18d5fabf5777a73daf7fde45dfbbe6b9c0f116bf7ea70e5de33ce8788391ca39b7de0d1bdeb03934697017e644bd7de9cc6f8365eb2b9bb398d6f5cc610720bec5d72df71b8675371460e076d2acec0e19fc521875b9c0f117f578739fcea16ef38bce27c88d8bb383c723872b8d58e8c02dc40c1c156366c45005b01c1b65282892ea523772f946fdd9272946b2eddf7fdf350ee71578728f792bb8f1ce928281f38a23bb245871a29bf381d127b37a75ccdb3992a01a44359add0797f2af4de459739e457bbc418cfab43a4c95b4cae83c96bfc2136790e4dbe73cda0cb7548ae6a6da93ad41af7d21d7cc9a01b126d48f0e6ae48eab472a5e709e0dc8eab43efe698972e80c34c01d888530048c55c1c161ce3a54be39ccd12c778e474c4f8637c0e009bc194cd1d0dcb8389ddf9dc88c5f7ce7ede6723782d72dfd781a0e446d722b7037c67bd7f76748d93f14cdf2f21f8328249dd4701a2a7d89bee26261736e94c4ce24dbc2694c75f13caa58918e515cac5d29053e3a38df998f4184f6ebeb0953bcbea4eb2dd419be3bb6b72338937a7e2b0430a9e3aa41759960ee94b3c5ba343fad03ba4a0dbddcb8a2e83e074b1ba2e66b76c9489f7271dd273a1bbb2d0c963d156b5d65a2fcb1251f185615705bb4562fa134abdc073a23fa62f985a55a5efe8b76e692cc274de9b1c07342d6e9c9c534a29459594526ecd757342685fd735af9c19a5dab36797939399a679711cec96ead60b5f375bf5b5baa4f5d7a96e354a19fba34d79e7ad779b6ea2f5a28e99b49ea069a03ba795d927e564b46756c34e3a5642398a29fbc955860802b4c983404fc15ec23e2397c3f3ded91c04ee4c386bfa5c740e048a31086c7245dd61e6c61de47d5ed3e730bdd97c13e8a06eebb6adbba6cf057d7e03ddb3b97bccfec90efaf67acd92dc0140d6cbb87b173b43c7dd9c5a41f726fbe7dea47cdacc7d4b79bc8acd149b3eb91c32e546d0cd27977668ba3a4ac7b2c4a563250c04c2360edb0e2a61af305a6193845dd22bcc9248a44bdb3e6faeb037a6c96737935c86b7cf2030e894db31cf614ae8b60b3ac6d54cd066b54dfbfc78221314c8e45ff745d04720d1cd6037ad4b84c4dbbde19ebdb91cb2867b764d03711cc771a06fd3e620701a4019973ff9081a189ce33f37a7e2ec31b3f2984e101c6fd91c048e3f400a7a3a84e978732a9ef220ec838490244241887410d18a06c42358ee30a00141f0685adc62b4215b03696dc9396fc2113f5f003c4fed4d9c2780a966ce2db69058903ee8e2e7fb925a1d0284af5ba18b8f3c3857cf91d895979d9127a657eb40892021c0218e53a80107388666bc51f2dca1e70bd33ecfa0ce1b99dcb86ed4ca86b5c519f325968b34e63d0b8a61a4511f2a913440233cff29cd6f28785e9bcf4e1667cb6271ff7a9c21e32a2a315452525029282821cac9098c1393e985a954725122914e24105c014d4caec9686447dff74f2452119594a494781e8a170a9d84baced4814025d0e743fa701cc86d9bc9a669232dcbbe0cc344d87595e039e54378f6af59711f146dd079f99933ce9097e7a20ddb7186b42c3a3f12f7fc166dccc9c954199b09faab4b813224c8187b268e52b8000a0cb69452b8c0091b52b86008063b94cfe61368121cb0da1e81a4d13b2bd022508f33b7d8020f91a205439aab7788b9c5169889ebf27ac43c28c88630169932d02a2cc05845bad9dd9cf571cecffaac4dca2369cc79e98e264df517dec1542fc5f334378a4e6ea9e91231a5c10034c0a38316532eddac5f9c4101519c31e9ab182796fd8a2ed6ab4be9ad57eaa093273155e474504caf10d1c64cc431cef8f5451b2871467fc27414a27fe07af3c94c427120c50a84e0490144483fa1e206651ab56aabaeb1060612f1b5b1e0ab72e05765b70e65e4bd320f5cfd82a28b31dfe54b3b4c2fc95430b3de64af0e27496687000be6ee4d3d76ebbabaaeebb2eb085d8ce931afabeb40f039f2841fce0b96d7e4c8e4268a4b1f9d034fd2c1254bb1cc41d2181d669ad8cf471614636044d94bb27bd943d93b169cdd7a912db119c4dd3d1bb2f9c2dd950005599ab7d38cc3526f685e2ed0e2e9d1c8098a1d62526d75af62124cbae8477094e2045848d1822298f47acdda2237a39dbb76754b15e984e10e38fcd5e126bdc31ba1cb4e1dce1ef3f3bb2230e02c7744bf445dc0116fa45b1d4597447a496aba9848d7b480ebdd79782fb93e9a20ddbb71d6932e8febddbb9b8aa9aff5723abe932eadd7199dd4ff6ea2834596e2cea9d8e4e620697cdf6d91915c03572187999ccdc7dc3bbbcd7429f94c4d97921b537866997232f5a73feceefabea8a5ad40fbf5ec9aa45956afdddcf85ebe6698a5dd8afd5ebb192633a94929affbebbad78efccf24c59907ab81a3cbc46ea6374b2e4786e5376ec6f42823c62eb16b9c0c167932581f44c9e4dbaf4bab1d7b4adea0d80482735fb3ae6b58ee9e4960ad6f4e5fdd8d698d6117d69272ec826e0ea9fdb854729034b46b02bd3e9341422635d825a63d256fc86b3793d264376e46bbbc37f2f7dacd41d2003faf6aa795e71a38e366b4df58dc31adbb954be36a0505d6a4ad9452da57fee6ab53b9369562b9a3d8ec27f67313866999acb8eceeb0ae99e40d62ba903e4bdd46ba32c8e5c9e9c3b4c4e2862faff64bbbdcba9be3faa7cb65739034b06bda4e9f1d7c1079faecfac7ba183773fd06bbf9ba7eec7862d8b9eb6659768b93c92a8c61af58629b8d58bec393566bd5b24c939fd6334b316675b0b46e0e92460d4aa926b7cf797944ebac9211e60b9e1feac3e5d1a1cd767a6d5ab88b6809a5d4a28f211e814f81d6c48eec673d7ab91716743b1ca683c03e6f835d7473885516f6abb55007a276bbdc8c48996b6c970713de619a66febeec50231575075c65cd6aad31b73e8283982d24a4e22d244211ca2d240c8fbd484a29dd429a97edb69128ba2c79aeabeb4050f2489899596c9ee5e2bce0eda7b09b9cddecd56101aee7edd783c0d8339b29ceb2e7441b11499c59602b7096110a1c67bd7abaedf9ca1dce3de5ceed3e748b50e02c795a4896f47aa2a3542429ed49698368c913aacd7ddbd14536eb60d1c8f668f47132a27f5f05edf80ed35a14f1a0db674bb88fba2ea489fe7909884889e43ed007fa44f2e6e3a6b103eece57cad2b038d819364ed447b3e9b0be3243d76fd025ee6cfedcda8a7a64bb2ca64bc48c74f7b53e91e88369115752728d6e22d167895ef259a2fe67d32ddeeb79740be812516191c44176b8aeae03c176914152dd02bae73d8a2eba3915165d7233a20fa1724517615be42c9048648d44ef4bee7b3602ddd12f4ec63ac6c9f441a246895e4fb0e820db7528bacc421a4982457f96486e163dcb24b88e6eae3d59a7455f961874518f44b6e4a0fe372ae963908d7864a517240d91e85669642212ddb2304ee6635dc3b6ca462c1a619f9a4874cb8a5a64fb4857d746a39b5b13894422ab45971ce82391057dc4c9f44da2d71e5cb3c0df47d64196c8fac8b617240deb22918dd8b20e33351ca19068ca19ef50eb476e069c61ad3452bb6bc49b719d1811025e7cc679bcf88ceba389be8f384bfea22f8f179ff119d7c727aae42fae4eccd7259aac58bbed8590cd295cc2f54bfa661c164c3f3591687491ed446f11febe4f6433c5a2eea3b71523d161a6c8e64a6447c9fb82deb5e8f9c259f49c2eb1b971e85d68d4dddd378b3a74d1f3b1e8e6d6f17596edd13defa316254111e5bec2c5fc8145a2dbe03fef5b6f2bba5f7bbac592696964bae4708dc3c2182c395cb044d2e1306a1c25e39a16bb8f0eb2ddc16a9fe9502300d7b49216bdad90373e512582bf831e3a4cb717e48d92833a7491c96db9302d02c5293aa84d422555e338cd884b8bc9f7bdbf503ff481407b4d25ef3eba0c52321d860c9148f41e1df4b6025447b9f6e0d1418c9b3179df9b7ee819b763c3a29b8c2e8d4c92692508a7751f8dbad108f4178d9b19fd0664f28ddbb1e1d165909209f4eea49b412f373712dc5d6564d2755960ad6d2db1127fdff77d2f0975b7ffd9b642d200a1bcc59efcda7b70ab40a383460795b82ee9eebe7924ba27fa4a7787f7952001820e4e971c6eff6734aec3cd4fbdc6cd21001e809b5336d325870b0019cfa9d4cd218d7b1cee8c1b27caf4527d7b21b45d7451bbc41891e8d7f7fede2587e9185d62bca248741a5bba8b6efeeee8a1d14517e5081d14d9f8856c7b41d2e86b020ffabd0cc272732ac6cd21eae610c6cd27dd0cd6529017977b7bc1c5cd20c6b00bfe5aec0c5de85974d0bdd0cda29b53b1e821ef1f6ea6f41b11e9206ec7864b07a78be8f6cedfdc896e361df4ec1289e9724594e85574959b528f62630c453fb13486a29b4db7bd206f942ec9bba7811814895a047a37b1d24887f59d955574a8bd7ea0da233ae85dd78dde365f62d10809fe6eee83bc12912db139157bb7bd2069801eb2b99160d061e6e7206b1d797b61ebc19133521f2777b1c3ccedcaec5fab23a48ead2f4d683187eea481384513e29a2e9b859995bb7569a5e4ac15452777c8db9b29a6dae5ac7afbb2430ec5f2cdcd68b72c2c65d3ac1d29568aa6699aa57d3e1f8e7ba869d1854db7b8383d8abb76ee95e3acc93a775d5d57c3715c3de91cc7fdf296e94fb966ed738739d36f8d55711c179ee3545e439449a8c2a150b46bad2e5c94ac0b177721a5666d6c4a8f1c8eff454ffcb9a79cb32fae692f306b4be1382935b0ce5a5f7cf4d82197726f5efc2f2c77f373ef9417967be4384dab382de5de70ffdf5c0df75fb36c8d7625c7e5a7589ccd4260ee96ddc15dbea6d8a77029361f816ff3c70e53acc42f5e98fcc4669d27f0e815fdd0687269726972695d5ed26ef7ac8761199699121063b6ff701dbb463461b3fdda9e5d1f3a311667a301ef221d93090173fb0f2d5f2f39ee9a6745d787e8bb0fef4634c103fb7723b2975c8f319b35d5fb43f6ed1ad1dd26787cc70eba46943cfb01fb758df88eddab2d2ddbe2f5a113e3a3897aefdb4556f4edfad0891161d8866dd602ae6fe7f17ddce5717dbb3e64cc55713a2427d3f69aa8d1a71ddd173b3919930bd3a177d135697b54d9b7f398af375f127fbb3e9ad0eea3e4dae5b1fdba3ebe6ff79aa89a728bd3216f1d667230f4d264d33d621ea183ae89a2cf2ca68679ca5dbbcd42e09b9cbbd6b5a823adfd4cb16eef4a4adb14eea3bee16ef2c8c9c8cb1d66966c0e894d3e3221d58018bcb43d400cd27448a97cc5d51c6ea6aa549e6255aed998bcd6a34a3fd517a7979e2f1c3e74b172188ff17aee9a1638c723b8aa603bb50a7c758bcaa7ca95c76cbec0976d6b2274a0479c5f409f87e91d522f3074f6ecd9a0d35fb0e017d75c3a89458715b3e68e797a8ad8cce91d982ea206579709130fd016a02d6ea5b2d32190299368b92369572d44ad1498381dd663c7e981a9c4b10f98ef4bc4c4fdfa07e05c9c8c9584c42cd1e94d5f6259c9c9edb0542c6d7a11165d24ba26a54bf7b283e8d3091109e664f4122aa5ac097592f6c06e9d62553583d29b433b12a537874ad2432fb199e21311e9e4a39397120c4cc97ae910e6056687524f9ca263d3964ead8a4aa9b2a4957347f5b6125f13d5a5874ac7a68aa5f6062b59a594cb5e307346681ebbe472888ebdb51acc6a4b7beca037625649e538dcb2f9889a20700e5de5e6d03014b1552a59110e36dbe0d067d8dc0387fed22ddf685ce37cd0c1346e4eacf9b0e89a16af0f9d98183cb298ec8ab0107d8a3ee9e7b5454ec626c6b5697de8c4c498a84ccffd705df4c6f8b4a61f52a7d762581f316e447619bface987ec1710d9af6b848c6737f4cae998171d669e3c65af890add906d916d209d801813e39aed71f22c79a4643cbb57ce0ea7639e9e9cda06c203f5f038657fa0605cc5e61e58e5d537bab44e6d7fcebe968af5b525b17b233f7ae4728c9e72e561668a8abc59e5d84b4633581e2044b71031716636e7c5b8999313177f40b7b878bd10dd1a18994a2f9944ef7a745d5bd4ba4a66f4a8aa63972ad754dd2250d8b51a073ac3442946a1a697bc1b994aa250a8fa04223f1ca15168ced1add0a5cd3ab947e85a9cd59b720bb80e365dc075432f799c25d5bd0985e68df5f90e55a1dc035379ca5e97c48ec3dbd2ca1addb2aef1a06155f257eeb180ec5e160dd138b5f9081e971038971cbb25d8baa1d13d7b1a3603814b8e83cd3d70c9cfb17ce37cd0c12c778b93968c5edf77da11bd7362a7f646e51231712e02473cb153cc369028ba931d279fef24ba655e2228900f2743af6d9e7ce3664e4e2ec3fe403d7c0c8b01d46de2e4e19bb309af11261837c1b83caa1043123f628ac8785ccf66ffcaf29ebcfe889cec939c3ee91f27970fa806ba855e2266ffe81624b48a93e9a6949b6100a6272cab4a666165122d74fd888f45b7589788aef4e29c705b949be9172fee3ccc5cb98b935db9b662ff6bbf62fb5a2c1ee97f6f20dd626f96d81e25054cf1524c5252526ec661c1f6b4775ad0d9dbc3f4cbacd54d3a94175ce7ad08d33d25fe6cd60922016a67e211dcb49e5244b45d5e58f0cb747940a3eab7c8238a3d2729b7ba2a979c8ccaad8d78be8a466a5442b0fc9c299c68a4baf3306d7dda47aefb88bc41fce8b2dc91c12c7615cbd2615f9c7804cb9b0a3bac3e24cedb412e5dc53eb5f89e1f4170ecf9b1d343f74fbe83dfe7b5cf4afc0ade741309e52552f7a9a97a65dda6c3ea9d6155f5ed3da0fc007db13384e6dba6a4f8c0f39ab0cf5ba797d684bdbac46e8d4d872ab7e910eb7f542e87f9c0b27a49a3fc29173b4327ef0e94f7bd41b975731ae52407e8fdcad59cdcd824d2d501fe7b6be0d7fd49fac937f8ddfb4ebdcfe49adc3b2733fa674d4c4c6e96d30362e50e91ee7b963bdaa867e36ae6c5b08a5e5b747db3f4b89a79ac4796de7ac9a7ed7b438f9d723940c73eb91a7a2929bd4d4802472255f4609f808dcd96ceb6d8a846f61151e21116d99c83b797d8ec036f973bdde2d5cb24baebae35b7a8f93068caed1bc852603b771979b30ec51c472d0b0bce6e6fbb55df3eed6679a08bb3c30ad361bdee4edce9b03e892c77de20b3d7ebf5119c2ed9954a34aabeca9d7a2da10ba2be4c97d8438ea03a28970264203b82dd7271fc49b41183c43cbabceb3e9620b81e4f991ec1f19a9644678fd0d290842786f4cbfae87ed1bc48169c97d89d3dc2440c5af8e1c3e43e8eb05164073c31da8f4841e102466248377d4e3a2d0e0b0eb2c4102778a0b082464a446fb2fef958224450708338ab149d8cb3ba288f9c0c4ab77cac57d53f9faaaaaad0abead70c12a917aa3526147152b7afb01eb3cbdddbd94f9495f2cae2704d6e1f3b81cc1dfba954a24ad5862e4f9e203b13152f2ce39f5bd68bf54feb0a590fd919a4d6793b396d7573aa93d9e7b3f22ca7c2a0cf9d09c40cdddd99491051cd9d09a452e92bba65ab59cdb2ecb2ffe0f889e46a24ba870ec475ef93a77be83f5cf7bc47ef4674e1a311deafc74f239ae0e1fdba11a177cf9d695e0484de1d88ee4078f7ea7e6911e791d8fd3a4c5fd3a5bb9705d9d0fd13e3d4c6f854559573ea047114088e0f6d9e6090e7ae2c228d74c8c3c3c3c333b3c071035d9e3c72ce20f4089520e601dd9a58e0f8d49d57d0b093c58aec75a403dd028140966d24f11eb1c24202b2acfbe666eeef3bc98c314650e6f3f9c89b41d37c3d7d674df3debb6b4240e8d77ff06ef7d075c9c9d4ce5e136559b9a918cd83568235247816f0d28221961d746992efae136392d78480ebddf5d1c4bc0f937cc824af0478740f5d1f2f3701310666a2e269262a5ec7ba4e8c55f21c7b6e13db638c3767f58c03729737a0773872329c0c2f674ec55226bca9ef1fdb453a8c1f4c67793fee97ae3c72332e0e195fb15da48deca0bbcf5de436154664acccd97ddd5f59e862bcc678b48911658cd7537b8393c22ab67b9a47c65e0ae9ec23cecdb3c35e42211f6b4f0c29ed9b9bb1b7d7746c42192c3370983136ee83837c2567481629e35e47aed981c230e538296ced615ab3c93d6d705e394e0ad7ebe274c9d5a4f0e9d2f648e113eadab4020b1c4f77946817998121f38a6e8952f8c00a2d4c3f709c3f2001ce14091cb7190801679a048e73ca19642ed12d16a6274fb7d05f8fa71c8e8ae9487e2298a65662d161bc31c50e78623497ee48b4b1e1880467a0473e867c165ed3a24ef6199fa79c8e189760dece727ab38cbef3f3567b4fe9c14c3e46b6b16aac835e55eb7237dbd8506967f56a3f2993756922aeaf96fe63b3f5956d3bbdf32eaafd7cb65a2f4eca05bd37db3ff7063c4de17a715278bb14cc716bc01b67dc9c89637c9edecc72a98c9b33e5cd6426a9ac4e2d994969492a7be2e4e930be897432ce9e1e8bab9117758f423db4dc0e797a69d1d5c8a30e33e78bcb6a299703c3616acec081460a00f49125c606809ba27171b8d7111917041fbea8eabd098fba478547511adaac83c36bbd8536e2f019f509641b3c5f2d96866bab16155a87f1cae62330ea915bb975715218157e250c6ff8d05e18361f9104affc85cd3678e593a75ba0689718e3e2b674a7d375f1b5cf38a9db60ea7de5d5462085b30da6cf389995dbd2d18b93c22bf6c2d7466b6f7e4d351c56398755ae722190c237299fd6e59df6454c54a457023cae97f498a878092420c6043151f1432420c6742fb93e7c083151f1404c54bc4e0cf69209ce233966713dc6849e23121cbdc798eed73d72532e6dcabdeea1ee4a24904022450b1c53aebcb2d03d31e489214e0c79c2a5e3aec3740b9941262ac6d8c508ba9f23dca9cdb73927484e852dae85741897e89619a45b2a2195ce6a6213a3568ce1e415734a536b00c7976cecb093b4a1b338cb244766cf0ba6c1344a79abd61ad6bc40f13279342a297d8921dd263ef2c815af5969a475886f209a893d62ae200440629aa8fe81c156654d3555febcba0e8ed3c51471027462ae043251f192ee849f4b817418a5ec1e7a7cf3745bcceee7bbb4f51568ad9035c9cb98d03b6b92d76473c998d0954262aeab13e3bd24e6f9efdf4e27d1404ab07bd6c45dab13e705cb7bedb37367089578830ee7101c97a0413a8c9f4180c4f058d6e86cb4317773c78a4e1493e8308268ad40d68abfae193f93f8dccfe735da25f4cfbbe9323f9fcf354ee613b2748946c57796fe98a83879a6cb3c3279e691c9c3e3d2b5161dc61f9f4bd7493a8c3148279149628c3126914f74188f59c93351f125f20925b04188ac162725e51189440a91d28a6ea9f248b7649c142753492b8b74188f556c5ad161ec968c53441aa197571ae9308c2a9fed91c3f1f90471ffc0e01a795258ca90f46c9cb947576d4e85339cd4a75ea37622994788d0cdc739ade8167923903a3291744bae0eba26facf3dc00f249a2699b88e5d930215e66e4e8537ed488cbc14a87075732a9c6149c8585d96da2a49ec2965359f28d22df2d38a46c5c722928a9e473a8c711e89a8388fe0f819e4eae23cc57b438fe0b8a2031e217524d5a14748ed060849b8c4909a52ce39e59c73ce183e75291001e74e05b143d95034156de4052758768cf18a374867a4c3db46a888357645da48f3744f1abaf88b9da16b1edc47e60ca6a0c20ac830863194018b3368adfd3f165850ee42431575770dea4f77d7751f3a6f5913c6acc9ba38b20de3ae6d1bc53efbf3c9a6a92f0eedd8aa14647dacb6b46a415ae9557132564bd37cacbed9aed82f6bba4976dd529df25881e40a2ba0e8e109b28454e247113c6abca4a2688b337aba59e8d538b107cb77cb7902adc6cb75dde4543c9f7ae99688615575614e4845947cece46fa6f54a65c49ab4e6afeb7ae7ead6ab7571a1eb8204bb3074f1b98b3c98ac8e508b9898f8bc3af7f80bbc909c5e8f14d72fc4b04e15845e6b7f21b65426e291e95283a492806e8abb9589cce2fa9a65d99564bac48add14ae18866118765db6719c915904d41aa406893696883622aeaff5b185e09aeb0d704de19a65188655b629131d7d6e29ea3b0d35c3f58d45b4d157bba1db00ae22a855a7ba8ea0c553b67830bdc8baa2cbc7340a09c254e08392d94c58010b402919c095137548fb091c27f7c37cfdc144770950cb89fa830a4cfbd61f5be8ac27ae35a4feb086e4e88b0cf586c1e2a11c90c2a51e081293c6071b9a68859107f48434b2eb25a7235a81711a258598459060da2d2f39772085135d905774c7550ad5c240176ba434c49466dc3751c9d7c9ed335d46a7a73f75cb777a7a966e119d3ed52d25a7af41818a6f4414a838457492158972aa890dad4ea8748cd5149a1c754cd18c00000000e313002028100c8784a2e170341c0adaaa0f14000da4ba4a6a294ec31c43c8186300808880000000000000000004dcede7c4a4faac8e4bcbd2dbd2e7787e825359a20023d11f5080b26a4a92a0f84ce3958aece20a026283e7f8d92b7ef94770eb109cf1b127a3e3c01ea20efd34a1d5b867bb0f12091997b2066e881cbe995aba16bdbca8c797696174e0dd5bff4aba37e03764ef5c2ff3b3e352ce3c9458b6842f2854a3565980a244344d906eb1202ce30651bef0be3d9beac2b40dcc45bc9159886d046a83fd12dd43e7c8235998ed522c12fbf797d0dad8a3cca35db4d0bb18a1ec2bb4640d180b27693e32fedcedc4b4b6fcbb331b7135aea64bd50840aab100bbba4c17b7f13e0cf5192b3575c922e298d4002e350326b92f9657aa5b3b490759b593f360c63aeb263f8185fee1b2043ece1c978db0f22be85e0f0d49ff8ccfc8cc495989fd449d08d220629d8d0534854a45f928e49bc4c64d7aef887d51ff2c1c70c44a32c9878097f5124e792989139c70e420c4a26211a211792590c89f874fc724f6f6858729381a12f8d2a12c9fe0148108b00e712b958a1ccae7229266f9d277e4ec830659234600e78e208e9dd0e317b870b031867e3fa63c7c1d592cfacc2728be4af57696b7024550e45e5aa993516427428b73f5b21e4be3ef897dc11ac6024ae0ff1ca02e13bdecea22a9258caa902076f7b5ba74aa06f7a83aecdec43b652d4fd658378ffce4f24c0ce624b25782c1733b0038945e57aa022d606d51afb2ef2948c59e98eb8ccde2312370b60cb17caca2a5f2aad73f8da4bcd479d6eb5922cbeaac1aeb1390c8ba4aae54d3b9644da2ac77469e5c644b758897595d29991e66b2bc93a133a4adbc4a062a5ef0afbae0f740e3a8036a7f62faa3b7e1278b2e29f8d043abf7d2a55529c37c855752ea8d0fa55114e34899b14a7ec80a035af60270ec66f88bd4f7c7c6f4d5e30e2c0ee796f5fc680954786cc76d95ab9b8dff92cb6bd952680f642b2968b259bc02000c819f5f1ec7d1856ac76ae274c5cccaf4f4c1c02db6e44c84032554a6d17e558ed0dcde20c644a0378cd1655112ea47889c9ab38408876ca5c5a48551c534070c3c97f8ec78e8be4245f31f5d054c14bc3697b102d2a7b9a9e13b6b27b6da938a58adb17e8966da782bf7bd252be8f72e2928d8337f686629f5f6e3ebe32bb300b64b0d1afa3402f4e2a3e8cf0a64106f3c16bb25903e9615eb4d92dacc84f909287f11327fd17874d888f8e8e31575f1ece8d6e8338ae6fc8a90eed0a5b9e394fca2b56a98437d147e0b069c98736d0a9a7628e7846a040b55f85363ba4d5f4498993b2e401d5b38df060df945ada71523c77c88da75f6977590968050f719d8c97a425d04aa406dbb99db2a620e35ce913461b5b9dbfbbe6d68446f165b01cc44dfbf2ef56231360746ec6759735df0f14329b1f1feeb93708c9e9d766b8cc386fd97ea064aa41c68f4365f12b3886eb27f51f0418367ca09121642fcf0310fc3cc8eebb29f599fdcd1eff3c4822d1d3320ff1228fa73103474d10ef8fe0208ac6ee01775800dc945849a00cde7410ff78d16818fa90db3ccdc044fccb73c45a8cfe63f0c2f588d0ee0a4161546dcd9d2e0d1e820820f3a129e7eaa226180d43d9f2c4cbdb161f41283454cdfb9b72a8ba8e6b31fa6d0f9ecb555632cc69220065208d4894fe5b654b55284713b2beb0b233d5305ef76728ae1a3fdaf1edd96ea81dfed3210759386555ee01864eee1766c3814f043fa1e4b1680e45b58a789f36a81c980a990a076707b8614f582f61232c2e35c04980ece90c1f073b19fbeee249d42f1db4a39ca5f5013276946223d9e3c883299a28f799059e6a3c8de9f0c33c2b20a31bf05368eb96337288039e6e992f0a00b46409fc8000522a3cb9c0b18d05393456fd13b647fd0d8d277196086525ffaea015c67c47afaa3cdd60f5f3082e045130f0386c6a98e2efadb7068df78e66120a502bb496c09260a7c405c767180c1bd1d8111074cfe68eafa7b9601983cdc3d9d5cbf3042af291ccb9399ce0bcd9019859f060a4a69db5ea4de5ffcc6a2284c729d7b2f4d156149fbcad24943a2769ae08f5d706cdd4b7978b4774aceddb8a9171e66355caaa26a9a1fa9e977b486a1a8b450b0051aa66c277fc3006db082e28c88a7a200da4fae215556287f37817f3dbd3573a28e515edf6939f9a958fa82059f866547754b983c5bae65ee487feb7d06d3054c344e0e401041aca87e61902977a13168b7cc3ebbc795ed8212c42f4965ded679297760acb61612f2ebb49a3982da64d8e29da0ae3a3219d88037c384417a4c57bca34da6e8a824f09314fa8d3981fdf01d421d3fcc2cadf6e47b0ecaa6b5367cd7c2afdb35887fef4a53a1193449a91d347391078e30be20b843330edcb110f397850154f9a98efb68563a5081ca0ea0a20a7fe49f81f1712b023cd09aa1f94929907638addedadd4cf0e276ac1155750d827b04c6e0d8c84eb37fc72453c0a84e383225d45daf1b4f8e7e362732399b9b34a31bf81aa213d887404baad72d2987c23e09b80d3b963b6b1ba9cb939111c4aa6d149fc3881b66d65f18d59e106b2f002b335326696430e846fc347f6bb8df2f8ffa013192c3f8ed71fd0c71d20cadf911ddf763bdd884f2ae418c654ddb502b05f6d41b2742b06912e32e0ff6a42b7ac1b5b177fbd6f6942395b2493cbdc8103c9841ca4f7596d63b41000e950b769533615daaa8131fd33f41926d3e2c4ae950852d74a345e087b2e56aa66ae1161f89e0d5f19bf17fb0ca3cd4c920626b438d1965a141d903d12f75acb3f4c3717ae1c883b173d771f031cfb85c0c30ee37a7c7c38c40651909facac4d6a9964e7092660af18baf34493ea4db2691ccc8bce95160839214d94135294434fa14ea07944494d3e9f4deaffd787a9dbfe06efad03e3b839f30bf66567f73f90f49a17c84ae3eb423a7f62ebea3788f1ee2002dc78812de469dae2df34883b51cccb5358556f0898c055d91e64bb1aa0455b7905bcb49fab1f61d43a16a06e6bcf27343cf18faf62d593aa7204c9d7d95d1633c15efed584763805c06ab1d328d4f63b121e9b7625269d926b1ef89dabdbb521c1c4cbd25d3e5470dd4af9601d19cf6bd55f80332c680db5fb62723294d4067759b999b7d39b2860d78764eba7367f4b346c39c8ca4d54b600e20ab49d91be1d52b2d0300558c889f32271e7dec25839faea205608d252718ce5d6481bdc8f8ad4fb638080c981e143893680c8906c4d2060c8056266e835477bf199810e2a34aadc305206dace0008be8d7db1460123904813911b3bec618de4e7279a1ece838e575633c45bee292fec6c8e0f3a8536c20da4e8abf51b75769ea1933be5041d3a45788806c3c37f6008cbfdce397f766976eeaefc8ed3f40acbefbcc6c0498888a61ed7cac67b86e88dc97a7a0f6280a653ab79f0d9d926fb53eb6b2494e22067b1029263bc7698f3c4fa9e675003555883aea40e7e6d04e72059503ffb612c68d8e75561597cd2ef198c23ca570ecc7599a3a65ec9e83bc753227aaa4980954f9739140f91fd9f00120a294a4fdd019ab78b57aabca05a901a97e142d45d86b675db59a9baa152efb275a664fc78c2afecf136c35b80d2c5728c83e610f009882601c33bb7d238c927362082a00580e00186ab357e012071a4491f76263e901a114faf92c4bf16b276d11586b7df112fd5dbda369c9b08ee762d8433f9f61c86ea3239e544c04b3fabbb9f2b6e89dd7ab5134dc3748b84199631ce7249eaf38a8661bbb53f64e01cad950ab40ee2965fc615ff30013f44d3def6b814a13823dc2ea0ff575ed77864e35b5cfbc319f4949ddd7d9123927eac133434944148bd7793d0c176aa9f753219b40702289d437ee9e2b3afb5f247936dc3611490064b15f5ac4df5acdea7d54335c2cf55b3f299cb83ac30c287be84c85f22ddbc65d7dd3d54a84ec92b9e078052f00234ec147b6c700065f03066f663080e1306a0aaf56b821dc49c196c862322e6f007eed642a8d355af3e39cce6df55a8e16fc8d8461ff81140de0e5676e6981766a8617013b0ad6073d8785c2f01013aa3daa6354c991a3afd49322a61739e705174be32a840afb58186d5439fd6c71e1cfb3ec9f5524cd2f949d7e79495648f72694da060b5c3ad8991f2231ef5507a7f623c27f736cf15745d7ba827840b1e8f425f97bbe896a099c0f2e9636ccd907b8195ecf6aa44b32cc9bf7c73dfb20e43a34c517e1d8d4c703e9564e315d34f649e16bad5528d20bf4a7b1b7f0b0f2d3815a98ea00dc565e112f1c19fa604690b735284c2464e15e61ef833735e19c4fc484bd4fe2ec085bf0fdb4a2dd7547245da6c6c4b4baa4e75ab792334e21ed3dd60a18d8e8c78fde16d38f9b834dec126e9ac679bc357528e6a934c1fb62d4c83853b05b4bb784705a3f8826e6fc6817d3c4c654174a4afa33324d586c02be4a44687d6a530517ba3ce34bac518e12c891fcecd1a55a2597d9393d64605c2458cd26ed09aa2fe0c78f23c988eae01f5bcb18b4ea0d842010a17ea048f3dde00818518209af1c5e09f4b886cf46911af2b996170981eeda63b435d5833e1c14041c44dd60a5b9261d235406537994f043c35e3fd16017fad515de0bdc63a0265872546d15ddf5cc06d68127a8b219ec973f2dcd3e69fe4dac58224036343a00af210ec73e74c4b2b8fda6be41aa67119b41148b5dd60af617b81d71253d68401e1c587bba2d8ed935e8114d7239d6dd4122582aad8703288192f7a56f732df6f44e75ff14bb55bf753f50f9b0cd10f98b744f7ea7530d45c0c43521c8603933889cec2d05ae020fc506e24a27eda5f5f0fa7c193475871a578f85929c5ac744c610ef096c9fecdb9e5d7b35e470a8360d389bd05ed47fb1283bf86e7c3c5a09438be5a23e0f96f6d43445021c0aaedf270463cfb9a3f3608041e8a0fbf5e77847a66727c03118d2df356691bd0d81c087bf19d67aef689935f0a596295bd12e2058b38e58fb2fe8aa0d0fcd7fbd52f3bf2870eed1991604c74faef2e1c0ef78d88d313d48b3805a7f9721aff0d247dae805163685d52c22a8f8fe9a66588984f6c26a8837d56d5d32e1774d9c79a9db9cfbc818e51e3df3b2b7d377af5dce0487b3109f0da452a53846ce5e4426166ac87002f95104376ac52c49dbdb1e9b9b1bb9b9dcc293e2484864de57ee5413e65d486616dc60a2636f6bdf6def2b792622a90c541c75b77cb60a4a08686b88b0f2c8bc579aa402a00284f9922f987629ff5da664693335521f950c3cc249bdcfbeecff0e425832d579fd76743f9518d35ef2f0c432c2c5093cfe18e0ede36f57b7c06067c8804a171c8f6bf975cca13ac282ccb6099688aea81f982c5ff76ab3df231f5bd8668364776491ef8b8b0695d49b3b60c48e029f72f028e4fc6389242340306bbab0d2d1edfa6260f2272d1e41e1bd0e4a11f150654d378845d21e73e6df26ef320562e161827b16d33c1ea24b16d736e7b2e34efb593608214c1e13d385b828729f8ddb3e1a03d59946bda08c057697eb6988966ac317d069240fc2c6a92e58ba004c7734f3f47bf4d11d5b78c81b43467ee4a6fbd671bad370c4b4b4c623dd518810a849d8f389d67d5677b2f0181d697fa59b209669a82a7a7729dcf978eefe25cc20f627c82fb6fbd852639f4ab727c8e2180f7557cfd5e6b1c1ff71c4bb9b5fb854ff6c3c70f0155277345b3a2ff834cc5136a0384f987de61979c188d19b0e9f185f82eee9c078178f892dc4cbc1cb5dcd444b811d96ad34e9b3bd32694681f34918ba4587cbe7d9bedff57e53b05c29b07cf8e1ecbe4e5c536e0720bb17cc705ea701307aa27b356fab24d70c7e09a8c6a88cd284ed55af0231f268e75ca2a74bf39dfa4f11464f8bd836c3707a49c679c183c2cbe901f98468a20c007cf40408251925cae95f4154627e614a0c0053440669d03625f08406c42ee207c7a6e44c02869b3735c212e7e5e51e41ab352c928a8aa23c9b316ae5689dac3a4d34386d55592598ca74c3435c17e1cb88a7e3dc757738cb8bee4cc77f5a92b5d1e69484de06108a06cd569743f3d1e6ebff347f8f67879c13008c6bd0de3a3b9a5974072fe818085ec8a42845720404ed6cec306df9e7909f3722995e4163ad3e428a36819cc25f3b28ab63e62734e5ac2ce44881cdbe8d08b14c9a4037f636c4cd6d2b8efcbe3e01d976df6701e4f666d78a4d2c65bcef028bb4c7c831ed2c0ebadf0ee31053b93bc3e35b734f34d598a9a2a66c90a500e7cb1b166694deea369e9bb150f24d787382cfdaf057fd30ffbed19977655a241d661580e581042b6fdead8513aa87700914e73054ef9663f495149bc336c8eafa00ed82bc78eccf91b2937a5d47f045ee05462c5a9103a0f77ea5d65d00e58aa23ae702c839955ec2243b47d3ca83f0d3d3ba457770c745d7bf080a7ba1d374d0b90c4de37f5db1638cde5dba00f51f49eb3c9ed48c59837b67224ebadd98bb1ec200feefe2ede3bafb62d2b7a994c1be0b401a6acdae0d06fdc23530afc190a8c997d4f9158ad9a29b4090354c7ec9963d96b190add82de15618c4d7879c9ae7cb4ef1ef5245586bc42cf0fb4b2617c9f14de97a167911ae911ebc3507df940e43ee33a12b2f6796ff9c0dddbe13d8508ab0b47b7bff1b0431bc325342235147580cd0b4a1ee9c19e6a21a01f7dbcd3085869788d9c19db4a9d09cd5e2bcbeb2fc09b1a96c22bc3fe46f1ad4c96dc84587974e423ba655c1c5a9aa34469999359efb5ff539d424015790bc523548d845c30f1f1b47b7a0b089b2de336dee53afe9d42711d2753470e039998635d18388a1831c57d372d6f5d8b508043908ab5be698533623eb8573413a9e950400cf1564a3002c277b2dda3e49a708004a39a3c2c4372924a482282be4e5f3e5bdae4746a03423c6c786b21a9216b676f7dc54def72c3d8bf2aa94803e6f478f354dac94547c8627a01c3f7abcf64866b48b3e1fed6fb2a063b721ef9e5b39fb5f369749d29d72b0831ecb2affbbe1463be2d0d8e1993c7494194471b1cc57573c62f0b40a85d7ab36147713d458a1a83fe548c52f4d83ead1d18fe56ad80a6fc9514122c2b0cc20e36633e90c9f9c46282a085ab7c70e2c136ae7c14e87054c16eb04a8e0143f98970324cbca3f0fe0ecbd962f39ec0d8628eb2d998c63850641745aab3d5842a1eb128d16c1f4f9a6fe663e400e493417e9000ca0c086f93311b450bc07d9bce0030ffefc97c8d61f36ecec93953ca4e3a40fecb4d71cf77154785098b6deabefd50ac5f42989e64a2bd6f96a37ab4c1b0f63a4d8806213b26811169076e3f7e6e072ddaf5956c6a4a04315a2e9113a9392bf02b501c4ad676271a4c899b46df3c42839322db08e10370a66524772fc5942b1956a50faa69f0673e5ef1a88625f3433763e8530a22c7efcf37f29d68e90df87ee81d46a14b1f0a0d9876436a12bbb159c7ad16da5a6495a3ed0094bf696464f2a4986ec10a81fa8750eb22280fd878d3e6ac869ba9b999185687e431e242422ca97ddd3461935b69485ca0ddad58c71b904eb3de054a9f4bc1bc2620d3b1c473df768dab76fc6d772ddd1dbbbc46f308c60abd83868148944047062e6a43f4f143b34ebba2d28b84e728fbe906857bd6e48022ae1bdf0367773e998b57dfd6c8fe65ddb2d2b702e12d6d93322da823dd99511fbd2d8a8a0ec4793628a15dccd33f323d1cd7622bf329ca15e6784bf22029d345669db842c6f43774759ec856ce58609df12a6a25507b21b84ce1a4a724a37e830b42982cac015955c3da5fdacff4b6b32e08db352a1b0298f03c12ae2067068e750cc9b3295e2866e23e90b763f98d4631a55eb8446415e6a2791f148c4129ef2321f3e5140466685215142ff40b18ac61a9b2f8a1216106413ff6545439c663d3e04403be6248120fb073f23d10aa1dc7b0f99d2d9220d04b2875038b7c556f5d9a5bc46f01afc4b514fcefb2b7d5c9422e74c996d5e14e7c57f473c68214b52a55456a1fc665d70a10fe78f9f0a0c9f110028330fe9e8f70918950fb77d2269b3976efb88dadf55ce0217482fb426d01fbb06da26b48607db3e59496db6a38090df72a32a56d511405693795ef9a63918ba32145f4055c8e93e1ab09fc08b4e056426f79beaf37d555ca34e379daa9ba8ea9d951f2e1577fdf5f6067f8e0db664a38edacedd6279c1b8ee0624ab1cae754b08dc8505a22879b8d99ac98d8122327cdc93e7e8ba1b0dd2b47611270f3fe8c870c14592dd93f8fb082ff7c1011186d96dc43911689125fd21b12e4fe0cb22c1aca3bb54c601226e386c2e10d5878db8237c40edcd4681d657e7599edcb9fdb13e5b669b9b20fa8a5a64c351935bd30ad598e5a4c246a5d6a2530b50aa368c21a537db84a065fe85ac2c22e466cd1cc9b80261d6fa0a3940dab1265f7ba7b710db27b8e32dfe5e16a3788d747cdfdef10944bc6e5bb342a2a4239728df4823428941d76007f166b8ce3c03a4eacc8ac4cfcecaae04f36105ce022f483e8d5fd510808c41bc914bd53bbba4eb20b7c31663b434b844b42ca5993e2a519c57f01a4dcb21faaa79323d802ac2f37f14d42ea74a55b7c98913d98d450ddc46f6ebea78dde3bd7c96165546a5f253c34ff01024b851c9408cf4e1da597786bcfd8711782068b553182c73bb9f82a78a5b0454fcdfef51e222bf94e738c9b67bcc44e6c5fa8918905936db9ef80381a319baf9edc9f9da9f1afbe21a337712ba91a95d3f73bd7215184391a25dcab9e3bb684406262951672df43c069c8dbfe34448afbab6dd69fce395523b95aa9bfc8ab6d391cba3b080e5a8665ce0a41f9d77418867aeab37d060170aee75e0568b132f49e25793f61fb83b491434cb51b6582836d5bd616c58a8e0d19a8c4d9fa0cdaaaab67206355300479a9e2c0114c4417f5690674911c3fdbcf1775da2330e7d2326afa448624fe4959817dadbf0240059f1f23fc2138aaa7f4552ac247c54d31ac4782043ad6a54826360d71bee4e718d62cd564d478693ec2ae373ab68f7a2aedf786bfb9edcd306bb7dd7ef0c6f58c6e7acfdcaabef884fcb505777bd57b27d659484f834c4e3a469d0ebbbe97440a9f59652eb1eda5666b7297ca6e1cfca579491b89472061a35123e280ba1039f076a3c649ea909e7cb27f67af12e15cc59459bc466df1a7f9c07762b37c4720d01bcef4bc512ef8fbe8cdb7a21f3192e065a47e87a21e1a96ba37471d458d770611c16950c817603d3f473728f6a47cdb36de0548fd2d17aa4dd68c3601db893d1b8b4090e3f20f64ddf0c839ac12bd982dacdfa17c5b8bed78005f65fb3cf5a120260f02909f13b45a3f311649f34766252c1022cb844d8810dea2f78aa8a4d4e8a5e51643d0e07d5c1b75854296b44835987a21cfb377d1c8afe036910c44d6c10715c0de3a9e3525c91f0d14a8772490b2495cbf2d7a01228ca24d421fb06d818d8484409deb24b4e0ac04bf7354c3f322dc2c33cfd8f8922e37f1b339d9f726056f9cb1eb6fa68cb7e0d3d98d68fd65ea68769d549530ea6ba2d4f51577ab00ff37dac8f68df01e8bb21bd0dea1ff88e7b077e2ed437da27fd01ba3abd225258b68ea70f7fd99630ddb371aa66a94ed953fcda1052ed43258351f2f3fa553b44cb856f3ba08555792ddb3ec34cc5122602e87decf7dfdcdc4c2182003d94e69327e47c44f33340ba244c541ca33f567f8b713fd556789aaa2f03551986b9c6a18b032c1b8bbc872afdf0be134a8539c0d68ca86bdc9dd1ee280ad0afdc9bbc8800dd0b3b695a426573bba60f07118a3b4ef7346ad83210cd5b0045c3a15861f5b0128b4982fe47288e22b5799d340144918ac26cdb3c2997942aeaa330c727cd799c62441d1fab3c8d259c280cc4c614fc1c654568f8e325aadecc92c8b22c516b1bdfbe41be197a02649b99667050d65a1b65f33a8c63954e7a0fba4f8b50321a8a3e3af92a53b1975afe17a13f66a21c70a4b0c12cb26cbe38992bffda54961531bd5b5b87d551071e43ac22d026a5ca3af49bc45bb5e3dbb328dc6e36a8f11ee5a80a173188ec921d8ac21b185ec08380a8d1e69578b7b890acc45594b7ddaa8c4a94935f1e1e133de51074b0fb916c7ca1bd0cfd0cc53d53d6eed294e4236f5bef1dede3cb0323df991ed6441c040f0f5a579c5607fe99dbf89db1fb89224df2fedc3cb17a29b59617ab5e4d94da05972430d0a281f778933da6d10bd9fc398e3594b10de0e47c9625b9baa9e764e5abc47a27143a80e2722aea569f9e2365c33bf79151875ac355105c6709c0c4988048e96b4c4a6aa07261b15ae07d599c9c25539eab04609607b6ccb6f290d906bc469d14864f8f1c20de13527a3332fa97a72e3b201d449a880ee6a4b6989495111db5b87ee9b0ea562162adc45035320bbc673d16a0b2b822b343761633a84925d5349d877f1a466e319786dda9f2d717846b809f7f2ab6a64b48375da7ef4a69b26da08afd172097b0bc7d73a24c1fe141a046e95369b93828ba1403b5098dd6fbb50964137fd67d3e39b02ebacb8fab131959739abe922ecf66c9af8cbe0f85c062c241f168e686b9d52936193c87073fd66c842496ead36d0bec2d7120a3154a8ed6ca40c3efd292d1e5d82086107f1649c5fabb248610c9a4f371547daa4a63b438f39dcca71616bf7affaaea36bc55fc3d0ec775659549b09091a07ec8dddcefe3ae2d9678b71a0e763db9d0686949a8a229afa4ef00c22d805c875e6ba9648eab53099a4b712cca24ecf2a3c7d1264abd37ac0392f46fdf651fd7d5ca5d2e9b33adbd1b30a76951ae33d554e7075ce6fc973a9fb53cea42e118331b169583ca8767eb426a2e070575a164408119430014206eaac9fa0eeed610a72c1fabbae21e5ff9d52223a65c5434ef6f3d980741daf3c1145d1362f63b91601e99e86b338693097a03dac63747aca919926b7b5e9aff925e4a6fd7eae799404940a4c0f866080fbbbb69cba1af8e2764eda64103a1aa322f8b319f77fa2bfb18e6cc8be93354d6ff8be2b5d88e405bd2c74fb6f332f22ac90e784b67bdb3f79a0a78125cebec18e438549ded7d1f442d742f255f31e8fb04eb3f5925bba03c48825406439207455d997e94c9e10d159a16224e76c02e6ebea352ad14b1e0da80a82150ef7935c00df46452e395436bb8cbb2b4a30fdbb71968da47ce0d8dc968ae606e068657b4910a667c327af6845417e291b48d7553271924e15eda4eb37d12168368b66d02657224c11e5ef45f65b38a192eac5a68ba7407436eb075340ab2eec516b1a77b5087b544eb7b44644b1de16958adba3d778cf59b6bc524a42dbb1614cf869d3a939b9a3c111a688e972b3bb36542aabe4910c35923ed5ae49a6436227f716f2f04f43dd837a5633d9db73eb53a97f2f46a35a514bff3518c7d580470306d04ca77534fb98e699840d496f2e0724bc065ae8b9a49be00e7df1b3733bdc1971f530ef1492d2aecd35054d64396dae0baedaf7dd62614ac09cfa77a9c5503bc1c529b28ebdc3408001570100975d297f45e44aa9e3d2119c3dd71424f4d4850b734b963bc2b4286cc879b4d5cbed77a8ae45f4d134c8cd786d011ae15fab7c8e8ca07c9c7101d3866bf74e1f54f1e26f4409df652296ae76945820fb75cef9bc85227fc1afb34de3dc400d47efa12c23c8c6b42a6460edbe2f89e2a0d493a47172246914963ed636beb4993b6d2fe16408e1778ef069bb983d73d8301b21bad142f864718625fe70748acc219a349529531c5552637e38196bf016ffc15ae031e5729edddb6d22f1554dad35087d4a0f507d2d59d8789d92185f5a6f5f7d9d2d9b417bc4439d357093fc41c3c24e209bbe8b4f7c78833ac8d7f208f7a445f0a2c54392256950fa9099cc51ce1b990578825561357778ddaa83c98176d9366000e543b183d77597b9fc208285b649f76683787dbd636f655bdfc4de39d1a312c2ee56c3c0285e8cfa88d67ff704d45cab44c34a21a3131ef565581ee915ad1ef9c9eb33597edd94684a8bb2041a15eb1698846a5bd00c072f4cafb6e78336c883a85f9553798ea71dce370a8c41915ec728d09e8eff59c6ba2ad33b429b78666353a0c30a4d5fe6df25dd6732a2d69df6f7c198d653992b0814200ae72d52635b88590def2e12f1484a74cd2d4d190839f8d375518a3d8de7da1b6011ca01cff41da42e638c106a5c01491833a3072136228d4319f5f6a752fe6258bdff862951d748141ae84a980b4344239439ef33171c96aac17a0e6b1902feb317408c1cb02a919e5176b18988d9076252bdbdf69e2276eb03b9df907bee6f27d080df1421a4d386d94e4ee4e1247f6d0744c0b7aeeba539b82e160268d9786a899bac83d0bb37c4fdbaf3d298780c028a4f059cd84adbb0ccd5a7193a09f5fb38e6c32c314ec3e1f440fddffdb37359b48a3386c6aaad18dec4dc598a97d19848015e34fd8ae7483f94da2a4d0b616f0ec2983e1c3a553dc335b08bb99d8c1bfb1d62b16a8e5b2f6eccf10723bb00f4fe411420a66018bcbb7e0ccd6ab0e98be99c1c8bc1845b76f74a514c002fc977e171f4c10268ad7549632df58ad4725408ca4381a47c99b4008fcf6aab4c2a5364301edd88277a605221f986357a0dda1629bd4fcefc8b7fef960db0d4075fd7adda81e20e5af25d00087c51a9f860f0bcd768b49a0d4747f50071882ad06b6a000c4748b0c9b34a7eb80bdd20d0a8702990fb05301c8756e8311f06cb805912f002de06b9eed3a97196f017e16efa20a05f83feebaa326f0c43607c20c1567d4f4cf5ecd07a1c5cd2ba71bca1783374f2c4f948d5b2428f909b87a26b63782efa6a185f655b3ce0f227005a21b1739f4cb3e592cc9aa71d4529a282fdbd379f13399d50277a5e607f12369068add5c22382b8e0d88a3cefd414c06838a7c92da53cc0d9f05e59ea19416cd17b28e4c5a8edce096cde3600d2e099b2906ebb44dd3287ee028d2222ec213e12c73aede87bb8f7b7d1b3bcc03ea4bbd52fa3f659e6aff103871eb066b1105da9a1af7795e45a8c1843931fb8c07c6d01d1128f08839a8ae752a9891d3cfb369b4803bae17a6039739330fe4fb783b2e3d805fb81d57738aa9af1b9fa1edf8cafa718cd0f372277537bd6de81eea76397972aee9e184c0f2bd305ec7933a73eff348c105a2e2893bf2c013319d941ef37637971733537e82174850066fbf9dd85c1305515fe9e9cae7efda6ada091774ff9ecf252c6830c62577e0e2f17f509f87054792d3276ae19a84ce431593cc73ca8309ebf36a3d6d1aae66f690886dbdb94e60fc8131d9fb6d53f853a16bda9e6d0ac58d8fcd62d6f2d1b158f3ef9d4cd5454531630b65ececf3fc1d1f24383c629e010c6ab0e4410e79c6251c0d8627f31493823468c424ef6dc8cdbd3017b627ae743ff3078ac3f2e86dcda8c3922a0ebd8f6006fe21d9aec4e2c698d343585351b0910bfea3df35c464f09f2253feb4c3671321cebeddb850f1466226dba1bb91b73213c30707a8335a6513e7825b5b5bb7bdf1d2e450e9d3dd2c3eb50da7d193d1fbdff0ffcff8ff77fc3f3ffedf1f3fff1fdfff0ffeff87ff7fc6ffbfe3fff9f1fffef8f9fff8fe7ff0ff3ffcff33feff1dffcf8ffff7c7cfffc7f7ff83ffffe1ff0fd943695115eb07f857b40596f19682b16ed6e7c48f0b1c220216a5601eb8907ce512eceaf51a95d8540324bff3fa2b76e9415665eb270f05a2269d61b725dc85ca70b605c1baaf4760438499208e47a6670b53b9c6a99f332a748f802ae6ada0a74f7b8951eebdb8ea42431f9861ce186425d8a0df0df0b17d503b1c18f9d7f573096ca05f5f9c12950810ea03b5cb810ddc18fbbefe9bdb3561a3f26230fc6b011e4a3d12e05cfeb58eaf7f06db4ece65de8d0a80733ce0b54fa06e1a8492918a0fe6dea8a441f502284134854892e5eda2230d52570e71c9417c23a554841f6ecde74fd2a08e352dc91c3dae4e74c76f4d1ad48bd86e7d7b7e21c6e3ada35e9f62dd6568d555884f9033af864fa990be742f80614658b3d74b2bbfa74f8bf8bbc65369e1c3d3926ace90b043503ef9911ac8c393288292c52240252b92c0e6db389ba80fcfa149cd5bc6faa3e7ee3ee11157ec064ce93a4c17dfa4972186ec1d0e77f6bbdd607dce6010aaf0231a58322c7bc384d801496490ca1edb5ed211d43f50d55fda8c10047977af9e7698e8f0ed485404084abcbec865e660695449d45dc9f8108b9aa966e224006c72f236c9720567220d5d221e387ac0eec342a61012b57e8c9bc10140356870782b608759fb8b77f4f08404445b45efac8dad03e290fcb4b0f680483f4a300904b62311a03937c87e32b96e8bd5bdd51b8951551005412ab876bb7d2106043ba05b15c9fcd4279b49e5feb737d12626342ba0ddc77b0856ddbf6a1983b64a57814707a93e2bf83b7edcffe30f577b102a1fd90bdc0f30728351c41fa3ed24d60c0fe1b3931d98b37a9b145cb1f1019b4c24df565719c53df8a7775d969af08d3ee668885b3d2ed13c5dd9247e64c802a4597a648337bb4c3a8db8a280cccec3ffd5baa573b45ec7ad7975ab2cd391f29a20cf3b6ffac59c26d93d51dd5ff36ff047fc725100a5b517d52dba36b9ceda8840d69dd20f1935fdd8e985cb0386039fe9f3025f746efd5e86a9876542cd7a61adeb5c645e812204df5ea556db6cb74a0893700c6f6641cbfa26a5b7b352857a4ffcc90a91de9e3db4c84373c6906651ed4e293b9dbc42c61ddc3bcdb18435e14db591b73867502c23bc4ee298683ff84a90fee410ad597cb9c9c7c9f5249cbb0529a8394705d83d855bca5f10d967c7a2f146b7db5696922dec3b623d9b040bf2463424178f2fb5bdbf02d4908606d41613ba0c6fb3ae116d09fd45997d23180e9f250de91ce6e553ed021c41d791c0df191b71c79f8fff980d2d7add592b67b3dc152cdd91cba1f39002a185413cd500c9748332516a84fbbff1dd6cc7acf21d93c519fc5fccd562e9b4c68e018d50fc96cf31782a223024e53cb00c89da62be07e8d95aa954ef752c51f81f9c4415868371343bfa4a563f8451684b3e8f2b687ab78bdb6a762f8c553005f75bab2eb09c80facfb4a3d29efda5375858cce2c1747bc4c45599a13f438ea7569e33835f19aeb9461fa321ef741c58e972b16f4603488c574db97b9c34728747682d8c3a2c4db46719ac6ffd780fe42431151d9902aa29ee0a30159ebb069e575a7504ae012638ef116ba020b0f6e659e63768ba08e138258a90008231365a90245ffdb34cf88afc707508ee94fa2c79b4320d02267b07022954b4529abd3b9e20ac37e000f8282bbd535b293ffe961a8206dc7a69629152983c055981db1dce781ffc2949446692faf75bbd2ec7f6dfe63bc5da8726d96a864aa53caebb521878073efcef6eec1f3db5902d7b1c8d616824e170b4bb37b06110a62dc5b4f9975ef342402d0455c46ba6aeae0c9e3fc7b49a1eb748dfe51bfb0774a397d4f693870abf06ac8969a9f0a7f09c772003802aaa34239f26b3772047e6085572ded472e8471de73f1de6b968e237b219bc38465e84517451b297d80868511b390ac3e15595ffca72c8e19e5f7176897196296f1d2ca689c3205886ecb3b8afc3e2fc4211ede8e9b82b77fcc4a0ef2b982b02128c1baa925c19c6993f799cd6d8e37e749e33abbce52b602ec5787815aab1881a38573bd5ebe11d6965f721c7a61ce58334e584fc8f5f4237c590ce843ae9330cd136c07d0840b64d6b08c0b7dac07e9ea5f11785bca684e23f9dcaa8940532d9ed221e891e215d6b44310de73395d6f13ed841a7dd1b2800e2cfc631a6d7a1b9dc58bc1dc64d6b8b89e6d272b096eaeedadcb4276672ae1a5c2a1cfb80b62ce3b0ae62c9891f1982f4c95bd26e2d58ed03aa91315eb2eed6d298de8e3fd7631175ae52001c783d83acfd5d088169a429bc3fc1114e242007473e8866ecc124c13821f7222f15ab93e98c4b7f5fd433757f6b5db6b60d5bbe2e1e1e949256bc4f5e622b55aa53d04f17b3b0bc45299635337bffab078912a2431b7aceee7f86cedee71a5c41a0be08d78e499c9c7d7a03d4009f8b9b7989ce369f761b34a4edc16a7b441ca3be2b46cb19975e6f7a8537a8f679b0d77cdc7813e15a87c630a5a86fe46a1c938fff88d5448b2e7ffa00ca478006c8400aae991b3d5210076c80c8de886067702a0a0e9e6aac24b95ae17cf83f49452f0d5c4068b550ce9f78333978386b44398fae4414ed9e553b34d061244c3fa95b1a38ea949ecc995e75abb48a58801643b488276961c0626aa63dac65acaad458b46ad0477f76958b5a4ab42192d121ab59638412c7efa5b006fab54d045041bb7d76b84d170589c61e50465923650175707c804c307603c38cd70f17f1ae18f4d56cd46447b9cc0afb0525705e5270f5d092956c1e6b7e780fee23506759c81b2ee49c8f5ea068d640d090a4665ab88090710e6a8f1a2b91ce223387983ed0fca6443079e702ab87e883c93b090339a83e3441319617c8e27f0c865cc6c1f08cc23173060e6329d13d398a163624aeab5bf28b40775234c5a7a167b87276d22d39976107fad8722df76c40bbd00014a1ba922a1416a107b2f5ea13c58f98036313552f1e43f8b0e4893317ca4e649e5aeaf4a1659bc12196a46f2b0fa54aee359ceaa2e528f8ec8d8ccf698583f4b48145597e059df6fed56d9784fe5a896b494ac10453a5d89b38aaf64e6c09194734bb3e463c1ca2c39d9563b669018d91d7eeba44759b99174333629c4c8d07d29a0cb29638376030065a69f5cb89c49a7caf76ebfc6420d6fcd3a8b4e9cde8206bad5b42dcc3bffba9b53d86ca8d33faf28bd661ca384f0b39a9c117fa0818d858a7505df4dfd8dbfdd558a55c2d2a974e2083b7e3ecbec42001dcc4835585c67bdf513072d76a5aef1537755d9440d8c338e314b7b702029bc526e735563c833391cf2033cea80dbeb33e98f68a1b0c98d399cddd6e1636b4b3a48cf9dad407c94387836e080c315ac939e9578f6344ce37a9957405af9009778c96734867085fd3b64bd4bb44c828b5efac320e8245c398fc25d6580681f66a7bfc928be19196017d160a9dd2ca6090ef107b2d2a9606195f8726ef2521254987ca2f10112973b58a3cb6c4d4903276647165ca7155c95f53d26628c25d5c345b4c952182d6f2f311627d7c297ca1a6aa5cba200423f9e009791282d71676d111afd98a95671d19aafb13918fb2c83c1a5eedea0a1867a7791f3ecf634b766f296819930a02dbf9e1745a84c53ac94948c3198b00c45346087a9681974fe731184617aaa9c6606ad07a9d495d3ed49d0cf81516e6c7ad907a4a38e07ee511e726f8183345d57de6a0235f96f77f2349ed8623b417096164c50fba602ede94458ab449fc2c6e855d3bc27367eaa0758ad8c0734d69cae42e455bb87ae937574c7f58ac02d4d310cdf2ddb966da01950117c9b1cee31f6d188cc3f6d42bf4b036438ab02c0a946afeb5362a80737a0a2aa9818ba0800008313d47a8ab37ee466ed48dc6316cd89cde3ef73aa00ceda09a9f8ff7b89e500ceb7cc6d5abc977846acfb591344fe171e777efd745ecb9617afe98949b3f2ddec5002c2e5b5100977b235dc938be391ce5c696feefd2800b4a6581033a912904463ccd0f9b4414a52fda5d5c67c463e9005cd73edc8ccc90cf5cb7e67020c359c7ef4337ba5f5ceaaa239d6b40aaaf0fe626c0cfebac2ba95398f6158ab70b03c0d6e9508107a0eaff786700f90abce78dd7d0df1dcd8bfb9051d1910e71fc4b338eec7ae4488d1a726eaa3b4d1853d4e5051039968e8f0e942aadd6c77697565f952e598609091ba71a24d11f9ea1488c06030fcb07d6a585a7766ac10a95c5359ef69e6f9a5f8c779c42e1d8dd18bbdc72a2ea20cb6c463323b4810654dd0bd8aa72b06cb07bb5fd56bd264fd2fa19457562247b417e069f13ad06df6a30b0ec6df2079f67e39223222c9ef193e588ecaf197a43c41a40f5dedf46d1d73425d29e8b57cbe7d2348bd8cecacf516f8549de9872fafa44d1f98b332022e650038c948e0ef5467a38572993c672a7439609302d19c59d2815ee8e6e064bf281437055a4f8b55a3bd74b4ab7a07a9ef8cb3ef7052e95d0d0c184189c2842fd81d726f6d660b77f218e1164414c24e5cd086139f64276aff8630656c9050abd429cf96c99d9c743070b53c20ac25d044147f7965690aaa399002e59e8defb3c88ce8a01928e823d888edda3575c2b38057c0fd94dff2d98f4a4b79d776b73bd9e8f8842a8690c6e03d025bac6efb575bc0aaf0a8ffacad903e21ee278687fd7ee69cb926124207b7b7554b3f4d4cf1b9a3bcc02c58681a8f60eead06efb4b7f9a075c03f23ca1edee8a4a80b25668dd341b3da2651fd2b56dc4bb54067fdaefd85bce0a660b920228df78a352feff870b9fa90adae11b256ee6d81a32a43251c5e2c1c32bc4e8ace81a089bf46d2f76f99808622804243426b97d3f7043362113e69c2fc4745fdc736343b7264c1b82501e820a1d7f6ea9f4385a39441567c8ed2ab0779a5b58b182960ba3ca4043935be335a9c430810e0809ae810f81c7887a5a46404ab7399fef93f70abdb5fd777eb7936379219e0b117fa4dfc007cb54df54b262997f896a5f68a0f36ea0192c9a6c2734de54662d79dc485152c46abc03adab073f033b681c6ca5b92b7937e4a8f10b0cc8ba85d751d55e6487be343991552f25d5d0f1fc1a3ac8085ba01f266f86807cbe019425012a6e5a78e1786066ee7b79f9e64b62ec46f969255613957456aaad6783a8cfd87dfee24d4eede86944a5809060068fdc78bc015fbff8dec2add7312b4fb27033c7ada5815aa8781e637aaca3d59741cb98e9145071c1288145baa17a6ae304c001b8bee639ced23d212258438b19edfd0323ad499f3fa4fcd99fb9c880a454f7e4d980736a4388e4a68211fb505b986e04a021520f5386b3c3b7424d7db92904c400c7d5aa04c0320e87e58ff420dea9eaf1670a27432995c89eb5581916cacd017d34719739317533aa30e4741fddd5ca634115dc3d4cd99c2ae6bb34f704bf138b069dcd5e1cb419d79c007f92933d20bb8b2d06e433a940ccf564280c78fdbbbd9adee8b81174c3e30681d1e34d35b04d00641bc8330129750dc310bc65cc067d202927c519e24e5b7a1531828b85f92986a7244f5aeb620fb2ab7135f56f1b27099af96e89cbd0c269a16b0ea6a618a26c16bf2f2809835b423c99bcacc4c892d5e8cdd8b93fd75f93d8304125086e90308b35cc664e6e8557a3af7d5616326e0a430c011642190821424b8fbdd380eb1a9e850e6130bcbd579e69d36270d1575f44660630d2ac9421f4eb562dd0e8e12b042987e8808767ac61b41112c4fc8db748670cbf64d09f27124c61c263f9aeaa4cdf7a4992fdcc99d7df5a3003894af88eded7987f60d92ea62e04b9480dadf6b4fe4eeb088fa50a251804bebf8fcd8d3821a7808c3e6f708e5d3d9881953c8724131e6ca5d90d9b6e57480c901bf8664a86f7361c7dd306857bf38434d8900c8250882d76e5c000f363d55cb4f0cd28987d690f5307c89412c0d8ca27591d7b4fc6c0913573b3975d9d3aff1d487741bdd9ed4d4498cc4a51e48f8c100d1e97ac1a903be38b9a7bd52a49d2491021686f2b5c595c0e2025df9b517f95ce93086bb18bfcd0f84a172372d8ad4909800cfafcc1170337643042724c48a8f8182e7b94cb2cf8d662d6ed0e45a1e6803dbe40cdaa18e3efe42c34e66be97bb434dd43a4b5616e31f35d0cc0bcbeee3c74436f29c832e85ec1d925b5e3268225b094d578cc63a211c36d1444f0c7cbc22cb1dfe895e4d047be25c58222bd0fb29749c93ae5e7fd41b0220d736359853c0cf4bb223a00b4c5a87146567f2467428ac475883b77cd6d8670e2c033998e84469285134b6225d59b15663f30cc9f634565aaab27429b7307dd42974e1fbfdb6688feccbb92436ec87785a63f4d1bd5b2458910c5b9ddee1c0089b75b735327a5968a805df4977cd1c956c643d526c86e4beff0e02fd3ccbde92a2af9e98395762a340c8cdcc64312b6a085a4fb8cbed8cdcafd59aac5b84485dbafdb64df22edc75998d8a0cd61589bd93a8589d51ac2880a39fdda63a87de4b2f538d7d7682706a88f64deb189429a98400dc921682a4b6134ba948febefeeb8f449291e96123c118b4fa5184029739351f2ec2384906039ec298af2d698f7d4cd106b5187119299ab6b34b348c18838a15674254bec69042563d777b88660a1d5b95850a93014f3010e84dd6614064be8dea92e2209be1f6530a808c360fcfbeeb9e2d72ca34331bced8edecc0dc35d0c6c209677d87289622f123619f9aed326bfd429e778694cfe08f05c48d897041a46da5f5e3150d872786128ef6e6f56fb8e010a1af8d23370338da963b60aa3cf5f85e9b06718b3341985e23537f85c6483a037bfc0e59b3fe38252db8dcf6080f9de9915859b8cc2a63953c46c09329415179079d1f6dde96984e86a7e084f7c879ee54bef529834a3bdc036d5943222ca01d96078dcdc8b36f87b049c2ebadfcd0cd2846b1b3652fce9d38984a3d840042bc3c025c5bf9acefa6e5d310df6bb5273626d1d0427203239f278311073644dbde7691dde6e34595cdba42f35cc00b4c136e32ed2745cc611546d8f5b5434ab9a8086a33f11350a97f95c7bdf58fc104d0d0f781b6611714bcdc326ac2205b2c7202d2bc19432b746879f720a9667abd81437d4406453ac0396c77cb5a8edffd694e0c490cb1d46eef0fcb71d1a94eedced2007814998469efb74e62e495ec2bac6f2e7bdafdf42438e3a535e8018175b9ed6f5714af4408ad89bbfca814721d6970c39368fa90b8663ea73ca69fe3607448b80e293c9963814087b4a96cd9d36477534daa79d78ca57b2c28ef064a37030f90259363e1e41c77689c23cb2c48b5bd91bd58941a4bdabb211061f4913d032aa5fa81854a5ed14b1c7e65251f9a5695102cd52e1775ef551bb84ab3843f13eb1056c417d8990f459b458ad661ed658ebdeafe4468985135826a331606d518912479925cccc56899147be4299b7506e885a866f7cb774bc0084fccd8951efad2cb50ba432f9c5b29daab2fbfe98bbd33ae64640d3816a387f193266772073dafb6dae8b32b24deaac689bb4fd42559c3b4d5287a03af17e1689ace09dc2ac4f6b2dea15d34e9e4530c03a70962fd67bc6d4650c574c35343393c8ce76ae7eaaac62bd28848cab5a88a9497a0a944f03530bb2df183055414c0e78e765390b142efb5a562752c279025b32a5d1c317701a50df1706d6590e3e3207bf930937d8943d2c62aba117ec5d92b0d122edef7dd56448a3a8453d7bb05d95bee2679fd9c01a3691ddbedd2ae4d8fad691524532ebc7d00178e85dfdcb96c9d99a606c56a6ee5e8346bc2f3b6b06360c5eabd8a453892eb39081dd1a4144702e2c0d34cce8e19bf835648447262765d54bd091a31e0e72ca2b2bcbee5156f3e18a1280ab8f31991e88d8b4b341251094995659a8aac22e0afc767cbf32cf1d91b4cdbc148b590878a3adb2d1b3e46e5e438b6c9130b5d31512bdda6bca68c100c264f6c27733678688a0284664ca7202b3f76e52de6419f4559af706bd22d6f47eb21040b9938fe845d1c046afac0a8a447a05f4e2e5f8e152df26dfe013e7014566cc58a418926b74ebcf40007d22717f1ce28662ec030cc6407478427fd39acf47de840dd9683ffa470548a0edfe7cf6076ac192e6befe3dc0a8c6889e998e34b33f63dbb5f693c6b3cfc836c6a277b6bce805b5ba081f75f3e0df4d17dec3611910c92af7c3d669a2017d8c99b4b6a26a6dde758f4b3377798065345924c112e0803dc3d36655585bcc11937593d906f16b63b16d1a3a7ac2d6be361d3dbac82f72b6ad9a317663340dd08dcd28fb699f1409f7506abe168f2837721fe88e2a78e1db2369ba6b0b865b6e9333fffdbdd5a540ea9dc37d14b723a457d2fa35bea82f00db6368a9676ea5ba49e595370b9d64b352a5709f6be32a302df19d96893e68a98b37ddc33328678cdf63dd85fc216faaa3e03062344a9865beb115db59027d5dd100643011b18e9f5ff5051b8de036f6f9502ce7ff4d5122595ab4fd85cdfbd38e5d501480d0e6fb1c8d83666538d26a79767d5a06368e01d28098bc8a5868ffd1660c0f35143bd262f3976505f7eae47d5e2cea8ae48b0c6632e805258357c84fcdeae58c8d86b5f81b5a2cc66d5dab2e7ec20a9c0d23d56a49e93cf0c4ad1805a0494c1d999e868e3006f9e3724c3e0a5d369ab3bc89995bc9c095ac647943b5651338530f50c1356bb2be7a92a6f826f5b924c1267a103961f592d0a87daad4092f49d1fe3dfbf8455546d7677500a05ac17a731fb109f982b7474aa81733ec47aaaa78d54a47d4023081ef51262ca876523da907184011b8a8e39e47c9b6a2cd2bae93f000b7762882abe9b911af949d2648aee2e74413b63c6928eb7d591d2b9eace839d472753a469dde9d65d78fe0a4e5231b99ee0255478b118d7280bb0793d881d2eba0bcfbf3377849868a3b9a4b5ce4fc30900b228c0d09bbe85be707ace1e6f31c5f9755a40f10021a1a63b43b9fb48ea93494d9beb42079300294ff7755b4a064c3a5e4452c50141ab4a000641fccbe1cd9dd920f4fcb3d5a511ff7bbc189c01867abdb32affcf8084e1cdf0ec90baa686f27b462c8a01b5cee5ad0ba298a10ab531f9c2a7f79876d005b718c454c9aa165821830508a4c1d2ad5fc0d728c2d43963a6d6326c4f2fac425be7b9c2a80e022003ebe07acce4162301af7959e4284982448020f9081cd8e63c9c66082fbc877c191e293b603770f821c1cf59324a10cdd14a05add68f5fa01bd9f26442076c8092abc28e1e16e0bcdbf0980e97b03086a1783c35b23c8fe7a401a3276ae3f5c5ebd534c7b3f77541cc17713aaed588f5189942580545bd8f0eb7326777bb86eea790b962659850c1e42b8d310b3cf27ebdbbb70b17b937ed25aa73aef31ee2830279162df8b6ad541879617ceb84696a6868ef5f371ca7e1ae50aac2b87997686668f38c945819e38b9ef8ac6ed493adcdc82ac65558bd90071ff98cc2c3955b46610a045eb08bfd00931df8272d40c07a3a292a1962d64db1355fb7cd6ea8c88683d5c92101adf754f65d4f99a70a7e2836c0b8b6bfaea22e613ffefcde81e43efead760a5beaa91cda8e8e58afbaad72c21e47685961edcd39e7eae3561a9bd39c8cfee682e11c451692a821f86269cf202a808ea6596e45c7f8628f87ab0c75d7aa1032e24ddd0b9d053880b9a55186d7842447f5ebda5496b53f8aaf526840e6cca1df76d034d75b79e68606513273ed024c027ee6084b57d374516b857511a1f69b2d0d576188dd2117e9c99ba30457005f35b3bf7b2ddf21ada2c7793d35164f49945333a361b5625ad11124fba61ece800b1e65875ffe5a04609fc7cbaad09773c1d223c735a7cf29992e84e820c4b25010040d36b8322ac69fc91cf34ebaa70c81fdf10b9e73589af66b1551f20d68ca38c14932583436c4e850e57b15e3123f284d61f24105c6fb14ef6e6d1044a7fc8193dcd6022b5d0d9a101d490c3e4f1bd216bb3623d9e234ec922487efb299a645339e44fe9df8b20ad756de55fbf7b65adcd3520f4908bc947f6d4ecec9191a0d267a94af21afd30c88fdc0ea4336203d470758f758ed5b8e7d6135e7326a516d4808a0cf67401184515e9a859a8a92cd65838860d5eb2d98b21c97ff802f46027979c68af146e66fceb453d92c360c2d0d0bba3db1e8921e3c5aa0892169bcc97ae913cfbba7eb26fcdaacc503b02920f2a4900ccb282bf58cc2f2abf8d9c300a23a854d1b2724c310c34734612d11ffd328fb90e8df4c5f4859fc07a75af5028875ad29a62961ba11bf9e42439bc3c6040f89424e04f1252ed305d0cc5d989e9f421f7c1644f844a5e650daa827707902d0d64762befce315839afe572b9c53199835294d0953256bacf1d46d35232fcbe79509895d018d0910aa7d2dfc8ebee3ed2029efe93e8d893295b5c5e72e9c91576dc9bdac28792091a70b8b10b611f49cc1670ed1698c5969264bff0bd529d3ea2b335994e91217588fee53ed958a0e5677c604d407a2e1cac1421fe0ebb7528eb6a0c58326682d1cf9cd36051bc2ef4726dfb095fc5c1bada657e55b2c1c3ca5a1203be8a075fcc0ddc11f197d6c2cb170007300febda346b9099978cea7fc2487c150280d9a0ce6edf64cf91c37a8535b739bbbbf879c9ca2d1dde8b0f198e4cb1c545f1cc47791cd30b9290f2fe960fb3fa9eb3c9d2abcde6fc8bac6aec0a7a15275b29815ef763f98541abc5fb7a04a0498710b1aac06150a4171a5b91282f2130a68dcf65e30ee404cd9ad920e57a55b12fbf00a1a8dae3cb52f425b26e7e006f37bdf413b584dd2edf6b11991a1189e0f5f6ca7ba96d54985a861d1b8a4dce766c0d613273e385173eda4966ad97cb0285c8701217218073f3fd417dcd0a37f3d2e2e3fd51cccd72824cc8f84537705869c9eef0f619711b4b34b7a3870c301d0c1e3d8e8f073faa754c9a81a8b5fd12769d5257d1228f410d07581d83b93b8c7649d57a68cb942849b355eeda1a8af4891a5754e0af859cbeca0234412ccb3979a23fdebc90c9f9b796b38343da2d767d87a180144c0b053fc73e7b972cdfc96463561000447f8f698dd92884095224c7564f207239ea330747132085c02c187e7c15759da200733f06463e3e7cae2f0c2e76823f64efb4b1b99344e9890d1a09761993b158260669c9b89f38285596d148b2cd6893700259e6c9761f7a17d030a5970f7fbdbeeec72f5fef59b23bdecfc8b9aab532865d3d087456771883c4f0a6f220aa573333f619cb237f7342299eb7791998367db8be519d7ba6182c00b7176912c4657bcb0d8f3e92cf753a91e124e5845b522978e48e94de1ac7cd8cc7efb960b647f613965efea82d2cf576fa13c5bdd5fde66df85a7230af1681e980cb9c123b2a544fe37f8472a3218874ae2a51b9b0749f33c82dbf8d7c5b06a66b4661bc5eb11ed784a71219c4ef0a71d513419e38d531426029e3a3582a769e61aa1312a5472185a37605ecd845e825b15d0d5c6df5530de42d252fe3fa7a3684203cd90367ff5484769859fc3816a26f8dd5f1e9d526c4c4b1f9671ff228893ad962416713c9fd8aa0673d4455a4229b2104d6fb5e3c6e2e464477b2a7869e27abb898aaf670c86c72fe54061503c01937883dbfac4ff2f8783245c1af94fc22074aa64fb2ea2de75aa4b65c20dad5248fb872b32236ec20db3b71877b88cf250b21383bb3ae440bb22ea4bd05b04627d0372ddd1f882a06de49177c04f52de0a26a69c7bc08577fe43047124bd4628082a68fcb2bce84038efeee83ea69d8d14f958f79fdc80cac98f8215abc4362b64347217a55aa46051782c97bf46506640ad74bf0c070c1b19e03157256cce1a057ada3d18a81bac9dab5bb8eb32439bf4f4ee4237bbc4e85e714d8aea0568c608216e5428599ab4422ae0c191bf9f4d827bcfd03691f159710fe79d2b40042580ba53175bc0dd3fe1c167a78803e0f36c35efdfb9f29ca4cfad584b73527603a54f4c74202a13e36b913110774aaa7dc1cd990c1d50d65554e9167625060ec6c410b9725038023db002ca3523731d44f32cd2af14b00713180c98a775cfe34e228937e5100f93d63dae6091bab4f28ee50648c307b9707778e22d0f2be02724386c1bc933030ba35416d47e289ee1295af3e08dc081b3daf5a5bbabd9eff689782e0a20ab2bfbf4d451c2a2c2473d8e7e13ef4584c04971e1995cd3e8a7098104b877ebd24dd79c4e928f8bca0b0efa2abdbbf9e0a9c070493579b9ff0602d77b0566100500d933952d9f157c42514c1c9bf237713e83a13614389c33a3c57418deb2d580b58bed45dc1f3ca1d50196ab609e503d720185efa380ed7624f55ac0b94af0dc8898a389c8f0cdac42384ab81f8ef6c78bcb664557740c02702b7634e1c036ade7674a146ab69074b4498ad8c5aeb84a33580eee58a3747f17407d4b2aab8a80173ba01091adab26a7cee1087105e975c7bc3dcc2ac4fa2bfc66461c37dd2c1fc4faa1a149051ebb13d7ae5c34b91a60b47e122ed34ede3e9be052e4b3cf41c163c700beeb77ddc759203b9b55fd1d459cd8aaed074f6d492efbf2bf3f05c0663ee87ae72d3c27505566fed4fc567d48f93094e5aeaf82f77d3f3b7e6ecfd1e0f1901ebcdd141a21a2d419ba5eec2386a47c872258290b93df5ed2aca720b0c07f22cef9373bed0e72ef2f1d9894958100396fbfa41135154bb27da6e5936a9fef41779c12acb2083aae673bdee718792be694bdf1b7875dbc1572b1b949ff6a148cd35bb54148fbd91d4443c0781bf7fcb111527f5776a7248553b5fa1c82024a7216aead2b875d20937074bad2bb511c7cfa9d46fee2a7124817ec9669905a38a472bde16e887083c37aaa5f474f3823985a0c002011942b8794b124818722ad96e82e34bda2227def549a6b51be8d5fc9361a5f945a1f1290781d6653e37ea031b7e0079e2ddbdc4e4fd6d61e00a727610e6f297597af0bc15bf2d30363bc3d230a2310b8600a3dd4c84828625e748848e138694c15c70e619dbf14913e6c282ae5430c6fb297305c335745b957e5d4b6c10d89f7719d467a3d1965e8108d092203b0138607e2a715005b98cb6505e584cdc5d663c898c8c7872c81996512337274de1abde09f104b4bb13862c3f9965eaa366c8f32427f88ab2538598213aec7c431eb9a359d10c7ad133fcaec155df04839474429fb8b6333593c5c1d879280151f5c0ba94560f5cba234c35313ee415239b0c6afa04776699481aee64cd67fa996681303934da7a1d1f97227c07afc168b0c1fbe9aa51423880aefa7850c2345cafc331162ea494288d3c9e617a6cf6cfb3cbac51de57f494663f277e6eabfba387c1de7a5b765e857d3fe86122617de3a8e509d99afa0fc33eacdfdf9cfb363e4ad8985037c49a4d01f4368d8381ddb8a97986b7d08c41e59d44a08b031a7a8e98afb36f97dc364b69e99ee8c6dfd8f04cf9dcd8f3d107eecb3f47e6d617e9b2510791546fad6d10daa8b70e03212c909e761c1b08898dfa7cff0a6b177ac7bf091d6cd4524710622fe2684142753315c17afc162f93886375a3aa222e88d91eb8e23c218eeb1bf2e8fceb214bbc1d11abbbe5e105bb79c9b83f2fb619efcbe3b7513c58cf2e44c1ffa1db907ce16d181e11afd8dc168e7a04ed17929089777008f89b26830290247c7c1b2759a17c22d6663dbe87e0544bbd0746d579bcdb98b19f906de39f18ec6b4b0c01d0f2502abacebd7f60ba6d47384513a5bf664320423be35e60bba863c5f260f43a519a7a85df453ae4df7476734de57d311131caebd699cad40fa6f79a5ffae4a45783d8dff4205712560fab2aa106cba3ab54e6a5f644a1a1ba386323ca709244f852302c52b996d2d5c028400359bf0fda310c5a5faf52c5ae8a5ee647ae945b4de588cdace0e95e5ab0e93ff3b6f48d796cdcf600ecb7f4fa70568aed21bac738ab3f4cbdd2d26304c6fdf5abe0a74b3e6bf62add4190d289a88420bec6e0215157cc941e4238c72f1018808243206766a92aabaf844bf22df3643254ff8f659b6c59dbec60407c685c7a0bcde45f3941dc9fd732aa147526f1d13366d726364b6fd922418fa86935778e4501375b760ef96408b6a502027512df550950cf7bbad0b779670a81c0b3a6ddfe122bb3b0618af8f3d3290b929b70cb223164ca4de097116737d13e7884867b74e01b7807756ac2575b90fd08f6ed3776d070eeda83906b193a97b3b4b6cb8d102de1ada5e290852370b548651281edee001f69234dcbfbe38956f250517806023fb8169cbd532ad54b02150158824ba468004ad9c9f75a0a0a930d600d04ff2ada64f42629fd0cce32f75825e43cfda12d047cd9fdc8b9c9f25a9329707751061109394411bb4498f21da0ec39a61559e6ad78521ccc5cc66679ae9dc568c6019a8343ebaed01879e4bd1949cce5c9aa3a293332eaddbf3073bda7051aa67384d245c26c01d27186c66db466a4ecd3365c4cb0c7c7e386c4f7cf790c2a21d307d20c8ffff5bcdd22731cce9b39d7da81c9dac1a9521d9541f8563772f4fec81e2279cb6e2a4aa0423688bf31bb6aac251d3bd94282d41252b649278cf311b0e9f4d51bcee6c6011813781d74df1cf44a0d943907470aec8aa2e01d02704edb78f3578e8773245bf5b647d98f36f0ebe8e9726e98d4fde2502b9015bdfbfb7cb7d808d591704df4c7c24285eb25b747854f6c88cf35199d8c83af4f2500ed765e4980b80d1855e59b972778f6653b2dfb5116a0ca77736e7f7404961e92fd61b8a8c88716eaa5bf298d1e947d2509b43d1d170d738a0cbcbc3663d97e35b35611960ae3545632a9c5c852eb7b44b6d18fc3a467f1f2e2485a4998d8b345f684f6613e00562eb33eaf91bab09754ceca9fe11ab5794b2332d3ee4ba8508915f1ecf7d9beba756f51f472c4a8ab6cd6909723152765b6f6238fc967b99faa31ea7cfbad99066b6835ac3651591dee3dadf8c4321493ede3ae7a74f077c6e78a934c2d65f18005d78037b424d642c27dc0bbb356602cd6c37b68f554300a56e1a032344497edfde70771de74fc0c2167dc22aff813cd28d2788c46bfde38c120a1e8f8bad838e3c6f3a8631ad8a645ba3acdab079840c079ef5ef4c0684c41a0390f61a459299741cb268e727deb0bf5d807b6e64050a5a7940acca875890593682dd60d3c86bda5ab38988423242e0d17081d11f0155dc6b1e5dcc3c55a4a25c2b7f4e7c7ff680feaad7f0d5c7483a4db5f910527b1fbf1c59f327a30154fb3a0fe3e3fa51baf04ab2e38b124f78f0f6d638c57546a4ee90e0a671e3e81851732969791c5bbd638bb5eecea9d3ff1fae6fe03a7e54440d7724dfa6a56db316215b7681e8844f45df31f8d637f70e8c1539a30675effd745236f4955609c6be42cfe11377962e5298dcfa242cdf1694de3956355accb0b72db288b205178a6e23fc516a91e55aef0449b28d2bff536c7f9fad779c6e639863e6ffff2d729ed1114ce9ac634022a50c22de7a4bf850753e4c62e8d5257be4331c8db12a02bc0035ec73d6e912dfe9e58fdde73a7135d823b0ac0b382cc368298ec808395942abcce281ed5251d36e8d3507ae5af6d7886d5f989aee683aa06eeaa062106d8164bd86b615994e8b222614a2da545ffd7df91c193262140413b8255a3959b68d6098c7b4b3fee6b82fb1b06d48fdce5589b58e0bcf99da871fade617a06b7f70e3e6765dd620e2bc2e0de8f303fd5ca3ed6bc94ff2564ea4080d2cd97525085487c4768ad1fbe00a8fcd7d6e9af3e1b31792fc93b92f937c1c21c7e0e5830816578792e025f1508857f6161c8cf1a80e5ca14ce838a56a5314ae67f3384cd5c05aee86fd236a58fb1fa8102938d15011c748859ea72f8b3d09e1e5a39bef1ee0e7fe85e69788615e2a7f00ea7e78b016268c007c5e36c2630ab4cc6ae48661a7a20f33b27f2872cc6e5d8d0329d34843f1eb86c11f8d5086169a7e01b0052a6e769287e20dea768a6e16bfc4cc3eac79934eec810322307200574c978fb8d185b91c7c18a8dfdfe8d78c9af13da9a318fbbf6f2aa7927d677d37cec6efba6b292427750bf4a586b87a277938b51f7f3810625026c321dd0cbecf92b754b6fe8d3a5a07220f8c25f2f921e969d14dca1f67174c5bb28e07a23bda1178cd6d5e11dffd4565ad16ce14496e4a59e006c90c8f68b1410d3f39946abbba84a471b0f965d3ebcd03c837ab79e1dd91a23c9fc64b0086319bec985973d5046c155ab5015f9f3733f96417a86c768c62392662c0ea19c9156c693f19cf5651be7fc9eb878919ceb075052eb26ec36ab510446912f28a147e250942536161c812870249988130e8573a3f0ff1c84483a843df0b76ee9f7d212b5edd4102ab0709c1c3972b10b2e9d5714f8dbd6429ce1737830ba4f8e33697f03b5bcdeb014bfe50dc5df42060c59d7e25c61d401845a3cc509b68158c9e598ee2c984b4fb3106fc328b5d4855c9e386538f93931fd0aa1a5904247c9688a60b33f4492cbbfd33bd49332091164d2b3e6fd25799e6d6d63c93c9746b76beb1800f5766a7075f2175920e714162d9dae8590444d5cf4d3ead60dd800472d8f706f84e6b4bce151f0cb6e79bb3a02cc3bbd3d4db1569a5338536b58d816d50c68c2d8354d895ee5605115f3e9a2bbad84e3e814ae753563e0edcbe0e1bda1d5d033cc440503e37fe0a0ff11de5e14c802f4d9a362d15a907802e526f29d050ad4038183623e4f8b4616bff1cf58ce51b4836a8514ca802bccb652585149e51429409ac7bd8fee26da763ffb00b908fccfa924d6269b072c77685b3ddf5377e47936a26e1addb1ce96709239691d3c1694ee7465e6b7e2b8bbf2e25b0db08ec47ce206c6e047d8be4fbfbb44d5adacf6e21074e1b84aa93484018c4672bb983de749a8a2718eb89f2a79ba5f6787c2fb02c99bddfd1e20176321a7819b685a5d25bed230baa79151cf2b88bf4596189a7150f23efe686c77615492a17283a6e031956aa6c7eba24643cf986749c17032bc2bbe7840425c1570be6dd21c568d9bc934630eda701e25558a93854a0e8bc70046447fc2da01569292aef513856132da674d456631d7d9ee2d79daaaf046733291e56b4b433e56125eee6c91018f1e8fe1f9a7065537ff7fb1beac5476acf8ed06a81c609e5407de959958563fb1e621fe099e4e40e8b242ad95fe0f939fbf0d972ff830b75acf507336fd2b4aec3308b1371dcdaedd87afec1f11a99997d93157adbd9a0369a478fd55454419fb2bd5b4170e7ad322335b2b91fff4b284ff7465afb089f563a1dcd3af9927c2731b6e82c1cd2f2d45b69b53c3691fe659e9f451f82f33ade89b83f0235c85862c06c3e909651392df4c15a6891a83a8bdc6b0d6e1c880850828d09030da76e2f93d2b058d23e49bfdc7180f6c45ce4acea549578706896f2aa8ab350e2ed802240d5cde9889573211ec3b9db0591f84071c21a59ff688dcb63d827f0a9d3be8d3d94b2e984358de29fed88d06c1fc926dc3c63135d2d2de76c72542140a4fd8c38f2b44912f46ad375588b60b1e6159fdb31f761bf6aefaf82470da02aa1692b8102ea795ce08e373d6065d1e0896023f940173cd4aa2d6851035e1453f002f0c5d34da157567bda65e7ad9c79998578c6ffc97d880233c874a72d616d8c7981827a67238726eea347902a268c07fc79c0143b9a017a4c1029d844e235b28337493dd4856daa0ff637525b6521ac13e9e0fdc52d2d389e03ef64bafb357d30a16ad9368f38679e80ece18535aa703ff3edd2097d7836a80490641814757664d7b44687cc6ca0bd1c794757550c433fc2a8a85602487f50044f213740c47f4c99a3adb75819406b403a71ec39f801fdf93e8394c8afef566c5a90e7d086f2020018203c39c9659ea951241767ea0fec5bd04d98bcdfc3375f78915fb03681901ee9a83bcaad57839ba83be1608b04e447a042dd5c11159616101c4ec461f920910dc1b22a67ba049e91d5b7d620c2c04fc52d745c548372990a99fc38be97e5c396df5b5835df217480c7936302b5e8896ae77b92bcf662ba476b3f94110c2fb4146a071df8ddb216fa4f7fab585c3730114eea432d53818b859e1da03c8cf08816bf235cc9a2baf3d162fdc00250579b1c634d110b95f4e263238298a94f3236e5e25437574681eaf7179be5a2cd93565e890dbe2ff8c36b8138659b696ff706ef398f102036cbb22ef4c3a5ca010311a7784e1a67a55c802c3bf33b0452dee0432defc08c783f4eccd387d9167d09e3d8efbdb39373910b9b8b7345fbbe91203e6d045a1b3b109806445e4295530e7ab767cffc0732898e17f39518153e7228bed2bcefbc35f80f2880bfc49dcfff8785f1e3a42c01f01733ab6a3a4a441a892372b16e37132136463f0de66c1a81620e524f983234934ae0185427db530830e4397f0fbfbfe8acaed23622ac22e92a3dc463509b2e893a1a3c3b4ce2f7923859a0c4b5058875cf69046e9f5a8bac504115ac9ef684657ccd486c068a521c4cb8a37333a9d6c7b90942c698f5bb77f4e789135c2daec4bf82299604cb6f921c62b29ddcf71ec97c9bf6f0aed3c1b64e6f52218a2f80b7fc275b02a3b61c0ce0708024c0bfad03c0ccb14e62d9890de50e37ce58d3bd56dc9c38f36a4c9a093c1546dd7b681179ea06542cfe307293200da8cfe33c810d6d3194038021429bf7ead3dce9cad0930253f12c1375c0860e488944197eb51ac22ac018c8389c32d7198088af37f562bbdb4e64c5075800102da3fb2d6adcd48c21886db5a28468de7515f13e4e22bb64f830a271581c6bc4ea10367d6693eaa63da552b20ad36cb205bc19775f3785593fc6b9c113bd2369fcdc1f02a7bd1321a271860dc1f0cc86e2e26fde09010db8b636c812013321568f214a6aac340addce38b9d6a2eb2eb6519989d4294bfca3bf8f65acc76c5e1d542b68ec8a27cce9a6ab7d4cb0c23335cb0cf50aee70ee8bb39c363091cec8e59951ba5751ba913647558ec34909668264a08c2818629eac36301abf9d2b1677b6d8c2a557f297eeaddc75c594495002ad8c55de484d3053e861b9827b83283579be57f9dd7f137e314f2695adc70f801b773720f2d46d03f631965c6aa31eee286685c8178385eb50a0f3f68027eea6647569c1d91c916c22c3b67e3127b5088f05081d10418b9aa85982f35697416c211fa858c39e0a48330336c7d0e2bd2982df82b619d03971601a7813d92b54df1a5475f4a2fcd3341a3f178967be7423efc69ee6c695a89b56792586aafbcb897989541892d320d12cb451300ad88b3aab04024677240d43b3c8626c4607457fc57567153a38711d3d72dd11d5c9683c0363f43f5dfb01abb35a6d2112086bbfa3f0bf5441fe46ee01642ba0e129552bf835b73d8ff9b3cdb0bb8bd10d09c9dcad65f352e82b10d752a966fb5eb4fa3dd13b3b98ee41a2505e854c82623cbe7994d78bce83c3e7c9dc58f2fe4a93fe04d061f5788596916b9b9fe09a5776303dd9203599325686006e206f8b29a4493be656bff888e330d68592ed3bf2104d3d4b9147f2b351a72f4042ee3b04f718658393dd1f80ca0f6870d35bf2697718cf49284f6e3a19e48153b5289c8b48cd1e483d349e05687d9f208c8600a647223ba471af6233d7107d3c0a1998a7b6ce52e3416661b40802dc42ec5900ccbdecd42d25acdfc96eee8ac38dedea80fe1409e425555e8f50ff9c6f4e26948dc38f7f174e27152f7809b9f74b00bacfe041f29a75c2d44a476b56ebb9b20e67878ecee5475bbf7c0f2e8d2e2990b803ee91b69cefc83c8987d73a03a7beacf67703e30a32272ed4ee2475b5d53d0795041119a92bb587330cf1ea576eafc13b1dacee72f8559768132442250e85fea3fc4cfd85fa2004e718975ea05475240bc323fd818c656e9b2f91d6cd4bc5b7c8b7859e6b835c8a8553c1aba20961a225ab8ac91081b5c675cf6e9d49e1ab2cab4aa6eebd5e626fdbb968eef36058cac0a33d989c3725c1527a5be948cea9433c88a43322d72781c4747da416a4e6d2cbe1b816b30938ad8e1e4d6187dd5a74eb3d5ef5c0f821b655b8b31807f03f55c0521f61076d5f599c19e7af6d510565b74a9c78c8aeaebafaa0cbb7b66775a95a65a805de828dadfe5cf484530213067f8f695765ca7438d113d31d883b9361f6054899ed051e9f5016d2c61d74fc2062980051263e38811cc37ed928c676c8ee7d88367fb7c301288ed42f1525405e4f4b65fc8e4f2e960a752ebc4304c31e21f1c3b768edcda78e5f54ba2e8b7dc2678d556d66d22d7668af3a8a8f750c6b60255385d3303e7d531bc65811ec54564b84960fe8aa8d98a17ddfa18dd38e0e738746f446cbaeb46f969c5ca5681636e2d77336b73a8dd4aa3e52eda23d2cabd7929d1f25d5a4634a1c528be455a923820c4348f9c7cc3d9fcc8cec106516ad8419062602023423883d17d4299f819ff72c6de5912c4635d0ae08bedf7034e8f6e13933b81a0b964039c7575b8250412ed0ec03a8d17ae5d290ffbe78b6deb68a65429ff69fa7a8879467f9cd596076cb5be44c9fb71c02a74cb0176df8db16a5e72bd29e6d4b27d53163303e63069dd687c34d46ada448012fe9cb00f681d02d35b3be1518a7c10c2e1aa3190bfb1f5c8263f8a4916c1d274b692d609df4632b35ad9c4da48a7b68819243a8a63fb3c8b4c79a371de4b0941cbab4b67cfcf51e50f9089ef5c4f0ff416cb65a0819859ef507411a3bc15e3bc788de6177a52d92215ae118ef9ccbb45153e6e5d9205ae1a33a6e25b73715eaf7f33b07129758db6d6c7b8f0ed199d93aa13e377e182c3e5a4dec1c08308cc948c09ddaf848cefbc95692909acd60e8ffbd1048ccee9eeed1270a215cbbd21abee257c7a40755c234fdc4c46b00e7342d7a49e48dbb0864033d47ecbc4e09f8db7d422c315bc486c0985de537a2cd9251271d279957ce4986e40873d08370a8f03a4ce848a30f1021fc4dd0682095d626d4c3c0111a2c4b4502ac53d613ed1e595dcc969ce186d1845c756222d1f198187481a3bb3dd3ad7d2d4a2b81659ef690358031a3717829fc5666ef10a8a001024012aebd399324f368e057304279f98d23fab9814058f74b363753da782be0fbed620339c59eff3a6517540fde77cf50f904b87762d0e4b18ae3fb17a92dfa285207a650d429f579ea7363a9b9570d38ab4b447e027a0c5f48be7a35890e03205d5e7e157917dbeb9a549c84d7776ba4e2921456af1c9726a7d525c34d86093376e798fc2b4c4a599f9a8f86ad87488a553c4641a636b68e4b3ad354c739dd1ef51ab4c271b8ce6f709490529d1b6d1be2ffd8ad980896679331398fd8c0a18d9f6e5cf7e360173cc98445b48ccd892cb4ee8a1c6d3a524ae6a56fa54cba072fe2789c8b2e236ba093273bb6360e5d8bcc02b43db498580b179107bd5d5819786e7f55664047b4399891f1b0a9cfe2acce7c10de0286f0644216cf5e4e4ccb70dcb473615516cf4dfedcd71b0869fc2daa86c3779889480d61e9b465377ba7774d483b37913a641744890a89d372e9005c209963188d85c966c11628bdeabf78ef6cb098b56ed5a0882c698889e6d3bce8dbe53880a7005565ccc3172bdf9aee8edfb1169a1804c7dc3f6d0b065321cded3dde71bcca7b28b3b35bd4c38d1f926d80921048d69e57f0c4ef747f1987128b3d82b28d295fd215eabdb27f4b105dc957a281b8e6a579a818c6bab453289702bd6c4a0259f5fc45bd0ff1b13601c3dc5cbc8ed2c84c8f992721a9e0080765716e0c6610478f7432a4177598d9270ab70bcd59d0edeb92bc9b5d32df3cecb4e44e14aeb9aa7eadf9c05a1a1342ec425610816ffe273318521a23c4f6557fac7099f1b16caff184245951e4cb3678f0b383bff6526d0f0f491cd015135fa76c738306fca29f0d4f7fed8c65ad5ddf638aff30c820c46d6532b4dea8d70b3d5a215b975637ccf5684ebb373cdd1d7b1fa64aae6ceb9a89df9d56757f05d07bb4b68bacc02ab7d996d289c5155c34cdc00221809fbd02bf078d3ec383444f524a3f993627ce6441890c6d326b8cf836087d903e43ca204fb00d4e70f17fff088120d6a9859c1d623b50846be1e6714f8a1f4d9794623a4511215c0e0173b3fda3e478383a15c3a306feca5377b8ecfb4394245e124890e16cebe0c516ae7c906677703aba84d64ea74b73a1665cf6d2b85a64ba6b7a327c803c55950f92ec2389151da95ed19ee1fc8688f770adb74678f6e0a51cf369fe3c60fd00b6bf411b92eb9aecc46dcbeef733b48da5f4fa19d71f1e5631efa7dc76ecc044482c39f9ed50f1660f2a1dc85992f490fb424bdeaa5bd0879bed8234a463e0bd76c190a25810990f15ad3348ac36c3c8982f5e7f36f42bca237e4581eb661c0592e5c5f1e62a1df83a9ad1241a8afafbc47ab2d145142cb24d9f2711167a14cf0c3e12d0dc82dfb3ea59cc156f2caa5d73ad7d0ba41b958a32aad678479d285f7c817728a311faa64cdc98bd572aa691987781d9cae77f537a1f58afe6d6cac23e3cdeec2a4aecb02041f330db9af1f302ea3bb4b9dc03e385784c33fc4a5ab3c59a0563a624bac5e37949858480bb88b3271608913a7c365620ae49e9248c0c5dd35f8e6377e869ba32e8b76e3b02a1fa7283bc591b3111fcbbcb63e1c30d3c0cc997e85b534c1691c466dd1b7a5fe4123cd5a36bd7e2d56ca6c107a235cbe2ca1c635b583d67e7093a422e07586d6748c09069fbf41781e5c90ca98231aa131f4c25e00d7742c6b9faf41165e5b94b876a32bd5855c885ba6f14ac973ccb85569d64afdbea1dbc124f4adcc8309527920481a36e8e25a69a3f911db7578fe0bceb22615776008bfaea21b694f62f2ae0cc152ab543ef2e7fa5c5af42834fc579a52ec3a1c699c81416b054c3fc6227b34ce4d3ba29aab992607e9ed4b46ab2ce76f915679bb5e7ec924ed0d21e07285d568e3009e88ef53902ab40656b392f8142b21f4819d5b465f916800dc856905412ca5fd9c971c8a84208451a2e6fe2ae10d8fd6f0ec14c7ffcb32ee9c585da4a30c41abcbe7983c5b9b4d1f50ebdb1bfd2a50c53115b6fc2a9fe8b0dde52d255fd9bfb0ac3dc7c2a7a2128c1beecec9f64528790ce2bcd505b9d3940d731cbb5a5828103a59690213504e803eccbb5fdd5a69a6bbbaf85c4c548d4ea22f99003992428b38a18befd3fc8cb9d83ace71bdb2a137c25944f8051aaffe0a2763a386f79cf756657ffb7ded7ecd37113e3750a1a08639193dcf624bd0f446aad9a7681c17fea2b126233a63461bc735fe29bd4b576f8aef5ebb12c7bbdb6a538a70036be02afdb6ce9981d80c9d5224119844db80a0f89f88e4bfa9dbfd99712e5c1b260bdf0bed8632c036e837c8e337c53c9bd07102bf33922e117a697eb4df1c22d18e8e6917327a7ec4d21f6486180ddc267d2eddda2bfa9a180811c39216d31a8fb558a03c28f1e5c41a0189e2dbbb9a745896e3af0980dcfab4cc04a11f848770ee4115488f5ce24911501d294647fe8b8f24b11a79bbdef3918f8a9271fb86f406dddb002064cddb5a70ca53fce4124af701519550966aa4ebcc092d04701a62ee3097b39d4907014260d03ab616e429e8931ce6e0aaa4ba198ce313d6abd41dffa74e86ecf5460d5b3c521de70088df8f6462aefb33bd18a38567fbdea05c25476a62e0c631e417c557e00adf5a2dd117962fe527ae7495cb8eb289c568a2bfad819a204538267d2e178a8cbb5f2b674153998e08d97d3dc0988f3b3fb7372f71307274ba1f154e604b84e4ce981c198b7a60e744768e4f7d4db654fe22343a38871338839b6f2c28177abd621b8d1b356ba7a76bc20b641831a720bf90e0c69e93b901297f04daba3bec3d28e8889b70b486e2adf6973f794ec76e0547e1ec08eafe2bc1aa78ee1e6b33309366d89ad8558215e11a85554269fd97ef55d6f2de1e5f27bd6d878c966dcb5ec0668687d0a20a7e02ab8185aa0a464ae37818b3546dd76ba395cda23ddb9be05738ae86e5e093c6aaf8693d9660ab34ca33c9af7d40f1970a32d29ad750f0311668a6325712e6dd60527a7412e6ba8c447c533d3e5b824d4fa4614b0e23a9920d0fd378b4d3679ac52fedfc1056d8a29019aab6140f2440cfb07494a9ae6d5107a8d08f6eecdb2ff32de9ffad1a17511b6e4b2c6526d9b58aad40967e8e235123d5ee01978d26af2ae0bc80da2850eb401c761fc6277757315c08830c038894502b998b83d9c9465b0b03aed0f924e62deb9101dea1989d8612f03cb91e0b8ea7027e5c0bd87b5e5c5bd04aa83f75ef66bcdfb222a4756b4336df73d146ef4a13f0d5ad3e65f3f74a2820e1b9fb9b5f58430a1f30a1947e907a1763b3bba22a3d5ca885fb16886ea640624213d689f411e9c196f6d8345ced6ad064dc4c1235079f6c2384ad9c759b0de4170a434ce559faad0013508d033c7a6df538529e0080cb7c7564cf1cd2fac7e1c2fa773985b6ed95b665edb41e235269c9d127d8d82c57c43c6a3af133df6d21f378ddc5adce21a80a8005728a23c5f903479f60a28dd5f79d2b0c025ecd11d1191ce1088e4defc904fe2dcc397aba2ff69640a7021deba11cc481b0b8ca4e87f745cd084c974a1d6e950d326540467202ab18aa20490c9350112822366820aa08040e3762e4f05033fe6df4abd9b643f8541d86d663ee76ba801d8ea600ae57b3b802df6421355a3aa9c9d2aebf0bd4b36c6ee4efa930ae540dc1256ae0e16bd80ca226a81ac9542a54cfc697541f93db1e971d70340a154eac0466f234eab9017584bb04353c12326654eebeb62d3798b6f993b2471469f133d1872f29678741fef039f022e18abf3041b51e2601a40e41c656f875572702d566e58f6c3a95d832edddaa64b472707264522be74d0def8c9c202c2c092ad5697223b4a58a068ff7d8693fdc928d781f3771ae7d3d5e390b7827779a0855cbde5190cda4c253c4121429dd87dc06dff2e95a18dd13019b830b0df770395f920b316e36b1fcd1af006eb21a0dc9c3e55d387db57286cd0fa7b994d395a32faf3972af24f4420db3081c4b45aca9f928abb2731173441c54e3676ed7b3ea2322056de40d0c2e623e6daf27e6955e60a4e24e9c844b053678a68849c48943b82266ab23283c7a9c4975d1560124ad23d44c2ad8983bf94bfec717505d67ddf0e596770657369cdba4b3d7ef02131423c15357087f6359a2b41d36358463d1a6309b29ac69caebc636ec444b3aebdeee9b087b49966a13803a19895c193c12ca73516425c676227742d268278e6156a19709c1c74a091601f32585136e01ae1bfb54409695e869161a15c9cc8a0ec5f3c8f995ab4da0adad3a1c60b122221a634e592d0228cce72f401793c9b88b735704e653ec3fb5ee2e29c630f29063f02e66417dd7a835c964cd9fdd0dd7b660763d61733f0232745523f629e4bf75d08d5d719aa20acd288c052b16b7dce8b19b0eb6a9dd420925d760c1a2273563bd1599f45780ddba05ff3109c663f94155822ef0ea903c1835a8ef3c60f0011149f37a3ef1e5b2e244c6e199455a38f9e1a30df0e8d7a06d3bb60486c627728a2e2b1fd3cf83b7f07539717aa023c855a7d369e5024b6141333e92aba34ca69e2eba426628916c9ab84652e1cf390d82738054bb5fb7f6ced5ce7309bb58729af4cfed7a64273e6b26ddf1c5884a22b12e1abc08b548048841d18b7d95005fb01bf1bd7109bc60c3dca1ff0d53944fc91673065d36d033a9f66e24f4f97222fdee86089d04583b69c9ccf7a6f06aff98849e60bdd9588e3e6b51303f0e103a5994ea6b2074cf082599dcdf413cba4c388ae589298317c05e74e5bc78e42c85f03ca51bfdbbc33389715b838dcbc04106c24abf218726172b1f24f5996f77dcdeff5b9d2b4d16b8019fe68f076fe706028fe9312c969d6a2d0291049c4ceae75d41cfa4e23244c5a7a650b045cf9342a1531c73e222681884830f880aae84912a2e0e51333cfa2bc2b0889093a52139dd92c8ad4b8edda9145daf0335cb39422943c1fc2945b91b74bbc60169a832d3762981068f97b95724a3fa72382d1b856ce4abdc03d026af6822d9583079008065981695259cfb2770a6c398a347b52317f7d0626563b78e9a6aad33ac3eeb50a66c1de85f611a9fcd752e9c1f49b798b2b1d7d13e84a73bc555b1cded4bcab4c155849b32186a1186da33179b42f305bf3c4388cb1632520573825f1a3ce6f300440f111ad09e6be097914e6380b196c528047ee968e6097e631e85f4be5c7e4ebd0387416a064798909e54d6340d4163d271330c8423a7c79b3cff327f7952836a19eee7e26af8aa9cd0c698eb66c35c7256327666598485b90489febf09e73cd397271458431a448f08b84cd724258f07a05d52f15c2c3d7c4d68ab80f54095390dd0291146897a243c3ae5e2135d0ee9e7b82c2ccafb10fe9e7f863ec6eaddedffaf9ee7dd4aecfeffb6f39927b934d18bf3cffc2e8b82e615c8753f47e9de910560ff060c03ab2fbf75125af781502ef90dd8a0c1a62445b039ed6f1738add73eb339083a607d62dbd76ee7ca91c9aef26fcf8d437c23e486c3b3c9b8cd1ff44450e6892c421349ae0a0c4f1113a80f0034cb331ef52d668f3c0f3b00588f89ada45aa010fb41f4da33b8c3d0f2741c8e208faf19c4d48275f7933c2654fe986452004ff3fdd7f1b4bd9a15f421e223479a40cbc20631bcee2af937c2c5b4193aaa1836f8389374ce22b55fcb8ba58b6115947037d88b0fc22b28aa02626dec7f39e5cd7d4048d5a071e840196547e08afd327350c6560926ac34a9e68acf1f8cc61c2422cb7c6df4a3d360acc1767e1ba4f3159741808baed708c0b5c1511a01091720be62d9c1b3fb0f9a698aefed171830bd27ba9419df5f53bb3a07f7a5f6e7dc38d1ae2f2187a14ecce084573b597b8b6336f4a129e95922e97b57cae4098b8d50280459cb85683c23096e25a59f7594f98b1a949f44da72436d7d038b9fd1aed98157e6c6034e40bfddd87cf485448c88416d8d38bbab8f96c28002a7e724063ef935ad2e7436d0aa74f05924dc55e98c1954fd18ec1ff73f338ac931b2140ddf6feed2be2440c3f14b4da8424995248b6349da7378c9aea51256dcdee01388f7b14b99f47dc2e8461dccd0cd57e059c3024a2204728f690313a15115804d8208ab4393317a69443406a8b8f31d1edd15b8cf7f7322a04354380a5af17e8a1b673c36f164d76cbbe466fd023689dede3c2b53e91f50e659d199c06e605ce77405a84afd23e4d167a6abc2ce252fe524fed3fc39fe488925c2145951e322b8706b4922e9e52d02d2830bf339f70e373eb05ff69fa654a92d110b06d434a47e446e30d156beb160e5fecb31e5ececd680c62284f6ffdcf6f2bbbd9bf1430bab7c3461e5a147e1665bfda49e0228537d1dda3392421b2886718f2e26b7b0f116bc316145c7042615a315cb35ad15753985280a5793508dd16be73f38d6efa2d49159d3bad651831db770252817c3a559e279716c62799d4a624bec3f04eb31c61692a668c9b42655922cd50612fa0475409c069d6e18b8339965dcd38d61fc0319e7b3630c542805fe11c49e0c56305c15271d99819263f7546eb95f4f4ca37566396baee4f6a42d7b7353fcaad96a7517143f171aa55075d60130b00000c940f5370f4fe778d538183748781ebc9929eabd0814f6b0476cff936d84104208d9646f2977b70c780c6c0c13893c318f128f128f128f121269eb674cc9960cbb1b92c21714f8b65e9bde39bc9b6cc877b62ac60ff7a6359dde9d964a977904c0a78a83b0a10c0d1bcaa46c080261c31936fc00ac0bcb626bbf13800dbfcb43006c98ddf37908653c9cd705fde711e1dd66da90511a68cad829c30200683e460c97f83e842ede28601b1e7d6c14a47835149b139bf3c4f28944c5e25cba2c0ec386a517d6a482b121cb5d28140a3f27b673c37e7796cef1babbe83e2367ba7ba3a0eb2cea9b415787b5d5defaa86419e9fbc0784d2d805e6e38e70be3742a09163224d6883724f5b8d9e13384bb04c63006cb329619e6ee11a336ca53c946790a7924cb3b9dd5fec1b7d2726ee96cc9da92fca5dce9155b44e59186f4950ba1c24dbe18656751983f97cfcccdf15af185bcf3e2f2190a26c23bec043fd152500105885263c07b58f8aa48265aef0cdd5d955349833e489234c81dd659f66637b51dbe34e475b6f9cedfae3fd81b02898f3cf1b3ec4322a74a3b5f3ad19aa669df2aab20a6b2177c35b8cc3ab8cccd210d3237550df2d4612ba66af234cac5e54f227348a7b2f3a7aa513a4ef8f85c663ae312ee12ef4cd5547573ece590371ae48b7764ef4cd5545dfe44c213c9e5e97379fecc1f82748e0cd2395c10cec13007d8c008486e1c2d11428b9a5eb8af4cdb3a2fc4c361460f7b203dfc41050037da283d1cc06d7908c48d0f8360e1e2c26272942e7c995faa2882f22697dab514e0cab310e0caaf0471e5556a8c3248a82b3f12809411c1f08713a86557f3b3630ff9d9f563de4cd222f3cc586cb9bac0a53e8e33ceefcb69fe7118304626d698322d4333c6e08c430fdcf98b87e81abc6e3478d1c8c1371bbc1e665ebc7aa0bad7399858e35976953a9858a3b9738434ba06251568704235bd18822fcc4a3215443c5dbfaeeb7a284323c6f83e1235514a43899b4e857a84e0b9d7ea46a3226bb5ba176b15841b462bee1599f0ece875b8c4edcbae51f3ac9a69e022cc9c69540c596ebc4ab4416219bdcd08d1a82bc43d62d1c6cb16657c06de18ca34896d08a1a48817b691001d2ca306037cf88557edd5f0cacb90f8708a601bac6219fd043040471f3b45b161df6f25d2c93e99316b55847b84dbc78a44b0dff54008b7b5ea04102e0fee0c620dce418c41846df0132ca34f433e72fb97c5b0ebba9c5f85a456642681018f8ae6b37548b2a3a2c1f9ac69c77796b3589c2f8746aaa0080501018a2904afe70a5b10144cd04408532b82c7d26145010d448aa0614cb89ae0a3a3856626605914baadeb38961e2134e0b62864ad2aec5c718619345721a531316457965151d04eebc787093964f46a89610b010854494c69e34ac5895ff0818e8aa673ee25af6b82a1754d9975999451b6e0a39d9d014bc36df6841a60c14a2c0df2c90f1a6affa001a665b794b2afeed9dd3b884a628cf86e25779ae10bb9e582ade8d44ab39315dbab7e82bfc8e26ef5fcf4b4544f98be4b6ab0bbf1bce4a339881e11d74abd3c3c2b7a4dc997a3353eac84590dc6b3564f340c9c88581aae6ccb3aae0c4159b39650a409329881f68edb84a884348a87340abb72003146bc00628c78994b9b996c161bbe98767c5ff98ac5e9207cb1c1ae219d735271fd2c416128084943b70305128c6026d128695bb2b0159463cfab820a1f3769108cdd043524e91e8e67565445d17ae1271a8c177fce8cc7cbe5535ec5c83dbbcba3a71d4b650e25649e29281e2f371ac1927cd7435e3dc146ae0b25e53465da5ed53622ab567bd560cc31cf3c8d0ae7cd32cb3c0d46cb441aec55f7136d446a5ad69689d817afd460fce5d5f4548e227a489084918a252b0f695c6e61952a4b5da95fe5522af75c32e01e965c916cf88d58d9177ea56b363cb8925975a96f3ef36a78c4281a8ccccccdd3066c3110531e53527a766cc9d8ba4cc4c2ccc8a8849f6814065e2eaf8c342a7a35947e9f08032f978958b0c178e6612242429587341859c8634ba751bff10937b043124e9290a948f3046341414892a01240a10435a02143e386cc155acf0a049d145520d2ba628bac1d3b28418a1626024dd52d1070ab2700814704982a043d429ab39413ccd5ea093d73683de107444e9022351ab090aa26dce1052c2c4ca199069ac48c70dbb619c1527ce0a2e583944c765bd7712aac9d1874dcb6846f667182a10a225633576114634ba39a96b108626e020c9c703d5168c308b48cf6c4e1e31bd820c688e715cb886745d6143ed28dac25b0809326297bd54f587123159dfa5a0d45a3a2143f54dc242bb1e30c8ae20d71b2844024c6cbe69e1b3fd98a1b25f788e1c673148da28d8aac27542aa9ba8270ce37813c5972048a6f4911259699535078fec268f0f145494961144e61b631628b929282828272141494510a8acd98cc808b3061c6ba7d2ef28f943b1a941813bef843e545e7d5d7cda40c8539b7c432754403e1ec49d2605be193a95ef5eaa34828ab67f650d6ecf931676638e386f2a58c2d9986c29cdb68f8f8214572fb9cce07059df65bc327c39e5fa3e68d4b9a900415539e6a490e865c3a576bc8941449cfece96e5324f1f4d1ebca585b0d32209048d1f296c4c00aec5bb2d3ba9630430d4fa818a0184d01a80793e98e0dbae43453c00a3b5124e11f7c9126b2602af8febd904abe7e7ce4911488d021ac365ce10a736823700106aad485061d16b08134a790821d3a051d2b261a6638e189c808aa8d46885883be7f2411f1a23c03c3c71db3333de40bb2a09f1f1ddce5cccd6a9c3b52f686614fa93337f45e5811f3518822b8a75813863de3beb0a674ce89e97c1846299d937f644ab33a66f402eb09abd595b1955c39850b8226128d0a698432a7cf3e99ea4e6de69bc5f50efe91a7963c353d46df19d67d8e916850ea689053b8661094913b289f69de9132e08ee5309d2f8c419cfda6531ad73bf2f47dff0efff08f7624a5777a87f60eed1dee210dfa48d34ef4a99a28b5bd13fb9a18d6750d5a07fd837e41d73ecd13b691d0bf23a15d74fe09fdfb03b48bb48b443b3b1f109d6944d7a65dc0f7d091f86ce84888ac16bac63fccdc3ba16b32c5c34762a337d440cebc57bf1b7ae933b6614370bbecc6225a8e6933ad89bb9ca5c7781ec8f69acff48e4ee9f0e479877f7a279ee425ed1d36722f7abde75b42cfa5bfbc9a6d9fde10f39ce542ec0ae5b95ae4a38f5cacf1c52944b0fa6aac614e8873afd805f82c4e6c20aee37c0f121b08d163e85ef64b3b4abd44a1c70643dcbdcfbfc37e73d357ce2b8b7c5d5734494f4e214d18b97ccdae40faf3b789b86ce499e3e3dce670c606ed6d3b640f5fba8cb38c4f3af8ad70dc576a15d5284f2a9c0dafabfe302a2314fea387728e9b917c491ce618b93c1aa6478dd2bf5846a674c8533ffbc130ca715c767a2ecb22d0f446369c77344aa928d721533dba5b049ff6eda21e9d3d94ddcbde65990db9cb500dbfb074376dca6334025d69651abcd1277e33ed50c0c58bb321f6c8f11193f492f24a806c2f7051e67b72a313902024a8015f9c428813b7c5493b2379076e8e1eaa373dca7824129148a1ca238e6cf6154cc4221b877ca1cf9590e8a3dbac5c743b7a47b21e4944b2320d72b2d3a133232fb2a39348a4aab5e123bdbd05441a1d49b2e71a5ad1fdb556a6c195d14cf7306965343ace67a3cfc8ee5051b133f22412898e52bff8ef39a39c7a317ca17ff2143a875e1aad6e9402115ad143c048143a27bb8ec42391a571430f59cece529fbde55d6d79d62891e83ff3b9957f32a572d265ea2add4df62fdc596b5ac0f7a1fcc57e40e5282a47f9074aff5c440f4b9727d1455729d5d2258d1eceb8cc83ab4c83241a0d923ed327d97f46be661f7d57c4a2eb685477d145e79a73dbcb1a1471c886f386ce896ae82a95c54bf5e52e28e778c4c38c062fc4c87a36e7926a3843d2ed4735249dcfb50987b7725b7930e118dd3b119eb521bdc547d666f4fa9cab7938486f61cfd9ca77f0bc5bbe9647ff4aad1fd5786dfd3fb37252f52a5faee1e4e1a41a2f90be21ce1dd99bbe2d3c4b830715955269c7f7a1a0cc0a340882924ce91891acc6c497440558b0787939bff36a34263e1d3be6a34b015ccecfba00424e632a80e9a3ca8048a3d3c47797378172d3a5675ac07797ef40b9e95ce8bbd3d3a1c3e22f979e0e1d9597ce42e54dbcd8cb137ff2c4ffcecf1ae452bd3c916eaa9f3c91ae5249a18bc485b096226d7b4bfdc886b17547485424d245a2678de20679e5a6d05158fec99469c5ead0295de5df517e64e538256b0a7d467962b12b76c77794a3581c156b0ad921f85e9ee67368bee7d07cf69327318c1ee557d211aa39777452e511816834381ad52ccc88f073a31488c00ad9ec8ace7d329581393428ffc2ecce1c1a3087867f14fb591979e2ac411689eaf650d570ee566ffa9a707090cee9b4973174b26df89c1b629aa43a14c0d7861f23d53c2e7666c3525f33c6476d36d1040a2200f23a6b775cd9b5b6cc472a458e93de3d99169207a99225c1c286f3caadcec8937c5693c832151b9602efec8e1f1ec3e2d0ff70594d0b60f1f91d3e9c5eaba605bc38cc77bc388cf618cfa179716977c03cc6e29834fb6347cc63581c9c188f61631810697462ae13630fca133f8706e694067b1159d41c1a1f6a0e4d4be54a3934306aa4f9a1469a17a5fb507368606a8b526d913de15bb9cbe55fe6cf642285cfa5c5f93c2eb523224f5ccfed7886f0855a93269d0d75dc8ec5311695d65963e4e1ea2a0f99db714db816f678ab689466815cb7c53569d48b457d9a666fae8bdd87012e207379c8dcee5a1319c50dbb09d4a5beed9ce9dacd94b535ada594e75a05e8d9c2aae369d1b841c394838154aad67ecccc88beecfa9c35759a357536070331e1d382562fbf30241ff6ede1fcc1116aef4bf9fe3123cf2230bed9609a76ae4ddddabc54d7904e01f133a968545ca285d67db9f3c9e54b87a635ac47a338285aa88e4573304d39648442aba61cd8b5da36cc09d255edf439b4873957fb112cc775cc62fda21ec12ebd21348e6dfa9a77c475ecece1d08ed93032166528e46bda31ffe20c987f617138043b5760d1e0b078c1a21ea9a7f5853d723d88c682209a23a4cf6a7ac0bc800f9a1051d15cd7a2b7801f7ce1fce19068ad06bfec66c2e09cf48935cb05c1a81d913efdc44ca08e4883cc181dbe6ed528ec1d4f0dc21cf95dac46eb88d89f1e306aa4d9a41673356b83d92570986074f8c218a4557147a8d3e87c9c9fa0465d5a2d42e747a7d3677a6edba8af4dda046cb608d69aa44d8bbdeb0562ee656d462ec72a89f485b8779d7af1ae7bf7ee85a5f2c572414e620b78ee098bd48b730ac6d98676d161d4179585e8e52a2a950b6a905f1e72412f9f69d9b1d62ef88235d471afbba8a1cc4b50a3549c706495b38d97f7b8bc1a951eeca170cbd9ab693986e978b1191329ad09bb6936d899e4593c87665693a49776073d8bd3e34c13d52c0f99bbd9acc1ae894c757deafed910e6762f3dcad4cbedbaafb83c7a26971ac6dcceba8c5eaa2c75456b42441d748ed5d14f24cc724dec77ac863b4297f388b9df677b387b38626e0fc76a8f98dbc38d8b77409ae6adb498defd1bb5acb078352c4bb484568e3d729e112dc7ec120d72ccd5ae591b896d7f3926310cc3308c33c9cdd4bdb8a8bc53803c768b9148dfb4bf1cfb564ddd4ddfb2ecfb4a25292f6beaacc9863beef6171beea022ab75c833a27bb992b81b2855b693acd6866fb3b7d2daa8bcb336a3cb98cdf288b92a768eee72eae5f0708c422b5ca9a565a5a5a5e5eaae96ab5ba251184bd9a3c12588b8598285c5c577172eceb24313c2c7c2c381ddc56724786cabd4ab61d911d35c08e5b1534aa31653770dec53ca49f689b33fd9d5462d9664b22f6c2fdb1dbc5659eee2d3cbf1e160b98b1df3f4da7a7a46b4dd7a6b1696cedef4e5c15d173fbdfc5aa2859fdb2cd566bb8b73d18bc03c9535dc71e5397ad96c0a9fec2b0674719670932e6c5cbceff476ccb66190ebe22e8fa09575863c622e0ba8d98e85c5b25c7e3fd53047c8753958c31dd7e53d1a75f37935d6a2be1e2eea411443730408dfef9e8743e57eef781a850a35a01b7c21d7ba7c177ace43790d150df2b59e281a647959e6d38eec5039a7c4647a797921915e4cd253b143b4dc64b1d3aa03d35243974b4dc364f486307df497732fd5e5a6ea728198bb626d5c6e1addf49865df577a7979990fe7cffcc9b2effbb93148036a506b59f9ee9696964ddbb0f73b95c79c2bebbcd8cd7555ac005846739c920699a6c77c78160fbf179d8271d2b920998261679f5efea2cb58903e6a5feccbc39b6a18735facc9e5a41814ba9cfb69d4caf91c93460135ca9e0f538fa0a8fcaa2adca649195b9b7cd736dcaec76b9a66c30bb3216f35ecfb72adfb3a93f617ad36a9625b2873351bdef404b0cccbb18dbe42ba0426904497bc1a0cdb6a771dc32410abb8e1cbb763bfbe994c9f69bb1e8a6eb29ec87ad133427bb99b355def2e31ec1826012bb1ed9dec306b83fde5de04584627daac8bed2e6c386fb789ba873c1b8ab66ee77258bdee75615767b1779500cbe06eaaa18f4613601b9876acc3d12ffbf2eee1c89acec96e026c630b652ef710bbd4b49b2e4366d3e8ddd93302fbc8866cb2e1bcdbe527e0129a1e9aec4d873e3a17b237fd99eccb5126c036b4177929efe2d5488eb6765dac336db1b5fde5e505939d0db16fbf4c6fcc6427c032b697baf2ad92ae52e304d846bca4afd47857bc1a52f448f192b42a1ac5f570481ae4cce7d3ce5a7635a9b594d42a81061928661a1669ba9e1b8506a451d1a9c9442bd2c2f2507b34c85fa251db5f6c88735f64aef6d187fffca1d827f6f923398869763cdc61bfb01ffbe525205e93955dedc12d91842ff4788f08dd6040a6c7128c6118d7755a2dc2e2b2ce2ae4342cecfc61c2fdd2aa433fb9d191feac2238cdc49947b6988ba2692edf6a05b0674df842ec2e0fdb1b021bd522f49c4be55a5c150df24b1317538bc9d45dd367a73a1e53e95b0b9b01d7e2aae87858a55d6c78ecd7b58af5d04a952fa98639ab1f13c34a5a8bab82615eee46ea525a934d6b2253377de2936ca83db96cb2e1a6ba1cb409b95ceace23b6506abc586b1ad6521ec3340dab3c22505bcc65155bd2f698c1d7fda5724c1ad42c8fd8bad2724096fb6990351ccd867cb5256ec8fda66f2824d2ba905713a22f82c6c5b0986b4ebe07f8b0ab5c2124d4829d845d45e4d58c30cc32e998112ac764e872964b1bae58edf25a77cc9afa98d6d7756cd8754e7379a77dc7ae5593e9d6d41d93d5d4bd2fbb97eb68f0da432f3817bbd7cd48cd64b5367c9ac55cded6c6e59db569d1ec4d5f2e7459b237f2aa5cbbb4210bc908d2b1b767848ac5ce91b06dc31aeb6f24ec1ab6b586490d888f7d5acd6255da0934473e220f0766bb7311015df7d1b763f508ec32bbc3b7d990553c1c18cab1ad8e70a2f60be55ab540f86ed666f4eed3cb11c2317a876354c39c3bdae46874d9510dbbed884dfbe442dd56bb6b24d98641e2c88e1e3a16de5cee2835c4b91c93de4422ab794460b740f886429b86491b87e08e6da0af676db84b4d93d78561dcb5cabdeb4ddf8e3b56397a8c045fa48934fd90fbc17ea6e5336d90891db6f790291a9bc8d4e4583245eda4a24f7c9e555ce65897cff5c8d4b4f3479e6e0605adc9e587f34736d1ace8d4e4d1a0124b7882322e48e3822ebfe3d13a9eace3b9dcf54c267de25f75ce1f107ce1fce9c1ddf91384af63dde842e6cc20bcd2710c40c0fd8bb3882266ab8846491a32a54e7d29da3c578c33d7bd4f64c3db9145b9b27672af6bf6645767b156f67dbf66cbc96c85b24e474657dad7612db6ad7bd9cd5e59667792b8b2675a6ae4a2ab70b6eeb58a82d6ec92b406f1745d07d90fae22dceb6137a1ab18e3a22b7ec4e98bfe502a2814d4e75ea74f5023944599dc8bf6dc8b26b9d7a7ec9a1c58c6a2392c3b24c4c4342a36b73c86d51b7dba6850378434b208ca6797b43e706e37e774cf3b90a0e7b6b8710a12a0e04694df6e4a6ab0e9e7331b4a9bd5f0587d898639f4e1cd2563e51b638d9bbe527257edcbba92963ada1fd3c817ff387011269c410c832b86c0a2c92ce999467a0e4db6233be92af5c8751cd2b3f94ee559c5e1a1b4b3bcb381ef773e470b271ad4bebd6336ecf018d9e1a63ebce4fcc34c1e3215975fef3204273b8997f04f5bf69948daf085ecb3c334fcce65083795dbf9b59ab22e3ba9e2047101862ab06848c709c2c1618a158d8a3d323a4e104e0834104243b2474cdfe3153d4857052f18a1c9ec1153cae345a13167e9b3f2a071bd2555d0b911194bf7041bd8a19134128ae427548528e25bf9acb44d6f8e52da611dad937e06dd6be51d9bef6ab04a5130d33748eaa8994b188187615df7040d258ebb22687859b9598b98b6880679226159b1099d1e7be8f4a51027bb9e734ee9e5f09e35d86557f8fa61fc7171fad2bb966ea8c6eba2c658e2bfb215dcc409121f6b43f6f9b28c93b96880d170987774b4aad8905ec55a24b01e329d84faa19bfe4ddf8ee63334e7b418cdf490d8eeeea6f1ac11dd69423dbc8061711ace2096b96a277c38e9622f2f0fe7c56c38679763bb986d1430110438761d3b3aa2600689bc9ac6aa0eaf66da1d0d720371e8e16df4aac6436f201900c8b861a346d7703ab9ddb117c00037d118c0867dbba08b994c26db9de6336dc2a4cf9d79b55ef5bcee1d3d1a9ba33f6defa05e3c4618169f481a6580a3c0f4d0291296cf38ea34e69cef3e66a9f7103d010870ce2302a399c7e827120104e0b1ab0dd58442781e11d86dbc033c847daa586a5c08117a0cec002114af86ae4c956fd7755d67a209d9bef469f116bf76ce581f18327e7a577b08cbe83e230d507d78012a3d0158decd0e01e033dd1835dd6301803d82e5f36cf2a60aa304682099923b302e030019362cddb0e16dd810ac6181a60ab3a1ccb42178b261098461032cd505ca87f299d6543334d548539d349529c68e5246f1c6d4be2a355e9696a9756ac5b406d05255482a2c13ebc48ac958b2cfb22207d0375b65ab6c95ad041080162da5ab623295cc549da958b4e0c1e4c2a2af006abc01a87db156abd59291c182c5cb597ca6b1184c628d55172f2d78a8f5cad47865d4bed86ab55a0100c6545f633095ec1e5eb8b8b077f199eea1c6fba2f605408d17a6f6a5ad56ab15c3879617a886f98bcf34655d3fd930cb2c659528eb5ee7c0ea2388eafe60e74aa65e2a7dd74b5af8e6f5eb9baa513dfcfaa6d32918d7f51e3ed3608df787da37468dd787da97eba18ba9fd1feae42760e9dff5e2f227ce07be52cbc25704c67bf88f79af73a76e364a3e4694db1a9fae1058e3eda1c2a82fea75aa35ca538b1a1be4a15e2f974b8d7d6aa9d74bd7596aeceb2af53a6994a273afa3842a91ce88763dbb8e2de9d86bf9854fbeb71fc92d58c815d96576995d9e6b37b021da687956c90eda9199ca0d5534a02feca06e43b38d3e95492ebd44c2a5d7b2f04d1f3db46798972393ed8698cae289fe6b3a944270290b21973edec9cd5327117c7936b958b309d0c5baf4dc58f8ae4b3e0d0abaf42e614679b46761f6e4d2edc9dd6c3839cae030d61acb36ee46c4b6c945aeed24d6680274b137769e969dcb8c9d7a3545ba77d57ebeb0839a0d9199b854928032b932a89d34483be80adf668b08394d77ecfc849e66ace2272a277da23232a841fa0ba56b707bd841dc431974e93ba89d3c8935328d9edb32ac73607632c56887da10a4848ea448c393b642921952848105062157341f61389706b328be79ae1ccc7c3462be1f736e1c2236385945847372790a1954217ae478e5e4686e8e0df6c55d959ebbdf1d31ad0fbef240f84a6bc3efb78d69906510b80813f6cf9d31779e133224d678e2624e5c6d8a1960ef3e09bbded79bbee99b769a86c2f3d943bef413fbf4c1413530423bf769fcf1741e0e2aa5c4644c27a0410e751c53cc234ff351bbdc02c34278787865e44eeeb9b32def3c91fa3a5148a4fd86b4793876727ce0528d6a2a6f1bc2fcd08e61353b17b27744bd98ed243305853b21943b8f4ccd67d9f74d1e9f18635ea3c2c78251ca412cd799a5c43c2c954b25cb4458ea0a4f8c3b25ca6f44358c2fcac7356c71576aa851954efbd7bd0392489fe9ae24cb3b55748e8bdc3cbfcf0fc3b08f56ecd88734387bc743e9f92632e27961185684c37ec3b4da74addf95793850ecf57d972834b529be79661f5ed229eeb3d5e407e84e4d0ad9ac3b1f32ab95603136910667c771ef1e360ff6ec980df9364fac41a451613fe3d1a2e783f9b29159833ba92de29d48a73c3b3124b38be137cfcd8e771ac59785346a08c6a97431862837768ae3a9bb9a61598c31bbafb80df233cf883ee58c56ecd234cba2f37a21031765be2a6ef68c8992cba751dc6d0a224e6e8d1ba72082e462a7227e8409bf2b4f69cd768ec6d38e863adb9da3f15cb7d95c318d0a6ff866e7ba871cc775ddb70ee67235145d7bb937a5ebfd66ded043ee5ded1a9c81939bfd6322b673d6ab31c6f01eaa1caddfbb8a725ae3b70a7337bef6146f087ef694ec7cb3a37c3f80cccb36f3d183c3f8dcc69e1174e31cf4dcb12e0f374e6183d5e59a5db46f7cfaed61165e38f81b0e3eb52f2eb59e67842f3bc7c836c6c47c7b566dd8867c69acf1837b8c3142aee92cedce31d6b8f1ba2ef36ae69cf71eaadd8d0f79303786a3dfac11f4d106c75581f0bdbed091391f665e176b5c7fd3dbe1ec37117e6c8a0489991392b0e4ca6f49767c510aab24579e4a6105c58d359c68804e0d2768a073b54b295a4f64d5388eab4ac8733ea4d4b44e43f18e88cf2e6b57c379b3c71a4e1b728c097935d27ef372c86f4e484292ebe246272481e74a1b1b8c57e870d81bbe10e6ca377ce1bc9247bce26e110909344afbf942f6e1bb652b6f9d2167265f14a28d0ab00ce654f6441881c00474f3a9b8e2728b2bcf125333f25844713125ba9432321bb2120d728d88251e8958836f8c5ab831fb70701a8ccf7c7c764c145283db79e573676ec0d3a7991bac1a8c57325992fabaa66dfcb8c9eef6905a5e79393e70e925c7d26aefea0ddf8ed31e76d011f56a562609e2d025771191cc32c9d392c71b42def68931f81a153e94f6d1fe3d6c71b7d216845235293eee7c43c9424939fba05466d24029b67d628deea010ca8ce07720d9f521eda0bad93579b395876a50d8e2865d7ff00d25cf640de10b3993bc6a94a4949b9b8950966996b533cf063ebe1a114c24c61872d520673b60669e467d445659c886f202e1ab59130ea9721bee3775ab36f21a67d7b22c66401f17332d7c1a153e39c517c626eda3c232adb09968527cac2df942c9ba7c965422a56472f9724983bca2f299ceb6f01559792879785e106bf810dd186374df2ee535228d0ae537798dbf7140f872a290aba0bd51dab997826656ccc344326ed4a57835dc0ffb3448515e1a0cdd7b0735ca493f611bec8465f0f9874983dc7935010dc61e5294f87175b18677bee491a9963c7c2548ccd264c586a5db42852b1ff20aa470c2952fb10011e3858f4c8950accfd73e3e27952ab2614ecf3565f315da78c41a4e608fd9572a8d7a23ce44505ec5ab42445002f1242fff45a02b8f02de9f18bf788a604c952ac03638ca90975fc7f78a9095df7c7474085f761b1f36f10667c3e823e3b38823bbf43cb00b445eecf48da2e175e9f90ef78a48dcaeeb1eefd65525fadc7df435c0c5cefad06c28e73d1b638c70c7953640e455423ede8de3ba73d587b41a58f18690d76af701d6ddde9cf5b1840e0898505d0d60173deb064f5cf90be6c65963a2fcb9d14588fe40032ec2d04fe624cd2412371aa4a79f698dc91766d7b1b3ea3a3ddf257adc3c47ac41b3d3e3a0a72f22d6c04e6393f08b949ec32adf526bc613198aba48c418bc03032ec284bce2668498ff62942c04cb98bf66a32480654c6d7b9c5308b69144116ca3022c63b29d9f642712c0369460190c883530a0836df0b84cf540b16113b9f39f0db3208f779c48c204779edb2a072238ed70e79b9bb8f372480542068112910e18883580c418f3f33cd8c68dce9d33d6e14efaabd2907b84d7b387d7101723d1a8ecf3126894cc180cdfbce1ef7c11ecf1c94deabb7e5d3ded4d83b34783f302c317fec23418e3755929bb21411dccec3758e3bd76f07137db96a7bf9268b0ffa363e6fa3c57651a8c3787e832cf6b32f185592b8c564c192b7848d13a4164c5a039cc34aa9fc9c8d4761a2dc456bf78e26b75e6496435d699f6d1e3eb8b8a0934635c315c94f998657a80fcf54b767665c62c1672f5ce7595a618b2539643236b0e4df488e048d3d1c8d6a1a1062148e143497104a0cd450a1a3cb1b5864831248a39922204ab7abbe536ca6dedf619073af7c5125c144297c8e19ab1a4656489179e7092a824be390a2a2df7501acf462e6984b6e879e2c68a08911b4ff0d07062678706cf90d6619d1943582573fb4b2c21e324e6763c0f1e314e9a80b79f4412f46a42050cd08ddfb10306755d45147119202a79b97de3c60bcd918b46cbc894688e5c3462ba4931f74066e92acd78873b9c7465d7c93b2ba597cde4fd9436f396c045184ef4858e0ac1f83dcb7e7596c58eb40bd57007764aaf6c0a5f37312332fbd9acc188d5593bec421e3140a11ac660971d12d978af4b990dff0b826dc398f8cb8b00d67dc5897166b30669dc788db2a61842c58d530c591265b2cb67e7647de953970ec6c8a066a0e17be1b8adf3b64ff4898e5991fd66c7a5be5283fd2243616c42944218ab40e36219664d394871da2272fbc2ee76a346b4055c79f872262bc10dc1b7f4458c6b2182a7eaceed62f10d1572cdd3999dad6cc9d3fcecab31ca032b0ad9c7e82583642ba851a6387d6050299b9bb4648a87f4697e7653488353f89a831accb2effb01b52174619762216c627a9de779be553da4532c82e6390b44aecf9dfdc9a797f4695458fa012acd258deaee944c566e28a9b8f327caa0789a9f2d83ee3cffccc9ad3bb9c99d5307edc2476a94fce456d987e91cd1be6d1bc72ce7699d9193dd92b25b5d8524d22997565bb1059f8ce78a6e22555208cb8c275b859408057ae266505c3e57d14d7abeb05bdd8a195fd4757e986d4e3ad5633a71791bf2a25dd12d2b6ed85da0f9837518133eedc4436c17ebf9ae1b976c8175c3f983f970fe04a262b664ea87f367904cc11cc68b6714e8d2d0a8d06a9179ac9abaf3951a47c517723f9737ad49c673f9dd67a44537a3b321f7d2b95eb205d595c7be6db216618131e10bb5265cea7ba9a2458baa738465e51ca73e97f388b92c2eb5b4b2b27533b7e5876aea605453f71f9e43e34335c9fb707a16f330d5a43de639342faa493bcc7368b8d43752c14c0b80f11fbe03c67fb03847bae3ccc308e7b8aed3d94eab4e77eeac4aea7c2088bc6655f2da35ab23e434dda517810f0491dfac4abe172077481dad55214ca33dab429826fb5637e9d5981630df3d02f2dc69d5c91a10693afb81233bb6f33fa0bd3fb09d234d869d69ee70316b53a403fd221d989fd4d3d1a79e6901f3fd1df2341c7b3ae47fd11f943e16018b609edf5547085f04994ce90839cd75faeb383841faf241f8f341b4678f382238cd6571826856c869f8d7a90d429f59cc06a1fccb864074873bc407a18c012e93a97ee45a480b993a42a63de2c3002238e2c30037b2ae64085c8fcfe8f0cddfe6fa0c73d82342ce748e640470f11c57238633c0458e303012ed0c38ce098a021880a08343778630605ce0317021296e9ce2054eb8a5172489169897f373ca1afc96d70342bbd605d285628d1facba3e0cd0de1153a5baacbaacba1ce310b88e0cdf774d9720be102c354ca3c2ec25eb771d59bc068e6f9cb17484c38fcbc2eb3cfbbd81d897fdecba173718624ccd5f2c69967dec8414a460c90dbf79529ffa6bb0bbc827730cb8beaebcf872f30a8539f7015cfc1392a6c17bc3ec8dea3cf076b4831c76700335906106727042133194aec119c4d72c193871fb319d6a9a1b5ff77033b62c198ce04e5b6a90f94a798218317a4dd93c4509a858c27c988a613c3371a5155d20f10e378c31c61831005f6582097a6ea9b93b595737eca20ddd388509765ab634812ae5c6294a60459c32b86e6409a189121f7f7e5c849931c4f955718eecb83e2dcefc65712e9ad840847c8a736ffa328b1b66718a264a7063a49935d2b0c7aa7b735d66e20bbfdb413aa765e72066582de21d7b1cc2ab424ee3c52e8067718e848e7384de3bd7e5d0b490e8a2d045d6a61f0ad999a691a66bbc5df69bce31afd958c31c20317bcc316510ced9a4dc82109dfee5a40aed51094f3182286e9c62044e70641c20a267c4656d62833493299c1c9a4c9ebcd860db1f0fd0c9e4493e486c20c29bdefe00d1266da8d990ae0d6667fcb4964f88c313ddbaf1c69fa03b5b37bb0d7e6ef630e766d9f7954a8f73ce88b186577351ae57cdc19773eed57d3dcb3ab3336238a369c41a3cafadeedcb9dc73e39d53ac902060ee3072b3535197fa32e6cbabc126eae37328331a7565a7a781c2a570764dbeae4b44cf3217e65e356eb4d3cf3382729dd1e6ac6c67e08075e33dc75eac31c6087935fd59673428bfdd90cffd665e14cf089ef49f674467d73ce71981d51b3dd3a0e473a46ecaf755bc233807ffb23e98ad0f9ed1a879b056e1ca2868310671a5ecbed339ad0dfd11982d75dcacf1ba702e5d6c940ffaf970de688170a5cff8c5656b43bd1c13077d76e9f9a836377ca76d7d66681fee7c8885a4890259c6fcec2a23489fc91416417a16d1a58f14e4bae227787673afaef0c91979469e91fb60445defc744d4a5b5cf49afa6bbf2108ff45aada0c585c3981b737a6ecae30d85ee637b887353c046d9745f39d8e08ae8a11a51ca57acca67648a0fee9bbd1abe90935c66adf8e0955a2d107995f071151b634c98627d6c0fbb03915709958744d5fad8aef2d04c7977f65444f3729246c5b724dd1ba226c6183f0f6ff1e81151ff733c207147af12b8a373dcf150c3ebf2506d6c9087d7d25bd41697b7a82ce7a1863aee88c5c8c7e8dbe30dfd458a1bc69a03e6ba5816d2c23b270881c8abc4e8295fa93e46e7b8d13590734756032a3646304c79e8285fa924affa08e70d579ee2e386afca559e52bdcf48952afa4a9d57f494da9d5433b229d740ce4db11a40b13c321d1030713f0ba4e57217d9877c6cf7c1d92224986f62631f799ab58952a9d404284f3106206421dc7e1334e4a9cf346bf8facca2c769a2081f9c269090a73e9012996c620929cf3f3285d926e86cdb04ebc725c895c392d3c16c4aafd5ec3336cd6cd8e75fefaebb9cabcdc86bb56515b808135eaa4b4f4564529a41bf14f730b24420a97439accecb45a637525ed726449469c7362dbb1465a2b7e858b6e2b9d9cbcc7ab0cfcc5cc2a90aa76a1422b1a8cc88e91fda37426944d4d2c854fd584c5aceabe916d3275348202153dce333b2403e974fc8a7ab58ed2a47aa1e954a0f69c6cfb55ad1189897540fd20c1a2af42c73aa7a14215353a74ff4a4208a59cf6298a64ab262c3c962b12a5644da1ecab8e41d21fa8645982278ec44c1407cc5aa957493213d92897c126b10e9bc1aed253bc7a2c32a5f2d2bc2175efbd4c16cf5aa904fa6b8a7e5947d5aace961d632a293fab0b0de7c96f40f914bff3189028a4b3f5245202424ed5bcaec0e6ef6ac69cab373b4218db00cfaecd968ea34aa2ffd44926402c9f923a7cf3cc2a5e12cc25461a287da430f25149a0d55dc2bdddddddddddddddde21d213a576dc3745da601bed9a864993410d4144330994839fd3e5752762b1c8c84421a6930e3ea919646ee4a1a79c2538505eee9b9e2737269f7505ad13d9455d0cb2e447a0945a7d8a74ff4f40b97f68db1c6f750520132f99292122aa3b8f4ec93b1cf102befc3e8525f8b42a22c83d1c9d03579b5a9a2dbe5b27160878d44210c8b73f46c24fa28cb7c685168145534f1ed6dda26354dd334d634cc669a9699343b27d74397fae87b4069263d74a29a729d231fcaa8c4250f476681f06cb0abd8b31a69ae51a6c9ed9b68bb0fd1dd8ef16585138934d2a72cfbbed20f4a233d23edd9c3b9b57838341b962c10be225583f421508ab6f035fd6db4ccceec93941dfbd469d4bcf1d289e4d299e4d2c99a4a2e7da4d965c3ef1bd9b05412511b823f3045f0d8890288af5829e926437a98c8279348acd117fb8a57836535241ad1eca2ff98240fc7e64307ca943492f2cdc95551cd1a9446483664313be2b294efdcd545559f2235326315c333859022ebe18dc8bae8613ff470ea5c7a16a38b2ebd8c498377fe30f9985e1a99462efd6422c61ad9e95b5a5050c2a91aa26ff698c15ccd76c7678d0a337915f670ac7c08ef7d51c8bbb7c4e7a75123cb4fbe6ee32bc21b333629e2e0c4f5e14629e0d0e44a8f88d151ce494f145a59b136a3a3d81bbea2d3abd43a1ba4461a35b23d52628cec5e0d81b811aa619483c8de34487bb00aa6af6b75d263deaf73a92f7bbcbea73c7a44640d4e2256de3df388e8ce72f688300199a19b80cceb83836e761fa29b652fddf38e101d0bfba377de11a46716485fe533b2644d393a1b159b912c3f6990fe869b0b3df198b894ceb834f8490bb94d9b9e3b7553a741faaec6d974085feda03472e9e95c5d7ad0a6ff63529bcd06e9a39c97ca0bc239d76c0013dbcfbd1ef3f0c68dad9feca14cd67da4180fa39256f4e127126c392f8a65dac6755e48f4a1a48c482a2b2ca51617d30b0b1e5aa43e23606e137907168141656d220dc6340fb7a0e8285acdb3adb6d5ec7ca814fb0fe760bc9a1f2ceaa33f54be45bce862d49898c7789f3b79356d515f8c171333d3609d524a59e3415c4a29a59452d278ea524a29512eba9452cacb212a97524af9a3e5524a258dfa8102e2524a29fb52ca2b1af563c6002ea5948dfac1e297524a29a5943f0470f9a35e4a29a59452cafc07cca594524a09d3a81f3e80973f4e97efc1ab9104b0210b7043ab1104af60280a80630520c00d1b9af4e439a9c2c55ba3c61b44109ea4c13dc591b88d0bc2937224aa7d516abc346abca9d56a351a5d6594a2a534144d6a2d2c287d5b545a2820be8c256bc924ab5f885ed4be1d2f10abd56ac60042d98b4c669db130792da596be2ce21dc08bcee4627a51b916b56fad71f562b55a6d2d7868a17aa152a9603417b52f4c8dadfb0066f40595b459a71fb01f6adf538dd787be00f8b9d763d4eb31353608a3f3a1d2ff50e3650f3b58e59dab4e358b6584d5c39a48eee99348a37ea09ebaa253ddead6d49943a6134f1af543740fa85352a56aa99aa8829834eac78c03f1d365149d92ab954cb2924a564beee9c7e8283f5dee744ab258928725572c23f77439a4513f58ae6245a764cbc91552a749cc4d3e9d9a2ad58f0a48d552d2f201fc34572b285651ac92dcd37b759a2c560b61f50eab79ae08c005f0d3998a4ecd56ab8a96152d27402dcee2a733924e5d2a79ba9eb14e5746e47be29ece51c8b8cc4fe71d17af2f0939bd47a72e963c5d2f55f151717a023a75b57834ea07007e7a112fdec34f8fcdfa68c85c9d3a1dec1455c1f8f0183f7d768a9e7e38f8d3c1c9badd92a94d1566ddea964aa6b4564bd552b52e8dc5922b965c5ddaeaba2ed575a9642a6bb5542d554bb592a98cc55ab156ac154ba6b2d58ab562ad58f7cab299a9664b255358aba56aa95aaa8bb1582bd68ab562c914b65ab156acd5f5ab25531876611776a9648a66598bb2e4a954fabe665d293e8ae9b6a96cd4b05b1034ecc69deca6f24427182c56a338259ddabcbea91a2faa856a895aad7b9d03a2cea82fbc4e436922edc442397d7482118550fa0251e39d51fb6aabd54a5ba9a83cad75a8e4cc95b54d0d99a2190100002000f313000038140a868482c1703c9eeca25c1f14800c95aa527a541967391053ca184408020400008000000000080c8300a10c590bdfcd8162d780c272e0ce7c63288bd9f91a5d8527a1a0697de932184f31f84556b315be65873630e64573f9c359d75ed1e81fe23a70fe4370153cc5cc606b4ecc17bd57f54cb7483b5012ef3f1a0a2e173ee8131701f0d306c07a8a0be6ea7a790d79f6cbea296171cd98a7429ad1d4bc7ad0a7fa1acae69969a855c4587884f9f91d1a30fc71d0c0ed71fb5d69f7b7e0049858ada252289c8c3e4158380c98ff9b7b4c60b20746960364c05c5f7424f1445e44520cac5e6786d78ef82904b5e42c7f956e9a0e408b46982a47007a07cf96e5292f76e4e67ddfbeaa527eb4105c81186beafbbd0a0c64d4ecf898061d4202d3d4155a3667281cfd64c66da998f30d1ba5bd31b1804b52f9239ee354c25bc1b2556f0daee37279d583aec694c8447964f520f7c69a316b98ec3dab180f86cc183eb80fc8da6a0bec223da1feb342eadb2a247bb338987a7501a2e7487dc48d7ecced3cf120db06704a42c4668411aed6aa75fb35b5637ba0d88fd9801eacdfb3571bd83cbe081cb9422db4c2b2ea003e7bbb22bd46f6f388877343f812a727207ba7c8915a210cbeeee1b8f33be06468360911b4f4a3f38a4628685c427ed45ea3141896850ef4f799a530e36c1b428961adb98327d142dcae3ec16f51f87d635be2cd99058fce514950cc4523767b3b6553ef0c345abf1848f1b17e7f921e3b92945c8a1e5fa08b3a350f3a5b8e1db45605cdd8c8182cb25e11c10306e626b1a74810900c6faa6e1583712af6f7e0de90d0cae691153b59059488063f6e02682ab381f93bf3bc9ab0ab6dbd40ca7b0c4df187948e73b431c850720d43b1a525c4d8c4c813f4d255a9cc0508b356abf07dc546bee4b1c7f3bb790f44f5a222d839f20d9a796e6d221910db843e1c5c60e4ae6f80f94988dc8c98092fcc6ef278fd434d5ac314cd9bd7f120de9be3de9b1eed80734705fb7bc85ef31632760d105b0e7f83a44ea5a3e933177d3bd19c49cd88f12644035e6cb50a1e776e3954265ceac5cae2b90ce9c06a5d8f0050dffccb74d74541a99a2dedd62bc0d8e11e255f97f8c5719b89e700ac18fbfd6eec8b952c865d58e543418fe79491bf7251a88ab2c6d2e6c0bafec049daa29be0850e1e080f9437aca84f4b0c7fbb8914c6e23d6b62980f7b2495e36df8e128bebbeb8d28c8dab8f78c7e959c3b3f242f174d75364810f8e566762c50c419581b64817d96c33be7a1c1a22de6c0d15ed172d5a56e37a3128d504404a03de5bf1ef14c738fc8592afe142839382d04e842a6ab3a624d2c8995d88278d3f4859d8e731c2a16311c727ed8125a0e63520a4f6948a5a8e2457b7e3ba01ac918a78b0e9532083885763013d457179b9b59c291d16d11ed12aa4dc2dcbdf888ad7e7686e820ce8fbb1c1cd4891a3699c9a719925910d4ee425abe7e92eab799831c7b58d00f65669e2a7b309f1bbf37c5c94303c316609d918f5ef93dcc20da03d98d25fcdf2b442b792b2a3d0198a21ea62bc9c4639f4a7bc704d145eb598672367c32147364fe3dd1030477ee16dd12ad2d628d0e8794e5a8561e693163165e8db1a50efc0a9a9ab3014d94e36eb07a2430808db20a340a4be40e6f52f031f9e8bc2c5c0904b08e8b24d4b2c8c812af304abe424016d2034daa3e4c78c5aa3140f2902967a8dd8e2c20ce21704d6238629104fb2dc61167cffe8be89b70821d262170a6324cb89b3387b347846004f9e196223ca5d1e7ac9d3dfe027202b6af462a69baca48b142129409fe806102534fa1aa016f74ad18658ef1e20b25f119cbf1e1b4db91676ece77a45b7bd023e891778b8ce33fe6e87d09730aaaaf2a8a346be1c2064caf29673f4a02c00229416de94377bf1be7303068d96917cb59bd27de2d0b9e9c4ae72a4dd4954570ed0fca26f3ca73210a7ba164331e7cca9342d746029279dc7b53fd8420ca53ec2f6b05ab4591b81317f0624bf8e863a5d5a8aa7bf0405b01c4aacf4835faaa0fdcf54b232cc4e6d75cc25b71778894e56755cbbd18b7f53192abeed8e19afe529baefcd650a943c968d634aa0a998026be3905aa405508ec7273baf325729b4601b16e0ba6107b50ebc3c0788a466870589491072e30b628e9c8d3fc13c860533f3abc8133195e285befbf373d6e53f6541fd68912121349443c66f0f25b04c104453530def3f0d69cd1d472c48f7dec94ffc43be0c8131b0123cbdeced75c2063275bc226eb83ba0e28632cde5da107033fef5baf83dd71a3e24a861f4273a219a0b0a9b0e046bf3ce63b89d00a327ec48b947cbdcb644f5848fdb018aecebb179ba2bbcc115001ec93d032b1398b968e6b4fd37a720d0dd4cc1a7387c02aa4f62500eb864333e2a2225f6f0896a6cbe7b215e5c0185cf5dc011b5e71ef1723787b4fb9943ad106ae956ce3cb987db35af4abb35d0eca567431950f9d50ff746f4cdc3bf1ad0d366c83de835910d356bc91d01bab85d440992a824f063cee334b6b5b97c8c608edb727f3048ede18a38ac84f49300bc05c8354ea9e0f74af332405ca8d6aa94e0a883c1f5125d7e906af74465c4d2c86c94ac423650108aab7338e7d4385920cc8a925997460cfa5562b788848589dfe6a6d992f8476a60a5813614dbcc5c4d76c542facae6ca066de8f861061018780eda58e4d50d4b1d3029dfa420783cb855aec2b8280757b9fb361306a12291145d3d2bb943133f82d408eb76ae484ab2ab4e27e5160dfcee225670a6d3f19ec6133dd721571cc7b071e5b4fa1162567fed488a7a72da33d3b91600545d5b94e7b3d960165ce7305da9d12ce1a04400a3aa40e104177e689859fd7762d3d29b73d701b238297951f1be98a4c987fae9d8997aaa64412ca07a4b78f49893d1e2821c940ab196455bea93c31c06894468d976dd0ab1b3322ea902298536706858a364976033f80f9594b98b803bc38d4b9a02ac7fa61d8a2577da991826cbdff069605790a35d68fae90eb30e76dc28727ae475eb57ecea6117b91613216e7deb4c439f3c3afae87fe62d2588252612e8c8ee2dcf015e3440514ea2a2fd5c923068440d1f70ae8e85839b0202cd3fc8fc334b7f5085d7d3406f95b6f3e0056243f17edb71706002b4a0c4f5375d220fb367b38065c8ee16a117d723816afe543800d0355f40c023f0780c0d6a0acf3e21c6d0ac7a83616ba354324514d922a9423de090547cbca33414620c9677f6cf070ad26e80274cc080c1453f76aad0ed927309f8520e32013aa612d367925130cabf03974d813daa2eddc69e5f952e8f54b840f8b2488532c4c8906f67818cd7ebbe8dc5690a671bb1bbe3b83b530c10b452d32aa9fe93b6f4d761aba9a53a31a91c0db869fd293db01dbc61fc4f60757158465ef91a59d78fd542994c3229b058413dfec564a924591c91ee46ce555b932a3fef98a5eeefeaf0b7b9ab2f6420ee334158254f8f76d66f4e5f73e04674d3699643f22b3abe9509aca2bce2f3a11f2dc029de0f8f5a194a1fd51c375e8efc8d54003a4c6f92bbf59cf51aad85d5049b4fb500eeb5ea754249f9794408232c2c40d072ab457243632a28397676fadd0c1ce75f1fcee9c6f7d66b4133194964fd9a4c77527238ca72d2a07f69e318ea128002e0640bf35525d827b6b5c2bbbef5b5f6bba4954187def7cc2d5d1613a2814f62d2bb67ce2cc8dea4c3d59f5fd0c75a8b56df55715588725df7b1595ad185d027de88a98dd44cdf3de596d2a5649678bef171c9f8138d71c05150710f1e26844b20879e0ef42193cb9dc9e10838f4a9cd5b3f5288618ad369839aac936cb44c9a8e6da6bb1a5b393da0cef57961936ca0b04140753c8cbf6373038ba0e97103e66439c5cb516edc019c2e813dd5840b45036a4da2f2a487e2b22408a0923bb62034a0eb15769850715132ec944db597b0fafa408e15911e1405a423add4067d084640ecdc843a31ac3d1841c08527713eeecff520b6c07c9a1a98451f2d1bd8f8e2a374f30265242155c9d80cee454fd2a3ea3dc4feb363dc077559f184ce9085fa88363d6c71fcea9fee200ae73a41d28aa5545f94b8e7b4ac3bb70fa244894a46d590b3a8b38758ddbcad9a7ed1c795dd9420d2d77a405b7650cd9920c9068e4704cbd4744a48fbedc86a800a085204e4597845f5bbbe8278c7ea3e33fefca90d3a6ac53c4f6820fd21d1d8c128bcfa2cc97e1e3bc59da9915c8a9c66518df2e4550df86ca84df26ec25eb4cb325d801af204e71a54ac752957b90e6197c943bf0aa2a139ea230e5d1f15f28776a05a3ee11b8bd6619a8bcb7f8f8e01f19fe78632dc01c2a9e2d60d98dec2a53a9d1876b4fa315ffb599c42f3119325316c2dc1d7017d25d54d0ac982558235bfb5026d93f0854bf4899b993d4c340ad9826ddc689bb78d700951e22157a864760579e1b65a883a32b3170ec19a521cce6e966eac4595c0223f1aea9d3c1916d5c3ea72f552302c51409d54f823484f4cacd429f98f322b6ac26514aadfa555da64def93e7f0f4019e0c3a9c105b63b2816ff17f45b4fac06f99cca270257089bba67262a796fa3c303124643011b4d5ec0b27a78c0ecc5acf7341d19ad7c4802f3c7bfc2ea1b0195b3d6a4ad6e48d58fd77f48a8727517a63abe1517e7df60426a1bc42fe54629f97431b35532244d6bc391a8cff74f3c2b14e9ad2cb6864c48ab03e0f4176b1ed102fb8b874f65f868232125fcffcdd259d6879528a3c3d1784a88cf3d11e58bec6480489cea54e11c8c8914cff90ab6f9fe03486bb523d68523429baa099f2bbcb8fc85949f61a763f1162dd87b30c68603ed19fbcea81dad0c77c4cf9317f23fc814a70c76e492ea762673d8fbc8d9f2c568c66623d4f5c6ccb0f73f8da07ed10bd45bc7329168efbdc8dd8f23329a851c8e68c639582eb2635629f97e14af6cc4ed54ab9340690732459dd542b0123e646c49dd9eccc2e8ea2934cd7488d205f2ec22805a984dbb6e408dda76f18cdfe4c73e1050709bdc80d6513d1c36daad8187ce000e371ffb0a71526ef46d61aae52073371d6707508710f4507ac020c431449efeafd76ddc608bfc1a9e7a41b0aeef3e87aa8c591c4a8372f8faa90124f4b30f0fbd2469df185adf604020a5e1190c4781423de87ecab8d8e8e91d014d0313852f77b05893aa4de673fa5c3608162b908f98694727e262cc1d30723d04148345824c45afcd3282d950979b3c45e5c823a6f4271c47b82589193f460a44fce2224e47f203ca9a425fd99ffcc24538d1b79d0a4886c23e765ed35c0dbf089144825fada88cc8272cb4c96c49e8b258e7176c8093742073dfabeb043bdacfb54b862bab23e6080f832a25bb2d961f9f7ae524841a7ed927d72d25bf99f6ff0df6f73186ee17c087b9b24184364a933957f89096168b12823cd23e7bc11109eb47a7f28461118948afb88913ca47359c736f78788e4a9393dae52818b24e8920a5c852190752713eae69f690652c583cdaa0c8ba1ed63c54a894d84136c992722d47644b7da4d11af993cc06a34f220dff27def008948cfcc2a341821a1e789c042efb04aa578e000594a8f8b1651b0319edf9f41215eacd841d78ea7b29dff300658453e49ae4949dae55171ad8f1561fb71ee31ff172e35fc24640a0f3d4e85f9d6835216ea7fb03ff0269dbc9fd147eff2e8ab4b91c708f189369d55ef9606daf7fb7028be2d996116dd98d12eff3a3c1fc37cc632f30a400fe2848b4a1bccc7ee9a50d74df01bcb953bc263b010a705c44ec69f34751287e4e0e6703d86a1c23e13df2c7f5609e7ba32cd048ce28e379c6a9826aa11d796885a5c33322ab2deaf8ae5e87d830b3d0e86d6b825d4fbb2355ac0f1d7ac5ec22384f893554d398344a3d9742179353cb84f8e4408a35f25acd6558ef4c89f586f42d15e757a8dcf03c27bd981ec866635930ae833ca319b5cc0da1de92b3034acd4cc03cb14d89b153030428f88963c086302a3ca4b3dd94dbbfb24532b33d7c257b291077ad05b523bf97807dd2ee93392ddbdeb19608fa9323b41647e9729788cca53508686e176038c8949a5fb6232f620f909e242398e9a33d4c067578b87ff2572e07f009723856a50bcb28168df9b8a8498295e1e7cde74b026e4f087ab2c92d413845d0817fb1449eff7dbede616874ea56b8316101cb368e7598ea78a2d3e785243c528fc6d2e73b0030acc16fbf3f4b852214a40dae6a7e4e4dd6ced514e5d102bb3ecf75f7222c2a65fffd88bcb5d8d51a5404e58475ecbfeb816fc218eb80086cf10e6b4fd8710b73e82d3e3f0e6c77c2db9c79e0847148a4da3e4ab745180376edd5e4e4518329c989c12ba6ced087471e81fe177838b8cd438dcf9d75d667406152b20624e2e19b4f43b9acd3e364e18f27e894031ce34229b1675ddae7376c44e2a94c898e02c73a411dd80b5d092cdfa676303dcacf97ae372858d9a43dcf7c0f5ddd7e50edfd0799a84b6e342ea31f2a292d47df62bb6b67cc55e261c4115b7d75522f0edf3f5f024a29697a581e3ebeb1e92a7f28466a5fcb1db5dc047675c34d63b79fa9c4a7d64dee310b5b3a7758ecc3806e3ee401ec75d5b42a43b9c0690aa37bb69502c4512363350ee751f0108034e2ef731b7052ded365f91efe76f59cd57b16f57f43b9feaa2b05ada0e5c8c3e6e21875d41e42109b124c38289081659319804685f1cadcf0b59669f6df245019e6226044007f68504dea1d4c38e482f2b84a89c1baff2bc1642f67617a299d4aff3633252646010e2e3510aac071a9947472759d27419d653896913584ff63c5c4f5bafa5d69ecf9e2068d4a50230fc79e77da3c8c37b95fbcbbfb61661ec4a059cd17b8d2308d513c92bc0896e41888cbd990c054420a1e4a8e2493b63c8d47f3cbd50324763e58c6b5cd1f4d1cdd9fa7a65255d6b3eb879b782542f701c18398ec6f60c4fd3ce5b7eb6951b7390eea8d1e59c8be5f76747c117a776b19bd05ca134cfe53c613ceb7779a0cdf0e80bab04642ecd97d553dcc93847a24babe7e78da0220276bf98c0832c00d0aeb1a9671eefa8f23c128cfeee976befa67290aa9a0bc7df92083bc9b6f903b4c303a4e2437a0466bf148aa31fcccadd9105228a0b604a8aa715d707180393f27aa47933e559297622743a9d24527f5380b235210ded695521d2b170e4a80c7cdf68d3279bbeee55ff43bc2a36c91afe010447e6874276a97a5177869668ae095654469e7a740ebb0412ac3b6f1139c53636ac2bd7b76b2ec3f3b97673141738b8d8a4be245c0007beae1f5be8f97aa120231e838366ba61305768bba258239858ec16eb04bb3500d444d44d87a06e62996d2249323de7601cca7bbaebdd7fa4e13f165a5f2d377be5725a591275621d05a40b825c7fd64bcbcf46e5cccb5f6f8baf085aaa675964ddd0a1418e71654f27d968ee256db4f8d30ca33d7d5c22d39d3b993028afd7df267d63a87886fde2c59b230c13fa4bdf866677e14183e64adc948f35d5313a7dd94b38a228fe361e002004d48c15f8e638045a8afe730269c9d23cc0cbfbf048aae4878532c651b5b07ff40b8ab7e6620bddd41e80944344e83e7f406b2c40f699f8149732f531ee32e9236e65ee53dccbd4c7b8cba48fb895b94f712f531fe32e933ee256e6e8d31aeeba8801d61c9415c1e6a3d169ab2331105f9652365da4cfc6d2f10010efbfcde7eee54bb0ae0bf248e4e1651b1778ae42e286c3700e79cf14cb5724f8a98ccbd26e5ffad6bee59e81763b36dc5cc6eef64cc85f663d1da5a6ee7dd25edef99abd22936bfe0dc73d985cf3895c335af299490bccb4943fda2fd0e62f458966173bc1b6a7ed369214ff9baaf51ab27c9ba51c1154acf8fbcef5e4dab7eb0a5a8d02ac9ceb35046dcdb8d6c7381a95b4b11016ba6623a1d967c58142d7c6c8eb40467ac169abf434ccebe1861b164f0739fa9f6e1cbac9fc7217c072361cfa6df39acbe35bf9f36c145a49484760f0e56da4d0f33a005a0a0bd7249c608908ad8d843a4068da20af43170e92c2639e6518d661ae458d805edf911a04ad2697bc3635669aa774278eb95fa18fb80778c0039c26dc8a7be6751402d67cba6bba853fd33b4e2cb233cda1f8bcb6d9eb63979aada7236faf13e713666db1779690c6ac72b5d7bab5b5a5a1f346766188bbad3c2e9fc4f8d8b03473179beabadcca9a38b187d86bedee51449dd9d69b029986a3d7fa727f506c42419819c3e082e3a03bdcca3fcc5e583ed1867fde508ccfa077145db74d29c2d2b5c2f2b0da485cd77e5460ad87c18bb36710e42968f4c90bc2889fc6fbc69a8f18fde4479c7089f194818814db11bb330f538197cdd61a315e34c5000988991274945d74dc908fd89e778c3dba1e778d63fbd8afefe2ff17e3366e661598d83307b53758d8c9ae2413b1d6f9119f9db17de66135ef50df7c7c56e0ef5ddde55763de3468177bc1d84d5fb73cf330378cd5d63a1d5e04050429ad8a52931b765c54241768b9311fb1bdec1d3b6e1524ed65870eb62fbdcc81872942923efc6a1fc4a9a7b582c119c248e52b823553b81d7e3d94c9a988a638bb6630510d90f6c92d55beae45d768718bf2c55a228b2f98fc9e0ac974b9ecfee1bbec3dcd9a65dd0d3b913e118af74d611c50528c2782d16a688e27679566c3b5ddfac1aa6149d1dbd5a6de850e473810ff3c0f7413efa7d756d9797f6dd60e4d0c7a5e5997b51b3f7449366f46a3d88142421615c71f94ddc17624450a911a909d73abbaadb5c0921b839dda8289880cd0748eca98bcb45a098b031c943a9bf81bd5b4a10132a0674b70f811c0508c14bdf1112194c953ce0176f040957b16a342171e5588d9af571af232de18adc58aacc740996724aba3aae8f556c7939c430bbf7df892d3d982c4e9cb4268051b08d7f2aa63c3bbc82aade1a897710810d7734ac77ed3645f06a2dc3263ac9dd961e0fad9deaa540cbea4647be2f7163aaf481a62472f60d2c178a561eac2629f9ec5ff2d5da942b6f75e261b9251827650463936c33291cb60f80be075c53adb78863fbb5fb5cc3e9c83cf6f5757b35ea80bf743d745fab17853d06b23271900a22692c3bcaf5867fbe1ab0ec31500a551543087a61356b91513ccad7139c317cdef9938588eb4bfb4a44ac519bc354bbaf1c31ab17865447cd91732999d72d25f4556272a3e12e0078f921b56dd75dd1ebb91d81fe6ad3448f3c3551876b47981e574ed014cba839b401f7a80463c2710da7e67a991c372822c111fb0eb61950cab612ce1c2a63f1b6c86fda075bbc11f3acf7d99d277d2d74f4c154934151da90866f4127303aacbab3b3a7a2decacd6b1d61a77891baf8a38978a63220bddbac9aa3bf605cbf2d25d96b7a1ea8f63cf280831637819a33ae73f14eee93d3d947526b7ba51c56149287c7b1a68e7a66aea662bff2db87345e2b9fc2ea685ff48bfb2cb9dfc3ae6cd863fbd0f6585b32e97d5df787d3ada1cd6451fab4b2c94f2c548a56c8daba7e7d03a3784122b765557df126233d792369f1a85bb5fdcd1fdca57a7bb27b319ed6724de0e575f18730659b699c2c30dc15a7a4ab9b05db7ad262fea84bb964aeabfbdd1c275f6165b241aa9304bc5517d51a4092425634a8b13826fe961759d2c93f7701db562a360905f1bb550f2c86cd41a8b6b2d3d659d0ce89cda9abfaa0421a90b4ff01b107cd8a9bd41d4805014497c271d965873653864346fb21577ee0f66e6dfaaa3915564636045edce41b83836437b8280fb788ed589a290b497b5764fa0610b3c8fcce24adf98b2478c056fc41a1c74a634ec3ed559d9ebb1889af4041417001bd15c7a32b259b8f02ec5539a37e0f5596755c1d32471c8aa2089a6c9743a35493f47d79daf9bd82f9b656204d50a2d46118c88d36fc272c6c37c0b997f62e1c8aef18fbeaa95f06043dd8425ee1df1698ef0b9bc2541ac5cb1df1923d3697d9a489cebe8ce51115beedbb04bcf17e308c649774488d32f702eab3bfeb1f1b5ad6af511cf8541e6defd0692c3b060e98e4f32efd8c543de540e7d0e247b65a2239d6ef2bfb72a9e4cf0a595c770c3036e8095bcd2b486e4a29646c7382236b6668cfc86e42eef7552ef1f69516fea35b0516ef19fd9ef44fe6eafe6c94ac115265e9ed8fbbf5e9bd4c37d873febe3f4df1f3e6030ca15714189fc969b334912894a59f1835fa8e496d9d7911491abc623be10899dd756adb848183f0b8f9b964df24068df9cac2372a1c9f5923465a3799dbfc33596b28368fe606b1fd0bdfcfc6aa597ab5057837978eca9b213edfc4fcb36abd4636e09f2abecf17e2f73ee6800ce40206ab1582f12d0dd648a430d636c07d48e4d769e2229ca7f19b67360cdbdd091071f99bab5235f819ce0712a149a55572ef34aff06ba6f02c0830798028487932b0d425848f2ea85c4fbb50f3bb787b7cb6306a8b4204b6b258038b4a03fb194afce1f1e3c33f8e747283d2c65c77d4cfd306340550e7af6a0a47cdd47f1dc691d72708b779042adc2ee34f000e0fc88c6537974d8a283a71f7636ce1dd108eecfa2aad27ec95e111823954135939fc4349fe73053ce26273fbaf43750d1cd1da2b4f12a667a0abf4774f309bc852c240fddb38f9452f7079a32726ae73318e5f6b7e6d92a52aa56a7390b0c8328603d448092e12523c8446f90b4b73983c4db81461cd145c107d0f8452cc1e05e238d18c48dfe0228261fa7f5a215cb44353265a2c5266546acfadd36963deb10fd1d21f6d3f4aab7d9822234344a74c6f7f2b6a2d94de17f8ff6a43846af6f9c85270a55fc7f39aa16af3756ca4db95d1f0e1e7a6608513a34d7a45e6dcbb9dfadc9871d571a05b45ac1e934e1d62d238ddd44237a438e9e02e4976d7cdab49ffffd57fd299e563023570835198ed29169789994038eeee12e1c225158e1da2aac0b755967f99e136c91ad6ba512da2f75b0126bdd05b8d628ecb390006eced41ab1ddc59296f757e96d5eef934941dda91632f0874420a252cc43452e27ab48fe2bb8b5ef50569456bda3beacc63ef7e00573db62f35245f95da408594b7988a84cc20079317090383ff17a05bb8267dd023af934a8afbe201c11b10a25d800074e08d5e2ce70704b9f015bbbfa2fa10ec7324fc622a882eaf83c6b3de579e0780fc65f153a813d95a48cc5651bdc10003a36f44e3ec47c4165934117ec7453e1c02661ad8814c8cd5e10a92412ecfc1519f89ecf49773b9763ad06feac3840dd055a116064a2a13570ea84958454c4a25cbcc49f13ea95295242236c19f11968e31090c30fb382c7088ce321976df11cf2e9de8216fd2c1238122b0154c0c8b4cc55d31523eb8e92edec88f00a61c6323ad1a054e6ff999109f89543f9e58146c9737c9cc2a1f9dd069e289e70f794e80a6bc369c30e1d066043c33d3c35d8d403e0d281c26b07c14f87232876f5016910b40ac36c4ebf560c8e910d83d554054422b1fb519764f94d8da2a843c456937e0105c54005b175e6c34834b534ab36888a104110ad8022a18d55cb13885c73c539762212c4251422dc1336282244afa3e10a07860eec74d0572599af47bd2ef2ad9527ba6c207d1ece22b708742d82c3131b01237a347edd35f4617df395cee3e5e02d02be7be05b3b087b64b364652d520929cf4c4cd6f8cdec724f2cfae96f13c0f6164d1dc241bad7aef779d7f9bac538559a9a2126d884c504a9bbfbe5eaed4aa0f9d2e0b2e52d1a8fdbd315811a87f2007a581159d8bc33e46910c9017b2622a7ad5c187bdc6394da36d66205503860214a5cc18452fcee663574b8aaf9211831af4960511462c7361b306c5b422c2fdb302aed25e9ef2fc308081693ecc2d5c38fec19ec141ac604e5a38e744dc7b7d79bce194bdfbca9bb0423bd6c184d35ba8a822b8be6e5f22bfc15e6a432f3307680967d4400bb40b8a67509ace30ba223aa94700ad2613c85479618709bb8f3afc7fdd2b6df7dd30d0c71f053789d14c525c530ba97648a4acd594d97b74fbaf14c4fab29029522b2f48731b2eb1e0e7a8c204cb8d59615e00e7f1839fbe51dcb361d1c74a6365a0fccaaf51a6e0ea3ce5ac961cc8209e23400944743958e4c82c116343b8c5034030541711c46ca4c866d00c8f4def94ea54314f2892b051c191d7ec3b82dcf723c34e39eed1f3efa8ae57148bf54d8b89cc3398874c62b8eaad365dea3a69a98d65ab77b876972c361c53db3f222652a0003182bac990512ce3fc429b0cece5d1e91ed0b9a561ca7cfe6b4d66a8b09d0ec3fe0e2dcd7a0fd9fae8d61e017f220693064dd3e8f68d612216165ac45d6368b705207b4d9d33e8b7aebebcfac77bb2ecc568808e6b851d88a48737eb8b6887681156b56e8ce5c93e7c4c742b6e656fd7b3ac11ed83ff1e06014b72d46ff26af352c6ba730e8ce83035dc30854bfdbc8f135b32e6ec5392c2b1bd306f0079e28375c070e3b5125fe8abdcc86d8ceebcdcc12fe194731b96dcc9c8cae2046441d1bcc1992a9aebcc7807444a9f4db823073e617031b337367bade03a05c80ebc5b61241386aa476f0f2dec75d11e8118ee3f971cc9109cb2c9edb33df3a26dc02ae631c2615ae6a6912dcc1aeb4dd79469b6c829d6d67f050b8ce08530faa82755b85758a26a444106f3afc8358a060d98757a86e63d1fef33fdaf904fde0cd9ac3208e47c358d63ba09d1e0550b6d85897c4e02447597258ac7bbe78ef2fe47cb264c84345e665c8c36b088c6f77354ba5745b7a1b6e3b19979393a16c7b7f68892f991631646485b69e4722e94e36957a479cbd18e4dd141001943b8fea2925075872623ffacd7d91d6b01d91201f5283042ac7a162c9917de212b844a27b992278aeb84246dff0078aa28e1080b6db859bd53e9848ff3878ebc1ae2e5ea62c23799322c353dd2040ce645ea5a8ae662fc0d41d2ccd1b3506bdc22a234668ad96312556a5797c2e6e949fe204e635374b83438ecc6ce94a512c0727ca8adc2af3192c17200953df984f78c522e3407d3cfcb952a9e5b1c82f80ff4e7dcd54481d8b7dfd630196a617c34f68602c60f66748f1415652d5677ff7a09e75ea3f896065b4698bc736c2bbc323b6ca2a0a1089d8a202aaa1d57999038e12b14e0cee8303d4d28b7b7e3a04bfb656d706bb5924c49ef8404e245bea51745ce40083df6493d0645f23c752fa7b6ec38a3de702d51aabcf200a891dc59506242def6db450457389f6da764bee5b138134885cd6995672fe1cd1dda2a1ef9094046a034b653521ebb951e60be6315c7c1972efb874cfbf6525269fcad89e964f9a4f048408050ed4421fc9daf51fd111c8b05a258d493811c7267a34f882afaa9ca504d2035fa1920a22b888ee7b823e1a04133c9e7d18e600165f8ae78d5aa7f5cc6611c6a8392debaac77cfd662d2dc1dc2b9534e4bfc978b36ae90dfa23a90b1d94fea3e5ec7c8a29a9cfe8ac59734bd2076e053f5938078e740018188d8e8334b49d161eaa6aebd51b2d91688827f726b9026391502d8c054a95f0ce05082ae66818a50b96eb260398bcdc61340463678e95f440593e5365c6066028f40d1db2129c598f3182d3ab7a771c0ee6e318d01f66c8ccf5d9238119d2c679b3f55e05f3d235abb51f3b5c09c4d848b6bbe673bb51b8baf9ac1cc174730e91b0586d2504564952d07f8904202bc2536ea3c801e947d94e00d91ed29b3b328686e4465273c852656f85a71eee7f8d4544149d3e1f922719eb674f30fbacd23f3cc9ad10c806e7acc0337c1fd0c6964760e3ff344d3f3f16de9c1c81672f0bb9c986d55a7093e59439e636f9512a13c4f4d3047381ab08b16af8f9b96237c45b43d48a11657ebad3d18d4f26fcb2cd4718746d8a666177d0c544326d16c3341b658bad584c49b3d53816e62b3c97b31da53d1ee6ba29d4c84c5c37cb00287224030e359032c17e36be6d5a25fc7c30870b384fbb14ef0264dc8f4dd1c38fa22412c2366e6d161f898f5cb434659d97e56a04df62a0db67113367a352200efb0b2901aaa97356cf0350eba12da9d38697fa581d34c3a989db3c24576ac49ca7d6b6285866d0243d4faef0fa2405cef6c0c31cbfc6cf5695f12b296f8438bfe27b4ce15b4539af969bd8dde913c75a6456e5c7cdb05dab1f91d3deae8ba18f7c886f2a99f968082164dd3ae3d21fedb30e03850a7e7269274df2e3d7d660461f594603825eeb241d902654b8cc3fef512235ecb3077bdd0ce385b17c95590a4ecabcf77557148bf211ce70e56e446b0ccc692ca0c7199f4970d909fea15a71fa21cf5cafd7743178a1495824d2a1236b78eaae47f87cfb2c1ba3fae981242077a8e24684c991a71ccea785aa415ce210c12ae87a78409a90af208a423c0bc833226be62e4dd0d677c6e10c10d474e7d5b52b1ade1355547a8deaa1aa162fc6652610fb1d68aaad8a7b68a6b00b4b7ccb860e5e64cdaec4102c28fb87397057c8e7c2ca6473b8f970a4b184d95fe088bd6573958521071f8acf0957a4254d48044b52393439bc0eca34aa4aa059a8074d093fe5948b3dba09593ba25baf0c1ac5ed223f734cc14064998fb2e4866fcfcba0a772b5c0f1d97e92f40e4a3c1b2d44ad5b6032a270d91c27914e32197194757354cac2038a247d00a321a2b8af3dbf04831d5d633db74493135fc10644e25b3516d3479117b271d2a930dab80e971a5c9710d904a8beff00b527212687d6f18548f5a85108263f66c375d9cc409e37babac35794fbfe38e88854fd91705b4824b5b751448a9be3ef87015a68315f6427c1ce2f15352a927809f0e421a7364160f297dcaf88bb4880d5561a2100780638196f0a8c35f75632a333fa5f25c9e1fa9e9dd898b0fff3a14e42ae9cd505e22bb94e8669c3bb570bdcffbacd1b85ac92acdf764df3a1b4174e0444c28a0f04415097ea57037d1b44cfeaf0f1076407858770f0216d8ec7b93c6414c8bb49419caad32d0a434eef4c71591434b89f208293e37d839c52871d8c3608f751c8a0a97d96c8bec5f0f805e2cd12f4824652ad237feac864d9dfa684c3c7dde6256f133aa5d93699401729f3bbb761a540193404945d95c1dfaf58cae9e3a07a6989b5fd0bac6f805b8701698a3a47b4017fc1fae41a93b8382e8e21efb2889765ea26c3ac37b414108958790e284b4919972f03121b98425f8359db7004d0e37c198f8ed4f2f3bdce09afb78c4251a4009045f78a4158c62aea10c062a515ab0ab93852db3eae0129e00a92ff900b614106a80571ca41ea10fa7e49f8dfd4e2b5e0328868e7b78ba30ed7a4cdcf641a57db124b0b50e76140d2d47024a7f8c0a0493e8589cc34f67efe41bb9b2787f8b7e3214112c15f145e6277d6e9a7f7f1bd876d9d4be968561b0271a025533867ccc59739465c75e8a2490af93c39cdd2be07f9bf599c7870a69d5f209c497c7744220a5bd2316e2e052419b30a88a657ba91ebdd0ca98ad27b2eb7ad18229c79af37fdfff12ae48a448a2caf15ca3b5759738391c2911ce958fb02136526089f98575ef46d01ade7ea8d9b661c1727f1f8b27fd71f17d20972ae6638bc6c087bf8147f98852bd18ec1758eb0033f2a2da5c7ae49004a56b6f81c6f73b9010e97b38ee12e3e8fdf557586485cef8652d904ec4ea096bedb028075784239bd42df69c7e33bbda8d135ea5030100e9b9e66b404b2c71b35515164828b66e4d61e0df03dd10d93d2a098ba947ad2502d265d368b29766e93d9e4d3cb871455f764056787f24a2ce2378e4b25351dbe826ee909a6efeb075310b4d17a4c49863bc3aa9c65fe9c90cc126f80e3451c787888e04c58afce233863bee020479fa6a7ef34b2cd9e0e30334cf045f482c84d31a4c12a431b69652a73500492231c9fbb2761386618e2ad4637b8534246080a1913f3bec0fae10da7ab6ce16049bbc2758b030320168c8f286ab8437ebd8024b01eb1a7c26ae8719c93b5c2d0d321f478643488c40e3c7399b02e6a459dc43d88fa320656d2691ffd9e93baef25ff4e356543d54c0d9ddf3db4c98f1b2b1bd074b79bb35802997366221923b2dd12742a000b890886d89d10482c71c76d903bb691d6cbdc9feac45fcd4b93e0d0d5a1d31e3c7f29d76b3d36fd2af08b7419c5b781750d06d152772fc97cd7097d6fe62acac87003f563f2e5f5e308f2d94a8e10e3f74bd6743d600ec79e06d467434423e619969c2c4ede3e6da9aba8dd5f0a59084716d7e65a8607f21c4251574a5988f4ae17f9f7bb284f0e57b51cd53100aca0c9b744326476dfc91890cf705842e30d2b0bd8e40dbd5b7f5335cdf52bfe7dc2c1bcb9bf95f2611f63206ea206ae206d44f72832213b477941bc6535f3cdb8691191661505626f7d3612485fcd6cf3843f8a071acc447c878d25d37be5dd046dd3a212620b79ee6152e40ace43e2d9ee8465a0550aff31e4cf6ad18a75638e8b20e091bad2645c151bff907c3cf92ff411d9469eacd4dfa8745d05dce8d42793d8dc230942e0c54469c92308f0f8297a5aebb284c0b30c5538acb22b7a766fdf4727647c4ddf95e0a596e61df62cf00ae25fe90d65d546574e983d7f5e2924e95e2d4c03492886bfac5e7e7969bd4233980d46235cce60cfcd6445690ee68cd20b128cb99753dabf26d24eed7328964b3d54b6d1d5dd5a785587971dd7260f443945abe29f9e0f569a9c31cc319d60bbb3d2b3139ebd68f61d310f79c5dcf9c9ddbff9b429dee0da71b38fcb4daad1802ee53c71b063ea5fdfbd549749e5c7999d0a92a07c95394181438c1dbac01d51ed6d4109dfd1c1d7c56eb931c9b35a2611e844f7a9f66e9e4e4ed2ba0cd25e9a5d9d6e62c86cc772967d7865a49a5755f369a4f9393e2a0a9bab46cdf6f18b2def2d2199a28ef20a0993de90a4b33273926e2e4245d8344f27439172d615984e1ee6151b00a7e0d88c2c3a3495b6779e33b7c175c87b3beb1aafd250638f8e35876ad9f69ad3a0055f2e649f7521952174871a2bdcd5d0e230dd5f73a606c9fbbeaaa7070f5d816eb525569e09f60f90989af83021d8e665fdff9534e44cbac0dbbb275deb4d31f22463fbfd2cd89d64073a38ec6eeb1acf4290b9705ee817f6d07f99f933d911a996ac5b5a471e2329828fbd8650aab98a5a99bd5580b39427c7e3c44590ee9b08f2543d5d2ebd271db64b443d462d9067f505eaff530ba9e89f56e93db523e78ac0840aebd6a16db5e3f714e7f262368938afee572cb418eaa7eedfc41769a1a759b41647a756902eb675d6b91581a3ef9a5b094edadefc217198223cbb5c2595d9627f73b8e27299d15b79fbd91593eaa0e07b1b0dc95eb433f37b0b9ea0e891457d27ed260c656f34831a7a8b1c3d2eda8be418d89c0d132fe13be29363af2871fb517ca868738b10598c5fead965d093b99ee7107df075695f2c65bbab0ba00fea85ddca7b3c3b72343adaea7dbed0879dab17313ff0aa4ec6c28c8ac0cfa72502ac1ba332f421c48f176eaa96912970c3a59e8034fc3e7b0207ba1ec5edb6d9b91bdf9c4475df8e59d047bbaae6ae07afc71f9f51130a18f2368e1e8bf5151bdbff4b4e75d9cf6a80713c7efa3b27ba0d654d7afaf5b075c1936b11035fb17b7d109e569815b711f08837fdaae7009fae36ae1154c598e0556fd57e3a403d76b2cd186962929d428fd3ef2fb73c21c970272c96dbcd20053d00ba2d4095b751fb37bd3d179a26290dc15582358a64007267a1130550dac3dbbf3426ec485e93eff972670701558029a1edbd6f152cedba6e2fcec1a5c4ffe5e4abd42b28dda9efac65ec680b8a60fa082475e80aa5bd30f19941a26a91c430a3638c7e27625f6627ac5604b6947da390d1b594f092e816c0c900e36b5d7b052bc1ea43370be902e574f44e4af051cbb2b5850a07df0581a745c205e18ff78bcb0d413d94e2f3c28d7ad4f335871842beb6557a1f7d83b920db7a781edcd2ba43302e7ecb04ab9e9721221416d83f33cd1000910d50bd22c086a00568f162624f3f37264380c3b4b51e6492e45295150712d21541191cf9f8687c0c903ee30f05fbfaa685c1730d0c5ce03e0bf142fef154ca08fdf6fe08fd60542dd6e12df21280fd6ad5c398c8349d6049e6d980591d2360b71212c9d6b5cf8c848409d65721de63445d922af8c2a6796e7eb4a6b327062271e022786bfc1c13d06fa3303146ae6e9db3e669440490363516061b6e227f50be5aa94d4e27ce5cce266f99831ff986eed0d25b760c6462b8bfa8ceedc4b6662fbfcc2c73fe45530f02288d6b7e103b567a8a161da38032fbbe7dbb668e56628cab7c14608f40f27016b5adecbf6b4c99907b274fb8ec8e45b0e2e1961fc1c369aa6b855c5d5ee768a227c26bbe24da5a28d207eae41983a689a3456d077de1e83f37e11f034e85e24f25d3273b8080972468492f11d10a16175f9f91233954d4d75bb54d7c2a0115c6086a0e0d16c3808d244a337858ffbbc1e03b05b1c4a5b9e898e9783a1f092dde52584b651909ffdd053e1210769d74621c32811356d9850cc3e12865659344d2166b1c3e025b8027a7a66204aa6153bb62c57cad4b4f8b3299ca13d807f3402819f575d5552f306c0a6243bc623059030704cea55730990c6202ed15bdde17bc68515481ca293ab2d84145e88875af2576a865dc8ebd496ada09aa18e2b529e003440fbd82628c558a942fa055aeabc4bfb332f281b56162ad0ffb529785045ee9a948a3746261c6f2cedb82a9e42c664aa671207d944674950829f53abcb491a7e1750d8d99be2810b571c1e2b3943f8f4de13290d3f289a6f6a590976d3fed841f5e9001102afb5c34e7934e586ddf0a537968fda516b66a0e4683da00161293626f5ba8f61245666a1431a6bb483f8520722e835c0c48715b56c2a939961964b858f67e9de2166abd962b7a067ca860a3561a26400d2050899e6115ef52b7ea384ef741103538a041b01da3c79938956186e55e807e3a526707caeaab8a18ba864eebfe1cde0dbcec27926224f7e38b84c49612911b95dafcf7d455d0e2871a0ce4bcfe7bfeb188edbc74c62ab091372acc4201a9f0b137bd43c6fee8c43963712d21f2c6bf8506768ff4e706985fde829f893d90b45ba575261d1c8f308e0540703ef445a5e4f01f6d37ea1173c81a05c8e36a968f41bea200463d4dda0c19c6badb60c3c3a0f1c46c4256ca05d112ff59f8cbd65c641788d20100cf96689cdb4e8122ed308959282a3b32e4a57c01031023a7d22e483ae96894ad15f6a8019014267abdd706dbd30be07e88b5a5f8edd946aa0ed74b858d5fdd310da7cc74cc22b66462a757a41390a233ce56a5475737abb51fef2391e9cf0f9145a134bde525b8e9f441dff2653c54bf4f03c16c70d820595a92f6955a3642d1662ecdc1e633f38aaad753c992e37346251d97b1e286c34dc01f093d4ef11924081f0655136193ae0518e16ed87b7116c662d9a1a758882b33312ecf39cc796057cbfd93eb9adbb808f1c47b43850414edcd29524192adae524b0505f68c52872ecf72e06ecad16df136df0739afeb00ce63d8cb3a0c03d24bc87ff91aa4b57e19e2a20e99f2c7b31ccd271b6b79ea07543262552b9a7ee491d85193a0b3d9f14edc74cffc8bee2b7bc3f539a7450cad741440b20a05a428cd2e9f196a3fcbe3187458300e9f8e538856dcfa29fbe1d57f55cfff35acc1d7e9a1e2a0a7b97d8f6a7fc3dfbeb4aff037667818522d49370d6873d807cdaa536689512c0714c95a3887222d15efb82c6de4adf453d182b24ed7f851404bca276c1c3e53aca164a90cb84d879311ce16ad659691347afcaf2539e57b6d72b724aa209fd01c5d96debced68e9bd88ea5a33bc83d88bcd8c76d00d9a39e43ab2c7683663159ded0313f255a1da5448e1c20babfb64d58b7761b0553be5e12780b6f54408920e3303c0e3899022fd50bf91ae7f08e82cc30838d2484a1403a53c67dc3af4c595ffa0357ba2a199dbeacbf6f25f617ab1d011c77fecbd29fc0054dbbded659eb7d1155334b61ced071b62a4e560e8d8fc841f2ef1306a29720a15831322d4025cf03825d8c665b81375f2364bcacb6b31350c470a5ed4861fe19f0314268fb88f36edf4e5a92297db07316dcbabbad28315a98bcb0fa2d214abba0528c77d391d5d9182a6220c2ea13245f32c10f3984e9ded8b1ecd6db848177f3292fac6c70f4abd9978a336cd82938d039260799940e9325175a7264bed7bd4781a17a6351cf22a6a7be003862fbee70332a48bf568e2aa838c539b3a1823d7f22a5ca11bd3321dbd80c7626a8f1db7a75933eda1262f93ace6f03615491b7fb9d3f703ab2f4658f479e114e88a7e25004656ea0bbdccae7f9af1ead545955eeb5a81809b87dd4672cac08958256125bce461c93a2ae50f7706c4bcaaea4b7e108502dc6189e176985ef5877d04d45ab91ea8fd6364e392fd7b9ff8ca4c953667ac72556cd6614d2f0a637195979d67ec8f9871a1d89860a6ed5b88bf20599198de50a42546609b16e6785b98c9b81a3b3ff9e68824918dca0c53b34fcad711c97755bff59338f1484e7594e3afc7e81fe3ac7c8236e5f20281a669493b58cf4b84a535c922fc18dca0912ecab8b4c0ae234d8182a79bf83f0afe8b5e005fad835756a98b08c8b7b3b459e3b9f4434218458c5d5707ba34c1cb0e4efbca18d0c293138f698319327a0d1ca37f215f3281cc5f8df0aa8b35d4c339c324ac5f24a430fe3f46b47464e2d978f38e3bc9089bfc420a08c57a64224cea892974879b3eb1eadbb225777c442d4a22b7f362f68a2f31a06d2e5f01ac15632a5eec51c9854816d0c7adce9be515feed6c0c6b118dded7ec6264f0246cf1c0701a4abf5322dbe163b2c11d12d8e3cc0fc64a9157d9fa80735e9026e2b38e71eb2c07e883141ee8e1c9419618adec5fb0023aa8ae86d868f1613c6d3828f21051d7870e6a888451c3b0c1483afe2b718749ca553645a45a491012c2a8298b847623b0881b0e785c586607bb27a2573980c95db3b245c58a2744920b8b12ae60de953f8b295b9889d10e162e410c8c1aa5495047d05f0f87bd65dcf63323672d40a38f22c165441619f90d6d1d97d8976aab68e71b30f8a021b3491504cea4e431fbf941f78228cb6fa4f06a5210129344c3111d6f8f1fef587def318edf194b030883970382a243db71a29422269110ab3b2b1413e250a3d861fa14cb732795ccece8a0386afa7f7c4f562947360f4cb96886ed86deb64cee5014b20ac2d003d2390c7f130e199ffde6969f6c48bcd9593fd99ca961d960b030e7f0fb053a10e45c611afc479275190972893c2f269e04c51294aee3539682f6bbc2b98fa01355d71c8e6a4428a59e359d253a7565cd7ab85c1d578a356480883e3793d3b697d170956defb142f742b80ed6270640cee89e8cafce0bb379e0ee4cd78add31e08b46a98087a9f287db14dc75758b2f62c41ad21a5c75c64d055d9029af0a3ce0d744ab4c7c7fcde3f4893060e860152040fa48e0ee10393c00d60dcf09b9eb0af29d88d85cfc5086822ceed12e709cf5a876eebc9a9a7642fd2963692fc8588bdb5f227db884b299f0a496ce78a0b4caaa0d9af174da8bc5f1e687d8f3d3785c0f70d6d4b565e650511da97434c5dad9bbd74f0a41d8ff7e3ba01e5a5ba312660c03db55961bcbb70f39090372fa183d7e90b12d26aaddb83acc28522e62623ac3f906bfaf19ffc47feccf07345530224d19ae30b42d3f8a6724253272ea192b827d027c868a1fbe30b39f491d32ac6a67608b8db9443653083b032f31cec18a6893c0e06b7dc0fa9cdc74bfa6a6946577d50b5568faa82b81cc7726e54fbfd20a6351130a5c9d0c44d60fa0a6a64f4b50cab0a7b572e1bcf07a51bcc370b9c50cdffff9e1080e79f4469e11142c0695ffccc70bf76977a4fac789b1bb644632abcc8d152f035f0e9e44d76d0875c31542feb4f1741a98106319e8931c96ec445e77145e641e19420787181c5890223b4c21df0d02a543a745b94e23a6d2add59f9df8cc653267d36fc1fd9f5b4349bda7905dc6071506c5f20aef75385e7aa838e8f76dc38e4b540fe178eadd3df47fd9b4f483823f3cfff39fb5830e0aa007fda1de438f5531e0cf1d5940320494dab5eb4d88cdcdfbe94f54223d2407b19709e15a893c7c445aa4c8512947eb02972fcf5b9607651b824569502b230d7124f391624582a47fa1d42e009ba77a95d7be2ce9c025127d86af73680ff86022628a716166d4b5ab94c1b3be1d279ec981034e81690b8bc53eef991f0ebb76f98ce5f8a4b3945eb16620db32a9dd7e4d56bcada56c3416086ad9f19d2d102297524939704c2d42615f4688e52f4c827efa156d5d573c145773a7dde2f8e254c90b7d68a4473c4ff4e29c0fd8c277155df61019fc7d03a28202d90aed039c2fd28b8a2f741f75171d9d81b3d6aa706e4c4f819d807fe13ba6b74048bc404e48291a0d7d02cef542d0a0169fed0def4f726bb9828792088970c9f9f08e59e1b0094b200d35466968f4f49e8276a253a69979cf163e340215137616c27eb8be3fd1c71217d76f31566a11f728d3f9266f868c493de196a58002d63c9314fa285bf2426c95ad989b0a452c04c2b9fa930ea53a380b8224b8e21580ce6b5379d8aaac81cd03d7880fd59c19b12df5330c193bcd36271d6a38fab0207e8f2b560c5b68e8a715bbb78760e7244037825aae8a59305735af42b78ff9c42402f0b64357f488046634b3b9b405bf90da07a8c54c9ed5c599ada1d82317d06470ff9a684b6b77dbea56ebd2f5232c74144386299cd6882123ec8e43fc6606223dcc5e605969f356a4e6dd9b99b78c234d9e63b8a0d44af54d484807c20ca4429c790564c94caa64525e5e0fda914d6ea984eaa6982c8aaacdf59e3130d88471ef78ce894b813a83604b1b20d79c7c6733e1a2006712b06d89c090bf1cf4c5a392dc5f722f146a0d73a600f62e01ef711069213698a1ea25a63ef2f19903626be64f386995ad56e583ff4f606a0bb76a4d0c3cfd298b63f1b90440f51900dfeafe3de014a6a91a3431aaa3cabffc49eb4c4ff1632ab55384133a00414583f81a078efe69d28683bdc5e6decfef156146e6cb13809a5ee22cbacf8e25c7ffdc4f17ce2ef9e8f388c00389a56d7236332f9001151ee19bd84a2cdd665ffa28cf2b2f40be104517b3b43a42cb9c04bb24b5c00a01d0d48025c5b9b51de714ab38224d49a5b0ceaa55e878f6416d6af87b9bed5bf55ce6f474e73921b2a826156b915276bcf825d6d50bab5bfd80a5b6c4cc7ebee46832271a78df2ac2a78490e89e99fe1a33e3adbc0b9c30c82b3406ad5379dfb6eecdd7d42cf934c35acc89dbf5e9d0cb259772c5d42080fdff6e3be9c672abc9ed945250ed0cc4a4d057c755e6b00f60ba96d2187819eafa3d4b12c4002c87eead7d0644661a634d3abe6ba7c13ac68e9165599ddfeb5baac9b3e3a93e7516ae1b58f91e0b52af58498ef099fb3a8af2f08c4043a9be059b3648d441c4f48d8c86738dacc4912875733e2e64e9bc61ffce6785396a8150367f7f9ff39b03c12852b847404c138aa343c76ab06828564094f0232200ba4dd53ec45ce883f64d9bbd1206359c4d1f58b5b53cf3fd1369bc86f2052e9ce0fe1c1fcd6a3e32842d30946afef912ba427237fa289c979f9a2542df97492bfbbb0d4d411f7ce8ebf13b89b455ded0334f91b77d6b12464f7ceac8de69f9c7b37ac86019e25746f15b377c51f0be8c0128d88859288194317cdae3fb46fa66bc156962b7c41f674f70a2b1027549530d38b31dc1a44a6c789a1cf925bdbfcd491f7c3b5383731f83cb08abb0f4dd34980b973e65dceb531bfb463a89fdd243a2acc92579ed7debaee9c284054da1d60570317ddd3f6920f5c6e6d556031e7e659958c7a203cf4636217a0f074f132910e2e94cf9ed3f6a4daf399e4ea9f683798b9a3efa503cf981daba80175f2080063752bec46fe01d5a5f55a43db845ca04c6a29304d5902e4662d8a23f77b15d3d7c199d7fcae22daa4f7f663fc8289834608384914b32527ad9f94a4cb2db6cde82e2f5b0a818a186e883afeae04efe4bc3ee7dfcff99c730cf2bbf34f21d5541c1ecac2fee8e5a5d2600c9b8c2bb5ea0c4cd4247ac2f3aa678c0b3a1c7feea0ee0460c5367193dd492fb6fb9970eb5e63c200346b97650af658ca11bd92ce19be8046df00122f9c30cca86a807bafe5223506a19d3872e18a9fa1407c60b48c6d86a0221be3ce84d1844abac64e74c7e0e5d34889846f0f0385c61a29ea6c5e2ab15c12b76f25aaa9914e3f7c7ce7dbc8038074bcab356eba11ae09cf5cf4b87527a245dd31fe7810e421fe885a42285024982a4fae1342ef206238ea4558f8310c47fb4ccc092245e654259cf35cf48324fd6a82b9c5b5ea11f9bc22baf515a702bc1ae63947cc4066c7d77138b0426ce3dd8ece7195317e0ff1a66ff8fe9cbcd7c2053c73a8c643e585ea05092379edf4b6f3af51e5a0150b95d24cc7693206d480a4184f55482a0b4dd21990539cb08f28ce4a0c0e29c335bb3d6d44f72fedfa0cccaf0d087f8b166099db1d30563dd02e15c964bee4700b34b3152ac8004897bdd2aca9bef25eb1f6d655a3a757a4e225e7b8c25efa6e6b3756a197faf1d827825f7ae0c827cf3b8fbf62eb07a277fb4d2da961003449d3bd1e8a588b92c76682dec2043099e7ef48708d01bca0223c104ca90800706f18e5dc825f10d645be18dfb386c063b721ae73067b4c826ef1532e1577b25e6bcb7763a7a26adcc45beb4ee5573134d2951fd95c29a39217b1943a75ecd0ff9097b3b40c2721ff258e4049b9a520e9313fad6cc0db28747a357b2c61e99a7b849882bf428be242fbea19199d4df5b2e48478288c49d8e0f57970563c9e34b4a6469d27c65c847ee1e02deb2a062d5367bd5b63f7812a8252db4dd58870385fd4aad4973c8abe1133e09f49fff5c2c315cef45f433ab8e7c7b8b5ab9b33282f0ff64109c9dd4fd89aa60453bf476cb7ece171b787568a4ebdd3b9c29b0b8ae12376b578a145bc99e9cadd054e87459db23b67ca0438367ed1e489b2e358b92aaa10923056b0884d366a6a9d4fb7a5b888150acb05dc2eac0ef8dd514c7f3d0305dcda61386583a44f444b3341529cadcd2c5dbf331db82d3f39d025fb7b86ac4e8c486de20e00625d0a80e61ce53a107683bf2c8328a3b0f58efb72b25be7a3b63a3b97b48df18a22b14c9412f51adf7d8fc9e243e9368d471b7fc9e18dd60565ab5477b1db4769c1c45035d2cb727d779dfdeab33be596e2ccca1a6922f04ad52d41c012db444d65f481ba762de23c1140ead660b8d7adca974efe023bf7008d5ae09635d7179ca188ab734e16edad17c5007d4cea684e8bd91eb2c3444b0c8040ac510c15ed3ac89f5b69945bba867296a9806bd579b637bd23843daa65c12fc415aa6a360c5f50cc03d166f39bfaed5e883babce73184a3dc196b983c8abc88db6d461414c9107967a68945fdabc9a239dc564363f88c0034c8dadee7f6264e68747dbf99ff0f139e85d195993fd998bb0b0a18a3176f4f73731147839480bc955c239d3db6f9e9e2e39c4185135f860236ef0e118d0717c59e69b4597fad3b97c76aad532db928a53985d8be44a3dc211e7a6b684734b13b0e9d944d4fc351769e2702351796881754f532fc9ba77302e6c94ce91f4fe60d5cabc96388a9881d2fac5ea36a3a43aaf0de85f9834b11a7191a37e5d15cba2a2bc7d823f5002c546924cc744e6857bcb1640955531b8b8fd64b84f0cc18209462bf13c9b0e79d800674899078f4114113a40e360fca07f2b14eea843085f5e19649cb7ac3cfd96d6fbf68957c20823124812a27a614a2a8101d2cb714749ad57d4589a79fc0989608317efed9837b1661ce6daabec954b125268dc8865abd4f8c37881aa5c59aabe7f79288bd02a697a00f7b7ef4422395aa300a85666fb6445352cfa9f271e44f29872dae4a424dea58e483441e229e9446da76a43e5c79bf0457fae0e5f5fc8f1ab94aaa7f7702765411f6653b038c5ab0c2d65efbe610162a93c133871d0108a590f5dc25c64e28e9efe094f8f82e6b23f5a16f834941e837a463f2ae6e9fffbf2d996e854936dc48f5a4ea624f18216701e81c63a592e2f2b054f835cc20aa3a736845ef5420eeba08d47d9d6ba9f05ab2257be9a142bbea35544d2e2c9dbdc2568b474ad580901db42bcb7932caa078dd7b562ba61fd32d453e935f050f0da0bb0bfdf1e11d249c75bd83709e3a769f561c275ccea7c4d8f13aa21d1aaea8cea869f63e642be5d8d4b1b4d68932dceefad06afb42712370be9435344d238048fb7a6192d853b23849a5df432089b85c748fa6fa41275916736348bf8f2ec5460d3ed16e4bd390282d6bf2cfc771a614474355513fd85eac3425f33cfbe4195c59a8637c448c279b2e4d6eb469bf3a372f8c2b4a42e0c420df675f8acd22a60e2bf84fddf1722f5f1134bdf5b456c4d8d3ebb05bb1ef74bd45a0ee5140084164fc49d88bb19ba99d83625b9290f53e8c4dd14016e820d2757e351a35a4f3399801cd6aa7c7b577f3b4743a2d52ee265b0e082e033833af95380f6fced0659c1138e749ead0a066989e3644969c9c7cc4256ad85099f43d000604326b831f0f1d7d7eece137d68b299f12b91d61e40f86cec8b6f2fd7db92ce056ac15d56b5ea0033d20ab1798eab5e4a75ea291a0defbb07ea2d9d3dba026e4a5511c1e08af38e8385efd8e10433acf770adb5689ccb21c7ae454d537993365c4715d92fec994fb674c4f94cbac4de8570fc5c0d5a684ea571f21c06ff1c42dc233ed5cbf64ab52a5b2472a8385b4e57103c75b76aba1cde60782cac7bd00e75500c010cb34ec8866d438bdff577b2063a8e9d192293d7454d6d3603d51ecc8a60659726059a04484ab5f63c045887fe62f2d4517cab430eed5973067d0da1e079a8f8f483132c941450451942195e0580880169b96631ce1050d408ee61a33ab4071a496497bc13aac3e70025cdaff8fb1779b27da46f763f34d95ea442f86fcfda803e83cdca125c93a37f6932547a884ab993a953acd88334b738d4486235ed2d25d0a325cb9a8192dc0c69e24fe448127fd5674b7805b9c926dc2a7492eb0037431431b48407cef72e9e9795750d3698c9ee9d11006c30aa31248802b22139bea799580b18324d5f9f1f939345ba2edc8cb2c002d55b673e74d2a1db40e993f1f3d2b3aca6c59d1854192c129171beedd18178088eed1dc0cffe485c4957a44ecbf04f36dbf4e4ef9b49d8025c38d6df584968a4ef0f02bd4009b59dfe5cbe913b86635b46ea2d425a43172668f20cd2ce0edf983cdc17eb9e5a34c40253579084c14ef9656f2a624ce2da298c3195c1b9340607d0421dd6ca758b9575c340f2587d60898c93ae9e8c4911fe219ca7adaab1b6611aa48f3f9f0c83a74bf4793dc50861b1e3de96059609ca28eb8417abf395458dfdfb5d1d85a0d2a307f69a4b62af9e39706e3dfd0c8b351a368841b59b33d8073f8e132808bad0b3f20d565d3e339a1cd5bf350a16b1e5826abae711d1d110b13ebc824c8f6e736c446b6e0760a9490faef5d162c920a2510c6d2949251b42e18c007421f838c55b7ab883b0e511e07c6d5101ad8aa05e049201ff627a367a30a66426a0763b1832f1d18a1396242125f7f55a76d910c62cd20ff49a1475d788bc7faa218f145697502c60de0d9cc639953ad03a6ef07bd231ef923fe88c74d6b76fb3811f0285f65227196b493c1c532409ab0d5a851a2f9db54ad7659ab6d16ed45954bcfc7cb15ce4d5f79e5425fe1c6c6bd335b5c5a291c6e78cd3f92706dc3526ae6a6e79bf3d23fc7560fddbc9c51a3720bac2476e349c8089546db6f5df0a53d915d446a7885116c6f0f588d0a3dce321a96a07aa4261a33b7174846c762355e911b5c1fed7f2beae43c5b1bd7b9b790611b1c2052083e467978d44d1a44cf9d4cdf30e2fe1f7a45100bfb4e471ba3d546468c0cb573723bef430b10d2552b4beb9c09c4fcc6eb1a425b255b3f0d1e446bd2b9d0d04e9bbca8e17ad8a07006f1bf89430070f524aa5befea2e5b12d73e51d36b3790d047c4d6cf2821afdbfb9119aab04b15336456737f4696eb4ee86821d1198f50894ce4bbc4c79d0fd034a21e304ec2ac6952356644f10c08b35b508984adbcf1f2cd6817608afb97f40ce4286732f50243217ccc0b4f9c400721c789e296c6afb13eddb0af0767417911c735226d0fa31d05eced76ebe6f5c206a0b12e80b98794ce21cbeda0c896679e817c5b269e1d6d9c09d625ed736941f6addecd1c91c1ec22afa4f69e9e43591847ba7139fa3566faff8439c377f035fe4442fc8eaf7228268495ba617039365214941a9059c0ffe3fe085f306a0be5bd4b79bab1dcb158e154d69bde32c9ae50bda10fa22ae4712cf439a755505722a321aa520ddb86f908cd9a574a1162458318252d41a1006c2972afc305884226729595c2c0b91e44258ebe647a09adc2d3d4128067d200920eef58d035882daea0a028adc30ba1250b589d87216e2443111b207eca72a2910845839b9af1d6d1b46213d16bc9cdb7f59de427076f57dd07ed01c4c05aeda4899e6825706445e607613d461ee1fc22f0f4f5f25204f873acdf8be9c2f4c534a0eff2aa104548f3b9288e2eba78314cdeba33bd1f05c58c3402d51084134abeb4be3bf614efe70cba54385f8dcba5197a84413f87748b8c1f8d8899f540d6c98df29b48fab6d6f08fa940be8a72f06a769c94960d23da46624538b36a935e2b93e317c723448edae67cf9b75f35160165f26a59f02a6e1225bc315731831547f2cb39e24fa142a1f751ac4366711c21b63889c081473fb3388e25d9d16d176a78c4d69c5786288a309da95d46f433553559b135428e707713ffb35c1573f93665e82c99bac19d9266aef9f305c8f29512733355e207aea491f9014877b436bf5572b5211e74aea43493ff6c24a0f87486b868225eac08cf5671945d859562fdde82728f533aef9b38a9d91f6a483d530912f3a71011885d12adc5f7358eb88c809dad9cd6003be017c37c8c53b677177caf2a0dc0da5e50d98d54add15380437331bfa42444fba3c71399034c7b9e3930ee38ced7b0810a11010e527e19f43bbc5d65aefe07a2b980b2869db8d4e87986feff9384e2da1371bdfc700af15dcef7cdb4e3b1fcad8465c94e619c218e37948c5b823027803fe7a13fa5c70e61a24815e77a0289f60da1dc5c3380d8bb80fadd68c208559c83fbd574b670ffa151454d4814c3f452cdb966585a99c97317211cea98fac06dc8434e4a8ce0b3ddb742a3525cec13a3278cbb120c3da587ca557f414064b38a60b4cfa68553949cdefc2f2b048e3a2d209b19138011cf117a36ab7c73d6714c70a536248118b9c03220bd86ffbe152542cee2b1620136f00dcc267f18fe6bc44884f8b8337de59757f9223eea5fa8c7ec860ac80c29a5ef1ec7c5378ddde94e6bdd6a0d1760f5e322c5046ae62b51bf3593c3459f0ef039c4a34fed528cac7a16b1dcbc32c5491c253a9addcfecd7e30cbb3a28ed3a2ea33f2c5c42b14ed3125ab36f93d3170a5c72635d8ac2638975928e2b879d135bf672acfb5ccb38a85d69fb5ff921b2938ee0cb90d6ad83de3a66fcee7f32663b3f5bc6e5fa2fac0dd29232ca5bde83ed10a37be19df6884608922cb94dc0b8064ef4e1edd48bb2394912a3ece595c25f32aa0121ae46140c8b72d3749f03246390dac180a7ec91f4ec7366d0ecba2891c6001e5648257091048cfbc1d0d3bfa9381d8b65ac0304c988bc1e65d6c10b577f1585ec7d5bdb0d0ae506eb6d68548cae72a13accd0dace6b507000513ee627f3297896f488181addabb723306efb040a4d899abc0e7eaefac4b737c2fe98af6528769a9ffd163236cde571e6d511dc98fa9d9ee9987d3d2c1b0bbe7ec772dc9dfac9ae9e632dc8afdb92dc825b21e7a4548aaa29bce5cae9e4e3b0108876f74e9774eab6b2bd385ee1d2d6fa928db454c780d25f3edd90dc709ea41377941522412f3c198ca4dad3bb5c121757ab2134c4c0a03b43c4dd124cfdd12b20e177004c1b266b192665fadaa2efc9304048eccddfe053b57b559eacfe0be6df8b3eef34557c928b293428f4fb9a6aed6b4c6200f0538346d2dada44b141027d54d69deb3c3299e1c7aa70c6cf7f805e4fe925ca0bce8db63245e5af77d40523ce84f0cc08f1ee3b47147f7bb953f5d9b813c79b2924e2bb99cd74b7cfd291ad64a9d711f81144cf7d9249f79f4a7215843c6dd4fd051bd0f0720f12b8bb538324595ed6101baefe030700689ad9b2191fb411c5410777a7c9576a21f62d2b4374931af9eb049be5c0d9c1ea030af3899e92312b70f2be81b6da82f66ad711049b013910c1d58e9317a64613fe7447b4063c869247c248c8243d0e3da30f04b6fc63d241a87e129e831ec076ee26d1592fce3882e4fc318700034ab2a00c154294d5a829278a6a0dcdaea2ac2ecdc82807644f8509251c50342e8dffa083a634d02d0d4a46218ccbcfe81f70a8e43fad8d29375f73c83109057ed6a6ebd3f51efd04f7bff44c55644939e700fbc7389bc48ccbd2ec4b032eaae2d143fb66aeaf51d984cbe65f87f60c28610babd3667b97baddadb130977030769b1f2016fb781db0269c78c19af0e0f2eb14c8bbe15e64c85e24ab14b14d3ae2dc3a3308feb10e1fc39a76d8e82302bd19376825e2b74f9da9098b6bdbdace5797a25a53ca16b1adbae5c6a9eb633bf803cda4186c855070ce60229f414dbfa97d262e5a156d25928c0861579c5a76ed783a8a1fe206cd8d5f020c62c7223dcade858f80932ca030c10fe3bcc49602621be09c06b50d77a37599723588de68ceace817a8565b29db1686366c68e015e0ca1f94cea60e6db82548fe0b73bdc72bd20645640fed2bb30968b7011abb88fcc8553b83237907963b5eafe707cf93581a4e2859ddea931d72e8ee831b5584c27b1e40e816107cb0a88204a318df5101f28210c4b0d321a505f2a87af39dd0fe77c1c0e4e38bae584868f6fc0c6afc12aedeb1bf10eed30a26c965e272d53675696cb91ebfaee7f5bf332e130860483ccc948478ae2d5c9399a5e18a280b670f426935aa3f943c7245034aee16233ba4ac8b3b17d386fe64d68c7630daa53eefa6e6fc59c4ad532b29ac1bdd30b3f9c3f40ada37c94ce537059a4f5d8e4101ad6db2331557e673ec19d6205f89082253bef9389032c85148c713920ccb1108884c1fcc20e391f8315ae431a5a06352786306458df1a18c49078ce95deefc0d259101713976e5c43fa6405ce15632eb4a7859786d560354cd260373546ce7344fc0c82ed5e8faa8c7514b80c118c660aa6f1a14172387e63a2f01d13d31a6718ac30e715d46052f197893f27d6dab91e5b362afe4c18694cb334d8c30d4370195e69730ea15a11cd53a0f7357a437a1fa6b0e8284221c7c071be0a805e6546a933dc1294fc1be3ac0db76507b0d6e99a00b61cf95fca519704efad1168dc4c31c8e8e8d47ce6a18791e9b8fdfa97f1376166259bfdca0329758a750bdbb91d4164218ef7f8eb352c7f70140dacc2a08dfc9f86d786f00606d4021fe99ea214a0234067ee2fbec22dc4fd3e2494b80fa72d0a5a137256f6a1f45c03895028616945ac3869b8d24b2575139dc46520d8da62430b6e274baa2ce9c7ac9819b43100db1add0df9c87771e8f4e326945d067406dc80e3a916a5414857ef251ed3b90077af5747f9e5a031e5240ab4a826d4380e8f7db8ad2afd740c2485f3602e22ced2d98fa6365e7a891c70048636591938dbf59dce1ced4e02cf587150d8bd7a707923242bdd132e2bfda3924b59103e55c26a0710bad2b564433bc277528b41e6a977c88d5f20eea60026cbcd13a347a2c8c12a2685fa2c4a5c74e434314bc2cc3ace9c388c3012c6c6474b3b013655ef7c0e7cd4e560388c86bbbc7cf5dbc81414d45b7391c2215639115a5279aa727b2af1084917efd8220f173db43611f128947b0f9dd1e50be4a827d2d9236fbddd604642d53f5fc981ae960e392c99415876de84fc2563c19dbd474b7fe210586a7b894bd51c9339189e0640a632b90ae28763bcdad584c87a29284f32e71a32c768addd095c82bb922328649899984b975f81dc8053d62bf7efc802557d2b7f566d8466c17bcdc00c886ddba5dea159719cb44245dea536220caff6f9c94057f1f897fb1f42de14112440f3803665c6e2c3505e2e597abe2e5aaf4a80e7d3788c1e671a748b6c66aeed92e52bff16ee60bcc0305ebc6e6b51c626b87294c922b35073516df87d84481e79f3f16ed1509ad3138234c2def2c587609a43461caa1f1004f1f9264fc2d52a15e22097538e45a6c4971a1f2a553013f442294e34300159097f88758bfe158accf25fa676e7242dae190e91ad431f72a8893a1cc37f4d7e5711280544b1f2abcb24b52b52b81147afdd5f464a016f4fbca216552093b979b810c37f657f92ad074078973d1a2bf9e3ec3323abd99373ca7e546990d58ab99efe649295d965e1ab46f3e3bb2884180b5c9b2c7513e87e7a15e92dc5b17c18e4e0fc997b057e83d8b1c5b35bdc294956269e29ac50077b74a87b6b0abd5c80f6037e854a4b3de3501cf3267a7706c64c2a1964a74839877d82d211835cb578a5099e9a293974cd210b2fccb814f3b9a3ddf3f4d65aee91542b8aa966dd34d983b08d99dfd1c1eb3cec9405426015a010e55af5ec6d7ea1fcf1acf7218fbeb8fd83fa7d7d9cf5e31ae862a024505bc7c04655f3108d3f53e535bfa21e2f49d408c6db5d4e126b9756a6ff2867a55d45ec248802fbfcae13f7106ae5fa0ddff75000bc6422e0454cc9f6c4161ad31ecd54bf7ad3f91316d4fc1c3c20b7f045d3bcf31b0b2469656f80c6bc3fd023a1260fdb47e66819a508cc9def15efbdac44fe696335987d0b58a4d1e8459df246293e9febc151d3b6b4c8bc40c137cb4c4687b697e3da794e4c50f4d34181de4498808609f56475af7199d576061d845c2c04c408330c9076114145ebf7a172f04e4ffed4c997266449f4faedda309cf37445920e58b5b15909338a503ac10c3709b3d74ba8b289c764710acb8ca119c77a199b562cb68ba5c26d47d67c824e827c935f99583889a11d9dae7f314a17067665d77a9d69db5656bf9ddb3700386ad7943cc8ce66025b8ae36a085e201ec838d87898aee3db7aee07b6dfdcce173429bd2b9011b609084c92cdbaa663cf45f05eea04045be06864af815c3b346ea1f4125d19985309f8c28e0a348593b18621c8c9fdfcaf96931881e423411df63689dbf7f763da364b4b7fc02080df66026c25c2f76bedff7a8e2b978cc36ca8df0bfdf3fc2db2a9ac45cbe794a703ba57d41abf4bafc2810288455750c050a5ee62732562c03e0695834120a7fde9146cd40bb9bc1edde38a465178f280c9230403dea08f328944483b8ce9a820cfaf9d7a79b9ece3f327d084e6b98d6dddc0e9393804d3f505499f818a6791e92350737e2672e9cc18674d3408c906f0a72469abce5c4c60550f689ae3aafed83b31dba8ac3e9850b8d2e5171ca8d106d093bf0a376c8c5329c70c7b0c79b3c1b2f3c2370e6779c9d4b36ea5b7ef3ec8467e7449bb9293acb4ac2dd50cd270cfa6aeca0a4a493ca1039d35b5626a54f9c782f39d33a92941d7711b93c2602135f0b2bdb9c5f242b2edd71a0f5baa25f12395b39fd09c384e301306b0164d6d01ef58c0c3be613711c792381df43ad9d1c3cf0a3dd6cb93791f74e883fe2ee7a41e6eb024689f6bc50aac21e83074f4599ec525373dc920fe606e95aacd4b2735e67caca046caca91d4295d808d7f7fca1f5a840f315bbb7b5ded1806efe99d18921747b51e48567e8bfa065eac842351d40b450a9906342342766f7a8e52d1624d0bad26e3ae7295eeff64787c5a1dd4d13d5b1428e5cd11ee119afe6dfef9a8cf7d1cbbff6780648a72b2f06e01ebe6957d4b05c66a34a77a7234e76f1c8cab42d6d867527673c3a10aa03a8b78a99f6338ec247af191914e17417d1315a83fe30c1d93963c5d39f9f4436a13843a37437c4e9824592882f63a2c9a009880d72ed78167a4aa11e938216f5814b85723a3ab1a109888ae92289729329b522a42ca480bcf92b134a5305720713aafffcc8b771ac0611e4092c98a09bfa36b961329f3d2496882944b3a465e9b0684659297b18e2df2fe15820779c631e3e1c1e526a994db5e71ba7c053e067c606258b24be118cb918a3c9e2e35b96b619a840a9f640bb31ac20990190c5fb7fa48df10273f8ae574a56243584e9bce3879e3bc0d8c357a2de6695d58a297431ae12a53d4a7ec3025d10cb856c7759c214b9ac04a498f54b98154d5535218e3350831c4b0f13c4a63a38132deb83ce90113c6e4c68cdc026a3f44d6109fa85a2df47f2216fb3dcae6bc94ec5fd1b6b5bd081a6018128f478ede6c2c934d09a690357200b4dddb01ee37c06442ba85152e02a3e681fa565649f19c0eeddc5c5e755648d63cc6dafc6c99210a1c036ff24d98f3371f801d50f36fe03a61c7b3327d2357e3065be11157319cc859f7416ac108c9bf8a427590454e1abaca8833d84181ac0459be1c53a5dc81dd49aa37707b98cc7c551f6bd797883826d46aa9b465a9db341939902c5ca06c626e0c909c56106bae2531312fa2186008310f7e5f7b54d32fe02df472ca6663d19019030af53c6d8c9297af359031b9ce63329c154673e1359245899a094ae393e56acfe0c857895a010766b9dbbb69502d270dfc05b283f0791ff5676a386559784460106252c3603275fb5a50961c6d8cfc01d2b3f75313c73bbac4061646b5dd33ba550bd513fa0da28eb0468d6f1d7f36584645c1f09ebcdae6eb52491d2bbe21891595b464d698d62ba1a486f60843125d91d1ed8e7655085417c14158dbee412f28d733f421fce11dd61355adc15dd41aed67b7d2c2743a4374e74a1430fcf05fbd8c1b4d31448b4f95396d19e622c2b286a61f0d0eadd132e2b5cd6b9e7cdbea56abce84605e4eb80155406debac64ea58deca0f97222ab3205e2ecd32e1092ce611be7c680415c92044e8643997eb225cc40da86dbf92d36ca89948516cc4b6e5868a18086af2ef6c5fdffd208487dac0f663e4286fb5644dbb44877b8b3441a7e0a4beacd82f1591849ad0bef893fd48d43cc7d0811fb17a1ec8465d6bb195da987ab5f3c0d9cb8739c431bbf3d3c499d6583bfd6c256e4e872a0879d3dbf77e4ba0021b97050697d011d5dbe19bfeb0daf217090f29c89d172938a026e03d5e97e4b70d1f762ec15484c2395c0c2a8e2dddaf5327de536f53625c546e1d14a03405154811a396ea69a6dc6167b251c4faaaf7b9abd8144d10f1c11685f54e1f67b8002c9140a02e55e892e0c9be1da8b867aff93850de13d6b3249fa01927ab0b2d82c9a4fa729c7fd63a2479a9b84dd84fc7b3f394dc8ec3eac727fe09701d4f12a07b858404cc895432eb7f4395fd35d90df615c1691b4f4622a457d09399da47a082bf57f7d534a0792181245f440ae64aa935dc9cf529860812efffb9f2baf977f36ca929be18fc4a8d7fea7de2a78e42686d66c20102b13ec35bf30a26d51cd0d049e2e48867c838be1722b386316ba7c0070ba00432640195948cbc2270603a62190bed342e03b2221920c8c363eba2e7e3873392530b8cbdfc8ebc239264f9a359baaf9272eead6785bf8124a07cbe4c4788027e47a8aadfe51aee2110bf50a9dca7b230b0b8b13d341592a456d43084081aa108b75b838f575b65e655b1143acec96f8eaccc9494fb4016411fb1398abb984d6179d1a80c857b613bc3e7829a76fc8e0d0bfaf7115e76b3bec26d844bda5aeab06297ab5798207a636f50b4f95e604a0c5a0a305b08a3eecaa6595afc4bd840cd13d202c3f589be740bbc5968df815cb33a47acba0b74470516c2c76df3a856e50775f7faf24980daa8a6fa8fac8d24ed0cc3b7a1c6041ddf16c58eb8f4eb1fa61b15451c5c14328f69e7e8ca4abd8d2b589bdbae3aaae4919b6647f44de6e9a100fc6502713910236382d2fbf1ce9a927723f0404625e19c3cee06ef99de1a60f304c98b52a07a37a4aa4c3ec22f0a04b949df6e38e61527736b65344a61756484c6f9f7b6d29b6ca3f8280a19e82669b673ea9bdeb5ce1dc25a4f7ec3e0bfa3c045d8dd522d19bcea4b84a61afc9ca00feb8b76415c708641584947aa8b5ddb87b02615793aa90abe96bd50ccc67261ef0d5cc76224bd458017694dd822c4277d6698150572143379e05162717308b78c3c0015324e46d696bff9fdefef93de7077bcff52b7f10f2bc7b4d9f4fdbc6481fb94af1b29ba5a8348d3b2c85b96be881d1b6abc7f820e03f535587c3fd0f8d447a10449ccff9f1677f0382b8f08fc4921da585a2206d892645f2193ae3dcff468c139aa0dab933a0a418031de1f8db5d6d50e1f1f7066fa700783956eaeda5fc4bead08fdd772d72b2314a8f1d4da46f04c5ec7fb60ea20453feb335bcfa4668ebf11d099a0074dec7ed89ba98dd82e06960a69e06cd3f31c660956fb44ad7ec638e5e4f0b76f0e9665091ffdef58f4ee4ef8f5f394a04fe4cbf922407fcecd2dd61a3e2eb40fb69fa681f1e3a46fd50965642f7e3ff093d1e52dcb994378db1da5c008a951d0a648bc5a6771991a557397740715005cb2dc63b37d2f0019c12580050b4e5c5182504109d85888d398ef286bda4fa4c1c4a897938d36fb42a57ea34c5ce13ff3053ad26ff5f21060dd7cd6c0fe467be0d685bbc114547891f0acc5716399d17baf776adc303d366bc6965b6f244a5a848a99f0b179801fafb9c236fe09f850f434751a87e990ed57b62a87fd1c7f02298d41af1ac0489a238601a6652d6f3b764fc467494a035590bd53337fe09880095a02e7234ccba02e7ee1610c2dd8dea5eb195e3dd6576ffacc50c569242d9436f7b143251f97914ef17ad245a19161032ae2320fbed44cc9ee8391108c792fb574948b5d675a13969c6737ba4113892b6bceb7efc54b4e647e43391cc75886d58b993e55676e8c7eb2473c4f0386368ff923b6aaf2dfb77ab3448a5a0a2c6c9ecbb8c33152dcfef56555e4aa34921a41a1c7630dc9a0e71d5cf09451be47af4d38b555bf1092959a100c92aa468390ebf63109180c7c30bf12d6a766423b44b63b0051d07f3a47bb8c280cc422c0381f55f1f4d8c4edf11d9d307d5b84ba25fd608f3ce5f5bba343a8af6f1d8934e092bb98e7f3608459fccb0fed303b5ef44e37d46ae03e09cabe6ae2d03ab8972ffb4354f8ffbc490bf1f275715394b474085a5a86994c9b7b686087a3c25ab8d843651bab875b3bed857488f712a067a9f54f45ef591654c7ae2c2af0e013eb355f212f0f05f73568cb77382fb61b0297f5616605b19bada57aaab38560182acffe0bf20fc0f9a94f27f4ec4474e1a247374c8500e9ec3ff52a9227887a39739a9423d60999f7b5b7ab440b796af92c62654169a18a3d14be8dfeca9b6cc8955192170b6296e84f6973033c0498cb797b7cc262243b66606a86843a31ebed106d29ff5c125ded58450715292f2e8757ac0fa859be01dcae81741c44a7a6c25cc0b603d9c17a0c21602b70af046119e5bed9504832d99c0bc3300f1fee456edd522d2ae1683b6851f57c40e5316c21d7b96b02bdf9a16a35552876d235775e45fc4c753c5194d14aabf921294de71d36deab80bc9b28c99da24a127d9c379f755c91c57067b21a4353f5f7af15b782907d16fd3fa05ef796521b49b7fb935056f72e8fe14c4257b4ad82ac09a2d782c6dd41111ef6b5a4ba0d58ffb3847d003410469c55b76dc3b3c1d388da7717f9e6ee5e4740954cbafa3db2ba94e058854f7939c37932dc7dbb6a1acb0186571deb7b42347ddf36ee48521a924a50f352c5c59fdb95f111eb09aa3be6d7a91677e6d8509b0bd6393378f5d5b5a380abd2af1b78ec9924114e335f30d4e39c82cb1281fd021e334915410d10e93ce40324c9149c5796ab7eef1cdb7b3d3219a410db9e44d163dde288b1b684bf22b361a45cd7ffd331f8196d55544ef05d7610964798a788f3311c374deba4dfbd71296c35997922559dea14f0cd02667bd5087204056f0b537b6caac7bb468e55021e2b0d08c972881af07153214a5703145c8634cabb3d3c9736a345a36ae21278c57c495c1642f6cb43ca8fddb3260144a3db790259eab03af9b3043b4287a52bb8a4e5b33462f335a1af30a06498439f92e673ae67275044df78a70e35d547cc556787fa0113998989304ff7726ed62ac6d4b3937cb3e0e5d5ac1de8486a5bf6ad69612c8e34e321fb306c578e2f1493ccd472983deb07cae0342a8e0f67e2b6f246e4d5a18415042596f3c606243aa7fd0d544c70e191777a70880fed318fb9995bee7413934bb5f2f0d4b31330de7af3c1a49595cb2ad6a72eb57471ef8ea1a27f87d611c6d4b91792f02abd5083a5cf1b55fbdcae68e279e29b1fc9ff3fd070eab8e7cf2425bf50e4d59b1eef1e21f3ddad90927019ba48dd61c97a568d323b1cdd2306820a3a15669ab7625c9a97c58831afacdf4c86c8ce4844f0db8f57aa193cc9eaceb47b39a0b32f3afd80e6cae89624fafb5bb772b2a316652fe104d4363d26cea97932e16ac58f63fcada8edbd9f364a3ec17b934836b7bdd9603c176bc7796e7f5a40989ca50e462b58489879dd6508f5d3b2988f3a2d17c4f0be6afe423bd723a970e183d9892e6bcf51096b00098e2bba063272499837a307efd8611ab7a868d50ee06cd80012b667ca911d891b315e0f6b90a805dc5e302566087937fe0c6ca852009bd96301792c49e86cead958920cade7d9a8265c25a1d92fe16780e2e0b797bc83101abaefe836084e59de96170f900afb132e144045ca1b6316961a3a09f9773bb9afc089f74bed0e87280b418e695b52bc5912f47a672f480e2473f401689b536d0d47fcff175537895f9f041a19791eaa174c4cc91c1466d3d085793bb7b50603d23ca280cd59cfb428a2c73b9082e481bcde6db0acce1786a91035a53363585d3099c6ef0d32e26bfe8a3559da4f6b903620fba1d6655fb4111e79407be47236db2cbe028f62e1f6806546226004bbd87a5135436d3dcbb61e4594c846f50ec92ad4f3faee4b16843cd34cebe71d432d4787863bb9cc6c7564992815f80f3854ade2fc5693d9256308e22682f432c02f56abd5b9af1409422264a39d98ee21c1a9f806d597a28a20df4142991045db252a8c32dd22ca889a096680d196787edf9bd99e8e73253d3a8120d5c3193c93ec650140667301b41c2d6786e5c26275cb8263cb3a46ab86c591bc3e98e646908573ad1ce09b7d087b780efe65e3cc8544e0059c08ac2b9d254ac445cc8f130f4c436f296c3a554c06740bfa1cbc6295870b977bde699330049817401bdaf9174e08bb8404c4547316f6ab8492ab0e8bc60c50840fab552c80f709e51edf5afe67aacbc94a4d77032410116306f51621281f6b36c4b041a5a387fa00a976cb9203fbdc79f0b8402ea7cdba711e7545d23c434ee7d0f67620f94af183429fdcf69b547cb6bfb85e0315abd5cbbbd228d6324dfbddb5f5143726ed47abceefa8a4decebd16368d1a6fa1fb50207a76c1ab5e06e305ac482702ff95cf8b24891e4b2c82731a5c3c5e769a0a9cadec09c2f0ee7ca22afd2d3fcc2c1be0a6e7bdce44726a7f2fc0b30a0b1d074a4c2efec55b9577ad72c3dc67f69e6300ced641bc701cbf0117ae0b63df1bc714341d0b5786b348e6660b0fbff95cd9ed5c7b2232ab7c73ea8e05021c3dfe0135bc0d3853ef0add819890d815a7f92ebc1f9a4438608029cc108f22277d1b45ac4d04d1cbabf1516a1a9999c440280077664b6786ba5c223ed259a63e2970a8c1a7a0c28c7dd07979c010899eb82c70c738f0a62a49067c3dddc7e4a87be16dc2c014e53ba22bda24b955d4fbbf645d59003699bcd39dd22ce0e0a02eb84b1b9c3db608ec8091a62944d9b59a3fa0c347ec65c5b1a03c6b3d15df2a89af3a9e1f27e2e0615ac8e7178d8e0bdb62a8f0963a59434bc5d877a1e37195603c8411ffef4daa32dc7125aa074af531731ca02dcf737b765059bafa9dcb3cd791cfed176896530f5a841a4b6c38c7455ae68608974c4cb26270914dd4d0324834dd825d520dd7c7119fea308cd34708554d2629146943a3545bd842e06d834b2e0e5108cbecc2234a2780ddcfdc8d94ba53e44f783174eb8aae1459a39168aac3a48ecfd62eb41b746ac90277117a8c55a6e5bbc79138069b324ab6f7c1f74202519283339d9e5c7a88a876abc12277272107140208ddbcf3beab33c4edacff9901563ee79715aa26a04106663e2833845338776959cea29e0ac53e9e1e980ca5a63238bce09d9afd42f9a5286d9f8d00cbe36de6f43dd8c22af389f6d2d49a32a02e0f6f03f13e471ff0c0391d91a3b68761381e63533f81bcf1fce6b995c720e11f78829957b1dc9c93a30341be25b58a84bcfb441eff7f383e3cf2c82d24685e27d768c6866618f62d943aa9694c88885f83b06b93bc2bac5a7c82ce2537302ff931e9b10502a44ea1f630c802eb6981510cecf96b6dd9d927c86256fbac087a40ff8a010de371dd2e3d36389a009d0e6382c7635f74be176a2b27a74ee65b5cac30ffd0ed2c66d25ebb8402dd564dae1552d727ab8fdde1ae260b60dd94a75b949355f0eea4003209643331b64f541711876923588aacd9978ded1f0de047885fe390c99b102d266f4afe7408d4c1a04b04c1191c0e9bf76fba437c49e4a8098345e21f812e6b5bc4d8fe5dbe2aaac7b1dd5aa6f1498e043c2b4db608ce1606e8f206bdfee30dd8737342112f4d73298ebab470a71959c796802c289bdda3ffd6998e68faca608f1693d1c896acbb15953b1709797e3eeb1e79c1890d7b8bcc52ae043c426baefe2ea0b0522f01cb58085bfe7c29518da0592a6446a218d10c8eb19000488b4253002c6e5bf80982826b0bb928eefef20146d1b5440cdc83a2b5557da9c4598003102c654b3d3b333cddd9b952e9a42f4c2051e4d0529125110200d6d3a011c1a7a1ff3f027f73610f80507a09ee96b28ed592fdbe2aac3af2d65254d3ab15b2ac316d9a1116a44ee6e72b59cd4a5a8bb731557e2e31ee18eacb75296fe648a65371d7b0e83c02664a77b124811cd115400a9a0825905688064d1c23afd24d6dda92c5a5877eddbb0687df8d7e9c353143f24eba6358fbe7adfe943b29ab4e6d7d4f759b42816adbf4e9f458ba7290f67bb766733c6a2f5e15f4b7923d1c57fab7e36c427080d9a90510f59af863071b296a595321b8281fbe8e4ab54b3213e27eba6a459a592186ac897d990278624a1751dc7136b887f4d3027ce0454b41182b24db0668234139409330118057c368157d704e604628f528dd59cc2599aac956aac26d6c556e76ae56a8f34ef2ea91e86dae5497535ea622a5dbdc2b96a703115cf7744a11e1277ffc1c12fa93daaab3e1fef1f494c55930afa89310bd2355a7d6dde5df5763369e5dd703a87395beef35696d4bce1705455535857525670595253a63859e170b7ca6537e5b2b992384dcb92e278e3a634efae8a232fce9195bc38774f9c8f6692b7adafd64dafede15beb8f9a6589f3bebb6a4d6b1eafc565bc29ae9674d49ae68ac357d7324773bde5c9752d6e577d4ffda3be92e268ae385fbdb83a66acc39135e7aaab24aeace3a5a3cef5c43f6a9217e76ae66db392b85fc65b5b9ea65be34c5af3d668b770bb6bb768aebc8d7165697923ae2cad4ed71d357126ad3cdcae5ae3f6892b8947dcae7ac4559bf7aebaee68c65b97a5ddc2f1b6f5e1b632edd55c497cbfa437d77dedffb6d9ab5af0606687e983ab65b3316962f2435da4ad6d5d9d72bbca555b57a7fcff5f2d0fbe8bb4b8ba232b6e6ba479f77666d862d2a465df138f6f0447965816815ae2b6ae96385fbd40dc654ccc24a8c184180e3c08d89a7c264c7ea8766b198e5936f5c4e89b740e2b896f51ad79e78a7489471232c89a8272b272827aa6ef222d2c841904a2bb1f3d91aeacfa9930795e5877641d2b89a1b268d9b0687d5896d5f79abe6d77edd6d9ea5e87a73e242d19e2fb2bcb53f7ba92afc3ffb307762dcd1e861ae2b3078a70772b3e7b601c028410d41759b779e65cf79de28d9b3e3d507bc087bbfb033e741c98136e5d77bb53ffe6ed6cefabf9db9a7eaeb9de797f6bc465ee2b6fdbb26861d1facadbbd7397296f7fdd98ea43077aee9e81cf1ce8e18ee5ab540ec8a6c2b8bbcf7cd0f1babbf42acca2b571a96de4b55b58b43ed495a769a9bf6e3adad23c49b26eabb159c97d2b577d6d79591f6e5cea1f1aadce8ed5d444e4b55bb5272f7db16ab19a26e5bd485ebb25fead5c76a7c34fd69db159f3e3bff4b5fd9a2b2feb7df4e0ee543ef391c5ddabf8cc870f8d8c33686438c0eb78ab4e57d5c0d7ac81380dc001e3ee583cc80535ee5bdb29bf2c5abb6a1c162d5b9a26f555aa0fcd30ffad35f79af27e57fd3ffafbd69c4fa86fc0c7c9da3b75bd7277223e6bc0c89dacfaa456b306ae34a082bbaed657a91af01e9f3140878139711880e3eece401b77779debc6566ac6543055565952a88bed3e4b8c45d68c37d6d688a7b8fb92dfb6a5cd594deb1377efa1b7c6ca83e28d9b9ada46d56c75b1d5daf672275689b19593bb27d164cde7ceea2e86c254eeae2457d272e16c45378d7277265b23cd95257d722de541dd2a7767caf55a2aeebec487a7609c55b73ef3be55c87be2ab8c47ac5c37b6e2ee492eb67baca594c626552d73b4b4948bde2a1bf3b4492fd6be2786caf55e7b657771be72dbf48f20397f8fd4ece1f12b89c74a3edeffc4dd6f0bb8fb96c7fb35597797f246137f3dafdd178f8ff793d5e6fd27cee03791ab2b26b5e5ede78d96e77bdb8e96bacf22ab3effc419e036c8e1ee2dcc84ca7489b9bbccdd85ea083140e7b0e670deda28340a8f105d5be6da2b42724469ac4b397269e9889271ac47443d3c86b993b7edee97b7b6bb9a9de7ee593e0b5ae37e24340a8fb8a49eaaaeb2b044d0c132e092bb2bb97bd290970fe8e52582d78f97bb9797c3bc3ce6e52878b9172fee3f9ec3ddbbb8a7e0e539bcbc44f0f2e2e5ee95827b8de00ed6a953a78ebb7b25f178037970772d9fcd9ad863cd198fbff1fd9ae9ebcddbd9eafbdab3fb9ef975f6c9bac76a76d5d7f6bff2b27e8988cb18273e6f5bdf9395a7edb5ba7fd239d4dbf66cd9ab5bffdcc1a19d314f3fc69ba729ef6f55e7ca55f393b6a45c774ae790a729afa8e8484e294952eea8e8e808354a423222914890202919d524a2ba69de3a77ea22bd4fbc3556de58b4edae08ef321d8b4a3ae2b228ebb388a729ef76db199be6a971b547b36eb682c3c024392309dc7d88f8840abc0119e04b47dff4399f63912c3fb69f5aed83ffc0dd918efcd8dcfdc8dd8ddcbdc8dd65ee433f1efcdbde83d739ccbcb1577b45ae8102af73a873254b7be68a764fe78ec483b8fb111e5feefffff5ccbbea92eade4684c86d8d9097af247820e1bfe993756bb4979afba49271ce523e9c337efa9b28feedc7268a7fdbba5afeff88439bb7b3f97feb6a5913ff46d6d2529da6ee1ef3198f2d209ff1c0f1a0e2ee0ef88c07923b1326dabef8bb6b6fe5f97ee899307d8d09d35fbbab399d43ba298973bfe25f5ea2f7f47a5ce63dbe43037b5c017087019007e8734496e4b1176412f4c07c7c7664311074988317c89a80deb364c7610e82600c1605047b401808c6783a808130b007c6c01508f2803d0e03778431180f4fede741190c260303ca4010f603b2010373f80e2883c52a086a818120cca70a0c021808e391c1c007c0409007065e0036008231988f0176623d3c40064070019f181806e48181202c860361b29f1c483020b0c907dc19129382c16447312505948068740800e632870d0094c56ab21d1818f39d008061800ef3d96ce6a0833210069e01fac08a80206c07068b812012b008f401816030188c070a240283c960a0512cd4e1804f05e08ea0076031803b3007401918031d6605fb1f50e630cbe32f822ac43c880140df016f0880c5401e50d603ee006332c0603eb718a814036130d9c38072d4c01d10ec319235a11981b01f1e1f180882600f08de40186c8b180f9803268b71814260be18119843070cf4e901614e6012c022884510f398830a803c3018b843368bc9600ec06030900794e9c01c43401d3b307007e491048220084200b38047470e1898f301ea818117803e2018838132300a18016c09f603a603d603db0163200c84e980f5c8c0d84e6c098c81353007080482e0125002d84fac07f491813010bc81200f03b01ea00c06eee800633009c0580c0693c164e0120c063e00fb0173803e32180882373002d84f4f0c94f9c840104c7a50015fccc80e18037380321f608e1c371d582090009c4006c2603cb09e0ace1630d211050461200c044122ef71d3ddbdc9ddafdcbde65ef3d90e30559400bfaa84fe5960cca1224b4c18656051308c2e00238e5b05d1c2abc0a8a2560559630395185c4545b57c59204602359ed01f464b417c142981c1a38724ba638812313fa0120a4e20499c3a372409138713c57943025b9c32309ba8033612c6a88891b7a121419c0792204c03411e46288b8b3b2df8cb48708fb993b76efa7af623e407c8750e6b99a3fbda6c1655128ff69e3c5c7e2880c26ba867472c474f8f03397a7662b10580b244a012e253e3f9f1519201f500eac90068c776c476f8c02161062f1e1eb09e1c32db8e08947cf0fab10244ca6c3c44802141b0534506f23031e1c5644a148d0498ec473665080b2f2f01dcb99922c0640fc488acf0326255c2020a3c95108322c2095e0ee4b802d46306af270d5c1ffd13012fd185594f8ed88e9d2d190a5f44f091d16247404490c0981c45aee0e24327061e301d3b4e683d4b3229150b9a1184766a3f4f7e2a1061b2223d4b23142106ca0855b050c4654d0a4d78e938753490b0e388026001bc1c5022c24fcf12cf8f0f8f58d2149458043f4f7a44588a00cb270a04524f7e724401c22299d878cd6436253f3d4b423b787e744809d94007af1f9f2812e4bc78edc4663b20cf053c3f3b4b788a3835d171e620e21385e7a7c7011e500a4820a3cad1408f1f568af8d4a8ae2a10e1c727ec41b20349d294550f90ace7819d5b4c490e20199177d293a3e74756b42345a6e404dc812016648701a31c3e636c49062f9f1f0672248900c60bd481e453930d910de1e1c1ab080f59d48e911d09720c91fd50e02816c1085e611118d3c58864b11d0f846ce002be6e7e3ff840051b343ff0402685103ee8d25bba3a8a1b68698081952a5856532c8872534252ab8082095e8680033469a240c8030ef48489c2cd0e3a5c20d5e416c102403a789a58630401caec40260731616ca8522342c30c390dd038038701c082d5352df9e929d30298a41c59c03153e6b6a4a4811e3a7e7c7a7e40500022b42a594565c1d413a91b5640e184a0384990f8c1071e42b8622549898f1eb22aa850c34a131325397a7870b8e10616aaa89a96100102df80b9016b034647f6f567c0e6c0c0d889036a01c30276450e2b80dec0aa80ad816dc5b480437c22d8f9b1c3015803b005c01e34a19d20180d9cc978c074ecfcc072f8f8c064600c0479dcfd811d0ac4208825e12553c14b3685a748ad6bd613813600af9d1da09e0ab4104126e648d60010991e7852f0924dc9c1c0cf0f1f2478e5c840a6414c021d9b07c8e7898f12cf4f4ca908145e3e6abc7a6889902329a60297d88e3380bef0daa9e3b503f4c0155e409b4808af1c3e78c07a96ec14edbcd065011d0ec43082ec8b970241661f23a215f9f8a0d51961c7888f520f534c811893cf8e11c9a63409c2f3c373c62ba683e701994dc7510c9401c96c3f4f768cf464c0f300cf0f8f16a01e403d7234a063819e0c62131881e781189a1176da7851a045d67b1c0511c86e400af0d064608c280625b3dab1400face74acf6c87a78716bbed2cc003e4d111db9101c5623158ac27e613cbf1f34316eba9d213a480d50fad87a7078cf5c890644532d0c781581c2f1db5243d78f13823028d4706814fd408b22f4610827baf13071959c0a9820a27da9c3bac3a71b40046eaa90993247cd138a388c84c019f1e2c1a5451d59162093640583092210627337c81c5140950a2003fec501456802b82e1dc2ce8cc461a5f5c58f1e600438400c2065a1a60504505e50910091a60c08d3547fce003081fe022f8812f1005787ce10507bd1d5e75e2904004b4b034c0000d8b04206009250a4004102cac80026e830cae54514d4d210502a2404286285b683185140938801249e840c64b0924a4f18585154a24b126082e5e959c92a2edf81a43ce174e1ce00823d2986941854a5e99921aa2ed98420a276ca0a1052e95dcc082a927524b6e3c76c87c0c395348f104028e30220d106600b002972c164c3159724b423a1a0aa2c9bcce1872bc78c209041ce0082380300380165650814b1843e0b26835290ae178638a1405787411c10f305fbc6070c5688c0a5e7e5d04f01f77a7c06739aef01c756271c826b0f306cc0d9f1e643cc0ccc076008fc08e624660a88308668b19893d0340c008603f7a1e883900f3b1d300c8400ea1a0a0d84ca6c00e1eb31d3d801cd0f1e38796c3c787a727c6c3b3b313037be7dd996e2d73e2de65e45edd1d029fc9aedcc3d0dd613e93f910c5d7e11f7a5df72f57fbafa4d5d7beb6bfed2ff9659a296f7cfa1bdfd7f6f72fc7e333590e77f7f1990c74f70a7c16db62c713b31d0870771e3edba1662653608716eeaec367312a3c4b1886589eb777b796afc35f475beacf5847defa7577697677213e8b4571f799cf624aee4b4b4a4b494b4a96922c212d21593ab274b464b4b4a4a4a494a4a444298912921212a5234a474a464a4b494a4949494a929224212521493a9274946494b4a44449499212254a922841528244c91125474a8c942c25514a92944449922449909220497224c95112a3244b484a4849484a909220212121413a8274846484b48444094912122548922041428204c9112447488c902c1d513a927444c9912447908e203972e4c8d111a3234b474a4749474a8e921c211d21393a7274746474b464a4649464a4c4288911921112a3234647464646afed3e73ffda56defe9b26ef8973afc3bf4fecee216c8abbbfcf6036f792da209f81749c49aefadaa5067c06aa71f71e3e03c9dc5a3ed3d7dc93e58979fa875edbda7755f2daaf5cb85733cea43e3d56ae1dee3b3410c9dd410f9ae1099dbb33e033d0ca750e49dc2bda3d5dcd782ca2f4084987e488524db2a43b4a4222c9244b49948c23a9b454951c914a94ea12522e0912245a346e7de6229dc3ddd3390c8abbfbf09997717722f78c73ae7fe993f5e673d7fc17db4df7adbd5a9a3dfbdbd2bc7f77eddeb497b1eea9bbdbdcdd88bb17197277217730bbbb149f391b9dc3b172e17c34178d59178db82c69d12fd39cb3a5bbefb8c38cdcfd87cf7cc643071a74381b2f2f278ff1d0e1091d3e9c66403a62404041fc29870c88872708171d60101d3a8274019f74bc4f101d404160bfb3e3022eb2d7f160900f7c1e84f900c942f009624293a7d8e708c2a50bf8147b139a3cc91eb603820b640ff459b1ff09023e017d0002ec798478c11e7cf0818274019f803e47102e263479faf92ee0538edfd971813ff9bc8e205c743cd083413ec8f1a08f10f03ff879d8538e20b3d8d0ceff040182a0e79b386dc57e871fec9d8d930c8847885759f0e083bb5ba159aa07b20721eedea48733043043809200149c39e38c0c67b20f7e264a0f5f3e58b97b959a4f8dcd2ea91f827c30c287fb83163f70f981cadda1609d139a13cd0f343b680200c4024010014416776f4285068c207c82c80ac28c206a70f7ac99104ddc1d4b882e77bf6aca6212c289343477bf204d06433ca541238d00dcdd6a88de10481011071a223020e2670832dcbdcad390213344860b991da4829020157a90d16aa10832593400f000c944914172212f5f6414c8a18c9e1b39e4b0c696068be74026871772d832c5cd416b4d0e4c503920e53064cc1a58ce182ac0316ac694a1b5c0c0983063c0f8982e34307174dd21c6f0c660304649e8028df931332117ba16889963341303460a09c4881163db8149f1240648e88629838b306e682da00973e60b005ea0fae200df6498283c18a50953a381b922cc2c8c976c403a73ae013c0e152ee4e56b8603192f35f08038bc8003173008701cb6e050e290854314ad052998680030c2014906c20d70dc50060d0043dcf549bea6bfeb0e877b1f2e6b4e87cb95ab5edc90f836f176d395150bfbb274b5358724a6228a566775e585a7793e79eb16cdc275d19e48921a9b3d9bb188e556f990bc98a7adef4ffc3bf1efaffd9aabb6553e34cf176bcd3af149d2e966c37a8a22faf0b12ec97ab1cd58476b39525f0defd60fd5f0fee57dff8744f12b17ced11ad187169766d7c6e6ef333725db9a753f51ccf5d6a743b5cc59adb1f93a5bcb62dbb4f6ec26c243b5ea1aa6faf0dc237dbc6df562f2b5bd551fdea11aee76fb8db75bd65f5dcb5f496ba9c95b9fc4365733571dd657dfdbb0cdf4d6517f59daad7f5d55962f4b2be52696e25ffc64dd655a8ebfb79596ee4a7ecdb82762f94af42bf758f36b1b8a9f2b177e6d625ce2b0d6d54e7d57e58d678fbcf466116fb7b2a45022965ab13e1445a90ff5be3457aeba29cfb7a9ae35eb76f4d2dee7138be2efea6a366ffa6996a2a2bab9ee4dcdcfb4b43d8d87b0a8aaa6b29ca8a6a85451e13070a252fbac292a53536e37bdb35a3b99261d87a86a3a5c526d897ce5653d91a8c5dff5e28a6f1339c554eb8f9ab7db8f9a6459e5ab54bfba258a24ad99ac94e8c3dfb65df7eeacbe533aa20f8788ea55edff56b1bea4240d3fcc228a58b03ecc788f54f7f47fb99256d27ee5d5928e581fda7dcfa90f77177fcd5d4c75623b4474f1ad7d497b19dfc7357fcd69bb754e1feeaea9bf0d59a955fd2e25733fe270bdf38696acbd9e7d1b8947fa344b95f477dd3dde5ad7515b9a7569da5d9ebdd73fc1d5afacdb5eabbbb5e631e32738ac2a651d2fde464646474caadcf3ab7c95b2a4e568c97bd3b9eedaa3995a7d28de6e59501fbeaeb7477aeb433dcd35acb9f26ac6e46f221793dafa88723569e58daf2d492bf97477ed8f5afd7f3854e3b2252569ef6ba69bf64eade923a97d92da9354a946d2a1ddb59bd60c55fb21aa5ad5dfc86bb7ae51ff4443e4598ed7d65e53fd50adeab7c6bddff462fbb6df75fa30cb121cd163117ff7477b2fea6c2b97ad63cd3631572bb2de6e59e2bf4d676c45f189caddb5daf26aee7fd4eab36079db137db86d256dbf895c0af5372c2c295455a240e1a0504d4981aa9a42550587811315f17fb9c74f4fa4ed4fb10d4db1594fa46b799295376a6c3efdabc7353141e97d2db6d2d56ca54b289aa5dea6b19e6629abcfb49650ff369aa586a46a55448fe4997cd23711bdd1d18735b46f23b514c679637c25feffff729f75e9537df8ff6499692dc79df1ff873587c3d15cc5aa1f6f9faf5e5fbd641d4fb2e6d7f67f978a22d617f91b6fa4526fd36fd36fabf547adde96eb8eac53de3664f44d8ff53a5bfbad114f79dbbfed6d7fd324ad574ff4e1a5a6c6fa9ab16a557f83fa10e7dac1d48726fd5d1a25857f35f79abce26fb38e5df5d69272d993836af7ad5ad7d7b62857fa75cce71ecfbcf59725ad633e31d6edd634da4d37d66bfae6b985f194db2d8b8969ac56427df1efd29acd3ff1ef56fdba6ed11e95bfd5dce7babbb87c7c5f5b9ed3df44ccf38964d5b884ca22ea73d38d45b3948885bc4e1fd2f15e7dd3be75ccd5aae9089233146dda576f2d4d5ccdc7fb439d8e6a6dbba442bcabf07d9b582fa6daf5caff8775bcf837fd2eda45e9d71c97dd23adbcacbf89e4c5391ceeda9ef8453ecc942bacbaf2f6ff74da6eaa9f7cccf39125fe7abffa6aa63d9dfdf2d49965e59135db93839affbff71bdf5fe5ed4d75aee66bfbafaf252f7eba76ffd72e4a45eca254c24b89eaeb9cb1aee69e37d29aabef75c6afffbb68af6a5c8eefc3bcd7f55a5d259f37da5db5489698a76be66589eff445feb66bcf9217fb705962dd5fcadb55a7b3a4287eddb2a5ae5c9457736f236ffd9a693e758faf8dac3bd7b2a4531fd68b7f97fe2f57737fe98823ebdd592c9ca5b9eeb2eaf41eab4e27f5e167fcb9f2b6adaf2935ad8945f1e947bdeea99651b7a826d4b0e6208320b548a0b1ceb8c3688e0eb4c939e17dc02be2c984d89db05352866e4c91cf74da3610f4451a56c66b83c78037eeee424ba0f098d8ead10284162f2d362d3c368dad808b0debb31e90b2016598522c99b6e2d0618b4af49999c5a46136a2c04960133007788acedde156b93425447a69f406607e21858984bb7bee92a370f00607577020868321330dae067005800bc705c149c569c259e544721ad97268436c193606fba6e5e818669a4a762313e16be2eedee5ebcad255f3b9e11bc34766e6f3f92ea0fd74d0050077771f95bbfbac0b870ee8b83bf55907317460671d84bf077820e401e941160f8a089d653cf0c0dd7d8bd04f871f96075b78d0e597c596d8161cb658fd807eb02d43b6600101051f10b9bb7f00f401920f36f86086ae381ff0b470614b2004190809f8c08a0f805021840e7e4f84f0e4f5f3bae245e5b514421358230419c14550230453042444f84084230e40f0ea62e62580ad0a46d8236431c2101b4eae85113c18218e11da30a18b5e17138030218b09b7121a508218251451825902af840ab2d20c8414b8b49971f1c2e546c218243c510012c8cc48b842029007424945bc40c04b0f20acf1c2c58b510a6f52f0000432052329eca0a0460811b03814cea090050509a6e8e235eb62353b218e138638e13ce1672b2ca9b0860a6478a10184222a08c0dd31f0990a4e2a84567c11e1cbfe02c10ab919982ac09410f4e6f7810a603218212c48c1429a2b4060210415b06041c90a0e58c189d90a66080308214c5001c6082d790a42e343672918da0544099d8932cc80388946a20f2058b8305736a0b3411bba0106394b5796285d5a71b4d098a0e504080deeee58beb0b0f9018b17161e90351acc8942031388161a2869f040c8c8600e1533207064002683aeef4127ce13c140c420ca27b9c2e69baed4aecca0ac74b162be942a5d55c4c7ca8a9265f42456172cf3b55cb1b9eafaedee4eb354162d9c8d5adaab99bc78ac9a28b764575d7959b9f2b286347969edebadfa70fc4dbea63e9bcdddb5648975ae5b749324fde99cb10edf6ddff62b737463aaa74f2d57cd5447d6bd6dafdab0687d58cf7a72f0bb6bcfafbc2dd6f1d2923e89cfdb19fb5e6fdd9337feeeda27abf864d594f7362c5a1fd22d6d7df53ea6b2608a43f9cc822e772952822c38c2ddef15294d55a4c421850729e714285853d04cb1415e4fee6425331db58dba22cb2a2a114c79e3ee5490b8cfa8b431a3d2864a36024235c4ddad68968ab2c066c1105a9069c10f0b802c703a535f5354089554b4f129355365a6b84ceda9d2dd7d8a0cba818b29ad2877f7d9d4d4436d4cc5d374636d4cf544d66ca9d58fa435974edbec4945f1342dc98b9ff6ad76b43adda9ef94deba270f6a6bc4e5ad82a92a79cf2764a6be7a85b36896bad8eaaa4e0eecad425e27ac8da978dbac5151f4a526d6ee5a9ea625d69daa9b6e2c923e69923ee5cadb55656979501bdf4ba174c654dacaef522a186769b29aa6ddd2b49a2675fadbeeda9be995d913d9eeda7b69698634d7afbc4c3716de5f4f327fedc0ead7e1f7d5fbda5edb7b5b59bff64f73ad7553d292978effbcdd896fddf8be140f29a059541351521348895227480de0d5000087afcf12d524051da7b9e232d6d5dc6f7df61e77dbd99cfe5d77996685fa6fba82ff90f6c87acf6cfed6952c71edcd5ab77adf3b7bb68b52f9b06e61ae6bffd2b19a39ba29a98940f93057abb3fb56d2feddf675b86ed1dee38cffda7de21c7d1fbe5b9ad6ab0fc76aea276ba6e558c9ffed5c4d9ccd17f2442989d642465a9a352751c2c27ab26e7a775657f229ccec296bf6c4e3c485bb53592925c1c27a5ae3ee549eba70f729b9282820ee2e85a76914a8edee164c9941dde0ee53da290d1917f2f21504e57492018c970b79f9c24e3cd1ca85bc7c39397152329a39bd0b79f9729a39f9d071212f5f4ec47002c709154ed8b890972f27679c84899acab43c474b7bf9cbf2d4695baebc5d7778ff3ecdd7654987feda5a4937cee29994ca8743db3edeaf8998b457fb4dc9d71f8a55fc5fee77c5d275c4d9fcddb53597a54f6cb96a36358df261ae24adbccfd47cac4bfa365c7ecde5badbd9bcbfe6acce6e7c1fefae7af7c5a3bd95b75f14f5a9e57fe5c5faa463cdbd289e25e5faaa6baebbeeaa1bffda9eb697f2c6dafbddb53b9a2b572d1f6f5b8e449bb7b3e56b1f2e4bbabb76c4e568b7b6d7f672dd95d4a3359d3edcda962f363565316951873fe33d56aea743bfdc9375dfaa6b366baefd684dbc9ffeadd5b76bee77d79a26a5b235d5e1176b8fdeb19a5a3c82e4145fdb17efebec0f91b5afbaa44f3e14c59a79fbf5b514eb27cfaf5c94f7d5f73afbf5cc591f564d79e68fb5ab2e9d71772855539ed58d82d99214b724778f720449159c45de527077285877a72a49f3ceaca2e99419531520b83b96cf988ccc9640c0dd2ff0d912314ba82ca9b9fb94cf6e5fb8fb93a1b76d8db87cbaddb26a4c63b5c284e6cea489bb4b35f1348d72bb653191198ff56adfca25c534562b33263b778f6aca62d25531c9818912ee0ed504bafb539395bb3b35713521c0dd9d90b577ea8ba19ae6b87b93591306c026ba69d4ed96f5b6db2d8b09ebeed41299a51796be80d1b2b48506a686a5bd440a3d315a9ae24b514b484b3f6860bcdc28ad9929c9b085048c129716a86c2927f09952143a4e8c94865c51faf186064654eaa124a3b5d003e12843e88600ca79e3425ebe82deb811121700cb2f77f385d64216b089344964682d68afe18b0b79f9a2b5b0451217f7a4ed425ebe92a66c37c0928b3b2ec4fbcd53e7f421961414272b9c95935494c7fbe8899218218547a1492bef35917d6befe26cb96efd5f99eb55ad9d72f58afd5fae5cafedaf2c69aeb7ee6c95cbea2b72e16eb751dbdeed862dced4e2ebb2a463edc521ac5a95f837dca5e36fdb2e110beb8d7c485fd3d7b6e6fd65697d5faf7cb86f256f352bf9da7e1614149458493cfeefd2df5d8bc9af3667315d6cb759b575ddd9a8c77a5bb5390beaff958e8e84494347b5aac7fa6d53564e2f92e2ebaaabfc4ddce112273ede5f9674fca3b1f635e317878ea8f6d57a96d48a922443e2d051ad4aacbd6f4a8777c5faa65f95c234562bf68bbc52129290a85e2c45d4bfba25be0e8b53a294a91ece3adcaf4a397a23547fd375db7ce5895e0fc1c45b7d914742a2141afdedca574d9f9ee8437db1ddb5ac24d18be2eb708fbe68255add53f7dad2f21c4b3afeafac9be6731ce9e3eafb5cc97bbefed5addca95f87cf371fefff8df1d5c5ff2b6bfe7ae58b14b9496555511529f2e1af6e3dd5bdbaed7f59d22f4b2be5e8893ee4ed9db69ff3bd3894ab55894ff4e1b6bdfae4a5b587f5d72d4ae58b0819a263e48c11168c70cd8c34b1f2591134dcbdca6745c248f9ac081623561851801137362cdbcdc81b12f8cc48173614683c12b061778fc067b62f5b15b633b61688828876b8bbcf88a008aabd411404d1961991151190d087888d2c3e0b870831149f85352325b3222c8a58cd8a7ea10bee4ec56745b6a220230d7cf8ccc8092334463634f199d106342bce300243c882ac191114210b7e18312089c91539b83ff9ec081412b71c410db5194243f399043f0c6130546333870a09a0a881e992008b5aad360b830a09da20e2c50332235223320332ab604e2d34c05d1c328744f1b7a6b5fc4d6bd4ea5b75a8290f0bebb5f84463e5aa79475f97f4ee2cd63735d58dad5ce19383a74bf01eaad51fc5692bbe6e0a5b21821aad6fffada649cbff0bf5a195b17245fdbf152b2451c5d7268abb5a529b23da27bef9dc4495eb3e1d3aa25f52fba3a5ce3ed6e1b6469ab3b6a64f44bacf1cbe36673a1211fdca5f29ea5c452b43566a56f0ae5644b25a0927f830148d8e9ec94789afe995a8282828bc4391fc6bc527b2fdde146ff19e62dd984b2cd2f6b72d57ee66b359b3a6af6b1feaba3197ceee32e5fd6bcaa3bbaa7be7d5d5ee9e5aeb70d687da873f14878e701be32badeb78b16d88a41b67b3f652cfdb566a632a6df17d5d79e326292ecd535bb26a5bd21e1eaf4a5a25beb667ee45f1d612176afb5151a29478896c4be9b63a2b622be23852fbff21bef8ff2ffd9b48e66a9a278ebcf44a1cda1af1ad5b783f1dca58677b765f9bebe111fbb6aff64572e5c245be72953fdad344b83099773b9a2b17992979e92632b57da2bf919772551fe6bd4d37f5212d6d1886db96a67efa446ecef897e8e791da664cf437dd1479b1a63c7a75f53b5cbe91bfd2e12cf1311717b65c178fb89636b2569aebddd98db9c2dcf74a4aafd437e57eb417fe3fb5bb5a5a2e9b4da24b79bb861335e65da7bf89a22d4f9d31fd8b75533bfadfc35967f54db8dbad298be976d326ce5656cfe44db356259a442f126983481334222410316b488ae05084aa08d4501a43410c71d186b00cf1d480a889a955153140913445b4b041c076832dcac81946c618a122aa81e8098dc88776646534019a91014aa3058ac62822401107b4a22745452116e11061086193f0012237684458102dc048483b82e2a886231d144404dcdd91300089143424639048392201da91021c298f28d18ede40ea81644bb24be2009213485d4a7a2461434b6226898fa6e407255794d071774ff25102004d698b52115a12049266a025e994244053da81c674422d3963890d4ba0dcd8a0dda6a0ddba6e1adc604b532cfd684b45986e7881290526a63a34a6289806c0e48ac91826651205342657684d31d09a4ea0352da135c9985841734272daa13941e3240527479aacd14489265cdc3d03a73531d284850d559cb29cde3809e1ee574e73a24e52b42719684f52342822a8059e94887a828283f6a4000d6a09289b64454a468b3a00d410b4280e9e28409332436a089a6d8b266582d4d2132c4c906092c6dd1d4a046850ced0a0608152a33d1183f6640cedc98ed25463c24595a94b9bd29a62204a1c5a142568517eb42817bc5182881291af03440565baeab0a9c0acc0491d27286843810c75b0a00d6153a6ce9c21e6100ceaa831411cda0468eab45186e63c1344a94de0a449c89710385784a0715288550741d004e1fd900431a205f1c1e5e37c1b9ab7f05e3ee67d80b0f11f785e049019cdab6813a4003a0ea049d04502d3dd90a046a785302228134117f8e3ee1ec1fff86a8101ee4eff97c3bd77fa269269ac56ba2a79a74c9cadb268e98cebc65c5f37b69245eb6df7dcf54ef2971bb7304edbb73de6fa6cef897958b43ee42ae9639eefd62dbaf1253254ebaa646871ba9a7757db6c99973ffc95fbd64b7b58b494384de88b0b3141d61e4c34a134ae2cadc7195a0f27680b88ee2ee5b4052020abae425ba004da025d587983c6401027ab308073f7234e6360071a0359b88f6f4cd5c0935b35b0a501022c00e464a535608414ad81383ea264d17c58f1d144884b90196b08750999423c0c8494846a3eac10f2a143db31c49c202ede480014d444d09a203235bc10d4c58bd49a72462d4ac92868c88f1e414041b2356865c8a1bd71434b433b43a391a1bd3085a44f4f546a69f62c5614bcab958da9a62c95abddb5dbd22bf562aa291b5391355bb34b6a63aa5c37b6b2319526eff964776dd4c654ba6e4cb52fddfa4e5d4c95ab6956d95d9caf909537d27aa5ebc656ba2815adebdda1b63cfca3ede18bc732575213d1badaad45dcc562d5e41459493cde6ae445f1faf093d374f85093d2c934562b6f23a7aaf9cbfa5529359a0e9a0e14683aacbbd32348ce3247b58da2015140d37185bb470de95f9502d4030d288bbb472181deb83b140da803a6b15aa133c785bc7cfdbc01673f3f3f67c074d17e5ee0f2c3c3200aeda706dbb41f1fb41f9f1c74bee2b89097af1c6f6839dcb8e758e3425ebe7294717753ffea96cd8745f16fa4fd5fddd2bf2a6577552af16da2aeea76cbeab2bad776a8a6498bfbd5addb4dffaa94db2d6b6b3c86ba9abf6b7f8f55a7ab43baf6ab5baf77c8ecf068b23168b229b49d2878aee021008d8703da4ed0024734191a9a2c041a0f6d070d5a0f8cc6f3c6ae9a162b23162766d2624e624aeeee565364ddd48e586b274cf5ab5248fdab523015dd38eb5f9572010db6829345758be6fe7655757525f5505350aaa6ec4b452bf17fdb9674674ce5371daae7af6ed57ed3ffd52d1aa8860682018382065ac9f5faaa7e550aeeb76dc65a680f87db9aea707857aede499275d35d2d2b794f3dda32779ab892e2f6add7f67a165737be75477bb666b36ecc5537e6c2d1726ba465ee37d23ce25e25ebbcd70172f73a5e7c716b54128ebbeb5fdd8a438deb6ae320d3556f1c60dc9d3762b3cb71bc119b7168b97b1c5171bcbb93f5c4e170dbf672a79ec09c09b871d7ba96b8099cf9e96cae5c32b8eb30ce26aeee0978b9fbae7a023ce769cac3fd72b80944f109e038e8911300d26bb8e37070b881230dd6c111c6c9d2f2465cc63a1c1c5e7088ee7030b9eb9af18883e3b579e2bcc3c1e1e3fec61a9eeb56c63e9c4e87b9c0bdc1a68c6bdeb56f7c71bf56f7c67e438b6e4ad25d7b6f4c7903c9dddff8e14e372549fa24cbd20229d405c88daf3774b87bafee2937c0b8d1a501a6bb77b9bbcfddb9dcfd74f7edeedadd7d72e8c3e5634c64d33fcffda1b6d787c97d4fac896c5b44474d1b15b4f1d3466de3d7060b6decd0469b36cc4013b4a34527cc1422c830c50a60a690814e9729c8d0f19a2288209ed58e0a5d359c40c79c8209777747e3d703c6baceb83b07eed857a9ea959b75388bd6eeda6b77dd91670e8bd6876589f35ef259b4b068f530d6b3e1c5061d36cee4ca85cb125f456087bbef9bcfa7082c4560840838b1bb56023eba88b8e08918b06115850d25368cd8a8b13163c3870da7b3c6d79c35e298418e34575222251d697ef261497b9fb18e9a24b6379fb94c4d1d35b5b335572eac5f6f6bb3ce46daafe549e2de6b2210e8e1ee17021ab87befe6f3090237b87b49de6a6241808dbb6f4dbd4d8d9d1a41eeae85bcf809024070b890972f2105f61a72d28803a78d0b79f94a238d34d270210daf34cc34c434b21e8d34ee6ebb2815a6b15a212b89c6d017cddda1ced4e0425ebed030675140e13c0cd0300a9aa10a8d9a3b1a3e5cc8cb571a36b8bb07cd30f5b62c269b484fab272d8e24ab28be4dd42515735147f4010f7840021e20c4ec015a657429232b48870665c082b4a05206123833c6987196e16486688650196dcce882bcd5d40f0072001c691c508303be3820ca013d1c207377cfa265d34be8db6cb92f6d16adeaf4ee4ec4677380e6207127eb9cac39319075ce1bf7daa3637d6ac08e065c40ce91ad5106176fc8587386cc0b6470d942064f24c3ca8912194664bc87b99ab4343f635d597996fae88f96d7febe38ebccb3eaacdc9d27a78bbbefe49071775d59da9e9c3aee5eadc678c0ddc91f2d6bd418a6bb8f4f63f0e0eeb92008d8c8e90a82a00639a61c518e1c39726c727cc899c97131ca10438e186fc45893868c1860dcddc5e82246970b79f90a82c0b461b83159c1887277dac434562b6084e0ee4da2c0c0c1dd9b34818184bb43b93bc80486cd85bc7c810101184060c8d68813c7e1b489f3421a1ee78b7b9c2d2ee4e50bbbbbc721dd6d1e75256bd5d9ce5a75b5ea7a62cef86d259dfa50cce28b75ff9e72b58aa29b4689e4a5f4b7d38725adb75b96a8fb10eb926e8dd6ace3ad3b5b5af2eb49fec697f67a4284bcb696b4fdca925efbe48742b2ea334771bd52fbb09e5adbae3af6cad2a7eb99e797bb6b7f39ace5b325efb9b35a3b7d78ed673cda92f65edbdea9b5cd52f1ab7c589eba8bcdf3c97bea9c9c7a98e77b9ae5f461cfd2f297a91dadaede9aa37f29d4876399a37bac5aead5afbc551f72e5aa6bbea77e8a6b0a878e6a7f13a3a6feb7ef495a9cf844da6e7aa5fe0a0dae50624513bf6ccdae8abb7577552c442c88ae68e30a1ee0fc60c1060b2e708880e3c2139f59f1a5f3191c2238132033f565f1cb22ccc2c77d9b751c2917585bb8b1c5982db2b480438b1cb410b5e0c922892c6ea0f7e4624c0170e0420d7777cc4502bab8e2c28d2b58b8c204eac500bcc0e2859317b02ee674e1421003b52e3ef0e28a5fd5566c2ba2ac308af3e6cd97375e6f8cde2c608d05a459009905f458804c016e14c045010a4052c00f0500b9bb5771a68a2d5594ae73d5d8c4d9ea56c978d37c425d552b9aa5eed4ee5231c219e192acdc6eba6a5acb7af5783f9624aedb4def6cef7693a28d298a6e35f567acebd9afe5de9548df9272e16c9a4e5d59daea7a2b94adb1f2a0f689897499eb5a225de6ba7a726585a76994275756764e57bbef8973bf7c6a5af3c61d854ba111d1f5e19ce369ca73af8ae287bbfb70a9cb956ba4260dcdf0b7cd0f3fccff1b5f6cf6eade4efac3534f7d48b5dda779ed931f5e6c71ed61bde9d6531f7e56d5d6f764a5be53ffcaf2d49dbc2c1dd5bc5d3509e543da7b4cdbbcd0268d99130c38a19d70e209079e68f2c40a4f1cf1441950144161050586c204288a80220c373d6e96b8c972dd9ce066006e9270b3002e3fdaec2744e593a636e413aa365a4faeb4c97a52a73ce9453d2181a9062a24196c4f7878d2c48f2bdaf47812461ba02768b4913d79030e283ad680f2a30c2845e428e102ea0d14ab04b8818281bb3bbd5f7959a2884751eac33d7ea8298fb4a33d77f934b3f938d70e882ebe6f003006f0a2090d9a90a0091b9a38e300b12e41be0ce015a48e0178428230105264802842a6bca92c29d4edd6f49a7e589eba5c7d5f966549476d13454b6dba8ee399f56159d2ad2af1c5dca97164d5d477e4a8c8e36db5f5b5bfb3daeef2a4221ee170384dc5affa24ca9dfa7f97e24d7d27fe6d2dfeba7036c513ffc21a667c316f772d11bd553775292ee993556b6a7ecdb7eadeef62f2acda7cb2765532f3361454adea6fe293b2a45055d3a7db4d6b6afe72af6badb43a6d7553948ab65487738979beaf95b7bf8737cd55ac47024c56901247b0f1824d126c2c9b99124928b182124a4a7890951844a5c597254ca0c044922f9600c0124c492891c497249090a03343228b257e303186091bcae85ac3654dd68b704413479c59c1ab99b1ee5adad3e43db9b6bd27b6e9ec1b3daeb9709f660f8fb65faef62c2dc7214f3ee48d54bbbba82fb645b09915a12ba2e6ee3823bc1811c5081f77df20575d8d32820a77cf12859f8ec8e1ee5a344be56aa58bf05184cf1c386ad4a891a18b9a5d6ab990972f3553dcddd5a85133c49dac755f9ae9b96b7af1c31ad6dceb1ff585359ca26525a9e8b49dfaf0dab066fa1b6fdde5daabfb52f950ef7ab7aefbf1b679eb9a3f9f58777f8fd557fb92f2be8e3757f335ad5f33919fd53f562b4f5f13d9531f92f557e632fe1fed09f91267baafa5bd272f0d33ddd5fc5877ad10213f44d65f4eca8795a4bda19aa3f7525f2de327b9f6eab63accd3a6497b2f8eb93a7db86b782dd6f278bfe9cb7857fd583eccb3d15cebbeddea4875270795e61afe4a4a5e2af5448f45fc6b876a3a67fa3a8dc7c7457688bce7eb7c8ad78745517cb2acb50f6deeabc66657fd2ca2ce1aefff6d5f4f7d78b7ca33f734d75fddd264897936517cbcb17e9bc8950a8d7ed74de46aca13a364594945e132b8aacac29a8a22eeddb56316c592bc94f7da7eae3b63739f399bb7dd5173bcf4e6ca85771feec25aa35bf7ce31dbf17f995e4b664cf3eef2e5fa1b75b86e5ad64cc52cbfe42471bb6b899ee68ac322feadee2ecd5b9f543ed434d7272a4bbbf5d695b7b3bcafbcfdcbf570593a7da875b84ffca4a526fd6bf58736f3a94e575b665ab388be7a6fb74c45c432de9ffe6b47ab698eacbe7a8d42a35009d763bdb732f6ed7a8b74512a628dac4362918c9f88b5377b45af33d6e90670c2006c64dcb87b9301a801c483c4390360e3ee5874a8a203043a88d9a1488738eeaec1a5e61035b16e375b6d872c3b789519da018ebb37192a4b9bcbd5aa56864d9915ca48bdadc634562b65d070f70c98c66ac54c35f3d58c1766c2b83b06331e1ad85d3b66fc84871d0f361e024aee3e64811ea05010ed0b68a600c8630790f384e8f80173803e608f04200fb803cac01808a303825e270ef7097ca9f1038e37dc6883ce031e904004e438c0c61a6a40208db208771f5fee8ec61966942186bb0bf9031cd080396488410c18438e185f5584e160789c2fdcdddd8baf25665c98d9428b2e7e50800b335b689145191e70b0b0e20d0e3bcca8e0ee40be00330aa8820aae291d534811851b13724061e60927da08993c41cc6cf13163260108d83d0768c2004c2cd1e36163468924be463348acf9bac08f7023bc08575380af29779739113e84a7112288afa7981920d0fcb004731f08003bd3c357121ecc94d941872fdb00c8e43046cc5705eeee3babab989647e5d6de8e669e55ad7bdb5e0f439574b49737d6acd28ef7c4505151251dad6979da2aabe6e85376771c6437b8bb0d35d0e0ee37abacaaa8ff512b508c920c4b6678c2413151949608a04917380033564b1e800206e4c185bfd180050644e380d1ed87ad0d4884945fb221021344c289b8144104ca800700ea52c281070c188514659480484009c4624c94a4306ac80086c183575210394e403478884ac62c218270ac4147c9043e3c0ca8855912325e9cc02458c04c428169043b622303920e533c18942a7c90881c710213656883a48c8e2ed8964a0749ed8b07a3e186da11334e848125a1c39c23457460031ba30daba31e4e68130b92c0c7918d9c13833283c688004f3e310fa0d0310a2170122b228d59e4031d3156e7005f454555c820a3d2c22644e3831a990e6878e19117383b39a0f0220aa2ce767eb21a1192a6283b6c80e1b6340d78811f7459f2a477a729cdd4bcb8676b8ee6c03263cc58091dd126c9ddc12600c0520506051bd6b83be8e5014086f20e530fee0e32110b610116bce980e7eeb01326e8818318143c0185bbc3d830638320ce1c400066b83b88c1140a40e3e30b2b5a7077100d500a5910fce08029770799f49ac6c400b3fde0eeb029524dc6f042c48b04dc3db6000b549c11830c6b14e0ee3b3304800ef8e61687137707e5b0d1c21638621023c9dd6334883d02e041a1e50bdf98a45b2536ddbdc78caf2e33e2980167532aa62d9f542e0b3583bbcb200019a8d3e7fe9dbe0c518732d488a18a7befd59cf131382c397aa2c72d39f225c59aacee014001862dd7d66dbbba68e5b2a1de2a4bfacbb467b3f9750c73d55fd2f3d2de638d7b5fc5d73674ead9bd4573ed9d57ea1b4034678b3967e634e004778f621aab958d4bacdab359f5e4809a55e4b552f4c5500da8c2dd03504bf3cc1a6fb72c1d454ecd51aa09dd2c737ece8c0c38c87000196f9c0c3764ac21a30432ba761a507334776da9d3e11b51cfea1c56ae7c16e99ecd6690bb238dd184438d2183bb935ba3cd583f2635e5410d51717ca23f12c551fc8d4b5fb55c36efd2e668aee6a49e9c9e72f4c92aa706391ac871400c2bc478c1dd5fe8d92ca931e4d491d384bbbb1025461974420c62441183268618339e91f6e1bb45742d1e8968d5d8cca7f9cb54e7ca45d2bfb76acc1b692dcd1eedaa43baace9128f78f34c9a77d766e0446567ccd374bcf52c75d7daddb565ae47779fb12eab8aeab3b0aa50f96d9bcfb162fd041f16d9b7f2466c865534121fefaaabef6d548c9205854a6a0a2e8b4a8a0a14292c1c55d554165495ab2c2caa2a28dc9554145515313fd1d63a1dae24cdfbc31fddc257a4b99a3d8c250ed1cf9424cb6ab7b94ffc4faeac7ce5ed215afb5fa6199bbd9af5a1beb6d4367dadc6fa7048e71cfe6b6b6fe2bc6f89b17945a43a22a212ff5756f3d7b54f9ceb79c187a6d6d4c466de370c87445ded6d5924208b2daec51641b4e8420b19b4c8695d6fdd740a17176cf1c61666b620b305157707c010ad8b2b2ee2e062075db6d2059c2e6470f72635f7a354a6bc00e2ee4f9a98c66ae58b315f885f50f0857bc1c60b12bc207bbb8af58519d7d57655aa2f9670df5d95ea0b38ee0e050c21c0c86010c5991387873836ce06718cdcbd85dbadac5b39e3cb1bb5d6f5f63079e9151811f08dcb30a6c2d0e1ee60362eb1362eb1c2e8b93b0b35f7ab551b461777470149c9d955c93b9545998556165959446561248ba703e70b4e1b386ae07c01e16c128e95c37102c7080e10383de000c181459cbb84850c5874c1620b161b0b520b8b298e4514164858fc7073c59a2b74b8a28617ba5cd1c5bb62c4e00aab2b9c5cd180bbfb1540e015322bd670212f5f565821c79b7225690d75a4b6cf1b4f3d2456a9b5dff6cb52e3dd55a9c25d7f5f73698617efac6e77d5f04bab8f224d1459a2f07183260a2aa278c22f2d4d290860a52012859c29747003c64d971bd2cd1028e640a1c6b43c5d05b3828ddbbe5896766b8bee25bc119b52eefec41d76e562db551f08b2f7a4484a3638f216881b976296c332cc3cc01cf7f0b7ab8e6a9ea679f42129395f677f49edd9edb3bf0449c9f9dae2528744d7dadf5d5b73f4a98d96fbdf7e196f4a5eda7b923ee91c16e16e377db1d56d90f8d6756fa76c9502091ae7da4189f7eb6d73bf7596a7750ef778141e212222fa6d9ba9b94102723878858680326e84648323bd4cad6a8ee66aeef1b60d1529f2bcd1feb3a0068d30338411eeaeb57de5a23c9dc326cc6862ce014838c016775fc1c7ecd1edee40f5da92a435aaf66c16799ddc7758722f857643dcabd02e8cbb8b100e91435f7bdede9a961763fd582ff1c5c4331186092c06d0c18413183c01270a143c65583d71c61c0168b1441c0180b10415672cc1c60d1f221a9b1a8e7c9137e988234b6cd231d49535bcd5c46c6c436c86d0d8f470212f5fdbde3363adcfb7615d4c75849684970a499471f72f3f5349d449a20a77f7b235e2295bb45e516254228abba7c0a48410ee7e012d095e1218246195841324d640a20c24b840c20d1232c090f042c2440203181710092b249c209104899af7ea53d4e3fbcbb8577b7f2d91adf63a63dfdb94844892fe9ffa449c489e25ddfa8cbaddb2c42b9caf5edcc5b7dbadbaddb244a27fb2feafc45d3ae2c4abae5a9a3d72ea893e2cb1de56d2d16e9bc7284ca4d627b97259f2e27cf5d69a75385fbdb6a3a3300992bf495192244c3af2e2c6388baf6d1d6fedb5fd2171aaa41b6789b5536bab4b5a6b7e22d250db4cf4a17e8cb34dd454ea877ed4d67eeba3a3a728a4f0284908f5441f4e50f6362fb40a6f27fe51b0b4f421cd2262f9cadb454c13fc7fb875b69a48aefa2469cd167c13d34f50cfbc6bbfcddfdb866a747c9ba6bcffb2a438f1f1ad5ad38e3587e1b8ebdbb44de77a69cd265969996d43e25f4d6b0f57cb1cc5fdbe2a00d104c41110398240b3019a9e1fbcf881003fd4f083053e40c00701f8f0e40310330801066144106382e0059114840f107480204313e20821b68410850042fa6288090c2167882786386288010c913504913464a411930697a60121204084112226380234e209237e465c31c281221250042ee2a6060d3534a8e9a2262cc01b05f8a100b6004c444880881f88e8119124c4174b5210c024801301e43373040002ed8c9a33a62be9214e0f3208a0051ed8f000c6a3b8c6e5eff3daf2dc672e8b96add6acd3d4e73484772d8b16ce66ebe1ac0b77086187283aacb183197253b35eedf083fb0e6d90659ccaa0b02b5699356690cac8d91a4fd9fa8c32c373b2fa3079a5b8d0618d0e65c2bcf085cb96ad83960e565170f8e24407231d6a3abc0e3ec2aaa3dade3ad6dea92f1ec793c4795f5a0e71c854f9eb70c8b66b7ffbb0eeaeefcc5bfc70f73afc4276d5424adbcb75ffb53551d4db16293286893646881837639618a3c5dd5120a776c51a0301776f82950303eede84dc5d952a07297787920397bb7769aa62ce38b96dc4d4f0450c17315da6e8425ebee0c02006032b272ee4e54b0c92189b981f2ee4e52b4c1b61ca0069616861c28449c3146e9cd3e970fed52d12f376cdd86adb2bfa2b1c0eb775cd85bf5c59d251d327f5c985896aae25de395a6ecadb36b28e7947d2ddfff63b594551395d41f9cadb3634ad51030f35d41a22a06101347cb14183295298224a8a38a430e286243644c00635369c5354310513b41ba04cf1020d59340c89018e19b8a0b9f171779f61cd0c5fa0a8faa45617632c8cb3a4a0dcc2ad8c7521972d29ceac75ab2c298e485b12f7c3e9adf797f4cb276bb78ab29eeb9dfee9bb289527ab86818ceb2b18a8a0350a063562a8c0dd2b972d9dcc5aa5c460814bc550c211a7c59083bb5ffdb625edc9819d1283153b2b35c0f005062e3074c16006854630f060d0ca82c189120c4360f801832c007004a00cf7f0d74576614da49639bbaf7deda4e9a82b85c2db5696b6ae2749eac2766105170cf0420e0a5eb82f8c79814dc98374c005adacd2684ab9e4425419e502530d2e209553aa4c91d264cddaead629ba2c9df6ad5c529a66a9dd55a9b4aea5697356d5946725c5d334cabe35532b1d9a2751aef79ef929aebaf6de094ccd3dd4b6a6c3b503ab451d16876a6fe48f20115f14cf9dd5896769fe1124b99a44b567b792235b62def7eab6be7a2f51bd564989f9dbb517a3886fbba40a40be38f1e505773f418515547872772e2acc5961c9dd4d60c1ca0a71ac406685d3dd4b60e189a0ac17682c98e0ee5cbe6cf24b14da17a32fffc5e78b7fc9f1c285172f6cbcc8d0c5cbf692e525ca0b920def27b51e42e1dd9d041b0a35a020c5dd47186ab25975512affa3ab51bfae1a0a3e50f071212f5fb42e6176c42e60685dbc685d7aec7ca0435d4979f5e2bff5622de65aab4e67ff977bdcbb55fee877d752f95b55541535ad4d2c4b6bfe897f4fe4c4bfd7ba0e8962cf6edb3b75d552e7c36529726d8d4b4a7f5dbccdd335eb9efef55113ebc321abda8bbab4f48925129fc848fc5f99a3399cad3e7cbcb3293e7e517c7a55c79196458a60a72245fe06856a8aeacae9ca874fd6eba3a6d6e1aae99398f11ee9937d6bef62ab2e4a45a4cabbd7b6e66df6aa25fa75e95fe5691aa52c2954288ab5d7d5d221b276bb65315595b4e6d0ea893ed437279c2b4b3aee917661fd4dace66fe374f87565cdbab66fed856207da8aef2b3be0a00324bf06fcc0fc460f84740045073efc7ebac4e87ac283a20f6a5bc0d872c3960cb628e04101681e9c1d8881d28357ce4b8110d684508660040b104800010310c00fd4f820cc07590407448079797d41e3327219e202238100243c8de08011023002d70842448842042044e040042125e8e03204971368256051820a25e448d881042c139430a103136a5e5f5e0cf0c2a12b005d4c341f1d9a2f0a9a8f8d09757e55bf26bf255c72b8b86c5d2ed9f9e683336b6b9fd95bb672d05c68b2877c269345b8bbe71e5b4c70b0668b832c0e80b6b87077375f30a76c8d91450b8bd61e7f5d5d385b357f1bf7eb7a1b16ad0fbb2ea5e7cee67a545bb20be75fee47dbdb4a5a3316ad1ee9d453a3a78676a9385d2b684021d5d3ea45f5947a3d9f92ce5739a784b3f1ad6285a9c85be5d785b395aeac58980a87c3e18a7e6649e2deaf8ba4bf6abb7036f5897bbf8b2fddb7f6c83ade13df4b71efc377eb5621ebeeaa545495eb37f564dd98ea6e4cf5badf5dab4ff2628bef2633d6e928c619bfd6bf12dfd7bab2ea7a71f6bdb6bedf01d17647bb2a3bae9d971d10bca6dd1cde8f37861786ddb14a568bd5c14e61e55836b434a0a58816244cb458a0856ac15a60d0d28316355ac4d012c7568fdb56942d91b69305b9e1028e1db435809411ca61c28594ce8d952676886b7a694038530e21c3420d3b62d0bdb043cc171eb86c6962ebca1d7248376568ed28236b8704745378f8e8a278f460e211048987119d8d8792213ca0fc088ac2d683c643031d90d5c982a288a0c2c18383f04dcbd35153546425f5af6e7de5b2e5ae529e465fa0d12d723b392039285f6038708195d902f361d36047d012a600f2568d71d687bf69947a6d79b1d3a635b733adbcad11972305126ba21416f103518b66441668e212ee3a871ab7bb3617d593834ae2c6cae54fc369f1c08454d03913a6276daf883bf886ce4526ed392845dba08cbb8b10d68d49fba395abacbac755735366497df56e8d9537b475f87d38ca879a686baa7b4a54294f87eb68ffb6b3395acbbf74dcd9dcff9c3ec48202962c2c3577f7c22285bbe7eafe3d69f970f710743a5c620ca565ba3b085a3db8fb96169d2c15b8fb07bcf19e74ca0694b6414f9623685970eefe01161f3a1a7ccd81a341136bce6850c30b5c3428c92c17f2f2a54114934d83d7c087063e19c091c11b5a064db89097af0c866a9ac8adf2a1d651bdabfb561dc53c5fd6b698e7cb54f758d32dfab62c6a45a9dc3dff561f2eb500bcc2c875ebd24b7d3fbccd5f16a59e38611161507505ebf0950f6b3ef7a9dbd762135ba75f498a4f248a9a5ed99a4e119f08fbc84b73db569e6f5bb2ee9a6baf37e5f99ec43c1fdeb95397e50560aec20bb4a0613161095d2571c5ab619dc1b2e2ee5182105066edc022825645013559d4ddb754e1a255996ab202565163458966850b2b5cae28b9b280bb37a95d29dddd832172ea4a1a778712a9f0baa08ba7bce202de0518d02e40bab10b7a5c20b32aa38524d08a0b3734f8991aca36acb694342b25a1ad1dacde6a5605a7ecb5018054159b2f5568c2b89097af2a92a785aa294cb42a1f651c55b32a77212f5f342a3860846854342a1f01acbda8f48f88cbf334cc14a2111100000000006311003030281c10c84362c9903abc001400055bb450884e621868a91c450a2142c000c800c0000400200400583137bd0ef662df641045e80557fa6f886f40899d1b606dff6a50fdcc903a52e2cc7d80b12eb2277bd94101205487be50fed8b01f33ace5e0641106a782247a4aa0b4bd2924ee63b8922700c01217e733e84ec170cf7907ad3b0b0560fe92908aca511199ddc307a46a1a0730131b00918ec1588f84805daae401fa81baba8fdd5f59241055399f0f069b2491144ce07b4108d823c07901a18e3cc18c013cf198c04d68f1c95531ded949774e8da29122415892270c0e5ee7fe9585aa05742480a109da34837c322f0b21da44e9d010842770c788cc9009da970aa1e650c1760e07bd68dea45a0d8665b682330110f2ca9f002e920a1de64919f88148d03b68c61e17b692c61dc187ac392cc8e77c6f04d95094005d920323bcf7f7d085104c34983a8a9301d10f7e8278ea5658c840538a5b41eceda004d61b16d4937c6788e6b7c666428b4fb75fb04645ca0e17725b0f2734434ca39f653088653af6e846f490802064e439165057c1f601b847bb229d8a2330fa0854fc3a0ec16f320f480c2710f722fda1e3d3c0a406fe7398a5f6b868ca2295780dd59c9d1d0951d8a4eed0b26105dee99f8eff80a702fc6511aea810cbb3e4db694a389791b832b7e50a2c8daaff75bdc4a771a8b107c2373fc5b1f81908266f31e93ade0a6458806a08c4fbaf5e38638a5a6e1bf296c78ef300606628c70271ec1ed1f78c3dcb3285b6c9438637b8de55e8dd3c26f6f392f5d2655cdb09b0c8be7d804bbce41666f71fdef3c203be84cfe31851e83a1ae61b4d2cf99b9ee18348ea3ee0183daff0d4ceee4e10c7d7d8bd46ab0110b2cb66edf61cbeac6dc5fc076af49737fd8e8324414f20580d9eaa95fa75b5d9050f438a0d08f352b2632ee674159265946ecf398fbe5e217d770659c48e45eae44844cf24cf23e2b5a85cea54d9ed9bba3f80a06995dea639e17bee4893ef6740f85bbd3cca32bee989d6e01e48ef6b65f7b73d7f52840add282c40e669f5792b464893af8c0e769384fb74d6b456a86ab0594eaf2e0663cdae8b6eefa1e5e4ce16adc1a3a13b7501e6ce1267515ef7a3a223c78033194ed0c222efe1d0793e3125b5a8d98a756cb4497d72b67b1c67da9d6afd4487dac40f195aefe5d1fd487c9cfd109ca05f14aee805c1c19a5d408974333e268bbaeffec738b54d145c4a60d6139edf2db169d05b9a2f95b88417155556cf675f27eb0b197b6c6dea122b013824e85ad1ba503dee69f1060e71e57a48731267e7570e926a566d23f1bdc410ad35dc89ec5911dcc7af063e9751b9a08b0c4d4eb9ad43b7fed3694f73829e2b02c250d7eb516569cbfd39473a228903bf6ad9399d9ef3b558f71f91292fa0d1caefad63bf5ece0b5ff86472a8b7d77167b1865346a7cd0a2d73a148ef3aa7116cfad718f6dd1df452669494cbe9daa2f6d0bcb3f385617d56ea711238bfb818703db92985c8e5e68aeb7fa82dc90642942da8701a977c3443c8438c1be6a9b5e3010df035af57312a8e71a2c8b592ad30d6401be65ce3447c0fae6d986f8800b5e7028a945d2c8506c41d74e112771e3914c6d3f30f329af0760d6032f42a10c659b9888bab5b8a9e25ac0122ea8f2abe136b0fe25dcadac345e289cdec529148b50a71b69c7116d0c00e771668395aa08903cd24d1bdabffa94d25c5f91a1200eca061e1b5a69ea638a4ff81694fc106c2015bf86db95144adfdb99309b2fac5d81fbc655566abe4081f3c8915a2563fa526e7d2e44541dccef8c6eb4c4935c69e6af7af8c3d5ebea874ea22bf555b5d1b10e977f69a9c99b24ef6e072252847e7e93f65e4a9e8fd668d8b22b32b5cdec2ed58c0c022d07b245456ad1ff9cd95d664717d78c4b26949a1a334bc8d5a7171cf3a2af9076c3bcd04ba63d196b60db82c95a69554e92cc4c93b7375d6a6c807ebc4a3c4124b8c725a02f542c16622bc6058c493151fe657527e04e64c6ab27701309b448f001fc3a34174bb280fb6a94555f219207e1f460d860e77daea9aed078eb721923cee02e7c91684249d256abd22bf2ecfe88a7e17b832282ec3db71c6a69ab3548173c322712bb2017975922e74385d47c7a366138827303d6999865ea4e513dd96e0c062c43902f734354a8cd492577fe779f3ee53e5c30a1ea3a7e5d4fe0110846dfe0dce8b9182052d25de772e6d8412df9a266143cf7436d12a7a5fa5cd922a805b602a573da25b5df72a6a770e284f2470d170a5c7ff022926db5515b26b62ac7c66c33bc3e8d720f6e52a62602b596fc3483b3dbfde5cfbc1f750b4cb78876f78900bdb76581a63d6775644828a700268eefaba5cfc352f6d77cce2a0dad49653c212d7b673d87ba0e9362d194515152db355d7c773bb1629c5147c096a4187dd79b73e9d34925d970b96e160322420ae69696619da2b2789fa74e12ff1adcc382bfa5c1eeae48b2733efe309c393683a873d15db474f8819ea075465bbc8ed78b81a5898d26659967bf1a9ade8bfec6e539e518617bbdfd509623e9c9b28c01f0e634c14d0e8374da95658a0b6b560d30fd0cf4731123f2108e017bdb369fca898148f19568fa14d9f24ee38cb5c0225f945d6d9e9e8bfc0b130abb5a0bba447a59f398f8ba623d8a31758285c4c85220c38197d784f340ae2c9a7c3704455d0adaa189da76892c52ed80f4eb2e27376954aed9b4211aaf7a0aba533fe005af2283e41c217d228054ba33146358b97655c1831bd96da7ab8e0f9ab4f10840d88c1920550966bc1dfb43f2704238328ec15e51f46c6ed606f3d0b622fb16b5aa39e9d6c5a422613907334151c84dcde89e146b6839ac620f150645cb1e54e9c24fa42417cbe47fbc1f0faa8cc6ba5097b1107b900c8fe13549fd9f30f8dd8711cb6839bfb7d490f3ff08ccba3175690f490951db65817147f387f07ce5e0f896e62c2ca269e1bcb2e4ce87227b82b01cc7ae205557aa9537690fee73819dfed7a95b7bd30ab0ba49120edaec32d2939bada4479af9506df66d1e5966088f16ec5d57de0638f6cf9973d3dcd4b8c31b8137aa9e91fc9b0c8d3ef172b9a1701bf7c1727b17da2bd89cad1c472787fe3548a506def38b1bfacaabac584e28b1967cd02e872cb59dffd365086f52bdcdd8a6c1c879c71e5734e8ac848473e1069062fa4e3b4e34cb5c9dac9577a8ccb9fe8d33ada34ed898114f8f3852a5b8bc69a79fa9c8ecf7a2082369091198f187512f18034882a6793a987f1312f095e08ea041cc701963b71bfe5d9937f1c05ec7cc81096631abf87e68e054e862eef68a31b828af3189c7c2aef83f981689e3d4294b175a63f1d83c56438a540add23633ee6891df48d73d5e14e0a2b9fccc2072621c3b8a9d5f0079721f1a17f9b7c7f1ff43c6f41d3b8b47656207209c518758cc504e180ba4cd3157e89628438e2b1425b66e4f3c44a5d1688307f5b1865e48ef1c6201fcdb6518914039023a99dca3b32187888663094b033bef4cdd39d54fbd33ccd5023b7f15e674b9c3f3ce93ea2aa76607e13558286dffc941db3dfb0cc4fee0c75d70db7f10e869e144400c98ee645bd9e17cf07d03d8ddfa8d5b6a0c131c00d8643014621841e197a214243fe92ca077c69cebc847a708f0ec5ee3037e24880c930ed6940b6e04f00c38399994dc8ecaf0a52f99d1c4f92706066c5bef2fe33cf0a5179c28a60456484f63eb45a97942fd5054b1be050e676f382397a5e73dc433a33604903f19d7e0256a3d6e93da67096c3e7d7d0e9200767f7e9fba407d08d988e68681c5bc6e8c655589e25111c8d435557b690e39660e29a33fbe87a977bbe06e20137e90a23172658e6c727a94c342432415118da96d980fea26f2b4c6a19aac37ca99f6e5845045c5876a5e1c3961775ab8486ca57997dc0ee87dbaa1440804617627961277fffe019eb3e783e53e2cb43a9625a6fca16f1c41b1ae396cfc2f4dea4c45e804c7d3703c5bb498a3d3cf982a9d9f125fc37835ec3b198de44147a43d8ed5e3ee90683499ff4b91b04a49e0d45488b1e10ee84d172c950606f58b4377600586bf87b066caa1387777191485eb4e7f5ebbd5555f706b96bb920f3d215a61ccc0afaabb573cba4cb1786a55cd1f4b003a8fc79953f25107bbb71718cc2216f503ec22065e7174dd1077c3dde1c8e78d9194a51edc9fd51b61265552705ad53de6b11e89a8ac47d2f7d58d147a2544e3fb0e66d625dd28d25b263dda883b537f9004580980c5622314762bdf7020a67504703db06712d2d181316697bdb86dcdbdb54ba968ac411d0d6c73ab12cdc0946ecbcd139a0512945e0a72621392a1666ed97ae9b0dc177b7cfd6171cbd3319f4f806fe049381f71e7b80aeb881951b2c83b7d2a05d1af99d8173ccd1e502a3ddb974ff5639da5533843998c676338ffe8a9173b33b8178dfe35b4e8182d8c35b3dd873d4c3d230cdbb4e8b1ca9d51a71808212cf84168528842d32ab21e8b0f2c7ade85c4a8d55b7b76ec9c5bd54ea34b14c444662c999f494e1614b664af4e3b67835c005f950ca9cf7fae66c63a3eae338b4d972cd0b7d2a748b86cc0c7265b51b78f767bf4835646bfa84d2664c0cfffefd1e0e25b838d0d6e09f871726744d1af12d55088b3975657abff835b2f8d14290f1aa9c223ba81d61d8b99efd55f0b5adce0a3d7e431c7552400535d11612719f6a7f84b5143d390efbca0a487076e554e510369508266736fb75d421fabaace383b6a1ccba6a813dbeab9e969f9d2ea4ec63fc6c028fff58ea91b0f0a5fd5c6ce4a38b3ddb39264995dd75360509dc4b49c865a8ed61d851ee5907097ed83c2fb0fa4751c2406c99696c4eaf49d51ca5a2e93e0deef4c3bb8f31c230784c9d6a6dbd399a0a8c4b62837c8c9f93cbee3dfe03afb2cbc9fa541569f3509d55996cc9f021e861d9cb51c3ee7922ed96c5fa8a5f3c0c1ed4a4425434d34d4edf1f099aeb926eeb70d7eb3c8b15e3c9a7d17b647f0f3b06fabb1cc571c9f5b7c93997f07a5b9ed3a104fefa82b3a292be96ab27807ec7defd82c691215d2e82a26e3b0cbca1c746fa9ac5cd246f11767603e813dcf39a800a814d69027229216043ab37095c634757ba4070322a317a9e8348114223b331c58638ec75d0cd2a0f03600f707796109d87a10e9a952e5bdd7ef76bcad978130fd48c3ffbbfc800c06d7338259bd7233ed626325faf9ad55957d52eafa49804e3fd5ff6a1a9cf827747fa7dadaab73deb92ceadde90c551b06ebf1e8cb69e09e95f74e08e4c005645a89fc31b405c4217f46f3c42ad6111ecebc02ec760e9d739e187d4008c301ca101eea61d2a1586086bb1bce1b7a4839202bc2db2edf3ae765752398353fc11c3a098e58e6ea795e0ae2eb2ae6ffea8fc93560e5bfe3a5987c9fe4bae3fe8fce7d263b8145aea29c934d9e77a8524f689f9aeaae2562fc41d3ca9478c71249094d626d16360d03e9d11af9f1cb4a90fd51ae31f74ed7f8a56effb5d27d38e5973664a808268d22b16ba7df38104b02e0ccd308b86e3f0e4761d1a7824f34759ea1177f85293788b14b1cfe6252e70238a8d4195af5640158676f136ca90517271739cb13c43b3f38c50e2cc8d3fe1ccb2998cc4e3864d9ea96e160f2efc011d9fd59cb62cbefdb89645f4d40dd7236649514f4a7976e03a0f3a571063b223d691fe4f0acec0a75aa0656351796b59567700993ee8a88bc68a17fee8f7bf7b4a2fe85879cb32324915181741986c229cccd279138ebfdb99920f700297af8b8d9d30534a73d2f7c96db6cf0d0057555f59bf1ef2aa7a32de015c771139d419141abe511aa14f8d007ba8ef38427fe067fb4960649512f73f7fffd37c276ca9784d4a50866468dab1bd16266b8e2224993ef7602c67ef3eb16088ef4ce0356ab2403bd200af2476d2a3b4be8cc6e747c0cff28f6fa68c95d8bcf6fb0912ab0c0c62c1aab728764d436f587b5400c5dcd7c49077bf398c9cb93dbaa128401bbcf82c2842680e49648a0da26cd94e4993b2852cc675e0581d2a8106191d7f9424b4f606134899cb88d50860166cfd05af1e29303d4c4620516158c89e74001465f7ef43e37c9f210374b3f7e8ca983a91a1a88070d1a3cd1883936aca2c1b93110651ec8a41d1f6abfd7d68760d2d51136b0058a5d2ee4f3f0a8b4035d4944d8a676990c004530a02ba1730709b03722ecf69a3d5e496a8d1a01dd8834a2bb6febc8922d5539285f414407097a29ef2372a8858b2158b0e8a9646a512161a9b29da618bfbd9f25afaeb9918a79d65e848030968a19726866426c90e6455a6b7965abda511a6f6c1cedc689cbbcb92aa6fa1a8c65e30fbf745e31d54ea378ca0ec8bbbbe77c183dc6d54b9fb90f648fddcac711bfc3d49323f39e032755b732d702df86184f4ce37ba390e051ed463a6b56ddd31eda573ad80642fe2dd4216edc0a709fea331aaedb90695b4e358b9c3fd79dcec07395295e085dc179e3d1b0fb4d28d9859e39ca93f1a8892cdc38b8943bb263aecc3f9974ef4bf784fc29c03c6885abdff27e724387236710787fc07801c8c79df814a9e3ae1e7ed77ecfa9c1ddbb3d317562793bbd60ff67186d18ae7ecfdaf28e83ee41305f8e3911cad0db3f072b3330ead84e17f4fde97add924c6402fa9fc2ed0bf9f6b4230ed3bfa3339488706eaac3d79153d222da24bccd6aab55b8cae7b8bfd5e255083c7aae4d39251b3d5cd1c4381d9448fc06f2924ba00bc768d695013538512255d629c4102578b715aadf836481091c3433784083ebb148ed835b0ddac10697999da85ac3b474a21f421a476e26a56853a5a8ded21e9477da161e356c5964598f60d58b09fc3f8e55045b69e40c7aa6128a56948d0f08848dad1f929264a8d23a75afa865dfe5fbf03d19e5d4566c62440fc68aa311f452970b0020a17fca3d11aafcb9b00e3d5cd1ee35719e11a61e2479f24275b089531c5f00a20ecbee64a6d861a28f5be066333ef27999f73054fe81e2fdfbce8da13d80e3f6fa98c0ee29cfe70a794d44386ef75e2af97f842befb2c843856c65e4d8d4b351d33e08d597949a09b42f0b0719b730b3f59ae24ba92da8b7db7232fee2ac589b7018f27dee261e51ef39830fae6a4f0ac5be42750de82f4855d2b6bc05bba437539c86e32af197a989f11bbd2a18e7d9ef8a86e3722d67cbf1dd7f74c938ba53754531c9c1caeb61e5c35d789571a28f7c38b6ac29c3c2f9e0b511f3c265eb51149277c702f0f7eec65e7cd2fed2ba6052c63ed87cd6486d45fcb52869d4481a177c1746f3044b25e5b83eab48073a5ce58426a0809cc894994ecf4512db817a4f85e23cc837d5396ce1e7b1044e1c820cd4ff71b7501ac8aec662b3baee6e81831311b6728d849f597aa899b396216d523a3023b4bb7d91d04a58343b00a61ac0fab890e10f1b2c670a7025820db8b47fd6aee8403fab9e4b7c79b55720a762fe7bbde9cb377a85570acd3e083becd54aa9775011be757b7cf74fbcb552adddaac45489921ee0f5cddfed4be858d480aad81cc2affe273a3e27c9c321bb41d438c60ce1494bfbfeac94ab9c7c1f33d1f8340bb479aa9d41e2affbb26a2dcae49210bc2c1f34e46335ac9feeb1acbb60a3d611e11c056b75ffdf91f4037f10626d2488f4045c89b2b3ff129f0f9fdc72c0e2ba7e7ce93ff49e996a90cd56af796b8e7d9b4be1830489e15246b2721886ebc4076fe6fc479a70cf5bcd55fc737406a87aaa615973e31247822cacc1dfb622b23d0e5c00a27837bdd0037d24e8d809f21326014fc465b8d0d03394729a2c1e457c47296f381446ce623b95a6ab0de9d704b9afaced1336e49a211ab5fe5db386f5313d7e5331e467497edab9ae1ad691319a3eaf3c7a31344c743afce80bce360971b201ae8da2f65eba54978effad04038884ddfebb5380ab3b5e123d0d452f37f46070a4e57cb31e89aa1336248a1cf2ec3b005f7d6013b2f598242da1b6d113682c9e95af305fce17cb61828d5f8025f7b10dd83496cfa2345488d74c7d46b0f5f017c480eb09e363c0d0becf8e33fbca2aa1d0c7f1c3e57bee1a2431db45f63310798dcaa757d35e3242ca1558d98374f08b74ba8680cfdce61a8986812f5fd99dd07b8c7a6e31998e9f0a9c192d5ff0621f66bef9e3aadb9bedb4a0a8f58d54d1a22eef520cb1173baf78ff521b1271cd6b3505b5f9ea401b23bbe8cfd92c660ae01ecad487d463059ec147f21526e53787b6982d2be33058f41451597f4253f2d8c5f54fae64a3a79e791ad49e5c230666a0d7b3d195bfd5b29d0b65d272b6a80a4bc3ba8187b5da711507b947356a9bc98979ed0bc77d332d3eca9ff838edd00f6525f53827dff3e0e7cc516638191b8a8c439c45619143a0e4ba2e7c3d729542d3804e51a6589a20bcdccbb4443ea4beefa7aca4ca6d8e5f63f361d47e4916bf7de2ff0507ffae015c5d444dfb188899d9595d1d062f7f18ef9005a1913eca6cb165d98761f2fc27b50bdcbb6ce2ef3edacff0534f1563f93173450de7efbbd37d6976aa9ef63575434e4cc0165f55efb687327b2fcc4e4c154a812840050062917158c8260fcef00c5b7f78a84854cc1157cd11861c1bbb6a54fd87a24041dd08aa9b2cd3f38bdb9856002ea7592be009312dd5fe164e1b6d5936b0829e14503d50d6b463904e5d740400523b5ceccad97e1d718dfbf6509b322cc6f33f341ca849d189b4539c8fcacf5b1f72e7936079d6ece8b57ec5742c4fd5a3f0932bd7d7a84c371c71f4e10d7c6cf0c8474713837894efd4050f200d63029af77f1a67533885453e81072c5c0bc647d230e40de4da5a8fc4e8d943cc065d6087d9dde0ab5faa2357913c0cffd4d17215817338bf3ff4f18c3b27ee10a72f0c1578b22f7d5593cb548b7dfd95ad01785dc3c7d668418bf00c1aaf60d1a0eef9ae38a99ce29233989407a275eedddaca15d73438e72b451c9495a3a9ab77aa700a3cbbeac43501adc16bb5274a37fd65b65e7e75b62f37c4af5c04f34f9a8235673a733c72600c756881e74112b26b84ea4aebefc26109aa475043b71e247abb3e1f28358791d9e7367c7312fd9f422b180151651da94d592c4fdeb8c2c7832f94334f4689d669492e7a86892f9f650ed5e2bc5965b4370b30e00ca61283b0334a20867d436fe30c3334f661a2fc9a4293558265b4c445791c4718245e89a409c0f12d1cfd2c73038f717185aee66e97d9ba69dd75e444c6926c3f3d4d283a9b2a501e647990a342ce2fa1461b04fd861ff46ddb56680ec6a202214aa7b3b27ce60acb610c4a293607315af14d9aaaf06e1811d00dcbcd7a58ad73955117ae035fc2bb71a0c9b0bd5d1a4ee9c19bdc9e77235a1edfdb136f7a93eb8c4b31206f2b5f6fcd2daa27f4772a0e95651f5b61bfdf2afdbd15efb94058383b5c98a37542c3a9d34dff54ada4e88586f02ff3617a7ab687c4c683ecbab1fe6254e490470b6957207bb8a68b69b46c0b4d23507d86cff5148bb8992c8a87852cb0fdef301369ec50e626a4798fc2bbc1d4adf6575b2415463b83da871e63899ef7f18216e4b9878e4e1af09a44367131839999b4f9af3097564e349520713a1a85237a76484b24c221f47760314ff078281d3ec09501c067c81bbf4a71ac8c5c9837d8837b319bd4a9c9772673f8fc4fd656e0d2d5b0f7d8258f697ef9c587d03aa420503147c0754a14d8d96a39ca4cfe2d865e8d8a5dd1c221b7395ecbf395af9d843d7d51f6925cb0c24c030d269ec5f259400da071804b4dedd6a829721638cf36953dbe2b320fed20576392da8051f219261213b320c7dc9810b3b43812e94044742ab8a0a078bdcd1f3790b7199444626b707177f1fca96b60b030e4703f6d45a794a05e6acec781ba5941fdf824d129f7c572fb753ec5b5829cf7182707564ae58245bb714a12438ccd0ed2ca67d9bbb1ec4b7e064a3c197c25d1712e194095cd8a2dcbcd24edabff6651cf6d6f4ef8a76f5c2e437056da4132c863b8bfedb80216956af0076896cdfc669c313b2dfff1606ebcba85febf3a56ec721e3f3d3020e0bce0358ac01289bc314c852d2bc85485433cd96e30a9d22038ec2a89127ba6473b6900fa14ac899018ce26046c594e2507acf011de35a93bd50484694b50784961fdfa461519fc33f1b22134bc6286e2bb829236f2460a692f08d00d50422ca3fec92521900d2e51a6526749c4a71d46e7a9156183943593c36887c40168f1c8e9520e78dcc9cc6ef3098ddac5a7dfe5d9b5f528c42e3b0719925323f1ed17b2526f1c6149cae33b40582d9956cd64ae19b2908334d80405ebbcdb2806f8164f583d66e98518f6f2f7e1444214a052a12fd69582911542394eb22160c8ccc77639303a7ac91c706576f4ef0f76138d1a2bec742ecf6e047fd302eca949872052abfed5bdd1b5590735ec1b22f1cbf98e579b597c1d580910c87aa0f5a0718ab1c885b4b8b741f6b17babac7661b5c3d6fd75df8517340bf3261d593d2155c16f3db2e71441c73b24465a2390a9c09fac0daa9d34848908455378918339c83c324556d4662940a2ba51b0647cd6ba3b361af3cd01286c24e439c2100d8b3131705503872c27dc8d8110b878dc3a14760d319c4cfa107d2df2f00e549f89a83501c1ba21e415ed862c082697422c4b3df6fff10f5ef7031df176ec4e4daf1bef44cd9aaa5509b41fcc87df3bed87b40bef03efab9ac865e769687956e8e63811596eb904c361653916f33ea0923c5f513befdb53ee7aab39c0c2d1372a75711667e6dc51034053eddd955c000c54037fedb80d229e3e83a3722bf0eba0c3107c52788b1c31bbf81d28545f609f83f8e52a8be69c31d8c9497e047826d6287d84053b4710877037b36531390f337ee12efb549b0ff5ee6e6ed49b49a2d569324121baf01b1bd49a40465dbe3d61da61b6ca165a05092084e9e8df718042936b728c4f4119a8a4925d00d27365c834091a055a6e0455a21f883d9105d5c43a7c2227e8b40712f9e67f0826b4aceece74a91511f020403f10c4098603c67bd893a49a8a5ec018b4dd6b5f7d722056c5fcd514fc1a22118947d1f3b094aed1442ef6351460633824547a54e71e50b299fc78a9b3b8ebd0ac1b0c45719576f79f2d49ad982019edacc2a2f9a68b5e290f71548ad7511517cdcc9ca71d847abf3d36e4676867837e815e5302ce6dc2b9297d28c62e3f270b345160546368e3dadbcf398cfec346cc05ec0734b2528e71836367287c3125f59e9d9b679e8fb95d44922710229fa57064c59ddc9e1702ba3556977959615883ea6fb5f634e0c74a7c2a252f811c744f37e097476329a9e7ebc9437473e7cf948c8df36934dd8b0bba730be0f28ef728ad5f20db217e71cca06e465ebe83149f358bc409f81cba3c679af57eda18db14eae55420abe57e74866dd9f4ff843e284c5b28d8137d705f061eff69a8f65bfe9fa3f49e6da1ccde4bce1b92370db8a632daf3fa756707335d601b69c4d4acdd7034331918173c7596ff21a8c3c29e33023a43a5e12c9c4f2edf0d0b6bd378c6dea821b3a9a4ef68f2bf51409da87bb389c22f60b95fbd10fe32d7ba7272e3f84b89f3530483238be7d51842e0d012bfb480439ab86a03784ca03f431766fe46a060e03356d70b90cb43c7223be5688246c359f0818c1572c39086f85b8368f4c07309c15524be81c1590bbe9dbf691f6d703d37043e4cf776c1ad536df8694dd00dffb8cfec66187e58fd5484a6a72a7e1578e63b9f33bc5b4e34f416e9eea2ef49c90b90dce9def5b4ee99c16defd4be0b997a1a9f67f0bb1f23cf9ab68fa2ae9596111461c140c165a88e60315266b8423ae74e27fec66243b5ff739753e82b05c6d60db72a3a05660368f74b6ab5575fa41be7c50c1abe1a72afe252ea28c2e0a5669f22e278bf980fad93ae35418fed8f26888df88519b88e93dd480a6abc2bb634f9e1d343cf2f34e2becc2829d67d3be42b6060070add1a77462aad0b7aab09993dcea477e7ac4d59df026ead8af90af9b9c1e39548129fb3ee6affd08062c32cd163a5e0781bccfec663f9da3b3d7fc6999ccb91b67a8a9edbd3898e511ea6154358c1cc73684cf66993bdf9002b9ed9531b0425cd5c511f07c899d865b66fbaec11cac672f441cbec6e494bf1e468bd737b198e1e7fc3359c7fbca5aac5801772a8d47a0f5bddf839f51dd34b039645e2b270adc9f094787609fc700791b76e73c2ad3ac71cf5b294861c0be67fc901f4ce77e999b391d0ac00039a60b14745894f527285eb48baf26368ab8c2908c2c9795124be5039ebaf77ba7618923ee165d61aeead9d4af5eff6f05ae2550dd73fe968c154299dade6d3f6e83b669a1770330c06ef672b2d07c56dc82acca19d518358bc55adf86d3c763616b3d70fdccc141a4ad9e6bc8682d850cc78a253ea5950b8b632b069c3da7bf6523947b4a8d8444cd6146d707bc4ceb1159de1a85c33ad71c23794d29bb0cb229a7eadcd174fa93fbc25a761c9c2646e279ef2cbf488bc2c293d18b4dc3ff5a158b08a0660c5a9aa4eebb610e162460cfcc8f10b0ac85804f5ead11ae34e651fcecc1041db2db649ea73b0bfc789af40d399a6fd7eecb9927402fb8cf8170c3efcfabdd7b48b17dfab489cc6a6e8e6ac902f361f02c4abdf6cc5931322b626a619c1df0551fe91b1adfbf22b5dc6ce7d6cbb51ef2a15a0083b3694ac2f5279b2810c59f197a0614d87d978bcb459bf084e39996647e07565aa567dca3eb961c058ad165bcee194e1447b944edf6664f2ed7e8b0d7d7d5c19c6d455da57f088e87f9b0c54fe918ffedd239c58f9a88f322c66b611d8f883ac86436f0f4c1a6efcc1b4d7939d443ff5bfcbf8c154e7009960b0b5894e173c1a3d54942efebc56518da6385c91632fa909d940536a80f44f420f45284efbb3bdc4a70b7e030edb616025438e5439d0548bc6ebdfa4b3042abdf022437f87dfd9d915f1f5696808efdec031b42f71863804decd03b2e96fe60d71290607bb457b91d344963489105944578ad6e56d44d69e8f1cc014ff26b02f660644b7544f2a93359270c383ed60c60793193055140572ba9017121a7e5e74afc838a0ff2edf21cb3b83fccead6de3dd62e3be0b1e94c6a80bf8331b0bb18b50bdf5bde5fceb297e6287e427a81f9b14c0706dfdd9901b16dc091d9b95f39ae6e763698811fb80251ec9b6aac9e07faa319e473d2d04557e9963708db776870685955a601c7add58d3f3d8586f23d762bc77809d25e96bc5235eed02851139185d5c4519e68f2491aa76b42d484c53ad5c19e5736646cab0058a1f57fd5357c54b036a1a49f935aa9e88a575395dcd1d1e047b862e314b5e6211b71c3d8c7b7f8b9c3b5bee4dd276ac98a911d38e2b49cb44e825ea9a775c6c3b51047f9b0ae99bf6180697c3bca6ab984dcb700601d3b29e420c6c44afa0312be6465f174ddcfb7d29a6a4823965247d4f73ecf1ea74e28dbbc8af5527b68341a7def0590d203f60cad94a88ac6fe5c6a8e919b0479b10128ad80acb28cfbcaaa06a4a881186a1607f126c5460b9f53903229fb19ee4ced168db16788a51370f7d2efa7bb314187b7cfd30e442f9ae36defe7413bb51cee129b23f9cc13584f183fcbdb2ec49ca9851764cb12ce25c91b97f00a4df833e38117ad23643320d3dce00ccc4369891f1ae3f76e6bd37e5a8b167857dbb4b61cac4bb6f79ed946cd5decce1a8caafd6fcdef8c1bdf078ac84ff1c89ecd5644143fbb98f78d7f62b077765f9fd6c763c24e0e516c38d49c2960d236da563d1a2b3d1c06ca635e441c8c0a7128329e713a135c306e2f8a0fd7ca4b53dd3ba01333dec37097b94c127350702ed2e5eb8aad6ac0f95836871e9f5756213dc23e07fce2e0ba9a752921f09153cd18c2d01c1b8393718a85a3e2ada8a014789c6b882d450dfcdda98b212b57dbc43d89d95296372c642cf71f17f88c934853a126cf4595b2abc664220c4977cba57566d9ccb289a5995ed2f85099b0652421532d01186650d7c7acd0a7da077d787f3f828f9385086759fae80dea7e823a515333e39521531d28a559db7d17372496c10070c50aefd2108fc2db8311a14f7474411cb78a58264d55250721ecdb010e279ed2d12adcddd1d67d8abd06dd10c094208a96d4bc414d6b1a8a08949fbc5aa963f73dac91bd8ab5c62bd5e94035725a9053a3f47d24b17280708686f2bb3d5935f09107d97d1f4cd64b3d56b2da605633863924c7ec3beb4614ca8cacb7a3e4665d011351806df9de716a1c0a4f0f66f572767cf7a6d00b046a1b85cb27f4a0d4a8be678c5067af7877720ff0fcee426f117cd4591796577c2db3704a6091b513cec900e3ad666140f2b22bded034ee35106af78dec13676309d77bb89a55244da2ee4c2d08eb68fa9fb28ecddcf456abd734bc5216f5401b5cd6709c012b3aa93aea2cdb9e9fbe766abc72df57d31f7e7293ae627c1f99625ae5456bbc83e8c564c394bf9cbe1b49c7ba5f07d272cb03b52649ac04c4e6494d3f15de1663d47cfd5bf1ade0e8df4d83b45dd9e99affca9b956923839f3aa48625cb4909143aa7a9a598ea7a33cb6385695ce73dbcd8d3d20aaa839fa57e49942f8df0f24bf86a92bd5b52595ae28c34814f6a3a2a99217eb255ab46d9a6f96f8d5bc2ab93d5838e4d96ba8b0f606567206c960e40d1efa22f1d8a4bce25ac339f9f6a72cd9d9ef8f074ebfc30fc706c40e40e7171344c33183f70de1fae85ab48d6af4bb78450f0e1918e78433ca08e0ef7056c39253fb81e30acf379b39e6f944c43b03ad3fe8479f611689e5adddc91629352cea334eaec1e21a103e20d12fa34807d1b56cc9bd6247bc857f62df1a8e6f9bdb297c017aff058c516aa16b8ae737a398a2372d0f3a2c4602b77f497f5bb8376024a784abe42b0574299dde5ca04becc1cc8b6b12c62116548344b5575005530e501a2dca9a0e9f481cccea81afda902e1b2f2cefc013f36fda7da2086de1578a12a30575565a34d6be56c14317a73f77e67d432b2846a0c8abab4d1228d7ba0941ecf32c4b4c0574836db21bcda99370250d0361f1449dfc6846329d0cd3a6f0a8f56f2a7375f757e0797eb27330730abe91d37a7f3de8ee793dca8b1578d631105f1de8bee0a08f99d9f5fc8518b484432a8c88d26b15ad39b40011f0b1b86b9427a16f915755422b2668ea862027f1aa3e76f7c6aaf7d758dca37f7bac1b3a8736d64033f74c3cda5a948b67664f73d8a8d8070b8ab152e7835be8f9df3b311de8b79bb0cc4271372808f8a2a9f90f075f0b88a8655daa899b7aa01733ff78c6006421d4c3dd4154b7988b46264ee5aa85c1bdf9c9ba400fe0a5e33cbd466bddeafa74543d487061d8722420a779a23b812980b95bc12ec6d160dcb04fa233752a2dab0e6ade53bb0cd885e40103691372cfd52ab4ebc7cf43890120f51388d8a468ec147502d311c231a280a7c3fe5fadd44161b69f47bdb2d7daad1cb71141a3d1cb877814eb34f56cc2728129539a169c54674a7ec786c67386d1ec75032c934a5f48a5e11f57cdb6df865b1e4b29e8203a7c6a88396cb35c600eb101f2a0606f3ef203109c80213dd93b774ba4cf4809d955d5593053f24bb6d059e0db846d366d3b5b67ded2832f25732790abee0d61ef41c577462d879f1f10e20cbaa268bbaa2d23e41c669b93b27dc08c240cb11c4c813e52bd42029fc44f4469045c10e26b2e81ee2d6d8dba27ad57fac04f035b151354f1e57c8efd3a5d617aa18b6da805bdfbc6c97a8c248bf4a29c71fa440a184e1d1c1ef5a87248ec804057478af90b7bb084ec178017e320ed8eee64de372b58ae812cf9cd6f7d8d45a29b04fc598a4d7ec158e40b320d4a940d6542c1efa0300eaaa98c44a2595b5138d649cdfd51b3ca1daa80b79d6920445c95b2f9dcfc8517435947ccf702e73c16c77ead286a7be622c50514116a75f181b7a42cc064fe203b95c0c5c5a9f9ba22807f745240a6454faa1dc17bf351b619979d233f8851cedba9f5c18e05d1e1e20b4dd78cbc7c3198fce9105283d942fff171fcec811f5bb91af348ac17969cad76aeb3ca3b427b89573fdb5a7de7d1aae050169d9811e7ab6304819fc733eabe95396d1befb760b70386fd3eeabd844ff79871e3019c6efb698fb0ba0f98244d707bda8fc03ae0f45ca0e88afabb20855cf51791e24afe8cb9174f40875cf9755819527bf0452bf3c473fd94d360d40dc8b1046c3651f7e2c6f6f2944d7b6313a7571460b4c1bf6adb8bb5ab1a5c38be360bd77c6a09eac14b4c4979409db34d13d971db1edb8831980e6fcfcb89b36e223c1b7c085a44e290eedc68ae56d338509a432331f148d918fefbeaf424005504940c1918840a5d794a881e5005c4988ee8a0b41ff822714d7ff236664cc4284ea001e7de9ab6226834afd05b57d31bc7b151e71bd024493da00f02ba6a6588efe1d1e9bbb6bf3553a70b326d7f714c8aeb757b0b39adb6c168eaf3b14b3689137deb7198d10fe3dd3a7a2b1c28b45b7c792c159586a4541da60f7188bc42f70d19aea9de67be2a6f05700f78bb51927a220829259a057cc4a915e186124681941bfd08d9e983e87c7063ab3d902619f41dccd9a97255378a4abf52b9db006c42006df37e265f2a13a27b3a47c96aa002100b5e405b264c0b11547fe4c6c2908e0bca0330e0c918b2353662250f9fb1c04e03062656d1a96211c653dd51e7fb9ffb5d46a53452a8fc8457eaad348974aef789ae3a7550396dbdf655302ce4e0f698849347cf2c877c0eccd0439e155151ebf4697087197adfd82f7847de8899fc40a6a7e2fd4a90b7d5e16597be54bf027226f4a6a32f4289012f116a56be1a16fda33d4b332d117777524ec8ef1970e3c15658ff497f83f6088e0f5a683a67771acc85482f32b83b031686a8b52620ece1266b59f6292c7f05c0072f7443215cb906d6ff0d2a6a29f6d925685cb53650c9a3eb50daaddbcc62fb99aee0f119aea123a7c82cb3374c31c23cf7286ab49472b31d89ddf3a777db889252a0da09289e62b3215b810170097a776edf857bfad95c19a4f3bceb8aabeb9a446186d28fc9d8e3911e48375f6d9507cc1408035d3128c6915a3d772c4ffa480d1038748ad3519e059e9e668d6ea78055fc37e332614c0077303debe518109c1a4bad04ec8476e47437b73f9abbb12f9de389686a65905b79fc8e93b48e95101e020f93cead5011d9b0262c45962de890343b7b67b2c280ce24be8dfe53b4f5047795d0c99230a391d781509899f3fbf8a07afdd66c0d91ddf94aea8b9c14c0b3153c0a58020ca3f1b6facfb8159d0637fc8050312671b460a5ea7d260a8e7d5ea28c553c2d7ab6df160a8dfd1a5d140b0c642c74c46551933d0859db3287f433cc23a7da29b61bc6d264cfebd8bee75e9f4d842f761a08822215e9fc445152642c97bc0547ac718a39563b5c0507b989863eb56e07b9c0e4727a004cfe552b6a4813effa2e3ffc3720317f1751bb7f6e00a714dc60bc350af44a09fc744f71473a28d82ed512f2cd2479aa1174f0b5477d6cf9663e7a8d500e5e233aa17ec4cd18925af7278254dabecee07a7f0d2ad1db4a0ef992517dfcd8569da9204394af20299385beaf203cddd7a9600ec24188b0f0d236806d89f3b8f3d1799d96d11f0ed65453d9aa03179a53121903428b0407f3003ff4a15da7f4f11d2c9676b6cffa4f0c41ad4d0c5d228a357beb5a90b626d8a7260d668311def3149594bf3973eb81fc9fb729bb43803dc1f14c67f4d034c7b7830e00adfd9b743a8af1cbb978d9d6583d2cf124d088af4d4de20888828a8a3e70deb69f0b75683a899000c231cd987b82070347e8c15817f463218d1f4830d54a2188f7bdffca1c92acfadc02d35341ad60e0127e5e51a405a0e60405d6029b8b069b7ce91b647866567761d9f342b2d51c76b48e4b89b297ff646f9ae374350558de1dc3aeff6fbc8f57c1776add33fc4c76781282baabd67172c8ea2458ca55cdcd76ef210ede36ea7ee3fe8e5b76b9900b6d7fa8f54041061be8d968b2f8856a0c40492e3b89b2496d1cb9e15d76d98000be3438d77d6e38b42accfd9ec7d2fbe1df70f502393d3badbca8d064e9af50c12e08b89e20aa09e112fd94c6cd0bb24e48c0aa38b61218fc3a620ce15b87e8534606b380309bb301b0bd2220de31aae3f46958294369babaaee6ac8ba1cc3a7bba1372072accf4dbfffe3258fbb2939689e10373ef8435f8991e7f9b00358364e5d17f7474b9d9d8f01a12b22b88dd63fec2565f6bc60f2add0568a87b4ce399362cfbb943e632d9a64e30d134f16dd399bfe2cd925c5c378b8adf388c492ff12e15967fda12e42ee17cf3549e0ecc865bd3645258264a27d8bb0ad595a3171b7c99b77f0ec9378333d398dbb2a7a340eddb6d06370f80a2bc9f0ccb3adbd8a6a67c95bde2c8a193f7cc4b6f3d745ab5eeb1c16c2418246da3df03ffe521d97b6b3e0d4e68cc685bd063a4bb76c7c631101be9d16eeb87c4e29e4763f1dd6822e8d816da529c6574c3c04c27cb425c18288d332f03686445a5bdbb67c843880dfac1c1997adf7b4ce77797589e1f0c7c58c8f523bda80fc7f289b82e52768b71b91dcbdc4eed28e1ea932f709e3b738d7ee0bde0e02c15e1677d4af60cc57fea5b6e7176077f12a9be66e201e038026a4e89e43ce2eaf6e944f9b88035784e5e74bafbaddd65e588d9dd97d2bcd9780bdc97d23fb28b647ac63ce8ded084906f60c48fe7c7daa2f7518cb74ea6071b3c1f20138723d0dea4f306b8e6ebf88c0edfb40edc3665fbaebbbb7674a6bc26ed0c78e74e0f86efd0bbded18747b2cff8b0ff553b9ca788d50cd523357fa712ce37d9d57cdaaf17a63428bd7d219d378a9c45fe133f4e03be77a2e0f2311d19eff6374b5f38b607f96f23558cf5e09417832e93e48fe1428b3f9937afcb2457ac63e08a6f7c2bb2cad62dce6e6ce707cb16bc9771305ba901c6d6a512375083e3d738e01cf0e5ad4814a96e213dd505c782d64a4773fb617394ef22ce66abae9076c1adaf7326c9bce50c8e6dcad47db9ee6bc3047b9ec32905394c3012fe3300bb3cbc8a9414662a2c061c4f679b7d8e0f2b557274a1485d82f8c858f0d8fd4ff5776406ecab3d3b72b72ffce48b8167f0a2eb87df32e5d25390668dff3c3ed900bccff5428cab95223f526e1dcbaf4fbca81264fe14c70009828e1ebe24eb1fdc0f4479f2eabba5e557ab612931d88a25aa15d978e51413e656eb81a5336a445562bc01247999ac62994b1afe9adcc4795d6369a956f3f1f78c17dbbb9d85c05249e685388a194d9fbfd1535487423ca5e5c0886d4e3085336e90e9f01cae00ca860b690ca8c95760f5f4a602e23b880495ed235866fccfeccd6a9c201e5c7a59ea9397dd21b3cad11b9891b69b95af361f9641b4b83bcf4354a79e2d751b2331b85d7a569ecb0be85e47d67ef73cf71817de307f2c83bb75b77d3342367963ab6c84a02e1c8dd34ff5c01ab68338c27b02dc0aec26a69024695f8b43769efb6a3e1c36bf923b13c6d8a4783bd450c81e07bd3d53b54784f58e55cf2ce6b014479f13f1f7213774fbcf94e53c66166d6eb43c05506c803cfb5d13fec05713e807c8b71efaf9b871cbc61b90979c6466bce61bed769c9bb0c1c93e36b7d0bc9f902f6d95fc772de331ffe2b866f83d10eeba51dd01d3b47332e848e1dd3de1deeb20913e96989cf290dc7f86fbc5591e81e6d2a8cf96f0c683f14b0b21811277e12ca6b5e25ca08928ec52a2a55cd71ac7a8250df3280960f5196eec07e64dd985eea336025c39702d98161d2c0677ed453dccc3f4bfa0e1dbde8b03b79c3f362f43fb65057c8c7aebdaada4ce0528a521baf8da00cac9df4453518a6daa29c3a70d057dfe85e788d29b4f460e51785cd003b9e0e639cc8512a13e36dfd634e18d46566cf4a75e851acc269cc28a292a3819d43ca50c1e448b6b56de2ea98da98a6dffaebc77285a2ac42a54220b78da30e66144a49a9acd421d95e45690f6ff8e63153f6225455671cc42878e344bb91d3ce48c041740ee104e682762f731171b8638b36bf2610c8dec7107d72650dff2f8a9df5f4e4719fe0b39ceedc82f8d1ece6541fd1cb3c3f8a900ce8f1a89c4e50ae7fe4fb16400b00edbc0ed4d4b5d29e8145362c209a17c37d58fa93af7ea588e9d90fc16f8f0b1dfe2e0d86fa9c552dbccaf8dce1470fb187a96e5e84236bd3fbccd161cf91c08887e5c55f82f36ee668eff9e9fa6de78ffa73318b55db5e3d57a7fe48b3fe1a360adce57df75e07eb406e505b0b09fa8a63e6b0fc9b71fc30afd6b1b6390a71f1a427efa93f44d59082927137a0faf6c8cf829179905facac5ba17fe172a630f7601f82b56f6458feb66710ac35c8168c346a72775300cd2e29d021ac55f1ed0a773728863f51c0b5a7a9b06308c8e29ae272a2218966ce4a7515b65b94faa002337ad4070fb134df0073cd59265d1ce00294c509d536eca9f34db3e187282369af60f5ebf3bc5dee6042cdeb85cb8d09a1926e659c63b22b9b5fc6097933e3c16bdf130b1ed2d43e43cd9fbfd4420551b611ed24301bc7c99f105e8ff72ea2cde715afbd0b5500660e81c796014e064d4d18bfa3f1bf0de1d862bb0f133825cb6529bb430827f172b7f5f0e4fc74f67908f9d41af9cd36ebb1d78fe5bf774797190479e639e6082faabcad635dacd546d29efaa485c53e24f59f0ed249ed736e0296ba04d236875b4ecc45d5d6c1d6ef648e666a3c5656b68bb11c7c9b610815234eaa1efb490a8766e9b793c5e18353e2ba560ec77e6555d915b47d42b7de6785e8f8a495c54340d6b88cfc823f1a506b4d9529c7b29ead938cc74b327a7d9dd6c9eb045d926af60dd362863ce3cd80e2a6f81393628de6adaf34102acf1425b56da5869b217c9851189527b9668977facd512d433a3142c44ff2494107a73c9365575f929767b8f57282557f41cce798d5c15d249c3c248e1238b0c6861c4b3d4ce7bce45efccd0b7da79f7fd974125d7fe250536f0ef76fa07279169e3364379493937beb77d460ce1133df4f8e44279fbc196418c7f6225ed49b1c85fb1e7fbedbcfba8afbdf64a0f62f71f121446f591d4d34d47f0db38682970e76d75c8c1b9f9802bbbc8c79061e38fc9ad999d3f883066de7e62cd6599a5d8611aeebce54b14b980227c01a52c7435efdb5e839e97b018e1b7ccde9788594f15797f2bcc6168bac4138db8da9758d3e572e71dbb2a4eb7897ccc9d57d916056ad86e63cf50ede9da7cebe1da3c4d21fff3bb173735bfb089f15c4c6ef54861bea93befe623a5dd527d91a9870d4b10c561ca62af3b6fa9698136f183d433f16350fdd75d4b4f0fdbb4806806fd80fbd1804c1e736f900b4ea219b6e61a5680ae64d1d1314c3d06e22b5e2e927d99ae07b12ff893ee29d830865d468127f7fc3bb04a3d484d6b6b4489136c1241dccb75aa50e92cc5713928170be59bc8102cafad526459107c4f783035fa7942962d39c86faea75d0a25aa15199d6847eb06eec306187cf36b490964211010fb8f37bfb1b8f78cdac16502e523a5230798a4d8d266f14ffdf3dfec7d0b5ec1f86ac2735377e69537bb5f89df85946d1b390c64dd75baf8b157cc99bfa7c75f2af87e4c14ef7c0df6cdfccd63ef01c1346c852e4c4d781ca00320d1bb5fda826c389ec2022229881edce9f067ede0872bf93e85349b89ac9423062624f55eb58f11875f5367d9ccbf41b0e1c4d1f8ed904075a807d0908252788fd3bf54678f9ab6f065152dc77b90b011f66d3cfd973c3393bfd35e5c8a2a7e2f908a5a7c6ea4180595d781e580c2fe49b4f365801a6f19931f332cff10cb7dfe6d5718648ba5bd57d3e0faaacb41695a0716ee08f0f5a69d3751ff797f67cf0ed1fb306f58a86cadc567ac8ddf0c3f40338b0bca037e3bb9b63e546dad835d74d1af9f7fcbec206c0763ce51cd553f7473a95d7a901695113f0a072f8dc6232320c009e5177b3b4d0860e23b44864918dc68cce6c2191270313ed51c02238009cc4158e56c4b1756eb8625fcd3309e4a5314b0ea8a416b8bfaae46c2ec5837a087b4aebcae0d4499107b4981e4eec2f96c7d6eeb1c458ffa9c63eed5445d971f555e569c3ff02ef21b2ef6fecf0a1ed5efd4e715a999bb5e0b15f82cf8906b92e1749d47df8642fcfcafe50234b22319d05cfdffef39f0ed33e6a070557b21ffa5c5bea17ff74c9a907aba49cb660dd50fb07daf4578d6fe1d5275bfbd75dad50b8f738f2c8f1d6b8b3e704fbc174c01aaacea2cf82264f66e78f6a46ccb0aaedd1db2a157700381e37c06f986e6e701ad53d9181b6a29b972b838964655c117d750b490f39e51a11e6817460907ea32ee1cc738c98f3b45ef5f790451c30069daeffab8199d45d71f2763cd1339ea50e76d01af361ef61dbb62326a324d8fd40489c5636690a20976a060e1c710dff381c282020b061c8c269fb809d85f09e7485d29bc091af16c8c854eb7b4d8968ca9293c29ed947c689d2a0f9e7e452ea0b633bb75499b1a2190ed8b481848ebc816741dfc6cc1ffa13cc010a8badc76d63ac7aecd42b17806985f2db4ddee1919a97934644905a0e3e54e100d9697e34d20ca2cf8e7e3f86c71aca188bc8df5de2162f4cf3c72cc73670cc9ffe5348f7f2b792f623f4e2c337f1a9fe7b645adb8374b9a6f60d550be5684dbd629d41f16bf1b4ed2a2f1e5c26434fc11e7f0623279c47ce423008fc3119fadaf01b91a30c47f56aca4dac44f3430e7186932e1e1776e76eaec256f0dae504302dbb879e0c2b7ad898522673c5155deec12f0b60ca8b780275e0591ad74109810ec3ee7d604b972cc555a329877d94a3a22b0dbbfa9e8c09a2ab60a09f4ee49f26ba50d91168eb0dc3aeebe5527f4446fd2eca9f04aad8401ee6bf45e485e8781fa09f8d7977d1f138f9aab46e5babe57787f7848f0c21a65681f3e70db5fac46788469d5d3afd1b9900cb3fa3d10766641fa6063946d1b2fc04c77b3d1fda73d78136cd39c3e5d64aac7b1afcaf8bbc22a9f5cd78f6503b1c42e8409e74a2e095f0564b4243550618ae3e8cff674d1924a9782858322caaa6c119f2720a36bf40c96b1759653456e459170b1120e938ae2403d2ab8e4e6be5634a8b3e39bffc03e2c6f27ea7cabc75b9275d317d6d5786677c4b6c4146ff1b72587123d5a67472623b96d28b8e8cfbee5813d04f87b1b3efd8a89682bdfa3ad1fc94ca81644d898e5df9f91c4931cb1cd8372b53c7d8dc89c6e1dc651ce4d5108e8f1ba65b01727a3c63d72b159bb21c4066c705404d79f440f20c6d48db397ea87ef5f1eb058e0e6cf32223d7b277dc68c6e0d19cb0d17ac5e6fc5522afa94dd3586b237fd9407d1b9af5fb374f930406db32fa9bcb768a3c00061ca1728d83d63569aa007d2f315f27d80037296f27b5cd9076507aa83854aae97bd018ac40723f6ec2cb01da9569f123ac53caea3911d444f670fe2cc9eef207011f06e235e538f274f33bb9e455bcefddde778dd2c1cec1412989e0edb20c1d6a9fe8bec6a4fa23c8b9bc4b4f3509e05572d28752aac4abe3037c01dbfc0110625243ab2149b0846ef27d96af1e6cfc1019b4f2fe8517914d511cf7800c42d46a8258e62efc5125200eab39ed01ea2bcca3f4fd2b98dbcf26c63ca22f1698d1476f326acb32548cbad61922e9a31b3ce67186dfbba63893621011a3329c9afd1742820a0b0b6cc8c6a932e9f954a95b9e2f86216d5ba2304c455053702331177d83829f123f59ee6cf93f9f7c55a7a124637e790e807c64e7f9399f84b896079ba76520ffdb3fe558001e15800f4aa408c77b0f2587399c7a4fe96820f5e719fa153a47484e49f6148785a144cf58ddd999d4db1d0272a3fd9a9c99bd146a6714b885dccd1ab3c00e8a44a78189cc8d3b4b02287aba0f23aae3d7cad01ed908e6b3da456074300120f7ac55a81614591a7afbd11044b259956f29a552d06413d43510ecf8560cd82e14e3d21bae7b100564922286752fb8c4533359235a3b959bd8fd5a2b342eb4d3addc5165323c0422751320ddad9d5d3824a2b9ac5ec18068d2eccfe941ffcad08c4914a2fb03c668116b8b0392114678948b1c437ecd77087969e9478b506d84a3238e842d04a8576acf121695fcc2a38824d5b56358691ae0ecdf5a1ec2cee416be4b69635a5af9d3b35859046576be1146e5049d5b4f627b87cc576bdee16530c4ba1a41a227c425473cb4055dce25b69185529a917e59070be08f97aa486d44d856f5c9cdfd1c85cc35321fd1bb9ab4bf127ab28ef860a9d26e186354cc2ffe688b9630839ae2f5112412fb154257139f81fc55c4978718c48801861b00c261424a2467c16aeb78f66506a497e9b0f4f3a08ce7a8de6dab744cf1f11343c03aa0864540443aaf9b2f721cd2362d944b48f2e9e400df31da006f85db8549bd43f123f91e794edac286dd57bbd3f5b2946241c95d849ecccbd25073c5434fb9fdee030e88194d3579bca2114f7778225b23026f40e2cecc8ffe5d61433b47f675ab70756967d4d233b45db1a216c9afb3cdd8b3fba1d7aa2634dd911e5fcb868783aa9cd4f9ecc70654c9d008ed492f8b12aee0be2b713ecc25befcdf7bbe6fb06f30abfb7d2c5b5de1bfb46e110d16038cbdfb060376fb3b9f2d7176f14f6775093016d5360b2c88daa66cbc3f0913166b54f7da15471ed5b5089225c1ec8f629bab71a55cf509856c380bf3f1d09176ef7fd1e69e8f71ac443f43f1ec880db2e5bf279c756f5a8c13cb4fb20d0f620c36ee5827c801d49cfbd3308f3512cd23c9ad82ec74d46ada37444623ea24b292c51d4371e915f97535c997a2f02b7799c0f73acf414ebfcf08036674f097f206753509b17d811f2d1ab44ad313099a6734bf488c245166640ee16cb9b21280be9af813e11d123adc147c4388f96b3c47c876173831734e1c033cb2cd0ec2b85026ac059e8fc9d23609bc92efb1f521d9ef3c520fe5017fa7b4f0af8654d39ba117bbc88a5264ada986ef59858c83edbda8e8de097b373b328d0313d36788588a27f0fb23a1e1b42ccbf48ecb97f2fe09bacc05a2aa096c042a1366d3b00117f5f0a43a6385c51a13c9d2f073d0ae927d7e5e193329f8ac39de52088d9170f69447835cc2c8a9f2b728bc4ec521c506bc27d483cca144b2fa24e948157c37b356cbc9d896e76705daa1edefdeae6c108226fa8cd2894c63abea80400d70753c21239079d3148c42df8a60d285c716b0212a8077bd943fdae440e0258b12b04c2b3d9663406662866ffa8228ddea569388b2b3c1038da0d48d6d1bd02410e6c6507233cc3848382dc9ec341267415ece2df7b08317c98faadb6053f4435293d61800f839890bd7e91b6816ae063e630650a7bc90b0969acf0dc499bb365209d58783f865e3918e29f8722d310024b0991c0dcbb934f272fb9df900a077e9941374316a9fb2c544c220325c6e930c6d80a4b82d430e61b8a19c8b78146ea8ffe07f5c0133c633c0126b607b592f89e4df10471fd5a8f264ac96380afdbff2b13da3bc8236c5ea2bd0f66d5f1514fab79be6a3dae43537646d69f339d5930f6fb52b7f1fbe99ef019c26ef57f5f74e66f8e1234ac823ff8281d73fb18377536daca4fd1f31a6f83ad3eccf032933370137fa33d3e477f142026a579d8c53a88ff909533e3fa71d6cb4dae656b06cdceacaf76d0b907e0177061c8ee988bdb51b40e1a183db09e881f38a5aade5756239f778858dd792cec1d4002d9b0754f00d8f9a8f9eba662691f246e7f8c3e68c5aa5c83e576ac4235069334b49b7101ed5a70797fdcab6e0f0db5a918a618be16188f2c814e5767aabf0ec2181b7195b54efe78e2d22a9da5939310f1a1d7e9c2793d93ebbcbd51a59a3a9d613026637de58a9d2dae4efe48a275219896981dae782a6fdf7516206f0ac07c14e6af4e7efa085109bb4eb2dc3a09c89bbdebc65dbb04f7a6a3f90cd904847fd72ada3e5a232b4319ece754e936fbd25a773a3b3e9d1d790160d14616e80575bab36a01badf9d85afc729e73f8974882db89ce02773b25b33e3f24b06541999277451b008668c545e8aa0192a81c449bcead07be3e670f7b1ecb2a50626bc43ddcb262d87aff9705d1c9299c7365737c5cb60d56074d148244d025a0aa1cedcb31f20dcb9363c5eccb8be0de1e472e7e06bf7273441d648eb665539ba3534084871b203a328ce9d7f689ebf407a48ed3579304d36ba049cf64ef599f8b62e897af9d64caf5034a559fbc1d4cdbfc5102f05e7a4f1945ad53b4984a06c51013b923dd0b71432bba3d7cbe19ca13f09dfa02c66c0cc359a7b8097454647ffb25f972d7dfa39d05977c7ae9aef3c33484107d41eb447889c6e9d0a1e0c0be81257736013acbc35adef99dd6880b6d92acde7859ef5996a471db1e326686ad711bd3dceb671be4a67aa2f8ac2a5ac610e1f6d46c8d44ba0bf93a970d5a0b7085de0cb590bc130d45beeb4ec667cfbf6a885f2a7f71e47a3ee13bec9d4bec89743056ced99f61fd420164670c17fe27d56071ebe6a8cfb3bb1c2bf7d41c7ad1abf78411ae6e996987edf1b4fd0d67dadbaeb0d804ed0a797f4a868b6e381737ff1696f39bcfe40f821ac79fd7558a3f3a523e3981bb85e515f8bcff4e6b74d62844d21405f5f600b1eb743661a9622cb0178bfa67a20a5fdb74d0233c8ada805c9ac6715a9026db6e491f74c241c8cd9260dd6262b6c8c287f80c56890da2c93f68405ea67ce3472953f06bed4fc2ae17ce8420fef3617af2fb13003c92306cc8a35804751804a8ca16bb3abee189b218bb192d5688cc1e5814c80b64fdd460e07e2f970d5cb9ba4f28cfa3cf0a07a724bd00dcf55d3ceb4a5e1976af1195332fde202c2f37395dee5d460198380972476da99fd71754c2e929afaaebf400b7693408f2787b87a8d7ae78b4123091d17410b50341e8af1b9bd37682cbd249c6ccbfddca282517cdfbbfbbae03f0bfcbbf83c7f27da3fd9cc2d97c8bd77f1008d4b3294d870b2746ec6f6b611fc9ca721ca3666e3f70a662005355615eaf7640ade38b92473f79d50124cf231d36abf12414b9ef111dca472f964b3a051bc42d5acc1f14ffdecbb152526d04690bf387c6542f23b179000be3b33b86e402289f487e772a6a0b3ac490185979752091ca088d828b281268fa8bc09cdfb4d7cce3e1fc50c4ae5b35c263594cc134a8666e008c4da23ef3fbeb5a81f4901af41ae78ce98e50219327a36f0a601ad35f15c099168ea7b1a7aeaa84fb4020b15fe9b9bf8e58094c382e9955aaa5b7fce1da08f4d105053d4a149e45085ad521548677b349c4b5ab28fdf61a2d38c569fcba06fafa050ea4d3ba57272c46cae6f4f66c0c778ddd2e1991dbba08037f5da835fc2714a4a3ab16f80b829f5ebdbafcb31b0774a5c4d0082c3575de8309fcf4898d95b2ffad0aeb0298e051a304350a1d191e69690557e9e4dfe4ec28c252057e504df0310a6bb9560cee231d651ab30877abed2ddb208b686a47b46c930fb2580d56fc6ce8442c622b76ac6f120b83095b44b47e0a099b53ac78eeb044297b2e02ca36181ee80459159d606dda9a15dd2b47728a9301af2763531e37d07bcd3c0a62836c3b73aebcbf60e9ba589ce790eb128116df1ddb6b7507a7b8ba34a0cf32a4eaea2715ad2105e50c0e59f9c8e93456b9c4f9fe6639422a049ae5d166ab85dfa9ee40fbb40f131a4e2a303ccc4f03a318341e3cc565a4c38ee22e74386ed793b35f45ebbd8bc4f00b1766b384aa6a254659f1ae00322955f3d01b6c71f3f525fb891adb78232d04899279b78827019c43572022488e67d42dab5fd6dd0f88c6aba4979eaac091bea7a455b10072b8c15690d805aa2931a81a4a55f1ce4f36441848faa9015c9628066170530f46088ac5bef7f1b4a255ae25989122d820347d195b6228f008cd7269b1365dbf5b17d81f8328466b0df529ae2ceaf32487673fc1aeeca027d9c6ff456b56acb6db59c19d3da3782e0b5ea5a46c5fae4c8c3a8b020b8e8f51400b5454882ee5a4378dbc57dc3b057983827504ba2cb96d6ed8bb256b0c0826bc39e52352957079a63d68a4d9db3f8d8ffd5f22ea5436c99cea9fbac926d7ea90828bb9873e83f46ff7fcc9769dad313022388e54a32faf6bcd8f6dc345b2fd2e78d00303df78a113ce6a82e0918dd4c3daca931fec878ef3234ee9a5ee63f406b18bc13075e0a299bae430bb5cbbb22a46ed33720bb79261ce0ce7009516afea4d5009751dfc2d95c367b28454c361da273dc9f14a159f47f44ecd70531872f0a60cca7c7a9c9e9991840b77d9df67d71a5c7f445ab32b7c9c8928fc1ced20f2c6579a5cb289df68d45327e86a448063923c77e28da5d3314b7e92c423ffc96d9eec058aa8d54ac0f1abade99e06f4f99f41d3c1f0eb7446cbf586cc21505506a239db2f8c093d8da23ff7b0c9d333090900c4a67f28a4bc7351264f55f595b0a43615c3187db3b085d5801bd0d070b7609798537944f411f1a38c43624cadb241cbaefab5524c6c2e960baf1770d2b2de4db50b4cbfdfecec5cbaa9bb3b480eea43612f8589925f8bf70c8609c9382a8c9ce1d41fa7f032a1c24704dad8d1de67533e2f8a1be2c10f599c0f3bdd750e8cf2b2bb76640353f6dbcc69c4302ae93a8c366aa0bc0618f5174f8b7e18548bbcb23f82089074d5c81c7d785a983473faae2a65322df4d06e15740b4ab825abd7061289ceb53a9f0be75ee82a4deec9c2a2bf42cb56999cc8561b90ec8bc41873d0372b78aa7b063868045012ace1a72df5a8bae6d62ed0b0af37d82516a488a172bcf11416dfe0dfce9dfbe60478687c3437dfccb7fb2d24cb03cfa09a0bdcb33cc0e855c33c5f0043d99f31c8d3580ef6f38a3b9ab3ad1af30c2b6bcff273193ec8f8387e5d83eff122b440ec7b37eed6fde169a5d9a552a3f71ef73df00b71a4c8fc0e57ffcc6bc3781c1c6c54e684c7951ece224c79d91fcff432a067bd5bb4ef5f39a9276db69c0193f419f9b7ff09ba64ca15e7a029c3b933e24a8a3e0082ebe8b5effe6afd30e013e02207eeb601f06fd87a4cf11d567a4df72d45ef82cb4cd303386891ef8388bc3dd5c09da009b7c9fc3eb2168fd5c7d9bdc2d850e338d785fc38e00bd5e3e38ff1c3e432a2cbb05828da741685fde5bd56bd6cf603a0def88c2632160cf9b3bf146b79a37d25cfda637db350dcf74e4a7e838b6182d9be886ec1c34a5e8111ffa0cf7a34deec78b5e69473e555daf978eff9e6f6e283d65103e3c671fdc5fb25630825cbb8f43aa638013a8834505374633ec53a9eaf18c6cd8e9f80891086a2f0697339ef280de7cd4b2d00883d726f619c43365a33f3002528bf9424d843bdbdfccb2518ccacb6b30dcdffd5ed4f8feb57c7a0753fec2d5e36905a7dcb76c400e4c7b6fac1f5a1e08df68d293516046153c1849ae748b1a7261c3ab8f074546398cbe0734768745a40cd089dc6ba017a90ba9dc5c25e407ab723352149ba147c322a5daa8b9635f14c10332f032999faba6e821b7e2cefee0bf69c4b4f1afc236a7d3867317388041f8f727b05189f361219a820453929d17b1439ee8b50575498d6694cc71302b701885a5bcb724978360fd3672284098f20af036627bec6b2f299dbb362a002fd5be6cd123cb59dd8a1f320681b3391efd72cf7c2b96b11fdd031c8590c31f74e1a35dd239c752463d57bea04a952f47a8eaaa55c3a1aa60133536b8b566a0fe8fc05102e1d0e37a03834a8c6d1826767cbc0edc7e4ef0f9174af8d04c538cbe6d02fc4256834fe7b8f954ef8511f14099753478a047491238da0cc5d0f0cc9c0055f97eae7a4c0971189f24ed3eca73a46c26bf9510ae999e0f6efb7356d472e8c1a9e941f5acb67964011c0b3319e0db4f64a63b6bc3d2091e52fc468a072aedb512b81722a768a5937ec38d94ce5deb96c8afa1c1a6750454af3cd0e281b332bd359ef7bb90c3d92bdf2ef937f8ba5c0a069028019f8b2f8984ca2dc56990a2d644113f903506fd25e92ba83817a24ca22628b9a67aaedf1870a5e014d3feb51103d6d5be69a3e2cccd20497f7c00a1b0b00ce703e4c25abf0dbab96bd1cf4523d6585de4e1a60733c1627e99ad3cbe5f3d46978f02800f98fd9c2cf829d10f0d709b6e971b36c98a2b2103f08af014a96a63dba0457ea521dd12bdfe00ea39fc1341461c5309960eb6ed5ca47b0e158cf17f7ee0663afb89018a867f662e7d2a51361f19f80065bc067a0082c2eac0772f7025e0e2a378a38f1b0ec09c1f7336ef12f143a0dc321dd33bad22e6e82c9932ffa6fdd056e143da5c02e58ce653756f0c5068b8a16081eeedcc08af37c2a3d9958696ab83b5ce7672035fd2695ed8f8a7ff6ec9132c93d1935b0a2835dd1479c26a265ddb9c63485c0011bd5d5ba95f4edf20a9323200eadf24d165f25241c987ebea9416883c8ea70807791e270efb4eccf1da08ac5366b825a6fae0d59371bce267a270d4e8aac84c96376f2c360025a8830088e042c6a1a6c0a7745d59a5a512a1a17c0e40900cb6c5a90b8d55a6305d000eb60982d7c11f111e0c6cbcae0e761e54acbf5e0194fc43c53dcb2b7a41fb4e3d97e03bdad5442177943ef202ade382780c59e0a73798891b275dc5149cbc0c041521aad992da8cef9e8165d21a4cf3895a789af1105730f273b0fd03494e39945f0dce043f5712051086695d858df0efe4949cf6ba128310ff276c490580b427b5cc4f012ff9ffa1607b70058f908209d7713ee1e153d12a61afa81d5f5c4450000461c61e896f6b05f708675eb7d2bd217b517ab51075b0250c857469936405af2749a9acd8d32470099043d5dea381996760f2f3bca3609af683197c12fe0c1fa33c65597e72c524b1435a04e393ededecb8714ecb7e39d1077476883eef2da91be1c4a5f6af07aeef5828daa9df2c3fa1965415599486eedea1caf73f8f5aa5a683147c39571c51aa4344658c815804f023be5107747f16be48a29b2f501af31bf6c817c1591bde001def82bf846519fdc193ab641d0113b68c4753990b0ed4662944f676b0fc5526ffa0948f0a7e58e9d4e23ef9bed21ee45bb18fec52646b697d94f9c9b2f5bacb07f9de86877d130b993e4eafbfcdb8b2949f393a32956a3ac751358998476aaa9115fe08a5640e18bcd01304876afeed85a1155267f86e3382cf536d50a1202cb1610a4e00d7bfab1e26909cd22e1b372220ffb0817b543cbe00820eb6b15d4f92a023fce88c8e2844d42f250fc4ca7ef8dc7e91a9d962581f981687a7713b09fe88aac4419501b85824406be9a90da7d996d45eabebfa36069d8384f06cb3f8c2b3ac3137333b47f51568a6f547e78b3ea6e8872b82a4c0f2b39556de1960408b33763fbb83fde799eb0b3b5a86d8fd3c587aecff80f6b368a476507a43512910df5d1f1654bfd379430ac02b28e92054b01bdd7763b8b19bae311b44e11c00a0e80e4738a87474a07edffdacc4602d95fd89f039ae339b2809e4b84d5eb9ded29fccb85ec07fb260cb75b8847860e18195cf618a5dd8b183f1c89b6988c0e3c419345a9463d67588203bc546e7ca8e5418498e83e14833c7535c21b00e4d4d584067157a7f635a31b997e1049dd2ef5c27a31ae779fbb51cb11004eab694859bbf2247a22f63c8611718cd84ff97a7cdd3dd93a94972a58b147c8b521d2987ac3af604d26f62f1a6eee1815b63bbbf4f98b61c7a523a5627245ae34da36ed0bbf99797fc413f4a50c59be01523b71d6951b117ed48f2d3b2bbf2764190dde40558227e12003649752c8c1faa6193797a4461f0beca1cebf521129ee7eb4ec4ad0a416eb6dc9fab48ee6e8885e86f9c41d381c38a6c12f07f93bc7ad260f8d8ee6709a7e4f09a512627aedf41ad28a36c20b68a1d8f3aa2a38a218b343bce4169f941202edecd938cd179ff36039b684dadf629cd164d4fc197535ad135408e87e49c29672dcd933202c59a70f4d0bce857c90a86bd28db02b736c63630f1f58033306049eac6af2cb8dbb56c54712894119d3e822ea964cbe2c919303f70f43f578b7a45efa63b1a632c2e981bf0756bff8c837c2ae2783122993c58f8fcaff8794ac96c85a88fa18cf565e94fca1cb5282b68b9f965d6af06ac614e1f8bd9e8fe4f8b9387f0ed12481e38095590b83755c858aa5fa7a524a61a98ae86b8d332637ee9c4f7dea35702a205279794b076fa845eb5f49ec4c6a9d03d9e988fe42388c37e72bb97d9f8ab7a11f6f55636c721b116acd076c669f53804fd6005af4df2b51a702614e858a8723dbdeed2baf48f5053ef155459c1152c99cb251506a0e907e6d7195269275c4ec61ab2e81e8c8a598ad2d78a45889c405df5500acfdc4b17b2d0ca6c3a671bcd7e0cefa29e283953a683c4e6550a85b0f7d3ba931461e2df322f384b6d04e32894cfd42204034b2f1890a61ac3ba4e6c16087a325b089c76998d66b97b3aec414d9a7a0b37944f800e4cf73fd7b369b21a911564be01069120da7c8b5272f0a36424c47047a4b46aad95c9884021bc656d09297fe81715f5daaf3800dff35d9f182e66f76bb79908ed54f0d0b7245901b401a96cf9ec20b3551cf8536f1d7233ad23902205cc1aec6c91cff187030a37cb480af60c85f893b1444e3b7f9fbfb2920841d9a327c01d2c70f0c10841abb50fec023d4c53371c11770bc030e3dfd122502294d90187bb00a7ebab6a657638dd1b16473d4e91a444e027e54652e06993c5446f34ae3340f339636fa22981c37526ea4e47869fc5f0dedfa412f38550d399ce900e04560b46ea0387d88623f6b95bf5069368f84329737d0b47fd4a0037a415e531b4597e6ac6fb92866eae2b1c7d60a21956e0f63cf9c0f3280343eb34a9175bfbba04a1ec9ceb40a00cff7967487f5d9c14cd8054937dec3da587ec3724f13b1695819db9fa0045007356dc6f606fb63a23c8abb31eca6255b3848e9bf750f826eb0106a9cd1c7121f8782a93e4db2d41d727415d69a61a79cd8fa6a0a0a0b2fce036afa05056c265587dae14e614420de9b530f96a0de7e7d307bb6df02dd11897043ac8d87d39c4b4bfcdbe4ff58336c86e80c03fa0c58b3fd4901c6aa610755610d9f75246be88ecea85b22490890d3e3d17662a410900ce031b7e8b9b0a1184766507678d2ceffb0251503743483076455ed765567437ad783a25940d9119b2752d582267afde2ed540a70727e1bc106aa41f8b3b69301f8d6e61d4b290ca312756f3535ee978c904ce769736bb35e9ab809a19c448a3e0c289257a4f78faf83650fd317d428cef92feb317592d51a0874ca96e742c6c4e7847657e186fc4c3079ffd3ead1fa27c34707f55213a3b251e9a081f13cff40c86fc4544f752cb8a038f77d3cf3a8f9e27d7516445e734c5dfb922ae91f001ea8f9eb132bfe50f25e56ab3fd03bcad8b2c992271c8f5dccc266657b295e80ec008409f2e337e94dd0705933253208920b16c587d1e2793282c70fbf4c239482b2af6c659241ba7202c0c5758e5fa8ce60234fe5056cf2eaea572811064ef12b7baab7be0d3809035f0c21229ddfd19fb85630039062de6532e3a535a58bb45e7bf92c30f2b6d6e9332d076986c92086e1580e5c6bbedec1b6ca1eed3bd6115cff3b9ebdd576bebe739e422853bacc91addde1432d41d7358d418ff6638ca26a45badf1f4cb9e5bd7581914cb065fe07427cc42a33c02f4d19e98cccc028b7fd1e427429afc37bf12765f3a1cbc434a66289d433023eb0e46db790ec44a3b57fa736e17326554494ed9dbd95858ce1857bc1c70b209f34cd258eb1ba9271f9ff1656e6a93e91fa6c5209b59415f28df2ecacff8ea25127c22e661b32b15e7dbd3df14ff65dd17b79fe81f0bf9e0ebfbc696733337ede69ceba53671ee4e2d03193a4617cacceb1b8ff5d5381b4c471b2f1c3407ccfae84c7c15022ee8e704fe92c003c477303a15bfb0309724f5366eb862a92f59f0323d71469255b213d839c952c6c8f094cc3c8379116f9c2d210b7426246f9eaf81ae1345ce1560b83a9336c6e1fe00927c6e4f8fbd5f0e75eeb9b92e3fb13a657a86949c91bf2d6bb266cee1ce6e8c6c3283c8cc2dbda7b33945cdde01683efd12cfd10f139ba9efad80f9ed74c44b60810fcbe80ebeb823b241460c56bc937e5972dd05970d7677856f70374cec6645e2d4731764b995c791e327f3165a23987f3a992b105f83ea5982129f6bd318a069e212aa8cdd63cc2dea287f9bfd5a889ea3fb17d059ffed8fb9c3a665b4fde722d80652cca672d071dfced87e7c00b05f536be41ddbd7cef518f437edc74a979a6e39f4cfa871fa6365b4cb7487f29a55dc768b50e427f7c8ee3c1914b8f553eab2c84f85a7f89826a415f1aa784701d1959c6e60a4563a6fa4017673d1899679b779eac29d8b4963edd152ab388bf978abdb85826d2fd31e6bc1d7541b25c8c4b84de41e666c39f01ea3d2c3cce70305cd54fb1cf014f697a33b8ab91cf040f459d234d67e699c9872139781daff4c6dc8ed761afd5dca67dd05e32606287083f8540d67445a87e2f39bf133cc23f9cc93328e7c2579f76add134f0e0c0ee21a860dabafaba297896c26a25705d3eda7609e516e33778f2c6bade79cfc210fad32f9287e5a4d9a9fc3ef67771bf38347d51a827d2afd87155cc336176fe38d2bac71d12dbcb600b78bf98d06acf90ece827c1930fef73cc018e3fd0e343f383a14a62e047918ea6d154e45fad105faccd350b88b89c2ec1c1ebc81b83f780f117428ce8ff1cf43f6d753ff9bdba1e6a69a98969bf1a44718c76df1b104c18350b8fbbc79c559f83efb60efe5887d3ce3c249d34cc20557f777f372218e0f97fc0ef313bb33bcd0d17a83dfafd016dcc7e7d64a0b3ef1f913e3fb6dc59d8c340f25e805b2b2dde90bd4c399470ff05b157884f2d110165cf8bc69e2e4f57a23e4e723cea79fc1de04b6722a80ecd9b7297591fe88fac83d3f4da1272df80f658fddbd6d44f596f7779b3f68f2e6ff286f57764b5ddd56bd992d1c314dc97d4171729ebc7ac3fcb6b1a78321e09ba8f3adbb372ce258bdf09cc00ad6f6ccece9c3708e1812a0acd94a172d3aa6b0aba9a86344a88b6b777ababb766286386ed0983458f1df61980ddc82ecbf0a40a445288535e5997a64f8aa2834bd4740213b10a65bbbd48e57234c28f5ac066207f2667bdb805a341d893708d632c192aaf9f5bd1530da46f43caf4e8805f859ca982f7f8a8d8c53142e0c046d5df4562559376b6f8605f08e1d39fe1fd8e573654ab6efde5dcc45089b1edace7c16025814b3fbe88e01ec7c4554af6ec5c0d3fcb36cfc56df815cc4c0d1916a64fd396457581e548ca1f64774c94053d85afe943836ae1d555f50231dca5e89d788e9710c4c92e50c97b3ede86e3be06935a40495ee0acbbdfb3928671242c026903900cd654af69efe87982bd274297a0288a18ab01adde5c0bb1d94119b62b42ef28a223957b5b00a36bb3c75061e1fd97f48b2bfcfdf3fef14135aaf51d8e5dd35dddfd3e8fe1640f7b25cec80247963545f4a89dca8bd1bb98f207b4854601fc4b7c5cda99f0f550df45cc00700e51b79d3352d1a6cf83d0862781b9d7935066c8c9c9ef7eb95c164e0f04f807df92d175e81664ef37773ae032c696a49f43174141ae9b4c26272aa5601ba30a85e8eec73ac0810f583cd4a79b426fe5cbfcaf15d20d77af95431b8d5a0d20431a32fee4f11c4c118c773011860517fed9a0df619e3c388c9e23f8733340d470739f41cf13d46f8738ab474c6d61f7c553d364efc25295c7cb99798144778896196c2b5622b8bca5fde29fcbd5880913065ad484b697da9f4436a82d812b59941e1d026a78bf29d89883dfccfa7f3b1cd7b0f17e6c17711ff9bd9ac9a07186d1907ed9203dde3b3530a3b7ad6c5aa8a215c3e34f36b9d794ae91ef4ba8bdb034dae96915b9c50269252d27b8912f6b6b72e215c07e8906d5ea3bb7974e170969b3674637536ab5f313183687f43600b3e475449184b1e235f86b0650b5a87a963af8d64dccf31c23b20fbcf6314583ca980a02234ac24098b1b9c95709f1761577f6f391aeeac4d3f7dfb9b6d67d168df4170ddcde8efd0dc90e3fd523d9cab2dd6d101b57d1f6bd40be13ca79f72ebdf7b9294c8674578defb555f908bbc9f6d664367fb7839cc591aae31f407cb7d451a1fc7ea36df20110b3c7e4806d0d36552813b02bba6e469f09cab36a3f8858c65327f4df7aec15eba6bc7799b6851cf93e3697337246cda0f6fd7cb7ae915328cc8de476327e324b712978a01e99bf5bfcc669f003544822b6f9a36df06fb20458dd991c55205b6332a54c83da1fd2b68647f913aa29e90fe47e25c8e6875a524e789de8970d5038dfaf827cd207c184e20caecb7ffbc50af317b81448459a934c76e852b6e8904eb9c15b5f9c56672e30e416e6cce512639f3ac186f25cb5f420105d533b3efe7be1424412eed503886d4e151a4a61825787add53989e67a31a8d9432640bd6dd3d89a05a642a60a95cedeef683cc31226061c470afbe158b1310aa4a6d4739c1c4b71acb5c4cc8b54e513db859e1a82def0bfa544fcb6b1afabb71007b32f84e8fb96739eeaf82aff174aa444e249ec7d24b775ef15f69742cb8212f25a28fef89d95301d16bf2e4c9414b7f223cbd77c6c9605323e572c1053f7e0ef7cd62056eae87035aca969f70984d5090ca1f2177bc2909380c46f5a9c40d477efa4eea074d226d60b70e4e7d09f778d57e0e2dae0cfb2b79cebb6f7b64d98589d0bd0a4402775814b896b60ebb9be0a0a47f66e45b517bb84e616dc8bb5435363ac7d3aaefbf9880cc96aec0fbf8c481d7cf8befef8cdec84f8da3490f2fff5314b1cc978e84cdddf331e798ffb2e55e5ffb359f316867bfd5e9a41cbf1a7c7659067b7ec97e0e5d67ce9637b5349792d23b34f40e059a7207db6d46545477eea1c38b3bfdf1d6453b7fc24beb5c3456bc65e15ebd6eb6bee5c340887a726b3e18641d2130bf82da35834dadd42f7f02c6a3060a2b08edc8175f0ad04274eb05722c61672e34ee42e9b88c6c02ff90a1343c0d52f83f7af76c780e6d781e93e0707ffcf0b4020c9da71e99b6b17ee2419a99199704e32efddd5255ff86cfc47b60fcc6ac5cc9a75e609e3164770eb74b702a58e1b1fa0f1f432fdfe0cfebfbe265f6720bdb76cd2f1bfd5683c7d8da448de0853d933fd5a03f7a7d1c121bb222a0f0dd9311c564443ef78d06666f4dbceec8b393d28d1901dfc8f0ab5bba419d4d12974bcea2318731888ad0125d723c0e25428f5b79222f11a5e73d26b0a6ca4a5ed142cf7c1180d7746bc6202454654714e2264dbf89bf4023b61d81bd71b0761248add2e352a0e9eabe607f65998a4f9e926dc482549532631d71072a8e097000689bde72e839fefc5ff39e0c1c64513a46bf0a5b933860232b57e39bb58fa9a92656fea5ee3213b0ff8481e80914f70faa524ab0c84580b78b901f88b105f6a263dc94d356f26d0abc8e54c7e02fd42d329943343688bc9414223c63b1b4d6206cfd9f969233b67fc706288b019b31d702e531f36d55db4dfdd3d9c83dbf25fa52e11addc304dba0dfc54dff4398b531222de926c99e6d97bbbfb3cad1cc0079f0caff16c63e38c510f2f1d2aa98863434c8647a333df4ddb698098a0fb3ccbfa6da2e94f1ebc1d2e4942b0bdc00544db12e21f030352eb1f0841bf3fd10adcc3fbc8589fc6fa1b136ab7eb04be03cc9351f5471cc6e89518f405e3918787c72e1c981635952aa938da6cf985b1fbdcff6b788b0277e6c4adf8fe98ce26d26818d862e31c3da9a9b2b1d8a6c1d9685fcb05777ffb230d6282b3d4ed031dfd9b570391743ff1fff2126ae5457c2f544ae3dece97658552e7313962b4be24a64a870b6a33f48dc1df93ea8c55ffa1c6f36d4dd30c4fd1e240c5bc9108dfd55f78701b35911ce76dc697a6e153171830fec0c6c2d84363ae9c9235e50690482675056fecfd6db3415c9d31b40afe7fab653820b57ca4d98363a42feeff2a92bb111c3b40f786ed782bd42dc6d7264019e290d0225dff1f726a7e2725f42eba7bcf12fe6d640004dcc7d90f2739489b23a253d5f674b3ce5601354a903402b7ce1e139dd98ebd38974cbdf3250d9856fdc0833fe078e5e2f563ee03c79b02eba613698f3bfffe329cf07091d2b665e8e0acd8d83cb933fee72967632fe7a6a8e9b57c14f78abb3ebf8dc709679d8e047c4b4d0f010d8f14435d109810f20fbee91eef0c3efadb7f87398ca27334bf5986fcbd854648a208b174442792b1ffa30e0c80fbf4d30424fb3e53e84bd01351fa2e219d09dc0d501aa9d1102fe06118ed8f01693f642ce2f8db952128ddabbd81fadd713b9bd34d901055a3ca702a9b90bf51eadc6e3284c8f86bb1ccd6bb52c8fc17c87ad59ff8ce38ff56eecbd9f40b385acdf8135b043ce34b9164792eb6fe9d072fdd55defbd9391b908fff682fbef83fdccec39e67b6ff798b95c177daebad7623fa58fc381266abe327853caee16f869c7e01ddc815488e7cf0c8dd0a421eb2fee66143b48aacc8db133230bbea5f6410e1bf117a99b8a1098a97ba9b3d41bd0e1749c8ecf255908be297881774c1c8c163de797e940b888f8032c5bb59d399bea1f056eba113e29f19c0b5eefb7984b13ae4d4879f0649c6245254f101b24f4ad8d05ca6a82f04d160fc44af3a852c8a3778efe47396570054247f535fe24a6aa1a2a8b47a20f3bf848b29e61d0b525d228e285d58e9b01037fa41a59139d21a2867b0b19ff3c32ebded51fecc74e411be69d817592384befbf9c31894c46fdaef8b09de80393462bb19cc34ad5b2a70bc95e088f65b3f98645b0ff4ad9dffde8ffd0ee7e90f4a02617571d7669b742818d28103042ea9a7677b665a6d7be88d607b29bfa1204cc4ccc04ea0b95f1835592fbd7304e7728f006d03af12bd4c3f1f1fe7bc8dd00542f8796ef6354697e119571a399b5498f94309162d34a7ebf183bb80d5400cbf17d25da2c9aaca659ff84b9f18846bdfee86b46497d0b78718b9ef1ffb855af63e654b732b54c0cf7dbd175320dcb766394d171b7c898672d267fe3c99b2ce5f60aff258080baf2cf6695a36e08d0dca80a5d413525e35c9bfa3f18efdf96ffc336f7b58346e0813887075dd03c4bb581cd9249c64ddd5f143d413232a976d8840e78f8ea79e3cf8c6c547f2cfee2f820c353cae278053d0d6f91ca0067114571cf6f7cdc8b50fe887cec1f353620e56efc80f70dc91ec3e4da04c01964de262092f46d25c2bd78f089e19b07126fe3122adccf446b0dda20c8bd28e88c92b7af2b82afb71cfa93bd52808e4a29f74cd0f9cc94fd02e1650da946edef81e8263fa351ac7e6af47105de6e206aa6c44bec3aaf3056afd1e21b1a7b76bdfb8f738f5979a63dab6f5cdf9cc305de6371788d4d45d7430b522b1ffb3faa8112cc8ccb9c38dedae13a8e2964a350f684321d93bbf78d8d1c23b9719e05eee5f207721a2de89f58c09f245c3154f048cea8cf819267f2ba230f538a5b4f4d7a0c957e27eaed6341e1f48e39771ca37a45455bfd42edfc8059ff0beafdb0281a7d864247dfe9ebdf17f5fd94493d780bc2a1e828b869f687eabe808cd72afd366e5d0fedd4fd220eb3924f4f226b94642846608d4bbe13b4f5b915e2d706a0acb06dc0b0f01c7c787ce0aaa37d5a5e0f36c27769d9ec468733613dd54c672aa07c439145d3e80e30c305b164f784c4087dc08997c617c7e8a765935843c67a64b4a53a57ffb823b18f8e9a43e97d463082d22952e0c4033726e5c5bc16b6a8d2468e7fa477d96fc411f08f4cfd6f7ce667b8f69268c71c71ff9ecad05ffe170f2e22e8762dc366a3a5f504e04198fbce85b92ec34cd3e7650e43a4d47721a69e0a9848f4fb0e6da0b3e6f375870d983824ee89d14790ed8dcd3c28e588fec6af194386ea2110428188df3c11e611696fdd4306f60fe3c997383602d91d6dd3727b2d064861e1f033f0dd90392b82f36f267e360111f295a2cf3402050e0784a20d561040eca839fc7b8050e6bb14daee8d96aa16423c43e2c00e704c57233c2a8f34ad2e1078d044f9dacbaede544fbb914c528abc5b5cc31ff2c1e52fe20feea01fb2bbbbbbbbcdf6e81fcebefe486b62e9f32d17454d06990ece0eae0c53a4a08a27aad8a18aa22a52a88247066880011564804c062490011d30e0a2401519d8a810830a3255a8a9c28c322f288345192e659894f9caa4342003940696d000114a0300d800b8010ebcb001343600820d3000b501bd011e0ef0099839c00eb64c60056102473b26e08309352a30710444021248329286992192442029022b1820600602440c01050239c4a4d1b2d68ac911936308d703701842872596a062882dd65abb449025720ce180300ed8320418d3cc774d776e5e525f294defce5d69981a2529c5d13015cc9124d2b016cc15607ab0963f9813689891121ddf51c2a54413e9f944091828d12a62c0ca5a06a03c0c1863d7374a83a60c136192c0613593483afad200274984496449dc24722471038934d42071c65a6b91308304196badd5307ec2d09f15155a51219eff1f5428b6b4cbd5e87c2ae512187e7834cc684585b8c52203102862892bd6872e51ee3d61a90d4b1420c65a9bc676e625575bcf5b677e736ffc6f5497e9856e542a957ba3bab70fa9daef0c1cb1c3101e4790718416422cf454f989ea587eb1d25f2f2bb62f6bddb0920a6b1c6fbefc53a2fb7219e184b556e92c8d5883f212c4dabce61e2f52ac55f909fbe1c1dad793222f4b78c1c2f2787981b5dd7ca3222f3ab0e9af28d22b59555850024ab09928012ccb843a49c0c8df27013fa8bfa209808055855009e0e25714093d7a421e393122342233e21ad1c3881b37a4494df1dae85206185dae2833a60b135dbc70c182439717d9054a17a22e3d5d72baa8badc2e3cbae4e872a388368a5883f36aeddce23c6bd8aa3e6cca3f2fb9f9656fadaf72980d2d0d535b9c67573e354c6dad256c4a6b7df57f45a9a82537f39afb7d16b4c0031974711a128098e9c5cd5e79555de5ca8afdd2890a5d161722b844600b9518172c54b684d1c513760a6ba7945c524198b1d6e6a4a98fb527214b43d69e5c3805b936497cd626016200802465450659e8d599ed69476a48166b4f2d586b71dc5429d5fbcaae92b37e8d91474fa54c9fbbd03366a2af20d69e803cca93b31fe9ff4708256b4f2cfcfffc1a5322840f9410396c4acb9a205410041841a009a24c1041587bbae997e6eb3f8855105b6e60adb55bccc03defc05ecc325253d6ebacb500d1e263edd27e92c79e9ee8624f4ea00ac04385a1fcbece296ce7a6e8cf65652615b653183ac365a9697ebdf225422433bd92cb528180028824206cb288b1f6b442962ca82c4d594824eb2b953df70731acb54cb204c05a0bc40d132af443173f9821f303ea871f88b03688093d59ebabadb4c498973de3eda8ea66bcd1f4b8bed139348e371ad0389ea85ebd9ac9d7cde9bfb80f3fa07c58a107117c41f5a0a507dcc30d2c144061f1e243191fb060c141e564c7751d4fb4686d7aa15fb3ab5cd5bfaafaa9129abeb2aafefed3bcab17cae2bc74c54c52098676a69d25f4aa43d67c85301eef39befe97acb8c04a189da31c0ec4ff8a0c5756d84ed3f32b4cd6da1e35f64d78388287211e4e3b90608703ecd073858d2b34b822016b2d0f11567cb0d2648584624508652543594159b172c38a2580180278218011c63aafd7ce55f3e5402d9df1debb5a8d2b1f233e4d9aa886c6dc62b57ceebd39df6ca9aa2663139f5be436c9a1881c74c8c1480e1ee050060e607020ca218c1cb8c8210a1c70586bed0d60c0d600e2e5c881c694a367ce7e249694a48f9274a2ab9d5bc5cc0da9de87de851add50c472145d629a3b378c372861ade54554541953450c982a5eb854c952654d5735e7e29b8b55f7622917c7c08891893961ad358263e4f4c35a7b434d5927ea72a1db5adbb4f29f728f08092d1935f160d281555fe5ca000da8b029af93633300fb62edc963bae4f9cfd23c875c404b2f1cd789d3532aa96edaf146f5ca29d309c3787d15a7d57295ea599ebf3f559d50c95073b00e60e5d69ef55531b90c987c851731b86433d42c390dd58a569bf40e6b4d33efb2e75779b2de559637d59106a54ca911298e274952fba468ca1a53d63c2953f46ea679f329ea52ddd89999bebf3ef2faae43ce7bc45acb2154682755335366e267d3a9c4f9050f7444c5a069ac5eafd7985719534498c24d69bdc42548f189910350442f4e225105279324a17846864f2a7cc255f5c0a20e0cc38903cfb0a2e76b8d9afbbee67f97cc981f985296a8600d19b3c4046bc9e6a711940d586cb8800d6a9602b0c4d980c30a55561ecc1584e02b20c05a6b6d483a0de0c4522af545d1d50813ec55ae79fd1869c55adbc4a24810943dcab18c955f9a925e4f9e230098a05cc151d1d7c9a42ff92536517e6c68f0e9b1018282b5e9a1861a27344e6870c1853d6d71dae2048221d69e40a0c59593162b9beda986d30cf6f4a94cb0a7530188f4b0d63251514a39f6b29e94e1f2d15acb445ddf88973ddc00d65a245c8cb5271fae5f8162e97afa3cb1d69ea030e139b60bc27d701447ed6dc65aa63f59b0ab5f1a011a085213d9e480e88d48a592098a1e71a037f7f9849b43ac13bd2ca10c022ae3586b916497b5271574d410b8d1a90c193136a5650d6adc628619b1583bae36a565cdd8630967fb3671636de2177a1a6bdb4e8f133d8d758bdc8f256e1987a24a59a6a9309cbbcafc7ca59d8b79fe22a34be48299c8da6e91ab89ac6e53f90b97b3a48cf9c6cc9d1b5b4b1d1d228c77c94b9694318a9ad77ca364208a97a42849990992c8244d41494122690c2937a0a4f0286148e191b4460d2a4851a3063135105143921a5e495c6a304afa9174429433a294216506515e6bd83c41031a1a5e1fa0e1d280c3c68b19c8cc90c406056ba094b1810245c75d9d4f325d1d55fd94f39d25351fad96d4bca4e6f5228d480d40d2622d7f240b207dc1919220752ba420483e907220ad6a263a8150a12fbae1402b95aaa3456ef7792d4f98518fb5a7148cba302280b527149edca32e504731d4d100ac3df5303232f26174238da23445638ac21479b14854315c61ad5da292b1292d6b503170f92006540c4d36a5650d2a861d1b00d8c41036a14afe44857868500d5dd66a9a1927035dd3cc5b85994417e7a635de5eaad47f13a769a581862297865be41aa986c6558a96ea6ae8b2466dcce58a5482a1974891fbbd34afba96f9b5f1c6e816b9464aa8a91a1a5597dc697ed5344b339f251ec78b83aae36a1cb58b733b5a66291b778f84b0283a9f0633cdcc5374575278a25cecfab5c478c8085047855c33936b530e1a37eb5ea371b552d5fc4a715477bc3837aa4a6d8d17878573a277b584f563c68f981f1f7c5ae8d102c5f3058f95254300d1c46cf2c28f153e54504063f8285932462807a14e070c6a600013b4060c1986223f48a8a0267e6ef88cf1b1127444900ecae1040a949313e54408d003808a98b0d1d3444f0d3d38504c62c064014c6268f2058a096a0915a93cd4e48cb5d60c2132504d24d0e48bd007888484781081300486130f868c185a224483254d28254e282172006a274b42c68e41c244878c199d5007873dd198ce899274576b94a4bb738fa4c9c941e5a820c7899c21acb54b2cea851d3962985e488c235794411df17224cb91a623508e303992e488eac8d1a3424cff83a247e9f374a80fadb021f5cb14353a8150a17795474ca813143d6aca41ac714489a6b576239d6590c8c52331890dd1586b91a0c22b5021996d8bc2713a683f81eeca08ab6a77576ad7d7f1e28c1707d51d00d5f57442b81ddb1a28af08efa723810b017700ce894702aa5b818d1aa84f8d8f8ca7fa78782b40850200c100a7407d3ca0be12d420b7bd36955535315a93cda2592672ac119917256e5427ecaefdcd33ef1b334d5847b1d418e1c2081046388b62a56175c1a282c5845d512126d4c90e0b85d386b55609270d9c3456acb5484c14d5384d281c1285d363d3845561f72cef88f3e9d0a7fddc61427fb0ca7a3c8e17e785e2a0251e99fe1c2fce0dcea7aaf44f2634856957193bb3f9e48dea1a39d127aeb3cceacf159203941008a084e480129285848072c109d4cdcf0d0e95182855470d4993c23c86406088111114111245047533c50d112b118a880055848c8a842227aa0812222d18c21a9282055c40640b215f0839835249b10ab332512b9f9b1e5c50d92c88155490b005313d2de00002061020191034d65e3533a9ee4b4a520fd05741d3be73519788f3aba0a8fb02fe9ffeb010e492b10587fb22c77b9ddc9cbb5a51a115157af5c909b4a242529250a63fd174f52ad728493bf7c791b5a81f45fcf8006a050fac5d6189b54e7e24f911fe58fd08f2c3ae811a801a6bad450d20cd00c4a0f225b9f355b3faa8d2ab7c952a5c61ad25557881b556fb58596b37ca47b6f62480ff1ff5551ef99880b5a71398505e1e39410416120a4a859e1c157ae850218534d61bd5f8ca41eaabbcd9d47f7f75965969e7b2f29a49f3f69802d583b4d62241610a140a4b28a0acb54b747a406162cd1e19aac7450920cd9021b7a3f8b2cea7d233de68aff268358e38af722d1a8b6e278b2e1e6f8e5645b7c82d7a95474c2f54f24fb793a2273821cecfd1939befbdaf8ff014ed38ea10f4bc4798fe7c17bae4926a26359c6795f7aee5ab3c3acff255ae4c285932a13173b5a63caff268444926fdba974aa9f46abdca75bcb9d57a95eb7857aff2683c1ac7f1b2d6a31ea0fb2ad76bbe60ae14ed18672dc9f155666ef25cd6a8a6ff7a9547181f8de38de97d34de7b5946aff2e855a238674689d00194083da044e848b02378811a8102a81c3aa07274d40e1574e800a5030b1d5350395c106105281dab1160281d2b94e0811258247c81220144a57840a56040a54040a1ac4015814a822a814b093928122e400247ed38b263b3d65aa63f5baf723541891c5026fca04c180135c200acb53358540e33281e37b0d6c660513cc4a0781ca178a0521fd8c17a956bebd3540350020000ea843250274c00850282dad1821d68503b9a5027e480322104a90d586b51f599722b842eae082149081d2a006600720210a27064c191044708021810b2a040c0e183341f8cf9208c552a95a0e8d1c9849e4d5ee5d1cf8a0a9dff1a32cd7235fa14b666d7a744f6e4c55a2bc5a2ec0dac7d7245dd3893354c757272017532adb527e4603d6bca3d729669ba0194074b58f5cd7dc25aebabad57b9966a7e95a4aa3e15feabfa54d4577974644f384031adff69ff2aff694fbab1d65a6b3f98810e024ab9e417e739acf3cb92324a19c7284097c5849aea2b077d0a5bb37a6347f2b8b3d5d065e923b029a5cf65bd7671d793ab0bdd439ee9d71236c5483dcbf14695b2d23fb2eeef270ebac25ed9f54be76d429960a63a8e4797a5aec6f5555eaa7acd4386a490ac48216100895b6b91c8b00307a464b041061d4868587b3a3283140b250c140340c9b1f684a3c810e544c3036850000d4aacb5526c6a8615cce0006b2dcfdaf44251888832459434d65a24495c522a29290c6b4f228f141ea49052524966587b0a2d520a09c905241d4fc07872c51327ce2d4fac3c793d91e14992a335cc383a3326cc1111474749473d47dd518f231d47388ccc302a038d4d695993323262c2080723d3a6b4ac31e2d656298dd22116baa496e95df385bd6ecc5cc532d3bbca3533c5ce7ce3732f11224488f0f4a9a09fa2419715337ba9967fa2a74eefa89959232cc6f317b16ed4b3cce9aaba6699f759a6afbb63b1333f39fa8c572d57633a9afcf99949d5053b75729872510bb7856caef8af5a2dfe2b0c437e6c0ae80b1d524025d08e141331988c81e18a931d4da868b29bec80e10c188c70b24a3991809335e5648993359c0c39190a228446289612228574044d116443101834c2d096a11e60206118993861e2c38b256298016282255f966001b284c74f9a165228aa597fa22e144d4d14d5e37df268c859ae3eef5c9de761a5e85df1b4dc3818cf161e0d00d9140f1aa99e9c1e317a7ce851c35aeb7326e553001fec93e387056bb1f0bcc891c7490f4f4ec7138487470e256b28b942091925627e3d7d767cecbcb0839e4029212c8a3ae40a692afba744a924493c90a4cc1189f69fcb62a16b0f10cea7441749126b2d9214122dd65a249c4d257992c40792309060200633afe891b51649a8b2292d6b4e1f482e121d48ece9824e196874c29c88d0d962533afc2c9be8dcb0c815d5ea9b19bde70ece7a964159e5dba7b5aacff5bdf79eb133a769de29ec358e47d4e7e3a8ba51dd289d65baaaf7729dabe352c7f1a26beb4f54a8a51e0df5a079bc278af3e96b3d7399b270b2eb7fe762a451055a7dca4db4e3e2ccf785e7020f09cf48aa9b414a1422f57153844ae1d7c4a6402752600fc6019602f360ad7dc1a6f04f4aa4c11123c02e75641f310253395f972f8894d84520210c5239602a6747a8420a642375840b0f085087d41126c4342951041d9608705c1a201c8fed0c90ed484b038807acb556ebb41b2ed85f967a34d463e44ca6c38819234c18b140c0ecab8b69fe06626ff4906265b1d6ea50b229161a6bed15165fed1396ae77f5554a1c2c38a314a731bcc001018e027084b027a1149129acb539a3e99fa50be7d3d7c56b699645ce14994191364a57fe7e962513c6e4bae2296853447010d9458c14292af2fa74d5426aa5945a19004705371c75ddadba9ab37c2c6dd4bc787557ab8b6475b99ab2546c9cff4259372a21690c39410545d5a9665065a19a4215e65e953f6151b968b6b882c5cb08b9fc844448d1294cb9608675c9b54c05812283f58006211e207960643d18b2d6be6c0a888db59695963628a4f045cda850ab056bb55aadf5d5753d4b576b557f5d730b51705a2d9ca1149095a5327d8a6ef5ae96f2339de8fada34613d965f32a028cc948167e8b2ee65b558eb59a2af720532d69a66e659e10497870d1a62531789cda98f69661ea63d74bb25372c08458f52b708213675abb0b14c74d358d384fd3cec6131701640bb949f8524cb0201ac756205305e56b0d2945a615c01ca0a4c5648b2c22ac80a3a56c091fab1c68c1f60a049fd18c344ea07971f59523fcccb6a5a7b8076a9849a372f79bdee0ff954ddc9291f2aabfa285af3ea038d0f267e3e5951221f24f0c1062aa46626e90052b8291f397cdc4823a5421a15c04053868c0a6254009352210b7ea5acaa1f74af0be683829ab2306eb17e842eebb278ee0132baa91e6a4a406195420108052c288049a120050a2040a10c1466908207299c9082102e052629484993448c2f4cba10ea71e64b9219570f2abe5419d383892f0808d3e3cb970a1051664b163db07ce9020732d61ee6971d72afd9a59641a7527959e0bf8a9969fe51ed68fef4ae52266413ba98f0c50902489d109e3074c2983a61b5d6f6b0a913880812858f3358f0c89132e1c69934da00c107698020a5260d0f314e3f86a8c25acbda79a7525858eabd4f1891c49a2bc534f336828393f201925a6b2f2bb6d521ea8b494777b99e59a9545ad231d68d4aafafffa516eaba4fa53ccb159a7e1520f5f54b4a27ba63efc8a1838cb59600aef48f523b98ac3db1761461ede9e33da91d15b0f684020a45a590daa186b5278f9fa812a4148a086bed923d51253c282fac3d754b1b75c2817480e162535ad6e8c082839974a4a34747a763a5c3474a478e12d48871c6cc9812c294f0a5842d36a5654d0938dcb46e56f5b59aa24caabb74e6f405c3e13b179f406f74597c2df7f9272ac2162280b1f6c4a544d881b5962795238c1c0ec83164ed69bb196101232c498d20c45afb7aa2b26c2ac71aa911ce587bd27472f6238990a54984230088e02425428e4d695923c22a8436d4a442c822843221800981881070488560869084a5aa6fb67e45a9b8562dac72d7345df9aa29112247434244885c74bd2acaa496d985aeb07c66552d3bba3ad1d713b5a357a582ba72ce2f157522657cc1ba4f0b2d5c568ade9591278ff2cece655d134d49b52ccf7b575246354a8aba6267bee6ea5ed65d712e76a17b85a197fb13bd2d35932c5429bf6afa5c964bbdcfe4ca6bd3e775a5efaf30f4be0b76b658e8d199df3c732cfd36b668a386363636cac881960321d65aab83353a50800e606823091d84908331a81c1091831776e042caa649ea7483d46989530c6c5807a4ec15abda010c76e065075976d00961832575e349ca031d78b044ca03cf660c1b2fa91b5e52376890bad181d48d07a470dc488110460a041e3c3822e541098291d4072f487d40c4073b7c70a63e482105000ea40000440a001b8e19d8e0c2c6a8801570b006076552a4121c8438b80ab881981b705180cf0d48053cb1d6da359c58c3caaa9a25c9f4e99f4a3b97e5ca4d9fa524454972a5bfde48498a92a442d3ab963729aabaa8d065a1ebe84a3f7d722df53d5196fa82e1a8dc446fbeab462fbaee4449ba319dfeab5192eece45e38ae726ca64cd6f948615541ab0347ea431851a5f1a2868a2068fb5568d2cd4c8c15a1bc4c0460d205003233572600329d695fe11d30b9541830934b6a081c34a4241c3091a3d6874680441a3070dd6d0c00c1a9461ed8d4acd1f53ad37bfa9552b7a1ed99192849e77a57e0c55cfa8c1196078646082b5322065b0830cc2b07c0d096bee9a30d620604d0c2b8a3403a519c830831b5cce683ae3359e4194243ba3c7193962d0861a26621026065b626022b1552ccf293b19d9a2e6aad1a1c6c2000665c0000d8b95555465dda8aeaa6a35ab2ff3493388acb548cc8080b5b60aca0c1b586b795c10006b4f990b3e6b4f465c505a6bb73009cb2fb25b72d10365060e33ec1a9bd2b2a605673ec8c24c0bc6b4c0cb118f6a01aa052d48fa13bd4c7f7213edaf12ad65aa1a1aef6a2462faf38e4238dc44b1d02d72894ab529078d3de993dbe2267ad7f2bcafe45592438a048d445707631d1da01c9daba40f6939275a160dc574910f9323201f253d9a5a8ef7059d6d9f39d537ac14bd37e37673aeea8eafcf1b14a41a1af3d530a3cb8a9df9b2ce58be67d6d938988e8eaa118d2aa5d32c49a6fb27ca6367de8894a82e7771de55a644e35d8d3741178f6ad0a8da2ece46348e1a51d0f81d4775c751c946748b5c8de816b941b7c855d2c265a5b0d77d72ec30ee686be4f9538c5f298fb7c865299d45f85329339399d5bc3fa327aa738aaa68ece4df875644ae8a55226a53761111f1564757ab55cfedc2882eb074b133821b8ce08b1a2c6a044da812e494e0461861c218c3f8c2f0008c1505460824a8008a04425fd4e08b057c61f485f5028d1739783104d5c5084ad054822d860f13ac31c1044c6064025b02314a908418524eb082134071822b275872021d64a0800c24c850c9f8c8c031c6156314600c28606801c61063acc638410c2bc4688018fc043810a3491935409551441936948153821f506590900689344ed2e850c1132ad862a48214540000306c40a5808a1428a52086140841011828480205412858ada004d40a3e487563ace094a60623d071802c5022c061adb521107380314210a25983a6071768b8b082e2822806d65a8bda82cb164c0eb0a2483133cd3e287aa4def45f65baa6ab1ea0ebfab5ec1aa696e9bf62ebfae92bb6aa3f6404e8cc5a5dad3aea6aca41378b1e2cd6587b6265414516db5a6b65a72907659186b5d68a8ad2428d165cb400ad3de19cf9acb53f9cb962ed69b54b352b29030d1665b0c0028b2d58562c38164e72b0506171b1d081c58d2bdab842cd1565ace9bfceabae65ecc922aca4e0361952d123f54b201aa602b9e7be31cb9d6fcc3473b9f36ac504ace0c18accda53110fb860850dac3d11f1401a1ef862ede9e6034cac3da9acd06185992ccc9431e3258b19ee63e6a8c74cb6a48332d30365064707d41c61adcdac9ba291f37e96ac1b9cbd520d8d38ea583404ca2d72a1a0fd2c99fe54cbbbca24d04d5e738f86a9ac9b31f64b2d8cfb90eaaa464457490f0e0e37d13b12a9374c7faaae3a443dcb3eead8a98ecfd18d3342c1e1692647231c15ce583466d67853748b5c28e338deffce62dda8d65762dda8d4fb66f972a11b3dc771bc58cd38e80acbf735eee5f75653768d383bff5de458e0735bc80ad39cdea8a51a33739a6153d47b962ed5c6b1b24be416dd22b7fb3a1678f1529a5de43e5f49916a682d994675bc38ab4e5111ce5862a54f47cdfa7368bb45aed178a1dc22d7687c3db9ae181f8de9238daa3a24afb927af9973be63ee5c0d53c7db510d532f8ba56a987ad521e6972b7aa6ff82a92d222b7a125169d8a836116b6208aa090150800b0578a09aa8c289234de8a00919502074024dc2090538618205ce58200116502b50a602495420c889349c68c0180f8019a3c318189eb081059e5460074f50e0892b1668038a1f5098104507c507a0f0a258a338a3e0220a0b44b183141f8509518820c510144040313e51440a1c1730810c0dc8780045669542045248c184052430e635c50e53e830c5d0144a2ea0e60261c8b4c8ecb8c0022eb0e4022c4c6182313a18a306153d50a1a94001034d6000090c3061404305189f395d0bb0434e7b9ff8a0d73dd87d1f89b1760222f4b606b9bd3feb7e73ae23317ea118879b668431c6df294bf8e0d7bfebb86ed3b2087624c6a40a33fb77fa210b33ed43ad3bb07b5ef63eb23bf990e92e6a2e6ff1b5fc7d596725d4c95551272f54086325d4cc094f3d88db6b5f9671f173f67d967d5ac7f89eb07021e7f5ee85fab3ace39c9c78f82edc1ca8755bff837bab181f9d76f0b6506fa2e634c8696e6f2289f10ac885a63ffb5f4618e7ecd3959d336fcb5aec3e7cf17b76b2b2b7cdd37a673d04f9066e8f005dd635de3d98b5c63d4edc4818ab6b99d33527490751e37acb44ae6fde168aa097830633feeddc5f7f9fc51087cdf3beb0d3f903c32e7e62be81db401d6a5998791ccfb22e5609c10dcc3c7f3d8bff65602c6790e7eefbc090e374e6bc269d7161efbc0bbbce5edbde510e0fc6392653e671ded7717c137b16c5f3cd167ab65abf43450c33e79ac7bba771fcb90d2686396b6107eaef377167dec258277d52cd4c7c30deb8d56a617cc31a6adef3ac819ea73571e33275ebdf342e86e207eade718d9e791b619c66336f1528e5a0d6390cbfadbf2ccbba46629ca254b2d95b4aa5693ec64518a3ebfae9aa96e994cc033f50e4badc85bb6f2e629cf4e234fd59173f50cb76a87347625cb6d6748a8ab18e0e28e86959f34f1333ad715ede24c64b1b13fa92e1fc8dfbef1edcc06d871fff488c9b50dd5adad9d4415ca2d73f5114c3df9cfbb6be91184ff9d6ba31d699e293317e73d530f53484c9c3f73eeee39d7b5bc8694f62dc42578c35cf07638cf9f94b3b6b8c97deccfca9a4b04dc312c871edf7de790bc5ecd3361d1b3498e54ecbbe2feb72c67161a8644909822007b3f772fe4c03c16f557334d2fb74ef1a28725dffcd7b375154e7744aa0b83f7ba0a737aec12e8324c6e87a96adee83b55e4df34bebb9d3388eeb5da635a869ad2331c6787d23f0c3af7b31679fe6f5bdf15013f9d677d771a2f671dba7f5d7bbebefeb3eec34ce69bc8b598b99e69fe661dfe2d77d16c9dc39cf60f79c96b92d7e5946b2c64ef4ba90f342f0bba7b9c8b542cec34fec390cbf6b61a6498c315e372c5d8d700d9c03412f6f11d43eae13b5fdca7c8767228cd5f48da4785917eed0e376ffba97813a2967dc1677a8bbfe9d177e5d14b0cbfa73a879ff7d7ae78f4583b6759db845ed69ad438d774c6608451ef6ddb31d661e727a636c9abf7da08862c7819f6d4d6b9bc8bdbd93d323839745d1cbc2ce69dd07f66d674819c8356fdb364efcb896b58dc4b8053e01339eb32ed35def5ca6e5ef798abe7094c12e6f9d0b35beb30ff4f88ed1f6b1beebc4dcb9cf72debd6fe0572955184cbf93a2acc34d735be63690f7cf7bb2a596188b31745ec7890f72bff7177e5d46628cf1bb1ee325449ea8b7accb78e7422deb99a799dc39db5018726096bf0fecbc0eecdea604d3afd3c481725ee9cc4518e7c02004f2be690d6ab07ba1e6b64f48ce16e4899d87a2d65f6ff137d0c9771997e92e87a0a73530f3488c574db6b8853ccbd9ee74f69d2892189f6ff2f35b182381a1736198699fb5f6a2e6851e89310f501866a1f885a2a8715e98338dc4d8cca9d2af67d9e2abc764db7d87e296895ed7baf33889312f5bff8aad18ebc4ce1d8c6367d696f0b3643a61ad1d3f7bcb9cf7ad3b6ed39b076624c6dd076badae6ec447d41af8e1f7df59f86db923d19669e68df1ef73e8fcc11863f5858a3d5aecbd77ef0b5ff3c00d7a3c99c6c1feed1d3ef7c2d79d8e92fc795dff4c3fe769df7986b31376fcb3ecf1bd859bf66247ea6c1ccc7ca9658ff972953918bf5c25c62ed8299424e4afe5cc35ed354dec38c618efa7c2836487bbeb4430d35ac6690f6652a7f74ed3a00e43cdb7f86926f79117ba6cdb36988162d87da2de198971baaa2d1d1964b82bcc252407e768af6f0e7e9cb66dff6d6226316ea5ac23fad374c765ad13b7d0cb9d2331563fac7999b63f316f1cb7bf7f9dc4f8d732656a41cc5e0f3f0e0cbfed13bbbc7524c618afae8eb10b61ce42bdedbd3fd0e33cfe1f89f17fda7d400fecb4ad699bb87ddca681da85b1da5a55946c61bce4d3422f6bb9cbfbfb0eeece498c99d05489e5859ff89cf6d9f67d1fe7851d8931ca31c6586767c5948b843a7167a1964110e4e2b6f52d9318eff25cc2f85374df709bf7efe5ffbe1c6699e62289710be36e73a1280eedb990f72eecc40c14436dd324c61873990b455b4a69ab85c348da6aa9b0b4d54a8135040785550a45d0940891fc690a373f54280cd1541f42542e6c4082a8d0028aa64080f0f35fafec83857b6f5600f223c800541f4a2a15f8995b5d0aad161114d4167a684004d057d8004e687ab2d5da6ae932c1f583878f54f70d00d58432ad3f762ce5bd7f49c7e76db78470d35adb2f6553b7c84bc29ae675c8085b0b394ea5526541045508a9ea4200d2970bdd208e15082dd507b11600d01235cfdbf8b75cb8613e95375b4dd9b582074aa8d9523a4b2525d4b4d15aadb5e9efc906a00d10b620717a573e6f80b0e501562d5f39c7090a6b45b05b2c2166c75a1d28d2a6b4acb181d295a11c22d82d96f8b293a63ee33dc7118418e107213ef8108123966c13180e00c65aabc5606d10ad9cbbe930fda9b13e9686b39f0a1b5cbe586b5f38c1189bb5f6c95092a0218274b15e0c10c65a2b642d1108d871009d255b8e30527953ebf27c212504967b64bb2edcf3cdecbec0c23ddf246a3d47cf325d97906a6662adfdde851a9d4fceaf82a63febabea0e136abe922f7bb80943654085d0f469882939d1522da9943d43d69e9aec587b82e1fc25f44845858ad213508aa6e95b6b71505662adfd982cb1f6f463796e4e209ef525d7b4d4f7ccf774a1ab0adbd784a9f97536af9a59ea1f5153564edfc82ea50091c362979a9972d49465be5c650b646538fba9c4729a666b876431adb5a8deb9ac4c36fde5c15948c8d2c229003e62264f6f546aca8ae996aae617067e58596b5558cf7c96ae3275c1ce575d6a66ba28133565a9e6cb559638760b1f4c6bad0f6be3811e38300a8d2f839ab2f6f3144d531f33aff9c7da938fb5a79ebce61e6cb9f051b2a38467850d9d403f4548afb3920f9ca4b00451d316ffa6b29f48a0a65d6cb0a7f2862bcf84a629aa5798ab89113daceb59c2944a6d1b90da818c45d7534d59fc6ca5bf962d179af6d6fe976a643f152f75050c7087cfe885aaadf45fa59aee1c74594dd915e4e6dc9ba6ec0a62648aca2c7f5f2377ca9a3e9513dd645c8162dbc081b534800109bcd082857216a4acdcc868fa55c6a311f63a5db052879bd652d37f994fee727d17b996690e370d56766b6d4a872b9b4ac95d9fde486f98f6467983b4375a3762b01e14e086d7830e7b936613a6f4694ce8eb9cdee19f4f0f79e4b3e445f4448627e42e69489f1495ff647b09c9207246dfd19419a068fba667d5881123587dad2b79b193a2275596f60c42454b6c40491b76d626d8233d0d2058fe20d1504259b2a1883baa42040313b2933968c9078a2b86cfdb70769818c534d065dda02675030ec498a2b21e58b951b5d49215fba5160b38943dd6aa28d3d165a94762bf7487a83a3718a7bf946617c67c555b2fd585ae6726896e0c4d4c8db536e672c17aaaa810fb26555e585ffda22a3c58cb64a45699c25651c35e512646c68958982f312e59624dafd818831273b21fe9f25f9d688aa96987b5b64a196898ae602283924c9cefb838cf9cbf3293d1c8791ec77ba2ac57c7abaa592df95dadcff4276b3df3daf42fa2d82fa5e87d6526a3cb5a552ad414ac39d626d634b5e6a4604cb024d8073025acb5960a2a0573410a7681242a485478485169510101150a84c9a16e2105a072d5c955572a0f22a99a940a120c936e4957720815c289a5ebbdafa6ac15e6d21e6bdb58198ee6385fa6eb49697d79b1f6cbd49e78ac3d29b1b15fc2bf66f3955d465ed985718aae6814280aac3dc5f88f65a2570e52f39a7b9a9e9f40fc2c9bc4788cd49c3e2fa99ce56542cd7eb113d796948b03b60fa9aaca5fed43ea9743683f81d4531713870b356a2995367c7a8f6457e71ee14faab0571fea43aa8619f5a1f45f302375972ff488c5fffeab5453d67e2a2dfe4bf999305e52c1061b3c6749b93a37cae5fc846936f49467586bd1f3f6f0250524c638a9f284f2d4e23cbf32931afba596ab4c95ce5208356569955c5fcf73d07f7aa4649fb0f35f4d4b2a198aae4557c35a8b59977553aa2e102057cd256bc8bfb2f99e77d532cdab5aaeb9b5aa3057ebc2d0180c8de91ce5ac4e26945fb5e4254a255f74d5579532a67f964163948baeaf71d227ba7a65ad8d4123597bda59635a076b4f493403ac3d214969176833d69e74523c09ee8497b0a3d879abacb563530efaf1717013587b7a61cdfffaa2efe2af586bfb7abecb05f431e822587bcad141340f6dd730a38b3354643139672b99cc506c4acb9a9c248f639ad1cc98302311586c4acb9ad4384261921a73acb576ecc620230e6b5df9d3557dc1eea7efdae5aaa267a50b156aca410cb01141e676983fee714df3ecb7470ed98400cce2a73d30cbb8eceb5b733f36683ae7409187df6d20d8795e8f0d1761b8392772990e3fbe692f7cc1660bed398d13456ffff78179db40e06d59e3b210dcbcef9dceb433620ff9f7fd873b6f9b7799165f27e60efcbc33ad7131fc2c7ae65b9645f1c1fc1dd4322cba266e9ca871e006f6addbb22bb217b9cf38df5ac681fff10f6cde97f7de9eefece52ccb1ec8406ff7ef328ff72c7b395b21725c8b1e9769dd7399f769339bd659a8f5fed9078621b7c92e361dc8dcc6bdef72d743dd69ad58ba8e361cc8b8dd89dfcec4cffb0cdcb60de4fd6dcdd35b067a5cb76d5a9930dc5b7b5bfc40eec30d660d80ef715bf7f5eef3c0ae03751561e661f6e92d67a0b675cf488c6bb0c940a7bf17bf9ef10fe47d03432abecf9c0bf9e7ec23316ee56083011e761dc73be78562d73afca6083df0bf4d8be2d67e1373fa404036170841ed855b839bd8750ed41e19edfbbc3b2ddcbac66d9af3a4e0f2e70c7ec6bfcb426f6f51f4506b9e7eed45aebbe77d50744e8362b66db97b4f04333d46dbe17b5de66d5c7f20a869a44ef7c15637a609fb5971a014d551add2730863d4068ccd139c0679087a22c8754b90564d561b0b80d9c673a6fbc7bf9013378fc438871ccc7dc30d189fbdd5d1d6149b0ae8b0ebc49d3771835cb8b5efc7c68950fcc0acb5eeb2fef19d6d52e7444d1e8cff44cd7dda34b145b07bbbf336e71acfdefa4bba0d05ba97379ef5ee770ff7f65a45c26602dfc671dc6bdbf63c2e0c355f800d133ce47c7bbc6bd9771b1786270ce5016323016ee30f3ec86db9fb0fbd7d844d04bc8dd3dcc6c38cebbdf3c4d006029a0bf3835bccb84ccb1bfc12602346e336b8c1fff2d6bd8ceb8cc478fd25bfc694f49cbed83c2013b3ecfbc0ef3cd3404eccd4dd0ab25942eb9da6659ab6719d6be26b24eeb17100a77dc879a8c5ee35a7859ac458556213c6fb36d8b3edb7ed69d9deba23360df0c4fdd9fe0d7c2d7270eb18a079d9f61c0ff996c150e432126325be0ff4b61d8662f7be4f04b3cfdb98b4603660c430671ba8edfe1cc8652ee3b149c2f3b2bd893dfbf73a6e7f1c8931ffcfdbbe4c57231b24bc9e41ce0bb3b7f1cdb7b72d00ccb806729c67ddeb61f6f897cce3fe77f6c48fb35100b87bc67559d7859a6f6d834764b1f32ceb5adbb216b94ec0d6bf4f675ffecf364f7f2289710c365e3650d3589cd8711bd49bd33cfbb86763c4b73fd43e0ffcc42de39fa635b1e9f25ce4f467e227e66cd3b4223a6e03fb6b1fe8654464affbb6eee35fd7b7de711a8931c618ef3207b54180f799675973f0eb3a0d6a9ecd109beb40fe795dd675f859e324c618ebe818d91ca07bfcdb74d7853be43c9e3912631d9d4f435f42a71f6cb8f0d818c0ebfc03b36ee7aed35bf33412e30fd808e1e5ae695adfbc2ee3dad742d7b33c6313c4de5adee2c7414ef78ddb7e4bb6bd3073916bde795a167a5ab890cb740ec3aef1ad673c2c40286aded640b17b2fccb8a86fb00182cb7817665bcf3cf1432efc6cb27c1776fe99eb348ddbbbf54bd905c5e6878ccb44beb9ffde8559b843a5b3248faeaa316ebdd41c978d0f5b6f99c6f56edbb4bcbf4fdbf4107661c7653ce374e65ed3fd6583e5eb59e3b450f3faf63dd79a072e7f22cfbd73fcdb41d4610f33aedb9bb675a097d95ce1c08df3efebb4c7bfad458fb4b1f220973598bb4ffb425013b51d749fbdcc3b0d661ed76298e9207ffdb7c837fd60ff1e04498c9bcafedba6c5bec94a53e29483708362f85d137706b7f721a9f342d31e8c5f68caf3a90df1bf4de4b4100c7b18668e6323e78dcbeff1ac9ff3ae71107edcfbbcac13b90f394ff47a5aafd30dc28c87d9fe324dbfd769ed5b630bb9cde320c8715acee1771bf4cddb79efe7c2ac6f31eb1a6460cea0a7659aa769b073a01adf77ad775db7c307b71d72369cd2d05b28668f0339af133f6f7328393f2734bafe5de6d9eeb8b6b52d7f1b37e54403fd3dc765dee69ff6e9500b370d96d3bf283dcd80e7cdeb596f5dd685a0d7add138be75bcd3b88d3fa7c5a63f31d601c2d8670594b39e30d2086335974b2719ec4ff38e0bb9fce9ee7de1195cc66dcf338ecbdeee19c458c7758a41167a5afcb8ecd3c2adf717dfdc3d27351cd7becc795befb8d7f8c675718241077e5bdcb2ac137f6fce8124c6a6592e61aca323c3e905bbcbbdd39c13bb0efcb00b5db06d3cd3dc267abdfb767f33bcafcb2f6eee695feebace5ab0759bde5998e98f7ffcfb9e059bcbfd1377de32916f0fe42be8b9dbbe2ccbc4ce372ddbc2345def36fe69ce651b08665b933a9c549081af89dd0335be755bb8b451b3b5beea04e337755edaa88931c62138a5e0f3402f8321c77179eb9c7328087b986d2d8219ccf20682657450e4bde39d77df791c074fe08520e79ba737f03f70eb9e0c5167e27b6207666fe35ef7c6d05f2682cff3e72decaf89b0971862f73e2dfcba6cdb5bc8b94d62dc8aa52bc63aeac356e7d02a7d580cab55ec9bac564439a71d4e26d83a300c3be7c24e7b9998c312e4d00b7b276aaec1cff3fa26316ebd541d9da31c179afe60ace51446b771d96f707f9db8e5afe3488cc108bba6b5a689e2ee5cf8fa975aafec6abd7250d289047d6f3acb5ddfa0b7c1dc69648b75faa2db9db7f5adf9a6690e761989714cb74c9df99f4f3036cdcc73fae1e445ef39f3b22c872098c5173989f1a98bee7dd7baef3e100cb7c73592d308be7b5ff6b2fd759c96bb673a89a07b9bebbd7b5ecf3eaefb3435045ddbbaad35fe99e6f6968924c63a3d2734a0177ea83d2d6e5d0682e1931873c19f679f1882dcd6dfb641bd451866ae8119f8799dcb7816959c40b0451d6a1ebe08726ff77f12e3f59530e6272c3c9de1dff14f7f5c96ff376f7fe49293169b16bbd7e55014bf8c675cb7748e726a3865013eef5ad3a0cec4b0839ee6720161c1379eb3ef7ab7bd2fe35e265ba609eb18ebe8a4434a6719eb399de074c5feb2fde0177e59d77898fd07b80efcb0733bf72cfcb8be3da0fb6bbb6f99b83badeb1d6745e76dfd796097b7eccb3eeb66b2aedbf8e6fa6b3a6722cf1de0c4be3951fbadf14e67e0c6012fe3440dcca2e665dcefde6d806bdac769b0cbde2ba3e94c0b43cfd3dab775fe891ad0ba50eb442ff7ef03b798b72ac26ef3b8dd356efb906ff923317e8da70c74fc0bbbac815dd6be2ef28cc4349ca8e0a2d6d92676eef1aef34291c4d82cc9dd6af11306360d725d9781fbeb99a6f7263136f3af6a6bc984698c7590564d729444394dc1b597691ec77de0f679df7924c654965a3dbfd9d2d1416aa2d3f33b5921ad9aac565850ffa2e7a8109313639b089c2ef0e1277e7a7f1eb879087e27036a5dec346efb2ecbe0feb2d03d2245b8755c98695d735be3607e29475172989ca2c832c7b9febd8bfb35f13b12e31314da775dccb8ce7b98856198498cc99fd318d1135fd4bcefdaf762176a24c61ce327fa7fde5a7bce3d6ee3f4b640a7b3ac73997bdfb6ed4ffcf3cdd6ba794e15e83a837ae7aef9c645fd4eecd0cb99671ddc7ad69bf635b179167b086ebde92fecdda340efb2d662f634cf5ddef40436f0cb19ec9cc77db9d35fc784277ed7448ddb3627ee17370964cd13bf30eb90d33cce8999ce6a659a992767433a3de014019187e0d77d1df7855f277a19043c4fdcdadbc0fdf5cd693c13e37d9ed68122efdc7f9f891fc62fb5e9f400501339fd7110d440fe7ddd2f11bed745b1f71c76fabf7340cfde775ca66922d7855d0e13861a98ed2c8362b633f0b9068899f338b7ed2fcbbcedcb3203bafc6d9ec7bdb8c56fd3dd2bf1715ec70a7bc6e91e7e9b178a7bbf48e6b438c6e9fa627202f31ef7bcdd439d3bb077512331564f49e830dbc2adcb1ed87306c36c3f95d60989cfdbbe2ce41b17f22c8ae00b9d16c05fcb5adcb6f76ddb87fb233a7dd19af67ae3ded6dad66def53c0b7b99779e6b6b073efc51396be30c678e774840ec54ceb9b6bddb77bd6de764ac09777b7bbce9ae638d7397ee4e46503bb8dd359187e0775b63b8931c6329c8ce0326d7bdb963597c3acfbc22e1dcc74c775a1066a1c177afd5444e6fa06e64f6fee65a1176ae48908b1ebece37ddb9a06721ecf10007699d33bd3f27b9bb6354e9e86e0bacc65cd356e87a096bb78809cc3edd33ce45db8c3cf743e71d1c2efb2cc3d6eeb5ca775fd27879f0ca0c52c76ee137727f62debc093105af438b8c36c6f31db74b6bdd2f9a699c9ade41444d79ab87317722e0cc5ef3ff285d3968d03ffcbbacfeb24c63b272d1ef85c7bdce7690e8ad9ee488c99fe3c0aa7eea86492e7b9312795310200006613001311002030241a8d86e311a95c30dceb0b1480034c9a449c585a9a0ae46a98424811421001c410000230003233c401d7f839ace1f189fc1ff81462b2510b156f4b881e251b7143657b0d2f79501db651d2bc63a01ebba2d3e8dc8d6cf4ef8fd17ae23d2d624b9b9519ff5b6adde2ddc12ba52c92aaf7fd839959ec6c1e3a57d3a88b221437b9b1265eda2bec90cbba6e5bf3451ef374444d970e8e3c76f6283a97c8523190a626f7a2177621ab8558b7d2becaa5df9f197a622a4a80bb9793130c5712b6ed0d5ee08d95561881e640c294d536dfa051755aa84e808a2d09a62e47175dafab4b99be0b8f6672379554963ee3cf08bdd4807ab5a2ce4de930377c252ba856cde26013e9dc4b6a04f0c5ff9c566f6930f1dbcb44b13eca718e749883c8e45d0f4a112685fcae0529c1028654cbcb031f7ee4c26319c21834e1a21322355ac474b7401b28534ab67f28b9084aaca545618663a3f75bac539d5286ca482660d12e646cffae74f85b4709ad359e4df94f6546d1d08f07758f1218aa18d21cdcaed3f984f8c230ee0ab06b0034536d2cbe569f6a869060b2c3cf5fc52301338455c0870975ec03c3f06904c4cc32cc26e30d78649dbbb50228b9d585f17fb0208694fee90d6b08712ba4909a480bcc80b1e89cf2940115d45e68dc047c4ab105b8fcbebd12be4b569ecc92f70741015f24f5e1c5c6465c331d5c7c56d2bc0a8c3500fec217a5ab932aac49abae3e2ae313a6a62d95e7fab42a6fd8ecb138975745242f74fee1c2065404798a31e36198066e82365393eeb65c0cc30e32ef79384851d55f5128461c233a2c242d7e6959537534aaff08057fd3f246f470a9dd367c70d37871226b34b56a53adc7c762836369423f20d2cd11abbcecabdd3ad1d520776b78dcfd63007d6e56fa9aa94202271d87a1919958bf3728ee248615e95388511c972273303897e65f1087da2e0c4e27cdf1da6d5cbdace2d69226c1af2fc1cd6cffc536db1aeef3d4e62622347a919ed07da36809f10bf8e320849a13f012c889acb05eae5cbca801a696a3d77f29fb5fb2fce58ca21861959cdf51b127564df3050def9380b247a79404bf607c4a83583d921a32304100f1bf2be64d7c9309e39a02ea6f8d1d4a5dcc524b8bd8afef183cdd951f4eb2dc3b2101218f7eb084e183c6544746177e3f28f4d3c3130d1176bd1e3fa1fef19bd76462efd8971f78b77d1b1f7ea97e0023712bed19552bfcb191769f1b11149d1738276f4209fac48f0023c951b6216a92928dc293b223a290493780718653b4d9a994a28b680caf0ec83bac22b6d2cb14c3089c21021acebac92b6dfae4859a67a1c1a950843713a05a9489dd1836c0fafb839ef9b19de0de79280cb6354aabb7329459c4a47bc55ac561c26d258be2c71239b976d4f798e60871972c2c19bb588b9da329a7066d0657bff11c0c638db7b35afd0fd755ebd87fd18c96b1261bb575df921f9ba15b78c9e1d55bc93523705d0906467ccb0bd93d7feb7eb2469bfbde1bd5d5a09e18ce984aca8732634e902f70356358c9843f99dc2bfeedbbba303df19e4e2c59ce899ee6a1212fdc620216782f75b3f34b71a50219a52f5962391ac9e59531f58887a7fcb45007275ddcfc9db48b8817528a16fcf99f862259fa8945933f1aa15bbb332be84a67e159ceafd63bd5e0de50c47e570dc914df11bd5b86239ab5de28278c1cea6321941a37240e363aee3144aec31c80a756e525f567b9cb696ed308753d9b73a4e33f97833da7468594942feac4676144975da8cdb298869332c938f0451d459f8168b39ac54d44538e3624c24688bf843cd7876833d29027e6755f27f005b1fd952a85c5ecd380fcef8a5308c81440c3fed9800ee988d2529c656047e56aadc5aa061e3db49a2c18bc283e30d9a23069f8581b3a3070fb28554808d2ee6dc98af03df305d15c49be208886f377ee1252bdc4855936734153f9714b734e87e455132cb23162880eeb1cee83bc4568df0bdde32e5a0bccbac8bb912cb3bf573906fcc9eec236a511eea6c492703173f0511fc9367629946e1ed2431dcbf6d66e01c6bfb8693f7dc0033509613d1283befb075d3c21b67440efab70435c03ec4b1f6e1f69ab6cb6c3fe7e677bdc4a627fd0b065ffb4f3dbe3a1b958502b37db15125a5355f5f683d617040bc3fed74e4256c357efa6682110be761c9351e05b60e6f1cc7429efd27b445568e23128d32d435b784dd9848c6a534ec81bcf73b1f88ec60b036dfba329ba63ee232ab272fd3b5f2623a40e629e2835e898f307132551bc725590d0e21ff549cac3294ee2431570687e20b64eae1e36d049cb285c37e2a0149dd7af8fef1df555966cfde33eee5c6926ac940b56fa8d958ae330a5ca999553009f581c75506a335b8a50413246d2569f26246eff65581141b155feb86a70c976b12a6c87d236d7b62a2d7844f63ce50614a742f96d93bc57e4f5bd7b4df50d52ae94d8705ffcd298d8b718ef268eac2e95dad88cbe91c713558e1efbc8c9740f2e0d7c01f51c4fe01625c81ee00da37fdd393048069399fe4cda31c52b187948f4a2a6d512f732f518b1e9ee8b54c37b6469fb139a3162421065ea863b2789c4ced6ad069b1320870aae887ca8313e299990a40f7ededb0d445002becbc670cd2235e82535d8fb52bb47056c67bfb7f9948b52ee484e7687b1b85f28572de4442169498ce55f0da8fdcf8c4197980ea99b3fbfb0e439d52d4e09c4d0afe7f6337ddb2d6fc260221ee6aca043f12da4ee5c91ed8c6b6487b880d247cb71e780082e477a39b25adf187f22f0bc057f6759a40b3c6b03fa74b1447b2df072aecd25c0bf4ed9c3104761cb178214c89a04e69745dab3755500e09eeb0cf4d09935c3dd0a97ac778b20e2d8785f3051c5d8cf2c826fa1ea250d2e6a4c444fb0d201a94c933658ce76f66a27453881b7a281fe58d24b373085fd3dce778f20aa927e8d1e3f755df74726b8947bfef8cc3ec4614c69e9b4f804579b50ba5cd033bb6989c245a24bf0a1cc7cd5852db87b9e8f1bf8623905306632dfe81e24580604859ed2c4dfd1c080dc301c52cb9dca341e4b7b3efea681ffb0d8ec21e3a43c8bae3990d2460c20d0e99d8d4af9eac4b8e79c731a83de3fca4abdcb162861048aacf534f1a25576692d62b18817ede4c6811a629d6bcf2e7ff846bd2615a4f23e4158a100a5f1c9692ae9df03b4f5d63428fc206850eff3e88dc150f1587d7d1fb209988c3f04993a2d6863e0696219a0f6a0afd6c5cb647939fa7896429c1ed7785e6313ebb021884cbeb7f7d3032f17d8af8124a45a60fbaab54a8b85ee5b74d28aab4e6c9584f23d48904a86f5689424f801fd62a490e074301064f480b56afc24af573bea44c48b413d9707c68c97a3e861275748e95d81feea5b20c9aa91b42c2ee73a8c7e7303e3ab4c56490aa3e4899f0754d9df843e2206181083baae41f10764f634924c64755dca7089025f0e2189173c02e2bb66c1a84515011020fa92a3b8bf0da491cdafa0001f0774bd66a2d38d8702cc13cb6698770c6006bd843230b900651727f8fcc91c8ce04b44ff96f7472382be05bd3842ddec0bac9815d6ae6b9d8a70a9d8e1a413cdee7f2f1651c96fb0de444ccfd16c26646fbc4bf2370a74ea9114d6722f0e71a0aed9fce4d474bb8ab8fbbaa241e504707341c3e129977896fc1ed4ac185cb65c81c8da3067132517f350df0be72567deda1c27c920e2ad8d1f8b57ccf3192e816e98db57bc4b7f606d5e7772e6ffeb24e8b2759c4c47b2f8aa9d3cbd96f507e8e8741fbfe114609e9373950d3f8042aeeee0ce7df954d222bca0e2a284cd2dc3eac521442cc67fd59b51d7a5e1d0c86ee30779c8076f3b0ec3ca61dba3dab9cf9d869461d322c02a0fd8911c554a2e0c50421ed43b333b319935ab7aa5b68b6b4651d82b5d39d96f0c12630a706bf7da6869ddab4cf27afabe0aede01634a888c808921f6af7f68a4ec53ba9dc11305006d1834685f5522498aeb92c054f55a2726de940f17354a4a421d2d188c7848e44f316615280264a6690ce09240f940bf7b13613aaf17177d00d1afc3e50e01b091467449a82cee9369ab8d83db07a4ebe4be498a3c574f6b971ec6835361ec1ad3c93ebfd783eb5bda9bccb3fb9cab5f4c7059ca5cdb11207fc4da225155a7cb8bb463051a619f4e76b8000a434630c404563385472318dd525166840863e84e1730148d4ae046f77fa4669ffa70668c34766a77366c0631006380014910229610e7f01fdb264b8b3d0e3f70e68655587b95f4a53ece64812f62c09b5a7c405588b5629eee077156a5fa4863e82f29d5f9db61e7b743dca9f8d0e1dc162de1c64abaab35bc7a68f5fe61bb0a424f30fa0a3fdaec6b74f99b16a9305208b7475e8617ec84043f9ce5c4a62a5763b32fe52325a38baf2770e052823a69010bbe744bef32dc7a265e0d633c8ea6f523030f4c304182334ce5439ebdc8ed3851fcb671907ab43a6eace11585cf78f0af40729a32c268fe11eb4eefcf21d593d4cf4119869a9a243736f99424bb93ef6018dbbd0c6706015e9b15783d0bd512cdb6249c2d19020fcefbf7e9618bcaf377c70d87482a1a1a92be391f332351d461fdb0dcf386d1fc2dda06b18d1025ef5ef3682e8c75b781550336a293a377ecd05765e11f4c80405ff63bec710ab07467e82ebec8149c6df5fd7190163f4012bf8bdf7d4d8869ff47cb15712fbaec962750b31203306201a4f439dbdf998c9273748a437869ef23fd304188a0b45d25df27c19d7f7fab6ab8cc7b0d07f8e604f6d7e3a275ae7c222c0202d420f2c86c9b4ad1e8ff7c7f8f3b0dd046fc5b14c64e59dc4edd3b75e97e1f12feb460e6fe29feeea3e53afa0320583857596525ea60a1d6f8f972f3976aaab31225b7ab3a8c2c2272d2d6ddd03244b78c22da52897c2cea5a77d2f09fbb0157e35475ec1b4efa3a303b92597f3bbad6802f55dcf8855243ce2ae1aff27f874698c6de3f46905652cb3135ba85fc3c2ab557a53074750b9f90ab5b250610887fb56b940d5a009ce46312ca694190fda686440554e694d1511aec27ce714b7cca9e49a244d210a531ee9d750405e1b085946ebe9fc37b1db5d0cac37b08d77d2c8d685509ecf65e989d228368fd882a1d8712a1a20d17a8e8bb4660426f651496b960563ef55f01f12f457af6b36b620b56d089929358151761b456d2be6a7d92ddec9ee97ae3b9833ebbab5757727adf0c410118373d875d02935982d04d5cd050b69c6382980d0739bc7c33e14473311f580f80c847abfc98123263d1e95d066c8c739725b915dee594172eb435bca387e64c090d17b39f931705bb768e71803e54c67180f82c2b6ee9695554b77fdf35d5bcb25cdbbee933b57c1fa6c41bf3a91089ed410ff8ce8a55867fc01a09a79545e287f21d4043a7edbbf96f289d60053809db18cbf4d6ba720d05cfdd3124bad0057e8937b91cb7ae8070b6789eef0a9cffbf4f1ad4dd44baa923e39efe70f3e0b917c93101423d6ee6574a1afafec7f7aab05f82dea418b064b26e5f946e5ea2fe7361941fdcd5d5ae934bba5dcf84472a2115a7e5c0d5ee72eaebe91a425340270a8f5d05b67fe1a9a6780cd308f3e479fcb3bef132a9f8824f3cbaf3e35fb10434fc15d23541d4aa6afe9368678b2cd2e1ac2042c1273a9646fabc1ae0bcb3129d42b9d1bf79ebc1ad0d8a3b4843836018b94eddbf94b3775d65cf4a4466c5507e5d8551ec99d6451c2f9726beb293d6d242bc907f5cbf2b90941ef09d4db2dad471af6fe10433e4279e7f6df90a7b8cb313eb2adacb064f7f1e83cc485dce9efcb4d0e2d2ef98165a3786c275f979771b7397d9f921337d87f4009fac84d8583f3aa1d04bf50d6275ac6a08be7c18466752842bfa5faef1713eda300759d17a4394984e62f799be99e51b9a392355e0b888cd7789e37b85ef16f7cd77c9e29960c3b75bf8f18a529ffc015c34f18dc20ae5a1a464e20c5fbc079cd5c8b90779de95f0c5ac6c5030c76bb3bc2a3a70c0500b81d121f703cba742b30a8f27202d009beac3252ec77c48001a80123af03d1867833fb54cf14dfacc12008ec5936155ee54145516d491f25e45ee9fe3243fecfa87ac88ce426313d5ccc1e960aa32dbbaad28aa5b0cb6234829a4d995ca21989fc3ca659735ee32f37b1e513192457396c4e66642824149a4c025831988d2f69b0ade98f4e7819a594ea614e45c22a7ae889eb972e430db03c425013cd32396072e3a90a1e00bc411f0ec926e758b58d012556eadffe1206b59b136852ac6ff2e489c86587c4771cce77b4391be0e00896cd8e38f34f61e0eef60002933ee93c4aebb253e42dd1db5f63b0901fd02e3e4564428baf47e98a1839d8ccbf3b8affe01c9cda2b03c58f3d8c98db1e2ee3ae9a4753ec8caa1a6f86dad65cc2f408a80b3b2c8fedacffb521e081e218807e410cd8fd48ce952ac9f566eaa6bb13a58ad9acd3204f7efa9b34c0e29bc9c53fa8e3daee5c758af0551b2d8aa9140ae68b2da7ec1b5d0cd81c158f683353ab0942cab99ec5a74e3df43b423602071960154b9a386900dd97278a01ad6e40e86c4f2e7cbe7efde796dcaf029f240c282dd31bc5066cddd476c172e03b1b1131bb76e8b31c308c367db35e3f84bd63a6e8ff8288d5ae181620be4e349ea2dc1e13bfb8f579091c13b95e4cf2606af5066eb4dad5526276f9acb6a28069e5095446b6831d97b8da644c2c6a848b686a1eb827ec28b35b208c1799358b794fb0bdd388e2775f61e213cec11b6df2f8aca76a159b50a3efb318ae4bdddddd10abb1c0088e24bf707c2d463e9a6660d17378ca1a523be4558ddd293862eff4afe8b35f12f5f12b1bf8f5901cd9969943deff1a5bd9a472b69e9d99f34d1f9f79242704713743e4e2d880563d578ff2e747d2878f917deb979c5f661646f2d89ec21b61f3c83f92419001c826e9029b609118afcff0e71a35de1174c9dfa84fec49defac9f3b256336d7d09572587a94841496d5cb15384c525f5851d7ffb5b15e55f29e31983b9bb64e2d4bd38d4ceb818ad64b225100552ae7c15add5f2625a43df34c8bd03608f996a7401efb58fc2b27a33a5bc0eb78f87c9d6de24c84c3588bf2620f6fb4dfa07a9fc947b250b1777ed6e4a4dc33a40d168f9510993904a531694af5d9470c513fb992b23e2ba0c60e9d8288b80073a0194359714321fd29d4821d4c09a73436acf048718f22bc688e04a0bba5c46154bdbf0743fd09fdf164efdf1b2a6d6b079d5e5f8ca4d68d6e2843aafd34ff01bcc05c0afa1001a6aba4399bb2d55fbd09462b32409181d67b6d0b0349d0dc000b936716aecff78cc01367651406614d5d0936d1ca62b2a03c6b30898b0b43d7badbb30a7cba4eb4c796e2b7192daf66b6a075946874ff6e98e0ca46c3a9a04a94e6495e5926668c05d1e93297b75b3268d77eb3a124d62890a1a4913d4011a7c88879cc736ad71735b2b5c26bec4c16ef580e50a361d99edeb73df018e612ec896bdc3ab9bb40812548240c80275c7dbce3aad4b4e2e932a7377044d38805389af568ffb87b41e366a6566b2d78d661550a1434680a5b162e1fe7f2364e069555a9387f3979413263e41eacab5a01936c284dcacb2e858cec0ef46d62e70ee9b709b58fd57cf50e8a9f1be8fd0d2ff2897b0bef7bc47444971625fe1ea1e2de3f25c593c29469030fbf1bb05483fc011d8ccc10f07b88bec3328b4054f3b510f4b6d7c05637d83f6b00ac8f802cf3783c3bf03213ead207cb4961086b92462417c69d212f44fabee07110d957d4c90aec5313ac5d1e846f614aea8df4c813f4ca9b9b9ec4b7c38796e9dcd39fbb7551480a04639abc44f061065b4599e5f7f840069cef576d8412aced6bd528ae6b47f3714956279605a9080af6d5e72089169a6b27edbdd91ad123ef3f3830d6cc6eccb0bc6862a119ffac48abfb5c61fed09c88c1196542db26cb4b7f0410d8b0366427661220acf46b2054d1e2b4ce46ee1dbd1e393dd925087c13447094165185088985dddf6e5c6d621d5d0e4a4ab6de0c0da36c195f8645c249e4813b6941dc546ca0422e1d4c4dfdda4a12acb3f3922c0d502151986cfdc51f4ba7a19e9f3b3012344a95b787194074f2177dfb4709b6e2f1c9f7691e1eadfc17a756365de63907ad1f66b068ac31e1cfed11f9caf8c87c2b53a9e5e8a1da3f832d71972f13340f21749643487330bd449ca5799b5a8904f8a236b7a82ad1edb36b8791d8e149d05b4d5cde58fb986cbe94ab6b08362dbf77b6e7d532e76ef1f43a017615bbc1bf6c0f56be0ba17e6edc137129fb02233edb8bb557424916f93b57e1be599f3c102e283eb79f334a1996e5c2e5b813624ec797f02ae88e4db032e2be812e2e60769c31f39fee2f221f108aaf38cbf9920d20fd3f2d664a19ab35096db70ebebedee73dadbc32ab920e62c480b96adb626820f9cedfd4b3e9d6577ac5254e3256c2f6845a290d7f90889777cc3676c03063849460991e7a5064797865d88f8201150fffe713941ed56db69938c63df9a74001b5a0d8dae4be2f77282c6a188b50f62d453ea320e45aad286cc3cef9d0ba2c238eac345c034c8de4aec7a6581de862ffa3730a178fa916effe8b101ac9abb02cdb7109a72d4b14307cd619b667fda4e32e0e86708725f132d85cf1c89265be20ec65d8b4f50d0c8ecb95a3f1efd21eea86083a9e53cd807f86d01793016b920adf5ed1b40bee38867817c0b4c0c78e280264ebe8d20c94bc3ed0e783288de1c825f0b170de497f50f163f45747e54d444982242611733e87ea2b66668f171bb8631c7c67ea22b652a210e7b8bb6de6e35213cac6e2323ab83e73b3e8cdfaf89318d14e1f773cc3ada5fe6ab0a0d2839ea5bdb1fa9857d0099adf05091f98914a199583b5244a760ada30ef388762e1b9cdb0e61f90c37207ad278c8b1239a2be9188a110d61e44efc93786833b29748876d4dfd2bcae288f722c9a25e996161f42fa5a483b11e9315920e032a8426d3704c205b6a9c6a70cc2ca609fb8311d62f8973a3a4839131e701ac7abc1cc3082e6b5a8a81d545d3e033e5b0e6a6930142aa2382505c0b343e9de7989956684437bd686973b7fd37f7f84d1a75af8227299ecfd9c2791227ce8c0b53e088df6d78a9bd0e1eb09b2efcb30534fb5055824ef4e36d921de7981a821d87aeb0a5184447b982f3a076a4e98e054cb7b43bb97a97e6c92936ec88db1acf0c62198284e381e62952f692b7851fd0f03971b32f2cea1bec6f0dbf1ad4b9ccc16556c07848049a7147fb073370ca5cc6d10706e4e87dfb564c54975e006c7ee8d3594ab461a6611bf5ab4d51a7b97a637cec54fea1b6fe5a52f3b6e019d6bf60e326ce12e4ff8ba6a26f29464fe0a51dd9233aff57c0e456f65778f74d7a0e3e657e33083c34c7ba094f3d24f119e956cdf12004d811ed0c33cd0b989a551fdf6b9a75ab1156087ef98dc40071cd1e43f9d6e4ab9115cb496ccf0825c8bd65fb183cbd133ad6b8eb5f694aefc90de78baf1683e7ab002bb302f08139828e821d50b33e01140d6e73f0a3b9f83e836cd16ac1bedd82d365bb2719a2240e8947ef17797462e85e9537bc0fee805e816475d46e0a81876d4dde0b4d8e1ff7e46f535c0d9b9399df2ced722980967c9432051b90261ff73e003928dfa1c5ff45e17fc3680573158903038ce0c7f481885d90fecaca29f6fd42ba22ed5613376eacee07dd0c302f66c6db8e6d3e9a7363aee5e6ac087e2585bbff412bc1bc338a5671ecbd3af7265137c009446a5937de0d3d3e6fe3eaf5a6619c8aad66cea537b646c1a6e739ab3e93e54e790010e51baf04da4f4fcac690fce168953821b2c3f026eeb1616732e56c52afed29b6cf1903d9c1e46138943b6885f53ee5775837a53cf670ff2ddb423355224a16fbcb503430922b1217634f6a2a24496763f5381a11e5121bed83a82c4840e0615b3ef1ea34fdeffc5cb43a8a2ee6e935b880767af1613e403941e0a7f9f8c553a847384530009bd5a69c25c76e44f8702a57ce0c25f693ad652551cce82d33a2a5e49ece35e790eb8622b1b395b69928b1cb4cdecc570c806ae4703839482d6a74cc3ab808c9c0a64be230400f89ecd6d2a2de78407576b11df3073a35e8c7f5ee668a8c96c2147c6a0759730508626d1305f72538de0fafdba780ec036b4b67adae124398f941862f798b6b776f74f8c9401d45ff08c6540e2d7e837ce11a604a6a231455a8e4013f13198102c0c135c5136767a0386da12bdd205e178a1f07875bda20b1f2025e4b18e4e953c76ebce0dc225e660efd16b5927a4165ad69c99a72e40c0cb93689d59e2ee22c50ac14841e4a84e8a664240b2b2e8a9511e07694ea49e083e00bf7c2eecdcdf22ded259be88669492e029588dc5ee8d32fa2df65395a073264e3a4b760d08926d49b7d95b9aecf965708e66b82c5830be224cb4ef99373568619b5e680872cb685e59ab9fcabdbf5f21d516d5642fa79615cc63ae7b01c504dee48de2a6596dc471547183dbe1a96674dba014ce74a1e477813d8b0803f42e875c667b237ed3c56e71f55e1479065b7102e1dd46ead7cff0b695f3567ace0e20bae3dd71f6d9bc53a7d9d406f33fcc144fe0fcac786749283b31eec6e3ecd323d9f2732fe6da3359858e17c48d997e479161cdac2e6ff1dd7c7afad283b610ecafa0d0c2277812167d19afdb28f3f637e1f0e706917460dac2dab8e68823d31ec22c62712c3d02fb1bc130ee8611cb5f4bbadfcdd0f47fa39827c1c704a2b46f7461871b885e859da981ea8a4ca7ca7b5e940bab4529a7f97aa1cdb80a8a8e8b6a0c38784abd9a316eeb751df60343494f8931de11d08ade8873fac31e3b54a295d080c249b2b4103ff83d0379fbadf025920c88b0d8d1d3557d56834aee1d37206e1b582f6927ce20921b7ed5f67708fa03589d31bf6013a9ee88851e868a624d711d2243e94ad8a040d8eaa65a29bd582760373cd95e0c3c81f0583efa57acd550e7ebcc01ebafced433cff480d12e2f758ea05095ee9bb64039e29b1ecbf8972ddd857dcab44cd1fcce79399072a8f8f5fe73d367510cb0ad08d10f642d877c65842650eea32bc060b3c274f5e9771924f6154e2e21eb4c8c6ec873aa025412c7923bf499413b06b59f10cf209565232de4dcfe8c7edd6c7f1b42a8e1b5129ab39584eab653e94f55f247cdf3cbe7648b0066fd7c583201798dcf5ae8ba89b9bdd8eb49f30807736eb0f9dd1b4730f81bb4cffc85e0934b19e8dea54a5d55bb6364c9d4edb1c9279f011d42487b1d330fb5e7d15825f492140c493a2f7f90b984d289687c663419f1f6e31f766bc58dffb2ff7417ec3b2cafbe489eea3437e91fa44a1efaa9b7afe9043faae8771c7f7bdc91b7be43800dd378fdb7e14f173477183dfa9c201bd91ddbe7005e33cb0df4a3f1844f292776e48b742a849827fd43766b952c9f07921e94b9841c013b3dbc585ac074625e7009291abcb99d046c5bc36ac4929d3df44bcbb3e64d0ea82bf08502859e36b87f6db4ead3a1d5e334fb863241aef8d601bfc906f88048b3377ad04aa9a240db44cc04137c6a5036ce74b40161bb4f51296bd9b0b83d5e20da886ed8e940043f906f1542d019f823309d56865914c23ba9bf6d840bdd15b7d87a6ed622867cc0b30146462c3084fb5761db3cb4680455a411ab2113386485f0a15e07c28871299f55d173c7683744a4a5cfeadaa0fdcb94a8d4f3f30e4effa600cf6c53460dc9dd8f563ee31014124313f73a2fbb27d19e90491b8af2f6b4dc0907fcbc518be2f8016b0bcac9b14894eb185d9000a60ba40057377a8305f098b16476a13e3634889a1629eeec85acde9923d777e47e369d580ca0558c54903ef25e21b76654c876f5b508fe0382a0003909d1dd8511e2511447012b1aa92fafa05c49d2d27b4bd3086195c5b82ab01845608cd4ee6b250d61941f1ad4b11554c8656d2a83c6a56ec87be1b6d1d5b7c2b5c20eb6bb65a296ddaff9af263a07fa2bb6e15320e7175e02aaa957828078102c71bd13817b230779bc9d675606a435fc75d755c19ee1f36689a20ecffd005b664d490a862b7e7fadd7f74093156841926aae1cf8f0aa3fec7d905ba24d17684c9515f5844c19b20b9a0f3b049d9bcaf4c6170d3dbee49668f7e6664ef5a018bce0b28aa8df1de2490c3671f6c02af36b3f445e29be91a9f9481b8457f838c18bd4797779a29b7331edaa7994102431e1bbb32879f99ae77f29642c8497c1e2dab5b5eaf7947a13b8b9bb4ae47966d7065a90b296061cda63135e1786d2319fe1cd4ec3ae8099ab4a30fe97d8fb98fdac0775c241c37a06fd06a1ab23018b62c993db861ce5beaa7ec7f98a168cad97a38ff13d4d4c933fbd1f67c7e93e1e81faed1de187b97eb5139c5dfcdcd70c92db7e5b9cf8fcc7197dbdd60485e52b87f00c04ff7debcdcea3656dc5593473e0879bc5926ae98c0c751a6c77e88b85e28f225c09894cc3d72f2de1986aeb5e2abb65d1fd252991f1caf2739f0849ba163fedc64381b47b050e2a93aff3c88ef44b9dfe104dd1c099dd50aeea9e4da217a3b539e310b2024439687085bdc2844665c12532f5c38be9f112126d352b19dd8b7370251f63640430246fd114f57e1cc498e80111be7e22a0839b8476df207060ecad65eccdffc4d84a97f49f2c7c25cb3dffcb8a0600a467093e5378db19fa671c4af1b5d7b7397f8e6081056ceed7a78b900b8a51f96693011ae492b9fd7a6fc3888d895931818d30f691bbf2821d7f42560a5de2aef6920b9c978a60d82a92d6e48fa975259b79f36ba4c80fd57507268dfd511ce94cd9b9ea7628833b2bd74697806995b19c23d9ecca72680628895b1aad01c5e0d0df057230437c4189a2f83ac34af439b7d469454fe3c1015b9c0d25602aa98e4e63255270d2ac4e9e4c0f1e7109a32321efbc55de6d922dbc7dff93ca377fe76bddff5ff68f2a8551c6668f6b55c3a82d4d3827c7693b108fce5cfc8a1693a33606f326a33e1a96920ec62867e5a17a76a05994daf8c1985b8d1edfa41060fb1011dec92f17c8d6d128667d61a850eef98283c0ebf71418ad9c63ddb2f4d1974374b84b8ca0bf3dca71edd006e80e25faabf7f276c6d822e3dca9e32320c93e9fa9459c01df6c120167a39cce1d394c184de055f67a2fe9532d15ba28f456464d46360bf447274c65c91a59a066d9f5a0ef274f75327ec8ca4d04fcdbb355484cbd6e5b633b11910173d0de25704c2e89f59d13a013faf9a18eb772db38b1e9e7002b51642d90bd8959028ab387a148a2b2e5ccba7649aa17840ac987fb6666d190e62fc53cf0cefcdd1beb87736487b0b778530afe34a268bae91ab01c3b434ba3c5514b2ddfb7c84bee7d048af10260abfa45fb0f93c0780f2d9c75789af3972f6a4449b07507411f89c45b0ea6504620a909b253bf6c6636c21a86516fc8c9bb845aad0511de9906e85b132877372a307b99d604b2e86b0e1d380e332dcc8f74bca24bd47a901e9976c603b5bbc9a708d619ec8ad6fbe15dd079f7b6ba102fe89b6094b64292e63d3ebf4e3fc940518f3a7f765662c2753fa7b0d9c0811f09c5966099db50ae5b55d0615d7ba68143f4823795779b4689364925f4714f53973dda3f7494a6e22202fabce6a8339366ec934fc1415f20d94013c3ee3906d8a2ee44200d89ab88ae00d9937567546c947fd977718ad86ecadb43a8c7439deea884c2512345d4e508f35ef5c620e8cf2fc1fe146f6f9d04d8eb8cfc65a5f317c93950c47ccf6cdb864685d34096a3817471d444efa7f74881c1e5646907649465227922b125eed352674717c54d9c70f52120820e3c85b5eb031e8d94c0a3905924dcd8754298c608da8701059e1b06f0f52e41aa80a6f86db973a975f000ebe264b43df90453d78b7774475ce7f61aefea445d8c2249c863a19d8fc94eac808ca116a10ceaf9e36a79a840062c44a9721b05dd05d9d4714529538607caa466cfcd1e4ea23f53f81ba4e3f7e2bfdb724e0fbd3c67bdb5835303d7efcd4206e4242563da1a68f74715e53584c6e2e5aa407ce4bdcf4569ebb630542e9197436894b25d6cc863b632471e66b7de6b215a0ce7597db8d9142dd4e31796a4747e85d8cd62123cc3bbbf2c299d5d11f9cf7697a10f1268c9b870c69e0776aea9f61ebf1f0f99acd8becd367fc1f59983ff9e68281f8611eef496004c787be0658e7e6eb83f4253954f3152a30a0071f38e887cfc6fac67b96646f8727a110537ec2a054e1f6c3999de0250796a7d225202da8d0ca239c223884c6ee434dcac5f0258138eb4ceb05fdabcc8bb0b90a13b3275eba91b0b71170c260162b3940d19e6a2b766a9917e7fa61e0fbde4e3eae05acfb3a2ba75388d2b01f68abe49bd06647f0a55608a5f67ed0bb2d8908c99542f7e8edfb530b0192f2de843536c4c0483c6cba78edebf88c2da68e15a209c1f2f98ac80f5030d53f5629106d7f56170441c2d886fc7e72bd72ff5f9f5cd0a08063a3250558b9ad3d18ea702fba57723910cca3fac203540ac16c43d473bda81a63b2402783e2d353ce60139354660c93270524cecd4a0d7cd6d03b4d34aa12ac02d05e835aa3bf6290ecc6d613d3d2a0e9ce739987730154d3a4901ac3014c4a98c07ab37ab563834a0ea536207d10a06007b8e5978e468c99034cc3494d276679ff9e9df9ed879ffe19fb3e0d7ca92f33700781184d4e51ffb08755d7e35ffc2b9bfbcde4477708b83f30a377fd1395c8e463e6396d808090f41f3c7dcfc0657e2816b772835d599c21f89c08795dc9781e767c365e4af015dc97ce0ec740428dd3d800fb51d151266cdcfe6bbf00b00f315b3b54e0a77365aea170bfec69019284c33db6cae68cd0f58d42d4013a7804f746d25cce1aff8499d81284fcd532a7487253cc9092eb2c8e5ca9cf5958df3b9a72e681d6ccdbdc591d7dbf1a3419326b2eef1f57faa55ccf0490b154c8191ff90333f85510f6094ffbbf958b86e37b9a55d7e3d3df8cc2f27f78aeb830fc96cc8886fd2c58ddf3fdd306634b95b734112b129f311f91f310f047a275cd49b1972eb6da28292d41c47fe9f9d666c6233148be313113df139cc342ccd27c16d1fd8903e020faf466183d9e06466f0b896c96d38a0bda0fe0f51af234b7ac87c9690c0a4c6b1c2119c46db01a44037404a79a92ee20c655af6f1a54c326e75d7dcd0b56b1c7cd58f01abc930b2060d2c3e9bf418538dba0a3e5787a14dcd68beac3ed99f3e002af840bf3286067753d3c316d03454af161cf992218775962dd9f4284d3356c291a4fef8b5064970a894072f321c7798e942fd1528dd406db25f3642cd8d9192c7ae23d8cdecde8ebc25d336feef286d9f7532e415ad20c19379de97b62ad839565b3c3f46dce5ad36c5efc0f8edab528fec6aa973be9665b0efa6e5a58a84679167906a9a53d40aa30c38ecc86cd2ed3bf3a6dfed166ce15bbf0b0b0f53f90fd12d678e383fe5fb4cb749b98bf7f38171b8524e405e4915a39739889a0f1a09795594acd6746c35e9eac092ef586b8e77cda6b888b4e2d79b697f8d64848a7360ff5adebc458ffbfa488e960b48425f72876cc81fabfab21698618f014a4d375e9a8df600a4e4d1aa3401610e5e06307d2ebda1c78cf3896d40e2b25f40e7d99cf0212abda5724dcb12e8490feb1995901ae048c0cbf7dee314c3ba571e2f0b5183c706778880ccb01d0af0d628cf0210da9f99229c6b18706d45133d390680ca766b8a28534a73d685730c9a574224b59dbd4f3f3b31984778d0b682e4f7b13d72c6cebb7ac08c0e97613599a5227af20ba067d16aaa68060390ebe476e9fe8b63e13384484d33df4268bbf1c0444b3e7db3fe70d979d2b6973141ae5792173063c0f5fb647277828381882df802f9e33799e6976bf0362dde3cc400d5048229bb638f09f081e0b2519ea39ff5c98b37540783cbccf6e0e5111637cc11317bab6d0ded34a30b888c102f2a3146d24034f42ba1cf81919df65ced7fc00d650d30adf857cf35c1f074181ba954548ac308d280ff0fceb5ffb5d2b633e163a93b202c1052c5c137294421715c148cb6d7b0e1287484c0e1f08059ad7798729593548e68e1676d77726189c11eb218693b153d77a1f0d782755ccc3c33fc856824cd6fc7521f3431593835c7166094f176173e9657c26b98e678869c679a2ea95147830fbb238e05077f13d8a02f1b587eb0c09409d2e474c567a982398832d6b836273a7ee4870c94dc07cfb9d543c2a2d0164ad65183c17809140f6f901ba99c5a89a203b3c028b60639ec69d6ce8fca42a3192d7ce9d5657e455f94924461989355376320e5d0e8cdd2400f39a381568605eee00f826be122314c7b7458a5b5c0c3dcd7c2d604ec622c8496c4dd814665bcb387479d23126e20478796780b597e601bddffdc0e97491cc0155168be38fae5337f64662d57885c47b3e3ac65ffceb8b7a98e6fe6302d187f6957dfc761e0c8f108ece2505f1355594cfe4a6733d7424af634606e75dc3a42beaed653ec359a0f3e7624c3b15894accf5e3d602c4abfc082e4375cc3714ebf785155d4faae1b0ca2eb104e86b01894c64678ed902e1fe70130cd01a36a9c9706d545be933ad9aa335098c9dd6117d13360599d7bdb76a612f100cab96e38a03d435869dd5f04e2ff45a0f3cf8d2fd1b2e3a635d7d2611799cfa8faa34cc700e9e00b7ab7bfc1c3d4d47c3707906c5d2e47142ca09db33a322f277ed7e873ae143232c063c629028703520d52a5a92076264ee323b16f4f00dc19980facf423d59f867df32484fcc906e7b1fea4bff3140862956070d302e8d56665f8fc1c7da1f1c2640b4229532b8b13f81313e4544390873605a18eaa55688d285c20b1864689014840cba521b63455a162956a2ec6ad3fe3efa0e151caad4e166ce4b5ed7036174879b52433418c9ea2a0433871edecff454293f2213a2c1b8dff8516f4a0586b0a52f01c1e445f83bfc09ec01589251b908c7a61a757bcff1f5ca586d978b3df5ee89e6fcc351f7cd8730ea42f2124adfa38c3aff2405cd51afffe614b114b1b3c8530c8760bd55a439563a0e86ea49ea775dcc029ed5de6b7adb52fa81daa39496599658b35391d71613c143356b3bea13e79040a73faccb94d51adbd41a74f92235e9c702099bca1b6e14c4bd68d9ff4fc10d1503c4a8dd958210a056c222ff267a3b64adfa206eb131ee703c8ed1b4be4f86345d6ad463bc0912b56902b439cc48ea279fea1e2e5ada786e0127c1c5994aa851e460e8017045211efc92653ec885b9068610cd78b7226abe67932bf50815fcfd47366cf02b67a41de08b6c0cd00101d84db2fcc2b2365b5ee3ae5bb2923089694353deebe98d54687ef5f7cea734f3e36de2feeddce6ef29faab027be9bb3b8337ffec879702e41dfd090adaf7f3cacbff730161ae225a75eafc5b11730ed44ec44f28220c62331c4918cfaf929e98d20c7a3d1e928df9e9c3ec28ef0e845dccc5de0bed9dd46de04c31a79959b0a2c8e17687d132766d5c3763cf0a75375f5459c81e2e186cb8449468011e7a2cf2c7e5196ca5ef6c5ff07aa9e788e8e7d4942f9b337e79c7afe35ffe8ee1dbe3e304f5f1087f18d45b57aaf95d7c0f3502dece3260169af7902f7cce6acb87f18c4a9d8f7a5e30e7f41b824bd973bf428d461cef4aed7de3d63165b94d4c102a2781226f5d3693422255818d80b173c1d6561751142969ed5e2d06b2eeaa67071c53e306f729da780dd9ade8cacbf6885aeaec5edd65324f6155fb6085cdc918ffbf346d69c12b0fe4ff22aa342f161c3efbed70c2237d331f45a1da990591634d37c1ff6727425d183a42ce32e383ea6933678e51e063ebdf15a6d179977a26fbf866e5dbaff03c72dc50ba15027653961d32c6076764c8806cefa62143b40ee9429b7b3878b0e26004a3f04f29138c814db61e2f911ea2a711656aa75fce00120eee1918859e59b0e59de3657647708b9f98a9f0483401ed6552f681e88130251261e4a9cb58439611ff546b195768c88b5b0a69b345c3b91410d746d82db5c01169795eb7e9b7516267a9703b4d923f2e300d894d5956855d473ecb29d0130e2ea99ff48810891ec692bb647ebc7d58ae7b0e866c83bfc864485414b915d9d236485a65e8e34e8818fec483fee9ba09d0bd3654bebadaddefc87ae01b12266879643603314677f483b9e44dba5eeaad329b6b629ba918b9a2b0d92693174487d360533d53913a0406bc62c83bf2f0a9fa4c99f4197b6b9750efe6bd2530fb20aae1a5078eba2c04303578e40844e84e7eefc991030cd543acd6fd97705bb4c80e95b6a473c3ec170d5ef4258b8ecce458e22599bc2f1531a94de150f5e09415e93ccb952971ec867942105110c3c6a6d1f739991b4563122fdab540039c220511827c1bcd514e7c5f443ac402fe6a116db5fff30afabb86f9122630fa72cdd1c7b4a8ab6144faa4767a3fc1a022c1038ec0fd1666ae012f44041d1b7d64208183cd924d3b77be82519176940d76ceba25a72c765450ff8425a0486bbdfb84dbc7a6e976fda26b0eb879fd320ed8ee31ab84dbec78a3b4c518b875f510cb4461e9156c3f0ffffa05e7c3a120a3fe8e3e8ac5520d792ff139c075789e33ee7e1ac8838b61d0a9f24087f747d6b9436a0d70eabcdd8ffe854f4bfbeff6dc53fbc1ff1b6f9201d21dd9c4b5bfca3f608cf8791a5efe0230dfd087cd741722d5dece3707b09757f0e0f9f6377ef01efe2149ee1efb7f8ff5cfad79c811d46df75e633088207a88634284be195528ff5dd1c38a9e56f4cca2d74a3ddd81c07d3bfbb6c5ec6e7cbe4100e5b1e19e8b5b90a2d027d82ee1454977b69527af7254426e2bb27b6cf666aa27e659bddcef7fc48dc88da26818c4d0f9b0132d3d0ac9e13f1466f041a9a991ea6e7bab419766217f00e9135f290c9f8cae82c2077c8584b3a2543d6aba269bcb7d3001243b3027c83c3de2e3ba7438497fd2814637fe505c86fcddc427dc5cb4db18f16d8a259eefb1dd1ad637e857fa1ab33c3c0703611dcdf40809fbf7a5a17af288449ba3b2bcd7f301f6630699880637dbdf117eb7be571e35f6fad14056982729633f34dc3768b433a13931b6bfdf7c647d443640de8c9d28e541413c76ba42b78eed6d218aada5071336445dc0db34d823ad344eb94dbac76e5d4abd093acc6811c8748984a2332490e482653831874eb3fa90098e47df36ae9e8f071d5eff0413147364a89141b1e29afaa1988bb2524662ba69f471f5b5fb6828f3aa79f318b87670ebfdd5ac43e052ca94d27ff429b0946e3f9dfd9c282ba428393e072eb455c8a1c065db0b2ed40b25a3b7ba86d7f7590da21dbc8e51e71e4b6d3e476b8ff947bac50023417186e6d9496f458f0d564b48660fe4c2126baf15b121bad22d711c8765e15aef9325d19d5eaffdc276797700cd487b02b345efd09503852d09f541b9efc017802c6fe1b2502498ac9c8373130fbf3a157366aec198378dce1494037ba6eea9a6dc0d29b0a17347081b40dc40514f6760805c985e2eea47ecb35463760cd3745a1f07dbb69e7df5ef5080a000db3f5e4130f1f3b7fec50f470f250695c5a8a45f02c7711e8e8452c1dda0132dcfb06db10f994f0e8075b520888c3096a5999defbdc1fd8ac779ed5cd95d3e584e8a87e22aa05733eaef969cb297d967be33b1470b784b14cd36fa9be418ae136a5572e5b45552fc354af3b683dbf5dfa7b7404305fe25bf228a05e4de072b0c89cefd7a598f4eb7fe320cd5e9d5820ff2a1e671939832fd3b9ac40865ab433d599a7fd428e417ce08f4649a3943d7d3a4b67641b417f10a85fab8e76965c3a432fca1188baa27057fba80015b39a59ef8631d3245510e3a604905d78f2308d09faf8c49b9d454555e25594f72b037f4fac772301944d012a1501ff9e67e8537f39276f91a335cc9be8667452efb9788a13530731f74e4b4be733c1d1939ce546ac97a784c606a7aad25c011fbb27dd62570baa135896add4832ae17303842b7be4a3658cda2c42b24316e9a19c2256b7f6e92990a8d47a57054fa9b0c781700231e679417b74cb560158e38c92856ad63907aad38d4556c9770656c6f40dc497632740830f29fd284477d73d0f7e28fd87ebe3092a5d4d4f490ce8652b574a6a6a6bfe512db702dece63ccce9619d4378569c257c0618f84d7d4bb7b5ce3191dcb225e993c41f950cc24131783f0227f3c10fb6712ad8278b2611d049269f6ba83dcd53258d9859adc9aca96815bfbce4a8a1298ae60b30346e5680904a262b5f1ed804e7ddaf442606018f7634930c1bcaefe17c8af7a29746ec9607f3f0b473a1b6cd72dd6c45a0207d0e67c20d8ed944ae0a1e0dbf495b7f6403b07e2a204089d1675a8a0690492681a34930ea45031420a0e8b6585c181c898b6d98d606eaf10ac90dd5b6ca45b814e3de2f8d7e5493987a67389103e9078d498ed8d77eee24fb277219a331d28e3d8a59f80695d378da0f2d161d602f42f30a7d3e9f81c1c2f5a753321005509cfbed2b06e127c3a0173cbb54eb355043303328792e94b5de50e4a5f474d0522cd09d69bf11209ed722c972cc03964347da3feb97d621bde9d6d81227a07901226f1a928dcd4aca23c59e9c5165e982d95238e4ca71a678c5b9a5d36fe8fca6504f24512b56926929109da9c5c4ed81c12b2485f48ce9264c730fbe7780c01ddc1274dcac08ed2436fcb049354d7f66d9b6de55dc18d4af9af334c93dfc574d31446b69b17a70681139c7d26c04a40dca060babff9d2a691f6a5e9b93bd5967979b91f7a75d33bb659ec0c97c4e45974edec935c7f02df1ebf95aa2b2dadfc7ca64871c9fc48c95d0c6d7e77218706e0ad9b0ea0ab20a3826ef00ec0ee5fa0c987efd32d1e55520b12d227097be7b7313effeffdaea69d8aeda46b772613ed7f2b88d46d308e577659ec3f14ebb9df58468c7c9cc9b797eb714169773755be89faf93e1084bff1b047fe57dc1a8f02551e1654a1b558e083040d3b9cb6bb5fed2d4b3a235ee4af558eda311f01951f7c43e1f4c186281b91c1e7f9b71ee796923e27860d935778355ec244ccebca4bbe57ab5733fdd5af7e8fe8e2fa86ec7729c09ddde65c7c682d333ff4eb25d1ffa67e7953030c7e74b33f79bc2bb08e1faaa43374fec35a9dfe3a1c36161b81ff23fc1b63fc403bf222ef2a823b47fcc650c41442fcca6e3938dbc4cabe5b56dea75b1f66c74f684638f5673e40ffcf655b52177efb6fd7bda83ff67cad98acbb43ff85727c7491c3c04cb020ca8cd3669967e2f7b1d6838a094da1f4aa04ec7a05456748b7a10eee57d2d9bed88956549fa8d3c2c2a516aa222cefb46a8544b28952024c03c44401bc2cf2407a91461ff5856dd07dd535aad477ebad0b12cfc6256e12b65bc4a80f5105397111a10fb96952de32807630712c0377e02085f8584c5937557b481f109f552b37b4f82dfa085de12b477c52627fae5e7569c0a1166b6e6f81953651069bf114d5c1d2b2320823d673e0b9a696ef6917494e942d76d20628ce325dcb4c4a05bbcc045ff828c116ad714640ba9313a5cb5bd97b18d734881ebfa37d461965ece1401442e447626b6ecbcff8933c18c78b51ec57132a3ef2009e1dfb949fabd60b2be17be8568e9abec7f41909df0a20cce6450f30cba8b7355e8950c6d87df90690ce656c65e80cb4b52ffe9b8bf2d9f9d9cf714fb4bd2712e62f4c59e093205a403b96ff9430eef950efd1b198ef7d9277965a9e8f40e06a704035ede4877fb725f4832cdf50e027eca17258d3b52023b842e7a93b0439f5833cc36003bcbbc16dccfc6a4f53ba834a865f4ac4e10780daf558cb7bab1057db52045674e38674892a5c333543b521bf100b2e0ebf3b7142cae61f6d830fcbd6843d87a1ec41849d8fd2ddc0e16e2acd4b3c2e40949ccedc82800fc1b5cce2627e10f7c1767b34b626de24fad434d564634721e3d3760abb330555192218e8d2282ee9b061344b0befeacf26dac86235dd177243fdfb667fcba8b7a242d1924a4eb1fe5d27776d01ca674ebaff9491fce155af66b1a1eef41f02b7ce972046687b95e493338abeb4b8326f60fa1a1aab3b9d68f35e6cffdbd64db4a31943d326950f50cae2d9cb147facdafa4e8784133e1da21276d2e2bcaad727b45a8c46f37e43fe27fe0f7609c4c48764aae7872407f6e5f266c64a879ab759c0572503dd94411e2039740e0d3deedff9884846551f20003690989a3e7de9e5e04f8f40914c265d36f3bde6a3830a8a94e50f9b9ebe31e4132f838f90d1ec1a8655e91ce53c6fed413a5b2b129d3f7af1462d3ef9ad580618d4f210d5eb2808e150ec365118cc850e824f51117ecdce405d139f049969cab275d81c6782e0373d9b48e52471c93d7444534b514569d3472799a228d68dd442ae6a7f64d830cbc0e13b5c24f35efd62b0b38f7ff6c40825c6192e1e95077b021246bdd6f8b6ab014ab98b24f4ec0d4255dfa2b80edac40429bd66552079b51e0256e83d13ddf9dd305ab4fed593628580067b943652f08fa2436e92998b5995b32f619d7ecf59b24a6256ebee985196a810de4d6b5deb6682488396b880df61c1b520d1420cf2b249b53c9fe79690ef7cde7ff7a199a8866d11f7e70be8ca7c4acd8636062dc45a5366a3642984e3acdce3a5613370e25b5eda79b78accda999cacf6eb7589108721c0b9e8eab2c7c1cd6062e25990bd4ff12b50acaa0883fed23e1ec186a7cd098ae155c4f3142ea519dd496cf3b484183af66843ca6282e217272ab4b24b248697c2021685b5df4935c4bb740b30a00acc279aa038641828a6cb57bf040a85be54e8fa17b9d02171caf7e7b85115bb0f2b7a583bc980a929843b7f7b3a88f5730207967bb8252f5e7e39a5d99138b26c35ce6cc39eb3ecaf6ba3aa958345cd1e17fe918e2eb87414325628f373afbd75df009a1c74949789bae089cec179257663ec01f2b2ef6569cb818f01e84b7cbdb72ba394c5d2282a94f671570b074ccfc6a40ac72dafaf4b95bad041383bbc25d30c3972d2042a8a08059f1296a6f1a532697322799db7b2f8ee8d18dc8165cde01d4c0e94f26189d20e10d464184170a44d6d4a7735e19c6c375a52e925c209c3ac4c5c4ef29fbbf28981551d682defcd57a262630eef56ce5c842738973230df5b6df618657c9570100d2f109466ae1ef4bcda62a027b8504f6a80b13850bb94e56bbfdca79a19110b193f7fa228e3cd4840bc9d00e40bfd00485bc5a8ed027191a44501d31c83d43f2b4098d999a5bed1fb9df21ae66925333076630e9786a984de2dd1ed8dfac97526dbcec85eba85d6d7921fa921ae812e02ee4f16510ee939a015b5fe1755ae5127ed8129624e0e2e763090984e9bbf15318f41c916e05acab127b4389b2a620b82b7124d6edc6a00507649271cd583d428457e52478c61ca5a36cb0cc34b4b17651b128ed4bfe935250a019e17c00294ea37ff99ddfdd4f0260ea490045c21313a3aeb110299b878619aabdd2df78a1780172dff779e9a0642f8436ba2e7d9eb04d54cfc31f496be4f618247354b4cded80c6dc45df7245df52fbea2b67219d84d001504607908aade4de1dcb3042e9a46035955b44d352bd77a162cca7bebf1c69e0063cacf24348e0c01f114bc3c0c99112b62b493879ed7a03a30dc809ad0efda004ccb47e65e244c7d8287aa2c5135905bfbbc47e701c800850e8ebabe9a84f32532aeb659396122b30e9f835c285aa3bcec04347c5595a24329fbffbe837ec678c52f5439e610aca3583393abd4e30a2da2627706c620fea826981af84db2e108d0cb1eee94dd3b221eedbbeb24fd364174132cc33b6542bb9c35ffefbdab583b217e23d9a619b68596af66bf143bdcc7db64f60055b0b6dffc6452846fe7613e10f02a25bd3f264ef28cc5ba29e9bcf83aa5a5850bf5e08877b2c2ce2eacb6a469beb0e20f34705c4e51ee70371df9ebbfdb243bd89eee9f0b87fff90ab04774c210f23b0567dc2ed68862b255d261d9f07395ae6b89786efa2f934f8434ba747de6db0a0f0d812fd3a3f6604ba7e09abaccef8f5d2d26797e9ad9bfc7138d7549233b12cced38189b219e5996aad5fb97d78bddf8ce0c521f72121563653991a79fd76a02637243a341c9863f2c24723e1afcb9fc73d796c8bd55954f23bfddabe75308b6d9f1a8e3724cc519c93607b34dc01c162ccdf04d8d2f1cfe9e55396d666eabfa630d886e43b047e2ae300f16f646cdaf712894ff67bb3e85f820bf3b79a71f00f8530f25c5eabe035ddedc7994dea5e0181e9b74553edc11edac142864446b616a9dfbe5fedad509b8fb81759875094cf855373683eb3a9b520f951f6b9c8358f88924f62fa56e83d1bd63a185ddde8f634d8a91c729cf984da539cf5cc76f6e5252b7987ce089f99b4e7eff3df1bfce07eeb0a0fc2b09f661dce3c178723bcf55568732018cd57285cee25dc1a2cbe98dc85c0af88f2ee250ff8cf3e678871afdcc469a0af0e97e65090c88513e25e723947e404d3b025ebe0e7941de79963f8703f732202ef993c38df70bd2b7dd23ede159ab12b3325827f23cb6b79785c1fdbcfe285667bbd851a6df99d3ebe9e5d10f76de8dc143e48fbeef4a1f0f39571855df8e4a4b776df68791663cc2ee725d784c7f72fc727d7addfdbf66d220cf127f7a1a69755633193f6f4d4504df7e1cdc494f0d2457df0e1db431d0439cda1248edeb51dfb462eed281d11c4b682608c2e8355be38360a13dba0448a3f8b1e761764e9731e9e977e98b8c0dec66055b3c78799c2bc26056cf80f200bf438c3d7527169caaff09c4d12d80dc88a1953d5a0a1285a997f712c0d786398d4b5299419f5a5a22dea240d9b93a132f2aa6b9c4d50ef149605e70399a46f7508e35822d62ebc09cf4d5ea3f2927f8893bd3c7fa62a239e5f9ba247636b9684a4fc97c7d8af823f80cf55fe1e3226c7ecf87d16cc509a7aa3cc6a67fc33d27389d971d5555c1d17d76e53f9a5b43937ce9dd2e2dab7eb4d05eb92fc3fc639568984651f6f22e3650fa70519a81837f01b6fc72a0fe17b179397304b7e0dc12d3ef17c87d43bdfeffb7a3fc927bd0959e318ebcdd9c44c291507dd60aa87aaa520fc701bae07e8999a957f41bf7e97d8769dee2352093be82e04df92bdf74c5eb645a4daf1e61d94d62adbf821e7b457d8adbe8c26c828bac9878bfcbcc02873b8a56483199d87acb010ce7fba40e07e96934ca855b03c766756d9d92ab6a32ba7a379e6b842b5f18dc4672e3916fb437261837576b3f06d092b4e6522cd8f3bfc1eff1c11dc3a359259f09cf6cdcb3cedfe7f2ec5160b8cd189ef1833f0acdf1492347d41267a5c09b4caf5f79c52842ce7159f51998e0e714873624c5c914a1c47bd56c6a770c282c0eafeccdf606026ce834a7cc2cb329d59a63ee3c25e95c267585baf1b834b62e59b79f822080c9bc1279e17ddd66cdc23ad31400994e6b4c6f2a85cd876cd798aaa2b35976ba546a231f07c0b389bbb9d2a667e5fc53f917329c37fc25d5b5a423ed607c63a08c0685dec7869cd4d7d5109c05730e7e277ec0c3dafb8bbac1ea75ae32c6564602f113b85b98847d27d29ff771311afd69ce26e9a26a56e591c4ab5a95cec66322f66b2056085d902b9e910684c1ddfca2e6e1ce96685e5611cc260e8990b5402349e372f1cdf0b8648b5923f1cd1afbb89372e0082b25ed47b6b236b0ef5ad36aacdc396cd0f34aeaefa2400f82526b470d34e419f454151ae93b86b9fb85d9dc3dcdc7f016e92fda44c3a3428f15bdfe690dd254cbfe9b4eccc960890499e482a4d2cc843822f8bc41c4ff2adeadc56dd1a0008b1dd9ae5fddf2ff251a7f1776a66ff49e1181cc631fbf9c0012ffe0152a3ebd2e19fe564067ed3cf829ff9c347f0fbb9e93027d9a69fe4d4e57176084f714faf3e025d63263e22c05b72e929cfccd2f1f2376a1592fdd70e2ee96125b8586a9b927d532e3423cb37fe53c9d73bd7acb5f5d4bfb9271d8196adc331a832b57ab415701381b0545d7588a7b6e1950256c90df7942cfa3d5645f765e478dde83bcd7104e1c835d5c1868b84333a72a625744ddee67be6c853bb03ad471d7818a1f54c363a9a02fa332edb374cfd79a0644481bfcc6235e1912352d10ad20b9fdd066762a56317ca600a880ba83e2ecf51f0841c4d348f67fbee2c593fa1fdd04c7afd2260b9419bea9f3cf08a01bd6ebc68091a10e0fb954c0860aa24a8142d446f866caffeda56f65b8758e71bf37f1227f616ce470e1efb45840b083bd088e5689784406752601a46e578e797f4dc0186cd7724f4fb670d0a3011dc5731299cfb75f4e00a20de9cebf6ff50c4fc7691ecfef4f9f2ea07d56fdf522207e0d7440fe113074d98a5518599218d8b2388f994bea711b8ae15e5f05b7cf0a77f22a063aa23472ea5bc030d6058d17e6b4a929fe066b0e41c8054b3e004875fa6b48248cf97265eb2df2813e607ed794565fed7ccc5b3bba0c24264272d37028626a984e28961c21ab8cb2861c27dfb205ff343e5ffc8b30ed991c63d7db1615fd4a7ebdef5b73a0c7ccd6d9798189b31c923c2ec15443f0fdeae5319512bd04eb35e2137993cea3005fee9955b02f3770426f5b463fe1369f27e0a7ce851dfa1fc92aafb297b2b2b6519e8b56fcbad8c33109d564602ce0a395f470c51ddfd83bb74e2266d9cb4c1f16ee27b36fca0c76c29ef280fd744cbacac73e7e87c4dc2ce141af12d22c5b685ee1489000f11473a432eedd88c7d2e49365558fb4f633082581c3e0afc90167be99e49c356036e5c5d6a209bb05d778922aa4f9c0e7923472245eee49665c5fc6e414161aa9f01bec5943c7593a234ea85d13e396a313b142bf8621e7f0584d67eb0a7dc1fee23fb8088645650fb4302d86848d7e0123cc41a1b637a63a3375ef3c122afb64a1d1e9574a828f3952df081319fa19b9a1b4eacbe3165ee1073a9a210b8c29477c893d35410ab6e1fc6b0c37f3696d201c481d0f4085fa7010df69dabe86e7884e4ebd501529ab656d467dfe55c72d71175e452c3d0fbc7823e172b76625572dfee63c6eb2d24cda4ad17537ac7e2e05eed738826747db5cab1ec40a595b4c22a6053eefd97a1de499467f91f55bf72610de35c6ca5d995117e14958a1a37cc254dd4c76b2f0d00d13665608607ca6fd81884f490c0e144a166987869e1c5c7cf80a22cc1d13e6912705fa580460cca1374d7159de3b0715a6805aa211627282bd63588ae95ae0c4c7743924cf8e5faa7425f96706f7ad165f4df2cc6355cc22b63ad8f0d8d12c35fdb7f0f068c381a16d7535c78c70b48b957ecbe5c69f52617d91e4fbde45111d31581602996352398f5215761a0b321055272e9e50531c5df6e2cfa38b490d10133e0961896cf47d2b963cb198109307dc50a632302ab54382c13c3dd93020a94d85c1ae227ec23f8cb9c06b43afb657adfe748ecef3489e4c7e4b15efeb8249d3ce48dc5704ee78ff767926d81c2a835a64d2700a1b192faece44b347426c9058feccf3c750d0d59c111e62f919d0873eafbe43305f21dbe246be5a3b606221daa93840833d1a6330376b0a9cefcb3ef4d18dee902c8122dc1df6db90a39d50f05b0704b2dfb3f22e96ab8c7f528331c29b5dcba3c7b7fb1eb0cc48a088e8d25286db13026666c59b1f900cded42f8c0ea937a0d3ac672de79f3bf515eec970e31f5e104ebf27c242a0fdc2e9c3559b1a9e8fddc631d92131cbe54e71e1823b4855d421b1f367818ce78464bc876e3d7b8c453a7e1959d1e437219877638d37f763f0fd0adbad9608fa91c419d7abd1925fc5c45b611aaffd7573a19db2913ad33587cb57fdc59f38acba779b2c53f6b0e322b885e3b15e63567a20c90fd403b8b327ab25726deb01e9803f9a89d5f491f08b683a5e57e6bed92f87264c36ed33cf97f94939080fad42de38a421870fbfdf81410d0e8b4bb3f0d6fe1c2ca2fd79e0cfa765e534cbd456e4c7a3e6703b7c0a67f4e6ab1f31486c9905148909961e4b87516505dfa5190f8aa02a319711c0d8a3277480467a24bb36989b50b340cc3c23fd970773e60cd56a1ecd8fe322eea4a107ff5a4de04425b59d5dfddfbb3da13797c0046a3005817648c720c326eea2b7a99547a7b38e1fabe568e175fa8c2aa63575b450c55754483bac96b33e54b909670212eacaeac6e67f3de0edf66ca0c02ec3f08a49f040d57867b60878033fc4cf9d4d71e4ae933fa4985083f33213ce907299c7bcc2b197e92fa5156a90bf5845787d36cb786e8d0f304c19087ad8fc0cbbd18b351c70a968e137c351fa31c71a5fc5a73272c5c0ce5e41cc27b792cfe0c74005540df8e48e668da04810141e9ba49343697467c1920ab7e2b22343ec679604d934622002b4bc6ef368f395c8a27117f92215c636e17e8cd457bf7b130c41ccfb4c54bce4f716a57343fbcc1d6fba805fb624afe02404a963c1509332a12a3d9b4b9c8f3307dc2ea1c4d469e181bb11d939a859fa2d78f0d4eb3e7b7980aaf5930fd500dae83675a238119e04357a5dc5750b18532260552d2250d0e68bd49430b74c9cceccec8e4c81c32391381ca9a96f3d5b13c2b10940a00df4a0eaa7bc0565590d24552979b5ca2af63dec5bbfc0b10b878ba352b6edb3a98878de5d27739c081af4e463272e50813cf24e3a0006b24d5feb071e1cfc32da0a67942a2686784c5b3910b0af70515f7975f4b6cf054c2d2aff6d458419518844de80e173bb0560c2686d1fbabf8f3ac5b2cd2ad91ddf38d619d6c1ff9b5b9ece9d8fef979fa717642c6403050e2299f79c0f9eff8d8e9ba0e43330340124279b1d648765d39991dbccfe6d12c5f867267f119aa08a7a92185c46bb843a82b244a0c5c8c50b3f80cc0f473eae73fba9fa974e09ca93777a48ceede22182a2719e8c133f58bfea90a493527b33d08e0a310d3a457d94a7c29c5a1304b8ce3e07fa8132d754b38a73c8a320acabb74a6b1b4a26b8b8c1154d8fec14efa6ede5c3bf5c5864869fc0d902998d1d19cf961d0cf130c3524904b93617e21458e8d58c231681573a1de291241552fd8bb519e2df4de89e9566c97ef7d2d1ae05cb1a90b32b6c317b392b1f5a01e51b6a63d9adea17fec8c90840a776e29a8dd834b96dcd3dc1170cea0c766cc3efaa853e5b495b80594832a2beb47f4663abd784ea211660163f8ac81458c120600a84546df155182e15c98f0c8f6abc0fbccf7f9cecc2cd703bfdb6693a64976d8b69478d86f53b338597d0c23de2fcb7baef5c75bb85b74d3cfa17c84b43ea9f1023b8ead2c69fbaeb4ed3f5e6b3be9bff6268570ded651de426ed153baa54dc7d8fffff566bbbee16f5bbfbfd43fed4c57e875be17c384f441e90a6064ab403848d564f89787ea0f8dfe4f7115a8029da4fa011eb785cbda1311d008edf556200e7e17afaf55be604a7ffb00dfd543afb857d65b13435909c572a5ee3c00ae5e7f2e62e370dbc9de205d47d8862ebcbcef4553ea65d8ba194217b7a6685677c702560588975ee2288bfc6fab2e2930c32dd516ff4ec87f0cfe161c3f87c8983d6056f67099f0fff9be1f3c1f395fa3dc4fd6f19bf71c83b542a62758edcc9e0ccd6b03233e97619cb01bb865b15f32fac7749e7e1269cb9cc2a56cfb17345ea286ca46433b371841780b8050488643d2b8a79e284c45d50bc2048cdfeaeb1f4401776adbacaf8b68a1172a18b4150b856d6087e9c0046e4fc3d5b703ddc0116a327eae01bf0cfedfea5d4da4653e579e2cc3401dc6c7de0bd48d180c8a1d59301e12d792dbe9ccd2c50678bfafab93934d29500da0511837e9814f711be6f78606d5eb657484dca1568ae5861c80dfdc82f1ed199fd0a0159b61349cb33898ebaae533f10a16fd281d907f9471766ea28830873c199bbf7c20426f5aa565cd4894cd56d0a3d78e86a3cfdffbf90dcd1a44142b957e0cb1a8bae6a70ba91a139dd0f810f7773936e8721f04d1eb4b24a1f1eaa5ec2d718b23026b1e27790ff76799f741949cf5c19ba5f92b25ca9ab0172b38da3b41e19e3a61ed33d3cdf014991fb3db032afa820732463b03ac78acc6403a3c65755601073ae3ee5fd83f16e0746ee001607189202ae2a179fc8a11c0452b7958845f3019dcf6833a85a38fb21a037d14fb4f444efc7d3cfc07192617172355f0ca89849fc03cf6e4c25d8207d527bc1a9efad3006a3dc0fef5ece330c98ce4539737511612f293eb599025a12ac9c21c81db5ecbb6bda646410104d31fa4bc361170c3c3b982e13e3efa75cd5a5de95ac4d2cb98eee97c7e885813056afc04f37f45a4c8b0215003fae88e27bf612dbb2ad9c62283ab22ef413e1de6e7146a0c2eef205c6e454472b45be74589ea97c21d65fe7ee468c8d80fa3c728f380b3c19c9776cb567fb3ba336ef708356fcc6dd75fc4526482fb6800fee4ac01032becbc16c47b87268c18800933613ecaa039ba22bde11cd8f0616548290c12f3ff67bd31f8ff46fe2b62cb73ab5078568f74e1faa2aea598769e4a9cb3800a9061ca806021cc62a44fc1cf04e96dfc193fbf099f42a2fe6260eeb0638d53d4177994d4e08684e387323b8c1e9be60b31c18dbb16de72b0be0d86b6bda9f7af8296c422da3a6ba772377f70042bc92753c776b03f006b89b365305e539438f8c41ea456cd0896cda26dd506d63da25ee7212dbe0caaf7878ef6187c9b73d6d0416646e6b5f997b53a0535b33a69cb8f2f476fd02cd0769336a93597a07f0d5a1db01b6c9cda61ecd720f7ec1e84e252655c2bb76a0dacd96ece8686cabe51433e047bff00d76ce533c5d3c35ce97ffad1de37856d650edff6209b8e18dabee5cd377ef3e7e99fa3f88f79d47dafe935f3924d179f4cf159d0e1d9e6379ba70e94933cca7da4d347b559ee2e534b2f269d5ce092bd2248a3785311009d691b6e6d4d34d55eb21b6d63ee6bb856ff84fb9f09fb8a4ce4196e87321b81f59da17d5349fc3a0bbc4538ca5e94dbfa8c8fda7309ea5700c2d650992467a31d1301e8aed5bf74150dfb9c0e2374af81e204db752e61f9f29ab3bcb566f0cb7bc501e5105f6456200930c56f739112fd4a1104f6023e4a6526a178c1cc37517153cc5dba0ae2f8d06e2c03427c992fa6ee56dfb9858faa8c359b54f1b72476e68026d12b9f28d29c29a271383a251be0901d107155f6b7383a4bc78818f10dc5bc9e081e683501bd258a5e577527200effc047f61540f7b6f37c82fe8403f94c2f8d6682b9577d259ac7c0b27674e6fbcaef9d94ca4f25a50f7f3042814f38c2eaa87a20f75ee6e31cc25b379a13f1db45fab166eb18cee191ca53851eb4eed8424f1c8cd842e077b5e83b8b6491da158b6aab498799e17fd3128f001a793a509fb54656a620906fb77ed6f38cf1913f60b70edf4d5e750b5b042ad7dda97eace7106cdb13ee8fd2ffe27d8639ca48e31d235c70236eab33a687955f9dc44e280ecb67a8246b8ee3a0c82b298d05c564bff236e02c3abf71bf68064a3d76d13ba646fe0b24c07e20b5b4ecf22e2b0dc0b10f4e58438f26679075daf117564507db48a0088c9aba357d13c8f679d3e18203f55450021b45a4c826ebd0edf92ca09fd59731fc340322f5f890569d45fa604b8f00c80f91c64dcc0adb4585e4b88d5c4c50514dd286c5497fb87b8181183fa462d090c6ae1834dc3f7d41f1b83647cd1cd2f6f07005b5fb2be9490f097b517afff2447af4ef60c9165228702b3064f691798ca32501062584f0da0dd0c6df314cf1a75d3bc8fd622d9d7d81f3b28218477e17aa5a1083917202143e7492e06dd14612cd246956d011374d27d69a8269102d46fcb56e6b6287329c09c27e593c64591583b5e02f2914a024cdd35b3d520923a84624910344fb1cc7ccf8e12e66a85490980c3a386296bc59c8b096c564d9e123c2d63a863612b7ca5292f62f3db4e90540f21c0ae08acfbc1bb8d8a4e7778c66a972615037b992bc031b6089a4c06c04db2fc6f6b20d21138e0c273d976031aa78b12ba659d70e18db5cadf70d44febb41f31a4e2bb4a52c44180718024e07809f1dfcb1eee431413cd12bd82962d7ae2787ef6d99645f62d6c30d23a9c5bdd23a77fd6e72913c5ce2a146e429dc328ca3afbb4af2bbc6072244d91091bc735df56fcf90951f0c1d9038385f8260eb9fa0a9760a7af8fdf874a1d824a6fc6550bc6142bd7c1f07c6decb5225632182f236bbc7b74b4e0e335cc16d644401cb155cd805b36967000dee131ed777f81c681b4b3390aad0660073b138bfd6c80442782301fcc946a67de4c644c718dfd6a464622f28a9763c13aed2da5e4efbaf4ccfb365872a455912316cf4bc1fecf86416d62a9fdd2ef5ae4586d17f6a2bcb1db12132ac60f302bb530637af30c5863b8d5a89993efc986339cd5e5c7a5d88d24d2395384f096722d58d51cd4871b6c847786dbaf8b962793a7c40c88b5de9eb60c9073971a80c8eb2e23786736c03927532f16138d67f80d0578dea00a4d5677ec4ac68e0621bdaa22dfb7a4dc57dcb9c6a9a12e8c03e7298660d1703edbf1b0e5da3b7e2b7cf61e01f4c982ca6723c36b315f236a05f047d17579fd2d466f65f6e8d236b3bce42b624ffd6e90bfeebe275c19dce6fc4efcf7ae89b9b4cf187bc37c5379b59d8d0bf187e017f4bf58e4699564b09b45b70f66ebc8a6a6f0356dcdbd4bbf5f0fe5e79b114987380dbb92e7e9b17baf83ca546c25af5fec0a69dc7b45eba70c3627fe9dadc3d2b6afce0bea37b1363f65693279dedcf47a60779f7aff4355d13dc351c0343b7b8c0a02acc6997f31a7eebf0a56e7e5c1e34027043547d5f9b6f1624fc8b4d70d1b4c7111b8efc100ee67d1f8ecf79939e6cd512f852e564e969b89b3c0d1d52cf5ffa952dd33ab56e9217b0d7731672c005d07e88e64fd2549b969ca74dd8edd5ea6e64db5c8700c41f3dc49fcd007e77ca7fbc5b7163c4764e1809c3a9c57fc06d30f020ce32f9bbdf4b17853e00381aaa8db4a4f443b3bbb9951d82b8b3cac882c3c5f2fd39ee6af2993077de084b3a974ddf76e772456b6edbb69c3e744233403845bf75ed0c0c3525d46fe97005d22ace376e46673305f930e2a0e1b41336b7da3a0b865dc7b91f974d61af32662fd976ad098c1847e6eb34b63b6f2a5045e9a817ab9fd615d8c6c31cbf39883bc19a50f9c9c704f3a331784ef201ddf2a65393d70441051b1a49ce4c728a7d96671a39d56c881ffe70ac71d4799651b5c01f58a38936ccb15565510a0049840935aa3052de62ec81423704229fdb45079bfc32e7d868b7d4e458faf94ff3ffa5344e2eafea31e180f46c491c44aa9587f2046385142d858014c76c76ff69f89cb93584136580db5a697e0f73b6b33ebc9cc68a573bb36a9400f70aa69558980a8bcc54b9661b938a52e28d3974a490cf11db6e3f94ffe5006cff1507f67f92adcf361eae76fb73de1c2ef4f49639b5ac081982dcb820f53702944ac82233a84ef21262d5a1732b1ad8f48233616a5ba923a89109107b70333b95a81162f0cc1e520bda540dfc83fe4c0f50c9c85ab22da477732f61846ee66c3108cb3a919fe4f26c0e7680c6cca1da3a88fb1fe1adfd71ea34d3b20716bfd6cf2bc75a19dab71c4c51bf2d0b16b4ec85ef4b843a7b0c56117923f80b18bc679381a82c7b2966996c062f201162240f4535337a89af8f0d50ca9f0de0612ac48eda04b3c2cf318a974dd6d5edc76bfa9be9aee262d4554d994fa360fda47106973acd79c1bdacb7bdcaf07b75cbb672b780bfc8c081ee75fb01653bb566d71aeaea59efd84f3df83e30b7627e902ec3a3d8d6c20b05b2230d7bc600360beb0e1a4bdae1ac203ecc37d76b6adcff8c9a9e87ddd3b3cd94f44c4b27f3ef88b23f405a6cac6b8ea90534f76c520e7e03e23b65670624f4f388a087e0061af802e57b85d1f0e3f84b875739db31d859021cd298891174c68e2296cea189bfde61f80a01bca3e3ef904a7540f0703b04f18cb302fde370ba5e552d89ed2bc48f15d9bb4ce669fa00a26bfb46e5cb1903e45fcbf4fea26bc9df45816764d07e14a1b0a0ae34ff1d471d98469195fec8c95c22a2ff471817efad98850f955916ea2f7ee50d1a9f6884559f52442bf4eee95bceb0ea9bc4e598c094176e7667ccd668fa41bcf38a34e2b8d1ce434d7371b26ec8e02c75b45c6575f83b46b656652ae473112a70ecc78f56c7e0e2aaf248877cae0729bf362bcf591f578e33933469539b69f5315ab55c0778a67623d9bb459861b4f4182eb26517bc77b85999b6a59905020a1e4fbc8abf6ebd38d59bd0a351dd57fbe929b1db27d39acc9a48ad88eab1f16fdf4b83b4ab30eb16731cc90985cb7bb1d4cb8dc938fc9ba7be4cde02eeafaf8343ead0352087856ebc26b7009c789c41a3a2592d63527e9b225816b7bae181393d5b39f257428be18e44af25f0a7562b1ef4412aa1307b17edf9727f8d14a8b2da71d936d64c5c3b8e90a96f0d4d0bb771ae0340e2336382b2255844708932ef66e874c26edd6d67653fb64373666381412ab3b2be6dcf3d48a61d913d85598b41fb4c91233e3ca7ac51008f0e746063c1be7916fb80d4e4744c06c4a01d6f4d29d376e32ee2e5c6d647c5e99d306167e144d68b08454ee1d19a4aa7aeb5ca594e6b59ede4e18cc571c66c93b32dcaaa4f7b77568408f3a3a4b291772f249fcd4549bab3798610229d7e8608253fa845d2b4093c0979eb23b7863a33581ebb41bcea694950f405c685546ec84bf0c5d6077acdd829587588aa4fac8eb2bc22e52dd63a10174ccdbe272ca400e2db96e16dc7baff3f8b23015cfe4f6673e5736241671e3cef3215fbd02756390314590e22b76799dedefa274363bc2740b7afd6bfcbd9716fd133f4bb8c1dfe9de3f31fdd5dfc36406e6cc0c635969c8e99b9e73513e3c474c6b33182d187cc1ac64b4ebdb6131ccbfacbaa340c877cc1fc1f58e058f2717a801b061f11f150e11c473f766499757817c7aadd603eb9b681bf5ed5d4df172031fc73fae9626477a1bef5765000e96e3dc39a539e6f7b427203fd19e11578a7b6f576acdd437ae6ff2e72d38be3a8565eedd5c00bed5d4ba432b19e04dfdec4d8b9de964fccd438782803815632e010787344b69bf8e1091ce062a0965ade94ca82d98267480b069b28881788e4f8ec1d87eaf879ae22c72df45f8915a658e294308bc16fcbcb8eaaeee101fe5327429b2f71ee3b9cf33fb8acbc6ab8e82fc4dc093fb8fa444bb5dc5f3e586d3980c2b35ee73069c4442a5811236870a4769c39fc169f0d380dab95ac8aa5f850d1c2078a0c2c36d33f04e30f36c9547adb0724438e0c8327acfc30860a017935454078b2ed0702028da08f5becd47dbb0b0b2eaf6dded58d57f32196c5a459d6aee2ad60e3815220dbb25f2db79ff7334346d7698d41f289fdbf65dfbd6c2ef078b2ee50d4a97f7c0a66437591bfc6c14c50a0e2ff9875d60efd9c971f6a1958627b18d170d7579265b60ea11e762f6b53f568b1cbeffc6b93a216fd8c22d98932500ec1b0df00c4a844529af558dbd2a548e921fa6928a8bf345cf90597b7dc9af23794b424d1e6e6510efda9c1f44082abb0ea732145926d3301fb7390a519c5a9d6024b4bb3d88f94fe0f12b106d5d6d7dfcd1190e75da89738405c5ff7a1a947b3060ba5a482fb79cf917cb8d7f77a6e885b3f6daa73893f22922e0a762e8d3ca9feb289642540bd94236451ca282fd97217229f829b6deaa67b83b23098c2e49c6656ac448e2eee584697c55dd1d7c8971703355989d8b68f291f87e6bae450a3171a1cc6a81fe3bdd6eda517aca5a27a3fcdb7bf44ca385cbfdad14f0ceec891a586716a95adf1cacf28c8bade8630ac3abde41c79cdf186f61e2eb94c201e09926cb24fb5fff8c916e46cd95da73119a3dc1c1b873e3f4c4a4d60d517a6c22c8d97998d89bc5d8c1e3f3e887ce7d5c9aa8dc206016871cf7bb7e46861518eaeda64c3740a35d87ffdd68e03dee8eddc548e9cdc26f80f0f11ad28329e22dbae2a74e109c6e6503718b89989ce247bca48ebd93bff2616f0da8fc455dd9c030381d70780afede063f5dc8901e1fde1ae3c1f412d10edfbd70e7a81f829846a8a8e76e9c59986cb49dc521c815cc53e42a4a3fa8a100026e181e65afb654180a1351fd8225ba22dc978d1ead20f7c3327a188d29532d63f89abcb6b5a284781e7490952fb5bd9f1a0e9b8fc2742a8704d5b339f2c4a40061f42e4d822be492407a68a8ba403578e330f431b38a7e9dc28f56f48a33806892d77f78ad9ab921eb7dbb8a6a88e8f93b2ec65f231070ba48181ce7cb1f1b2eb17e169398332b2de71c34194b1ecc567dfd36f10aa417c379abf228ef80a7c347bba9ef338b201712f3de8201df43c7e866b1b4396ef5e9bd0b6f86fd71fcebefe08ae688a436bf3f899f35c7d8191c5295cdcc46d77e365592e556ef68863a78e6e8a90d766489699a9dd1b8c1bb77daa72fceeb7b7e0390f35175cc4d10aadc416acce1f0bc20ae6ab12ac687facd0102490eb95a7e8957ed5f02c0a2e33dc0cf0000af2963a21fc1f2e61c3586cf46f33528e486e2ce5827365c091662e81e5f3194d07ea1654176e856eba897b5b83728cddb15700164087e12c65053ab29baa370c5eac4020aeb80df499493fe9f958a3299ad301f5b7c244436fe74fa2a9f95dc4055d78dc3183957184781106323294e18644878590856707ca8e972c7758f5967c038348cd547791729a151e6f67973389f0ccd988a516f141a5f658be30f11ba5d8c58e5738146aa4246b9f6b94142badbcd9cac9f80f48a05de5a5bc315ea5f83fc5998930a7b8aa80aae99d7892b7592ed3edb1445059f4a83227445f61649fc095d3a42cbdfeb4823d5e31aa351a07044503223ee0a0c5095696ff9bd3aa377d9efd480a278fde5fdb8abca40818b9f39822f0019126df80fc09a80bee8a741e6e4bb82de6c44ba23662084ac654584b17f24a8df085bd163ec24e848c7ce5f9df3f08fe957d277fe5174740b2e31c5dd08596a2c098647354c3f78f91e319d2c1f0227e52e1f7eeac7d76f94a422beb9973e95f11807b157bd45f9d2b7ea9afaabc15ff9af445797087f54c1f7306752603fcc4a1b3e30704a278bbab96faaa4366e7a9731b89bf2d27ea8a578bb656fa67b7c18aed7946cd389d3ab61f870521ba3ce9f36571f7a1b54ad6fdd6e4b7135836ed23d1efdc47775e0a2c9e6f6b0480da2f1926697b66df3b10db1d98dbff6f48f64be50e5b740d1ee6ea0fc965629be44b89870df8b9b683adef1648f7dac067c89577127842735b8c8bbf44ffad610871a746711952b98dd9e017ffa49bede2f19b54479add718db782e6383141abbdf5a5b539c230d6da48e0fe9899830e4d1f9b909f573540cec1558f60497b511fafddefa4f29ec19ec83937e0df5e237a5ab19c49127ee0ee983f9ace22ac5ba2d748ba647540a95e491487d804293d691cc015d57835009e8ab1f1c11379da0bc5a62aed4f72bd37177d5a0b4db6811b13dd3c063f1e8e91ee91c9bfbfb80f4373ca73454a4ce3a2e0ed9344ffdfd23ecdc7be3e9d1085e2d8991ae7bd3e62a7e22117806b7d37ed70b03352d313b0bf6b0404016ee5d8efb3b5a56182e72b940e67acf3619d6deee8f15e7208fb2fb75b8d81016c32805dfc315a9a7ea77fd66b2667f793596f6ef0d3e91a0944e7332778f62758c54bf1c487c882e79ebf9b5a8d9dfc70c0fc688a5d741adad70468250f8219ed56c80640f9dd0380c100bdb398ea073b151ce824bea82939487659d5b7273154a6c16d8e8ac67104db2a4fdbe5d436170f1b94a90237cbfd4db3133831276d927eac75d36fb2ffec31bdb950db98ec9e700ab56402ee21c4ff0a3630b024e900000000000000005cb7feb7d65b6b5ba6f99d5292465a427f4bbc2cab884c492699d26c37b5ba9815003000adb5d69a6605300be70aa10adb28ad6101c8218c39d3ba76f377b65070c30c1c2158e3074a4a009e006288052984094a8f06801082012083f8e4bbbbddcbbd68b263314123857960c201104168dbe1c2ddd445d3a94014000410689cc000207ff8f129263e78a0f418638de59f8c0380f8a10f7cd8438a1e6e80e481012078e0b12400e40e1200b1436a4be578b8dcf76aea3001103a5000640e290f0091430340e29092c2c30cf6c12a4000081cfcbcbf71934c2d2ae4934ae50d283dc680010440dc607810a40de8687c91cd382ec9e45843478f1e634801840d6b988ffb5bbf25f3cb0e1413131ecb8e11fc7811545040d680e897ce2b1b1763f149a59223078ed791780c206a787f1ce080cfb800481a701783ecec31e63b696201081ace906ec9cb646639c588b15f8d1c2066e025ad2e0731fa84755f865bb0adcca227d9ee270819f8d6d5d1c17b43e78e41c6803ccb7c25af627be71431a43c00240c0a000103a273f43b3e66b9f4ed283ad80d205f5870c1cc65cdbdbda3a78078e177418e7b0c76a2590efbf8d18310dc68c10d1d3af8033770542a263bd208001840ba60b200102ea0e56b2d99458dc172db8299e4dab72ca810f30f440b0300c9820140b0801ed9769f9f67472941aed089ec24f7e6849dbb27958a0b70f0f8b1630407c40a7999fc269997a9653aa9547af0272055f8e58a17174bd5e9b439a9545600420543c3b34a9e86dc7827958a0e78f038d1e1284e0099c22ec9ddd074edb9390288142ea53ee7abcef7e1aa934a45052051d0329aadaf570717d364b223051fb891a243c718376edcc011824a0509205048a5fa9f3a131bf328813c211dda4c85b5899dd56fa000878f77fe131f204e2000481316dbf68acd10dfa57452a99801c20401802cc11bfdb6a7b94935c86000a284fd05cb54f5b256265f9e052c004942fd417789d02ba5f5048284f25c43c5a6d7794e42c3a406204738de3f33a4774c8d6a8e4d638d2fc1490a9b71e3e4f1e0c119af03d641461b408c8012df28fa349fcca9393149e1943162005204cdf5e6bda47b7039038408b7facd898f12ea3f3c0c3ca58ad57d66a8b6fcd8c1cd2fe0800d6198b583ea359d13af6e6d04c38acbcff0b2cf87be27950a1adf021bc030dab9e7929fbc5f28aee772327433fa8705367cc18866d410992f954d0b6e9ca4b019c7462f1694f77adcaca70cd51927296cc6490a9f9ce0c61937ca28c10d337090018213542ac94d70a4c0062fde3dcd21bfc1830ea51bd8d885e99b69e4334e8c0beb02dd2a31f39f21f6c33672d1b8d8e9d1901b5f3f2efa4fb3ba5ff522db34061bb7c84b8e8ad270a1294625b0610b5db4d2355ae4e86ca3efe04146186cd462b92599997783cbc97c30d8a0c5257346f6ba9709ed77f848838c2cd898852e4b274b37fb9a5fdd051bb2c8ba52a3a5c764af2112d888454247df3d1bbdae39ae025818de73a677494ed1c163bce2d25a5ad2cbcd2ca7730c1bae30bba065c36c5c5d6704375ab1673b75b31961bbaef380596083155c78f6e9861a312b0d365671792a7fc95bcab0138dc1862a2a118d9f416ad09289cb6023156cfadcfd791f849b7662860d542ccae3065bf3fc75670f1ba7581ef12ff724340719648abfb736792efd11b6fdb0518ab3c9fc5b17f5c5eccd8bc0c484073648919ba5e64b995ccef2dc011ba3c0457af8ff0bcfb0391ba2f83674db281d67328427364271c9d2d09893fc90c1b5018a451bcdcef892dfdc3169828d4f549956e6799376780c0f4f1b9ee883ce238436bf3c995f1b9db84bac4c9df8b9df8b07363861779673e4f34bd265d14d2cb8eb9a4aff910fa926b8dff7bd2d55b95b79c14626dabb3499f7236b279f542a23b0818947dd5566f3ec25aebfc47173f0caf8104a89174bb895c9a4ecb8e55e5f09acb45c25ff4d89cb622891caf5ee87e6b3b89749b8257ecf5a126dc186240e2da9fe74429e0725b311897fa408ad6972e3fd90f0d34c8876b791257d445a84e97e6d71c4d1fb6eb4143a7caad207d860a31169550dcb1d5d9b4d8c40d5f8e6c8cbe7c78bd0af5d4cba41edbdbe28e21a8dcd0dd1e07234117e889eba70db25ff800d441834a8dd1c7428bfcf21cce9cb538a7f9255be2116b9f949f7ab37b66c21d034b6a3d426a5ee3d21fed6704fe6a7252f8358dca4cccabbe5167b17c4e2faa6318e4e1a421e08c4dd7a68ee4f99450e08a49acdfdc7b7a09dfe039e53b7596c89b63cf961954d1f2dc80e1b54eec3a68427394a567373121fcca24ba429d3e13593f6d006d7d03ae23a752ee9c1eb5c3532f779386b5eeb9c59a5c538e381cd5fdbf0531a748aef70898fffdd1da64e467648b618538913ca3f855b073ef3c6caae06ef56e9e0569f96318dff259a43e6f2cfa81d39aa54958376e5b2672d753a08350e08b1198378e6b5101d3814324243e61e5d8d9e37bcab2f7e68fd7d358f1b50eda2bf2c4b4a99caefc3461b8ed5b2e54bda92dcecb041f5d54e2d7f3b62e71acace2ce9969fb547a98646a890794a732bcd4cc3a32c6693f706f7924183d9b3aca9eb346758adafaf3b06e5b59bc1a49b3f8e3ee1c2da65685389b10f1d7b4d26c39e3c89fe2c68963e06359b9d4bb22e75fdc636c4a0861c6577a13aa90b86c1185b4e9a25dd39d5c0a065cd6e86cb2fa5e117d6f82f7df2d0979d2d36bc705c73d1fe32a7a12e2cb6a47d193a8ee71472e13b17b3be78215fdeb770287959faa3a80c6a2d2cbeb4abf193b5381bb391853a8b1eb36cb6b0253d2c7c22d44cb77434b551336c5c01196496637e933b723c2bf4c1053d1d5ebf53588533be5eee97d7ff370b820d2a9825d3a0e6b36948cf6d4cc1e4c2eea677319c4c9e14b21817f3eca14b8f50143099ffaececb94ef0c1b50b8bfa516cf61ea52b61e293e6c3ce1645af3ea76e7dabc62c1861356cffefa76be7133b540b1e046ada0023a7aa081626202041b4d30dcbbc85cf1e1f268656083097c7b0665192e0b262e55b0b184457ed929edffb00bd56043096a9071dab3d4622e959290e8e64637d31ef3ff4838c84ee24cf447d31ed3818d23e4a9fac3e6fc675a7673f4e07dc78d009cc18611d83e2d7e38f55298273f78909112021b45b064de4c9ab55cfabf4f2a95347aec4031f991460aca60c10b2a95c5871a1eb04184f45ec8f0a13f3d8a7e52a9f8f86510620c43f1e4bb553a65749f4e2a9594468a098f1f38602086308ea163deb897dfb226c40886be1f5c16e3281d23f649e5036688010c3e69e7d127646576cf2fba9355cad373e368f209317cb1a0334b4278129ddcbf5e2032ddcbc1443d66129f542a21488118bc587a4975e4e5197d6aee42ed183db6884c32955e17c50753975d1a992ce4bf81838c2c88910bd4550725df324729112e90533252638b98dbfa840562dcc28ff3d7994ac6749d258218b6f05407cf72ce77e6205403316ad1477bd16dee4136cba145ba3a7e8bd656e7be9ce8d0c168b4a052c101023166d1f98dda6fce2f65239fbc0f93d791f80c1e300b2a151eb08f4a258718b2f03f68e756edf497c28118b1f8ffd468b15bfb17e51703169e6efe93992c5d0e7700c420c62bec163d698e9bcb4169e981f2a30c315c618e5978172f312f7f0c09c46885d6c146b5a9d11a64c90a83fc0ca5ce4f280d3a62acc2f472c997b3b87d16a11f62a882d7115e2f7996548f26158c7aed2993b1936f0e159ba768b956ff53bb6000b020c6292a4dddf91db2596a312688618afe2fc7cc5f1051f78de0c6ab8102314a8187a7124f35f9624b93e2964a8c865e0deaae8ec27c67f641cb3d663f8ac2b617bd05a5263d28995038fa056b59938ae6b57488018a4ced4e8889d3dc1352438c4f20bfc5f462276d139e37430c4fa07a1b671a9fd13ceec4ef41efade5a4a5f19d13686e53b23d84d468bf189bb8a4ca9fd8a4a5fdec6ac2b82ebe279a6293929d418c4cd4b2bd66fcec4996520d6260a2b2740d1b5e1fa6391ec4b8442eee794a5156a1ebdac103e507ef0895821b85821b75821b65821b5582005441a40ec97d29b5596bd40b323a286a54e93c61fa1bab2332075c2efd6cfae55cef2639dcb2f4f95b6c572bc338a495297ecb83d6fd190eaade86ed2e53e91a7c437ea7a14295a576dc70ce9ec3c8d6bcae17b5c1cf2f6e6a514dbd203b1bb22f533ac997d24cda6b48febf783265ce17b3393931791fa0a4a021a286b7f3e8165f743b8bad8c1b23c0d1834f702292865a3afdca2d657bd6a1c1cea644c65c9f257d9e81cfe24b328de8db963d301031c33617328487de6dd201824819d0a774ac529eadd34423889021151f74844ebfb1fc3e6181c818b09ccda395f90844c4d0d96fdecfdfc6f9bc0844c2603819afa2e17b40040c687bcad0dbf00c425f306659b411da46d66303112fa4b5354bf3a6775ec42ea4266ab562f3c54957840b86ce62faa7c45b38951eb7d9502efa05b5e06bba52a3d35ef0f82292055b7431b5d82fde996c4a10c102ca3f64335765885c415d6d41d69488b98c44ac80f9891737ea999e44aa60d2e97125fdf4c8225440a917938b3877613b7f52a9542a1c1099429b794bd6c75bfc6844a4a099c966f7645e3a1d108942b915a3ba3e3ba9542c00821b15c02102054bd3c78cd8eae9e79c542a395ae409effdd5aa886d79168c40c40996a83e7bf90d327b4b8a48137649debf764e6735690e4498b0e4a1b3f7cb874c297a91252cbb787bf252fabd8378fcd831821888284153db8f2e8850625b36098d662dff1519e56522212fad9605532ec7ab8bc8118ced31feb1214b6377861a2246605e1c9d376ec854aa1661d12ca9ffcf9b21d61521c263de627d12cbf0920d839975378d22b389718591163da9dad3a27c951c128c33f595cdc611cbb80183abf5cc0e5b7f1db910427eb197e68ba576b11c61fd92d2f953988c5e9c2af34bbdf62a6a93bc4037d8bfe82b725f2c812164176e988b313e3a2fdb3a41882ef6f54b0f2dda2008c905232cb3b47a379e634f46082e2ea584f5b979ce9c0585dc42915527de84fd9b146db1cbb220f27367926fd7a23ded1a5c7e9d5fad69f10b5abf2fe9964ccf59dc4999eb0b234e8928659157c876c947ed661263f19a10d322c4e7366e60d1e60e196488cc199a5723e415072d78e97a69ae40e9516aa74b546ec65aa1a84b6a84ba8b287fe1e1acd03c36fde9ae9737bd27be0365a95472b420641598fc1132fc55b5184e42882ada0efb1ecdaa5f3b8a12928a4276a79793990ed571931054a09f9db22bb467b9e39053b89ebc94e6d858722f1f3e4210831053e8494589ab7ffc28eb0c098494c2cec26849e6d3e1665d1c2a0821c5ea62d4187c5b16cce60fa09051f0a11e3e93e8de1396286cb90eb7a7d37b680213e02003048fe2e38c4a2579721c270809c5e721d43737dbc5fa4dfc517aa4d19d821984808251229310a75386d0eb139cd2f27ace5c67f16088274e9e637fce538b2f4b9f98e44859e34b6083904e242c7d4766177d56349c38ca8f799ec63be1b1944da05bb469cb52dbc8e64f4234c1bafc752ecc979687039414128464e22cffd7ccfe6741ee3fa9544e1082894ab6a0e57d17939fe56d10720974e97c3a194cae499325aafb1f99e5ccc2a7edbe77a420072195e8e5b5d90fd9502a4a2194506428cdf372e1e5db4226b16832af67aea92f9d432461e7e059babacd49e517802d8444e29039e97f59ccd20b3b9f844002d18c631bfb579ac18112f288a593395cdced0ea6d949a5f23e5400851047a02a5edcce1efd3b43338434e29725932eba9b0b5e351a4218719ebeea746263e7dbbc216411e7ea74425f922556ea10452c9ad6685a839a292513434822946bf13ce9d8272b084104fa9d39b99a4b1a636446c821aa9f7b2b97132af52a23c4107f4b6e5a10cb0c26d20e8414c2532a369b303fefcbe0d8410821b8164d999ed3a27dc5394206619de970f1c568bb6e860862f1745d9567fa3d9a4e2a959040e0a959d2a9e4950e6a9f542a218040652c034bf19290afe3a90555a520e40fd6e6ba96d455d6877952a984f8817d8fe79f64d23ea40fc7d179376492a25b423e244453fe5d502e6ff4f77014552edfddbeefa6874296193841481ed0529fcbb6ffb8a0c5433a28b18eae97a15373075eab5575674cf785ec70b896b5cbe3825a5a1c08a983952af2653145e9d11f1dd82cf98768292164967452a9c820640ea799f117fd3bc6135a3954235ad57a9b64e8ce1816488317803284c461f95e8e9a9d830e72c3410881839db4342ea92fbda1aa7c93ada9e30664ea9fcb21e39bb8b00d7d29d139e38baf9d746c407a162dbd646affa7ae815f97a57db9468853aa1a18519af4e6939f8f2d6948a6d5a0494617a5f984863ac8ccc1aae3673053bc3cd483a819b5197ab35023f3a9f1344a656074aa6b51f345be4543c8c0bcc770a5449c4b9f25640c6ad8164d958e96e5fa218488211d4ae752aa251d5ad00909c3e3e2490bbb9fdb2f1902864e8ed01e153de3a6fe829d2e565b19dfeb935e58fa1667f4c89ac74f8674c1cff85719e442c6e202a7a4e9cdbcfa225a2e640be68f46f9fff0a29d83102d98ddc29954db9c370b87cd23d436f668696b1e7e460816ae8d499350a93e9b11ec4841a592a2031e3c4e2c6037ea75f448e38c0ae00042c8150c7a363b32da934a25c40a09cdf963b9fae8ced549a56212520545f6be7c7a1b7f635a082154d8fdc3999fd21c6ae441c8144cb55daa41e7e85b31440ac8b831e55e7a31679725240ace776e51f22f59bd058572b7d3a95ecb5472f40493aad2ca97cf9c6773422db76a88d1e1b23dda04f7a40ba2cdecd547cb49a562c2c35308138ceba605213d8a57b8214b30bf2c8d9f361d6f83a4085142bac4a84d7a9935e8d086240199f2749297b6c3831609c91cc372dc46b3a04d3508398231282d8edb0b9eba83688418e1f869c7f6e24c8b6b48110c976539fd0bb6f15fd64388c08c8edf1bb358d27e3e49613370800c23cd5d1f19445cc61d3c504c4c7400220cb4e513dd169b26830c4830964d6e89d69794bcac8400020c655cfe6432e63369a55fa45fecb86deba93e8cbe78b49f77087d792384bdc8cbfcf4976807255a0e40786166ab9a977636a8b8bbf05f3dac63f26a4d368e3574e8e033c800d1c519845a885266f319cdc5267e4ce34736c7f57171a97dcc392771d974965b2c95accedf629f963705628b439e98b0d3d6ee0e4f01a41609f55c17949cf35f0d841666b97cd329b52eb68b81cce20ceac538be251059a82f662c9de26a2aff2680c4827dd150671bf46a6558e8b941c7ee97d4b608bda2ef1637ba9d49d5efb882d3ebfe5275528db6c2f841a7977cb38bb4131920acf03e5e6c59d8e82e83acc2f951dadbf3db01a28aa385eef7982d743e1575bd8612dd6194dc0f0415c92c489774d88cfef0b246325943478f32404e81a9fde092b0d5fe9735857faaf645f1cf2b51f2f86102520a0a80906215d121bd73b354e7b298fc8f347a808ce2eeced1c3e5987a84e744870e36f98182068a094c1a441426283d1e00120a068080a24e0b3fdbda9cf5ca07209f70008827ce52c9fce69bdf336127963fe1720e2f0b2a64f4a4524101082752d6781da4acf1258000c8269e0ba5848c3bff09882690a9712255e4c5449c89944741e93106044030b1fecb9bfbde74b2fb7c043778e848319902c82512c41285c93e9d373ddbd2cac831068e1f699c6047192720958800082508003289f7933ad5624c2fe69e924028134afd83509a6d4702120a0079045a333248d74e4d2174846e7ff3215f0e16d636c204a5c7189f980c038030e2cea28b7dbaaa840c641199d213a769644f066b41f171060e76a0a8c1c3870a4014d103e5248502208938cb6fc9df18fac50d5aa002380a0411b7cbef7256988c4f05245e38281fd52933cb231a13014917ced953a835999409df4340c20545f5cffaf3dae34e922d184636de4a64fc68460bc6d3726c5e7e8a8ed92c9439f47ca82e973e7fb0d0991eebfc9d4a6f365d819b934d5a164ba9f18e15f2fae8c1c5282f8b10a780a40a68f58ea71eed32f85f0609155271a5347cdfd5d29f8222323f69bb1694469f440ae60cc2938e933f73fd84240afdab88ba50f5f5232481c262e996b38526b540f284b64429ab10e7e139260c244e3079e5c9ba69922d75be40d284e5ecbe4bd5bc325a100c244c307316ddd3fba02f4b82806409e6fbbf1fe99e84127503244a58b4ec98fbffd463b4882409482f59ee624cb2377b34788709091278f1ae3d4ba6ebca35922398292231c2da1d44a765f9fba8954a8e1d844007a3fcf0c12aa8547aa0d12445a85f36bd75da2b636d27950a0faf010911748d23be838865b6971f19063f6b5ad6ff8c9b833f220cd34da68be9c53a750dc6e2236ca36766b9330a8c4b5f7e18e1fd255c1bf985da2e69414b4a2811fd9f542a9718f1c561bf3974dfbd30c88b23b247c37fd279a1e96f5659b65c42d6bb30db4b2e6a72f5c4fb7bb4208de8e20a9db36eec25d3191c3518c985ea79f47a0b264f956e04175ec9be9139d6e36cf2ed230d1e294d18b9853726a478884f7f59cc49a5b203857f6860c416ac08a5f3fc3c528b7de7630cdfb6a9511ea185b62ec9daea2c850e1a398ccce270cd19fa62e7d6c5115998f1646f8c9d329e89b1d8731616afdc6efa6ed8326d197945a7eadfaac477f7845c7116d48cf8341acd63dd63a4158b39e7c90e3aad97e6fc1861c52a373a5f0ef225f17e134656b1a45a9eae414ba3e5a82a980f42e7383a48d11953b164a24f7655091566ba2ced5aa97629ad15464e51a6f418fcf3ebbd2c898411536059a3df629a9e135e29aebff2b8f1a6ddbb91c2778f3db3e944aee84e2a15208c8ca217b770cd63719a4d51542de6ee9bd66cb6f76172f2e34742a1c99bcea3764a6ecb190145695a9acd16a12f9ffa138deacc699d56ea9d3da954463cb1d45275d2a277d7bd1c13463aa1c6bb68bf17d7b3494e2c7b7521fad205a1f249a5f22f18d984418b7a2dc752edea25ff1f3e788c68e2e849599dae91318f0e104632518d07f33e17348289e2e5dbfcd69ff65b7309e546ddf57d94c6cd239628e47cf0f2fce5ff2133462ac19dbcb6511d23e4a64f2a953478e4608412c9edd339baa4555ce327958a490a4a8e4ce218c4f96ceea9b2ea663022094d8a78ff7c3a9367d148243651252fc699fab0900d50f0800d9c4183114824c7857739b87c68fb9c30f208d64c6779b4b7933ce208837ac72034cb7163301b7198e8914955ca08c7f36ff8f40cb9cf2cc2ec1b7389a697af5b2e17238a4847ed1d51262c4328118797f518420beaa54d4f2a15354610918acef9fbf7e6933847a592c39dd9c719c11839845f9d37950cbb2bca71c68821d2231adcc3768ea5e4422ce818193d88861096ecc8e862d2b16e1f444ac6450d3acde5b05010689d86c992ae1ee309441bbe629726936bd200e252a526de05b13fcd1fd0f68c1be37be56dc90fddcb1aa345dc34bbd80783d01a192b63ea5dce49a582060f1f4b0e1be458a3c738e3068e1f3b1e8d4a85061358c3c71936c430c2876a44978cfa799779b38725b53bb779b277e7f22d2863440f7dfed42d5888ffe97f52a9987c1a3b40d991868f913cf4b6ad1b94691252e378306b6cdb106b3ac7c377307dd2186b6d5b328bd0403949c9801a3ff88119237648d8bbbf0871d905df75a40e4b1b84a8c86659ce6cd761840e8d78879d588d1446e670eeea96849d3acf799583ed6216752ee924fdaf3898e5d8e1394a4429cdc3812db91eb498949dd0d11bfcde76492bb6e2cce48635d587ef955c5fd3b421156fd1e7b9c4f57e6c58105af438ef1c3acbf61a6aab8e7ddab6a39da50644b4e072f241dd64380d7bdeb939b5f012ea43c392ec65f67695c6b6cf907469ebdd6c5f5dbccc60d0590c3ae94caa8366caf06ce6cbd93448dd47c880a5e7c91684f098363a865c723fd9cfcc6c232386e3df5fa3baeb880b9f542a395246c290d676a8162d7dc77e1901435aebeae5fc1a1eeec8177c7f9156dfa10521c5108c7801390b9d4deb28f163ca8103870e1dff81e559d02ca854da0c235df0a46d9644de850b69c7ca107dc9c54c9bd91937cacea8000e1dd9c29ed55f5217d582a9f72d97102e79d4501690531de51b2f09edb1112c606284c7e6665cbafb85912bacb1dc4a87d58c58e1d459cc4c27f1d13447aab0a43ccb627ca9d4870c8f506149b37f125a1aade3a29129dcd9e432d35dee245529a04fb6adee4276e73e36128505213ab99c429f96d37d1fa0ecf0f13f78bce0042350506bf5d38e927f1aed91271c637c5f89378d38e1d8fdcd2dcbc973cba7a4f0e8b1c3a447ca8e34211975aef6ef2d787c4798f0bad462cea166c6bb6564097a7ab5d2d195c07af66e76314f423228d34909e99e3ea6479060a9b0f813a12583368d1c4193fa258409cf2f66d288119cb7164f68fb6e29f14811d05e4fd573c1c4b4a0112268a51973765b9744868651e6d9cfed2374109f0a8351ca47b9fabb98f4130c47e82cb5464f5fbd1e6054bda63a9e35bf28354b5a67afa53b77bea8d2f73cc69f531763bd485dd02cbb9c3e946ee1459a74d4dd5ab5b37b176848db12e521e2934a176ff0acbed97f2ed2aa96f945b8b0e9c57181a651554ae8f06652bb4532f8cbf9435f78d96e5b18b3e3566858ad13aa45a19f32a8d4342dd02c67d0bf9e3acb7d9ac5da61a427cd29aef2240b465fbb8908eb0c9158fc391fc3cb9a2e44c8c6108145aa45bca78f0fbb49f80aa3ceae9f8b5aa1b575c59258399b4fdedea5b6c20de2e5141d36f5bf63c5eef93b3a674c2364b98a4dc770e1cc9496538b51c572bafb182c3bc6a06e2a3a7d562ff98b7b1a455424429d90d641acb4a453649ad427392de71c34a6e0cc65cf599cf7e41a9602a55c1cd32c7952671e294e9de939b5acc6ddd02830b5d577f6a73d4d2f021151f092c7d8b868ad75ba934a2525874828d07a95cfd76cab05c00822a06084fdea9b8c1eaddd4fb4a2a3bce052aea92c8978428b2d31ef19f3b7fb1d28a905229da8ae4f4b265c3417df24c2893da84fcfd2ed7e9239914d586293577fb9a8395b114db8d9e3aa85cb9272ff4d209289ebe22c3e8c89f3ff3e208289b6e2ab35dcb2e448e4129f9b74d366722e6a4b2cfc6a8ef17b2f6bfb4a94f15e1026bff402114a20b75bccb0b925dcaf54527e062293e8e68472d9ccb3bd5c138848a2ed0d639f96c1e5b2482ce7f4e2d9a2e7d6bf4b20028973dec2cebcef5b4d1479049a3749bdfb60230f472c4b561d1bc525dd7c1bf1071332275da6a13c6644af335a6a33bb8d3517b1541bd563c88e79c3a888ddbc4d6675d391e302412411bebc1bcb2a5cdd4d0711a8679f3bd7d31f552472883ece5b2dc4f7a84c8b18e22ceb9b8c9b6a19d7c9c081225208c4e598c5398fa6a60e1e8bc91a3e7ee81021c4b6ffa298b42c55ba1fc4f2e9df20f5aa7316d51c416c5dfba3e592bafd2910c892737f1be3974e2a1140683a9be9e553657a56e40f4b5a1032b7a8e7073d898d5910bf2da7c22188f4a1f3fcb975bdaf2e99227c30656d963565e7d96a227b68630e671a3b7810f4bfa05211d1433a69d89cf398481ebc9733f5589b08cf242b88e0213b8d9aca5d501b93f91f3cd49882c81d96740e9e75ea25cd1f7352a9542a39d67081881df273f9936ad95e504a74a354702316d8c3c0290cd8d53da0020f5843c78f131ca0ecc0406520330326819000ac9130200000fc484983052001781c701a38d8c13a48c448f1f19d86f3f0d1a3c40500408a8e31f37567387d39d9b3342a1534de87891a286ee2fd3d522a95941d283f74a0a4914c7c98a0e41788f2c379a0e10b44f9a1e324854d4c4a4a7a81262425bc40941f3e4e527498989494ec02517ea881e26998989494e8a2071a9d8b1f9f828b5783071a683c1a2325b758a347a3f1688894d8a2bcf2dc1a2df75b6ca9853f9f62f43ba585eb1b5f4cdfa4428a358bbe4284e764d7a2e99f94c8027f0d752f7d78724159120b939027a4c798f8d84b0a4a607152a7f75d8ea1d647a4a30525af48ce265173ab2dff9cae58dc0d9b937cfbd5d4f0f8b16304ad783596de9bcef0eb60092b96e5a0b5b3d35d98a65196e58c178ca08c322a15131e94aca2d875f516c4010f1d25aa40487f2937beb4280f5d492afe91a5afeece4acb46c59f2dc3c6564d66d34e718c79293ae7d8f7493a4689299664577ede6c4e394f29967332ef0c129490a256d538711ff72551968c02fd2a15ef582dcb195ec3c78f357c9cc18112512ccb6fa673ac97f8dc7252a9b873287a396d76f0d6a4a929084a4091c5694c325b9c96dbf489a3fa8a4b351ba25d9d54787c89274ccd522aa3075beb4d7cf030f91d283a52d08974d97eee16ee642afb2485cdd0124e1cf48f104ac632084f976c22b9779fa487f0a452f1c1032504259a48977af5647ff2660a70646237ad6f3ac826394a308109d5a74566398bd76225975064f0a471daa19db358e2d0702f8650371a43adc466d775a6be1bba7d0e3370bcf34041092578f39ccde539b9d6faf01a944c42912d7a9bdacca24b259493ce6182314a2491789ef6980c571a2f272626fd2fd8e1a32412b528de9f346f954a8e16a0e0062590c0836db7f0b23c66aac5610220943ce2d4dfb2b6f4f2238d139c51e208ff3aa8502d48d9dce949a502829246b816bb6f3a997a50991246a0b4a05eced6fdeb7d2dc220de996d7d621f2b456cf692d56dd075ef4e1e4a12b198a4b9dbb7ac7629e243092250db9c650f59b739bef4a1e4107e8ed67d318bf14389214af31d5d7dab10275172a383b52cf7857f2821849f59b88e2e274f4a06b1b9b698f44d75a6af4410969225a37c8ef6ef1508b3e80c2ffcc7580b730920eafa51ddb0a9439eec0d257f38ccb57889cff160e7c90d4afcc0a6e96da9e5532dbc0683923ea473f44e78cb76dac32e28e1c32a729fbfe5d4e2bc2828d90327175f99fe93ea6c6450a207933aaf90ebd8e16c2cc943fa5f4cb58ef249a5e2a3040f8b6cb7dfbdffccbd9f542a257740ec5ea89a4bba4f2576385e896bd925cf1f572ba9c3169e7bf665514b3c6b94144e257450448ec9964baebae8d0c16df23b50d0c042c91c1025df4dd5e87eb1d3891c12b1d682694118874c4897e5a4474b7f61c34155d39236fd1b37cc7652a9a881e2954a0e35504050a9542a293d78ec990bfc7b805246a5f2256fd083754891df2ee8524bdc90fa97b0cc9bb131f94a2547491bf65cd14107659fbeb52094b0c10e4fda3907537771ed41c91acc8ecb98a54f2d26a99d542a2e2851c3a2bc187b3a273ba8240d8b49e8aeb8ccfb703968487ff0fc1ddbb1748b959c61b5f80d5af3593219f978bfe1e303a08512339455daafe59c734eba3fa954d230d9c1a3072565f854b4bda5d0f86d710919509f37c4c6dca275da4ac6c0acbd2cb8e8bde89815c39b2ffcda950aa5ef3ca9544c5e0d4ea954c2c08e2761a91a4ce5ea6b280183fdbe26cfe3081de3f285ad94d86a10a3a4791c87122f1cfc44deaa836933b5a40b687d4973339bbef49b159470a15eb996116a76563d2928d9c2ffeba21f731cf9f8cd28d10272d3a5f6d211a7c5aa240b88fc2c3ba1796ba4292558484b59f569e79b57d115d04956e9d15d3732353e4aac8088b1d58d19c645563c4aaab018e3093d237bc44b5a0915386532afe139c48b7134507ca86047c914d0362293657e41da65255248bed49feaf3c2b574974441130fadfff5f2f11814d80bd958f1e82e9e558692272c4b2ad7ae4a4f5b854a9c70ecc98e90317b5ebf662869829b44e65b3f66ac1195306139a5a6d9e387d4122a59c25f9a5d92197931a22e514232f57e5f63f2b2539524214f2d5fa7057b497af2a4522941c262d2b2e5a67bdcb84a8ec0d9e9970e53fd211d69a0a12546c06cbbdfe5ad8ef9eb49a5a2a352f9b103c505384021a352a9941461114a6e5d0eff97644a88c0c6fdacb17c465ed9c3d82e74c4b8e7c79879228c36b3553b767e39a69732488291fca90dfb2f47cd829604188a7d68181db4799477079f42f28bf274fa2a993d2090f8e2adf41673f62084d0622724bdb085fffca43a8af4dff00295d9572db88faa5477c1c7bf77693dac274f0824ba58507aba61f6740e772efacfdfac374a5c705a66e7d9636c39c9b76833c8f8fcded6f974b6404b31b3e2f1d1d345b5a86e5f0e2d070d2deccadc5e1a3ee67cda2c8e59bfe2dbb3b8e937b2e8e44fcbe351d7d5e2581c4f9bb72c6efa4e986071ad8ab296939e41f28aeb5b8c41b57cbb221dea727f7a13b9d69f9080a415a6ae9ad32f68cdd029125660ea35bf566d14b5090f5f45a15c90e93363d8c67730892a12e5d9d232ef4769c95420e4c5d8e9e2fba8685171ce59b4a7eb92e4146641957c9f347d732da6308b49678cd7f7ed9aaf4629f619cd92d6b9654171131b9090c251e356fe1a63aafae09162f238f0f1685c806414e569b0de139ac23de683441485afc9990bcd2e67f150ac59e52e97072dbd960414e9ee9e7b668d1b137d80d201924fb45a9e31dd48177e1d4de209933ad5dc22b3c62ad309492796851751a23d6f6c6e4e4c2a951c66e0e084efa5a5daf51123936ca2b732e1d2895c966d67e01001892650c2ed3dbca8fdcc9f4c2c6852a7d3e4b8681ab9400709263679f2aaa93de668e925d4f4ea1a9746124b2c660ed6b3a55d2394c23a4c7af0e861425289fec386fa0b5a3cfbb01d4828e185861b53fdf2c88c934cc2d18ed93e677b1525744203124958b22a83aacbfb9d2292487071f265f15b74b75512482463965fae77cb100a01c923cef953cba576ada937313983c41196f4abffdb2fd7491af1968aba13aab45c2e46c2885f96c524a4da3dd2f8f12947b208631a356f3a9adf5546a28866c7eccfdd85bdcd572a395e47621fa0cc802411d9c7284a5ae6e870f5a452f1d701ff68810d481081f0cf569b4674f6cb9c542a322039c4a345c89122fce34e7452a9b80a6ec080c4106a7ff8cd7c7197d4538893b6fc2f58659079fd0a4808516887dffbbea0d99f4134dae5dc78a5bcd45d0491cce257591fd5f3ba042251e51a3ceabf96ce009190cbd17b9dffe1b475efb2e4995eba4c92f8211755dbb3b7c74f719da091630df6e1638c3170542a3c20e9033adde71ed96122639e0f89dd4e425c49d31f7f0f47138b352ff1b136ae07565e333f679e0794b9b09ad62a9332e1a1fe6d13f1215e936beee04b42c8ab50a7f91fb40342df89964d69b9e6637558d7539d59b81cb33a3920a1c3f6b277bdd45bfb79422199c322847ac94a8312519d90c801255fb44bbb396f722f0ecd9b57b7e588a98e92c081cbcee766d6a935863bc8c061039237589b31e6f734697d9f771e282071832b237c5b78bf3ba5af01491b784168d993da6c2d32e8a452597898a4a08c41c2863e5fee9e1059f17011c91acedbda39e9d4fac93b22205103a7e23fca4635f5a591a46135b7bc0e425e5dc748d0b0478faffe908f239a1343728672cd7c3c9f3ef14d22310362c43754355386c5361d4f7dbabe128f192464407677705950b1365d8d213da1f2f3172211033ac75c26e4cf691e131948c2708ce1e5f5a4e5f4d83309180c973f09b1efcf7613c917105d0d8f2ba18b68a8f471c278280e06428140180c008081ce9d35009311083038481e8ec62322b9744eea03140001343c2c7e543026241a128a0483f1281c0a0642816038100a0402a1400c62490e67bad21b41b3ea1040d50dc5ee0e6191fbb1b7867fff20c803d987c84f68f6caacffc71036eaf9875adadae1dbb04c4222bcd6b79585370238830b04f0119c2cf0299e79675b5f3cfd9e89efcd770a9ddc029e2f0912ef2fd4eac9b002c11ea8d3201f1fcb66f2b0ea8d6553a3201e53a3846dde48a81fe3686bec8c76139fd3f160670da73340926674aa3b608874d1272f9f481957d81ee675c0943961807f56a209a803a6e652a4f44b2d7155f544a261d99b4900314d28bfd7f3b1d829d5aa39710fd8f4a1f580f2cd94444b2e87e1245d3f9ec25824366a36f5a27c4d9516db98d667c1d1298288d76b294200c23eaa94fcad6dc985fb38aa8fa85b041769363ed2c655ec7410d4d8f99f3d30388af1d4b95206dfd1e3ff282ca79d7c1396711a496f6104b235e6cca58ddbc53fe9add5bcad79a7ac898ec5ce48776a986c5b8e4f1a1e8f612b9f544f6787644ccfa7b5e88c3c0b093ee55da9b8a01a927ff304594d3c74f244c9b79363bb4135e5d33f035fb01129bd987b565b94428e6db382000944a2969ac95ce029945c233d7148ec879dc51fc69b478f28b6e5d7e5b75762bcd84fe18e70381c04e2feced60fbc3aac846154d5dcc81f3b9504fe717e540655daa0b433bb6e40acde6e506fc217dbf9a3f4367c922e5ccd8d3a9d2945c948b436e236b4935d2e6246e1316761bf170748f98923ac4fe567ab7ede0b50f36b3af96906d34b3181e404505c2cbafc861462bbe76a5dade73d87b0c5e809bc67cd5da5ad704a53c11767ddc4bd168fb371f1dbfa43b59d301b5c5936c25c0e1645a4c8cea8968eab6c4eec601bf2a3e5c3a0abd636312beebc5736d05d2cad01734d28354e6725b1f6d16caf4f0412a1040685d412cfa36784ec06441f315e2cec53de33afa72c763efd72b4ed2453d16f9e2b8e764494f02220d06f77c0d2ea364ab94ace181ae505fdab5d3ae32bfe4404b60db709d37cbd696e746317536f4d372a11f924978c4b5279c74f9ef49835522d5f6ae77170c544a080a8d8b30f7ce805a1e3716bbf4f2ee2f9cebf31f56f6916063642443c42f9e7b986b7165608c494ac9b12a5270ea96fe1a74b67b7daf95ad6af2bc8d50d890ed919a426106bf6927ad32b7bdbbe4df66ac9ec03bbbc628ad6cbc9fcfccb7616d8a4a7a011fdb7cef117d2cf6f3fa6792655a559697e37f3bf86106fd5a38ef1601dd034ce54f2d3c1ecc6b9166058d93d794f21304a0e756488566d138a750d88a257189c1a8d9b2327acdd23e9d605723d61ad656135eb40ce53b30d7fd53457278d9146197a86a280e60854da4da30ceca3a17c4197b787ab9ba310a4f8876cef8f0f49df8d8c690d91a6dec8e5a132b4c2ae192c0e851ec2950d0d74b257984cd845fba8de62699fc83d86c9e3c452483337ba1298f5ff8a02bb54838fde77dc3c86aed3a0fc434a58f64e7703904e933088384626f8c515d22c5ea8aa5889a94cd1bac83e398293eab304c6285cee2793fe5663516054509fb6507381fe2e2d955deaa0b629e6bdcb9c2a6754460534de2ec6f583f4d1fc008f3b59e4e84564823718d9c83c55e1cda9408f10c4b226fd435e1f9bcbeb7df764b210b0a0961f8f846568f40108dd8499ce4960653e7d40d08e89a8127ea4c9ebd7d489e3229f251bb43c2a27b748b8452b6863676cfa972ee4091e72f29028ee6cbfbfa674d84c0aa00849a949b624b19ed59d276913bc24007ec51fb2e39b0976978324d632e196e21891ff0593df6c8aeeb1cf695e488ef37a5ef15ec5ddab59f22ac76cee5c5732004041a9c52ff8884193bef85e5d05eeb78c7009b70f2177db1c68a8c30a6ac4df48290699eb461130a64b3ddf0ba56597023938b7040105791ea469fe620c6250e11a31c477e4d61535bfec360d6addbc109800885d48e1249bb8c94bdddd732dd749b8e07c301054e82700cbb17b6c21cac5a1b83ae651756681210fb1ec26aece1e9b4cafd4437d8a7ee4610a719cab7447a22c859b20a97ebd842c4594cf43b20a9c8a7a00257d35dd34553437b19fc35a99ad5f943e879a26b5b2199d023f09dd2f41504043abab008b5b2a5c88b42d09ffe66be28d9038bf85e462360252a594919fa25eb32a2e1dd3d0e1df56aaf777aa468ebad56024a1c648a45c822c0604b15ba6ffdaaecfb184fbe4eedf9078e6f509018c154e8f5437f4f088754b317a691eebc697c84ac9c5a8f69105c7cc954bacae57c95e31ee27ee196972dc76c91ff17bc8c1021fce702ada159641934f630bf10c39dae21e287b79698f6d29b84c54e7369208b4cc41c95b06d8a2f146cda198275a7f3c9d5ed18ebddb5e6034e2fda67b5bd58aca9af7b960c2dd06a986fe159449720b408d77de8155e0140fb9c714ca6773d8eac7edf760d411f91c155c7f9f4bf121f1360086baf32de6cfbf1a010f41a38ddeb5a490aeb5a325192c949c8bd9a3aacea48124faf2a953ced48bfcc0242b6b9fec3e9ffec25e520c28a5fe7c41015f8c5cab2891c09f7ed07a3128cc4af8c9a8b15ca5020abb7399b26fc8bb569f8e51949876ca5523f5327ca108498be55018c372d845b97ac489542c48a2976a1e59645f6ad573ee9e34ef94b50bfe057f5631bcd7a397addc49c705739363a5e772d7d31a804edb2daa7588dcc3ee5ae8e4511801b078dc6907149245652aa513f061760d930c719181b2625c4f95899cd2b2a797a62d979237b7a25e1ec2a5da7374872699e34f28a3045e44209f62f26eb230c417f650a89281d845000759b7fbabd35512cf6e14b877facda9750b04cff136efcce5537538f5286e298dd111ef7836831dad92d96d5138825dd425c18d87d5d5f26d3451cec49304c98d40c0fa5793d65c92ba4b162eaf54b59570841422ef6a3862cc158b869e4f4b29f8d1dc5a89516a63197a999cc4471858499b94102321b51455468cb94725675454dd779406ae42b13f03447962702482c1a762445e737b79fa14425906d615a3473c4a9784f18d6f050d1e5459bdb00de9f18d75e30542e6eb4700caa02060ff625bdf9546437e41e98593c6a93ac4c458a963ff476e800a7ee9d8989ece91cbb990be638bbbdbd6472252230a1dd21b316ea8732505a8b8f09c82f89fb988c952e4d100e4c1d4df5251c02adfb7d0103fefb88643c9d743ce81e4a4b948943660c6c5b7102329788cfbad0691416279226bb852beb7c5bc88d00178153f5eba0be31cfb2a196c4397527271c852e986f68664ceb1f41438ee9a80b4a911755e3e94409b367be59f1035b6fd73fc64280171edfbf2be017bd4393a2c3b5fca41015f6ee9734e3725f1ee4a1b5e37249e630616c90098f3b35e91c06ef1055f3a829e2ab207f230475fe3f1382d0e9551c3f417178840793b2a0c6da733c2fd993c2257ec0b228ffcb6790fee5f67c8b8f8760b46c8c17482911c5e82728a4464a6468c3ae62c7d65e8b7d43712c960d6f395564682cf6602b0f519b3084529ce1990dfc4aac50d3c01da9c821c3dec35ecfd9b6b34a5a64d9a92a5f30082741d8022316bd46d8b8baa13481f8b53f1ad8786b32db3f0b72a9c5be91654d683d94b9cc117500bcdaa4a6679db5279381ab6e12e651712193aba8871d83d190fc9c9e416173542f4be3ae96c3c64a56630b365e435dc3782b8e3224a3736ad4b174060f0f96c5cbbcf3ce4c9ec7820bf622dddfab040fadc2636d344f965e73f939a754e091d7c80650093662a4d4fb43fd1138369f4100692875b6d923382e1efd1c8f57149d231dd1c1eae4a411882bbf85fb3f801825d522ef3e69ca445a69cf9c209ef41307554282448a13f7d03bab0ef2fc59602a6cfe535188b99e47c039c22bd4f31598c2fb51b98b9fb50a5c2de843378ded1428cef0ae29705b4e39d3477c48c21e4948498d7a3c52bbdb32f54abd39ecbe976ee29934ad212673ddf3c64ac14a8d3df238a8d4f2136048a94807485a66e3ae404733943bec74db8207ce6af44a1197641b8cd55b1aa942fcc2fbe8b1690bfb785816b297cf81ffde5a7c053e08036763e68b7da23e67266b28a6c53804068ee9b4da3e660088b201c090378a99def023cc694a15a54f8c1c009c97c3f8075b932d4442f108e2bce687250d25a792b60c0ab848b96af40884f50323a390bddd924a1ab0e7d5adaf0609d42ff7419d0424dbfd3c4b0d4973bb5c7d34bc36bc4e31cbdfe968cafc8cc896bec13e83e623bdf3c61385b0417acb6f9596e1a96dd61d5833769484eadd7fa13c2157c5e19be9d7b40beb060b38ad119f5af84ba2112463a13ed96a8bd4c7be3cb474b9581962a3d1ddbabd1d5302fd87ffc547b0ca39eb6aa677ed707a8ff09e306b6f61368f6e604a5ebfdd543f4828e8c86000cb08742de918e1a67c007db38c4f9c0bffe16eafbed25e655d5fe680968a5b2df5f625cd5eccf9600967a755be06fcc25a74ea2c723570ed6ae3780a31080592f150d28b1649754c58d70cce22b1f6dad276f86734b798d9830452ac41d158dc01092642078fe5359defb6d1666fff3a7928389ea9bdc7dc8c8420ad08d0ddf1b9959689d8d53caff82f95215138f0f72964147c70ca59dc70372705b78deed6d039b5b9627a1276baeb32993a90a4773c7196be0648425ee83287adcd061380924790c4d2da1ca6935b6dd5dcd96eb7a45080069fafe93b3586a14f0746d9c5de8cb09faab0bbef611cab980823ef25bf4d5d95b0bab5a7e096d3635ec9fcb6df95a98a869411fd400dcf3dd3e5f6aba5a9eef894a47c80e0014ad09a8fdcb53e465d4aab465a89c680fd5ffa21c09404efc6dca7d6cbd0cfe4f35978e9fc18fea73c9d49644d9d9734db32878ce68bfb17092ba99b41fcdd288d3e1cb19cb4c6f156f41f5bcfabb6f1630182c4faccb85b631f1203d07462cc332d27c9355c6c0eaea911ebbd4b0d1f4510d269094fae8b9e1697c67b6744bb34e9ad858b91b747fbfaaef18045a91981c229b50fd312708ad217138156607748c3e5ec4e07121ebebebed4b1c3b76a8fea9b3496bbdaba17ef8cc93da85750f3be4ff2c910447a843f33e6e1a49443c8e26a750c3abfa88326b0336af978f9752eade03de1e19671f71e4722fbb821ac82552e22cfe1ba14aa1a3c53b943d81fe13df9c0f450445347245835689b0359706428ec893a8b3fb4cb97156f7feb8f1626a7b075eac7bff92eeb1203299742af70081a576e11e9ec3730c491dd057dce22b4d61c591f8a54a55845fea28cf91067794b15d5d62d98237a09057eecc0ca79b8e6519a530d5e992cfee52b982cf361e5eada2ddc0055ef2ba626a805543ea76f6eabeb92f6b717b043ef7308c2a9a15ba572e11353d9c89dbc4eb3706cce48b6b57b62050ef3910bd86c40df97602c25e30564ecff7e4f23f9b20fa591625a441acd7cebb65b97bed715588e7378e2fd5387b640e69a4f80eba9b09ad2b79584203b7838143ea450cd106cefaeba109ae215673827918dbbed17327c226cc0d8bb9c8daeaba015f08c0b2ba5e6d3c261c0db88cdd86456e4e147633c2d2df8be53c5c969bbe27b069bfa5a780f2a7a2bcfbd9bc4f8bc5f86dde6c6cb22c0207970460ac610e3564cbcbc32069b41c6ec768025c8a6b81c5673e44f4e631e3ebd85ef7bc6b7a7c67cc297cc473e7f0f3ac2304a223cc0cc28c5cd602b62b2d7e416c852534f57fe6deacdf84371d64e5bc5393e6a02abbbb2e5c8234439cacf85d30cf693fce96f775005e33ba5bbd59c84fa78254046d7cee175ade85457c0ede707abc1df8402b280bda37550e0cba7d3210a2cbc1d6e99459c4d1052f20d09d11e75e189371107c9898858e2657c71766526abc4be6bcee5ee61f38a0515b7155e298ce604d677f541acd56014b018686955c97b5d67b6c974906c24ca79ca0a941591d44c52bf360df0e6f4e4b7a74fdbaef54e5cf11c48cbe6dfc1908590e3a7019a07855d18636a89bcd316648d973f1c3f8a70be1d2e072e8054b118fb0305ab744a9aa2700dc1edde3416e15387b2be72125b923791854249f74106e8eda546c090ee3891b518d7d7d38e36dc29d74f7b29a9188946bd49378226783d9656a63a302f29546da6bbedc15837f7c5089fb578f6906a76214335f1049cdaa342ef43aa7a09513a76778dda936eceb727c0e77e8892715168ad173a56599858ac2f7331be2ff06658771af5ca5f681c9f3efe078fb747168543b44c4867b062109be595af771d4970a4a2c75e5417ce1c16d695a1e7c95a1cf62dbef9a6733154b5a2f21abc9f90e9c81f43d7d1a91f5070f9ebfdf4f6415f488078473e60a86af82236c45ecf3d6e6f159799e9c8edcfd0a30858ec1f023bd3ba6e87e5c5263dc449b03a5ac626e01d14a8d28767308923f601b57229ffe894273e42a614ae6a10d1634cdb00061caec04698f40b58c98781e02a49571cc3c3ee957c067e254209faa6c921f683d2d18104511f53193ec6d816b21f710c688b44126e49266692c686e320608b75da8de21619ba587bc61d778d0d0a51566b28b0500789c98dd7299cc85f318e8ad7e3bc571153bf2e4bc8eba7a4164829b2b9dde72f1255fcbcb4e2b52219ab9f46fe3753a8511d58b007965c35aeb8f69b93689bd8bce7ffbd0d15e0f0a28aee22b2192f0d27b7d851f0f3d19479556308475e7c0f1cadd312edd39e229144730ea05266985868d85d195188143c1744f718906a7276b55a77c5696686577d465685131858ad4bfd2c1b7cb81814048ef95a329b4f50398ed3b417230037e22627299b93d9f8aec6d074ac6f15d247f14e5f03ee64ae35d5a6ca8cc512b3d883edf383c7d4980c0fdd04a68c1cf74e40ba3763a9cbe8a0b25607ffaea253f53f0f9a3aaf3098298eb0a9442a4268525a92084bf2c07f2189011dace3bba2eeb4a3f5098d89ceffb8d172e0dc2b592f64723529174017162b5f1f69604f02695f42a4fed5b7886ef7bd810de02e4644040bdaf181c80ce062959a820ea500a0966468644499513a1c9fe674056ae5e215ae69327b2bbdc9269a1e74054bf238c79b03d1d1aed8e7e21cb3f4bdd24003bc22cf14c82f43f784d2964cb7f18a9bd146467a66689db345e8ce2cb3b64e843e80b4a5e48d598e9ee9052d057af294c6466fcf79580e19020c710b220c0cdb27da1517e7976b360c85a001b94b5bfbbdbad6f37cfb89c23dbc793ca1b805079dd69eb7900c28d97cd27800f8dff9e06db51eb4a386e22de2caf5844e74179a85c84237f5a16043972759dea4932f1e36a2528a7cd3e35ab0f2a924a778f955b4f670ba65d9ddad3cc3d5c6c97199a5289f583fe72faab0df228123ebb87f6dd892b210362045c0714b9205578564234a5b19b1221b1a34c4181043622a2ff693d4ce7e106498777ea33079e9a025bd04fce0d85e28d9e6b487e945b88b232b9e0fa5f94e0f567541562e01805e4ce6dbc7d21234080ee69ab1d9b2657f33c43d3631d948dae592d85ad68af0a20a1fa6bfc6025b5d96278d22f668abd68bce942defd10a4111c07a7a226cc793652cd4927bee758ac22546a108cbf3944af17658d0a1fdefce9c3b2ec8477a010bdec1d428f2265c34eac9231380b07036d57cf44e472171714bc715f592b337143e041c41bd4b9c4bd1dd9e97d26f848706c0a6840ef3ba394f27b8f2103f9909961bb5cb0ad417e3feb37d6b7a52db09fd93020450cf9ec09403b34dd2e1bde0049b5533174d4542084610a256f4ada70155fe4b0fb0d0722ea3bddc2bc2bddc99dd4d4e947f543e6bc07781bf77d8836f80e4dae4bdf670dc9e37489194512a7c3185d4c8564ea40f005f5773132c59d7eea15335e2c5143b76757b5600c27866df2bfe2deb67233b2f53c0af0f8cc5723a1e00998e2b8f957875f35b91ccc456839b240089b8a1c0a9a672186e7de2f52ae7a7d69bb0ae6012b0d396f98cee9ac6622f9a60496c82dc450bce11bd87a4f286183b979267dbae8a0b4c7fad360be3df2e9a867906114312127b35ff1f7588257947da5fa3589eb78dbeb62b99d3be655a1a04e53bda3b3f92a7a67d53959e794ba6c23ee22f7a3093229403179130be29fa4de084cca66e7b235504522e2a6a257861ff1406a1390ac268cbb07c756d0d3340bfc073c3896bc664c8588b4db16730372aec2625f8f250ecfd79524951f88f082ed81ac21ed6d18882b7e34628b9d4b9919fbfecea09b307d3d3d0bf13b438d70e30f4644bcac291024158ee48622cdda81ff0cfd928c0f76cd00b6967ee362162575f38705beae5ce3baf16624777bc9fb91bb206cbc45f9b41fba0feab3f73e921706482d4be444076f12a7b436cb16e065e2b35766d8f383cb81d892097af4006fe314650d6792a696e1444d239517b39382023a634f741217e8ac382589ba2f40298388acbdffc33215c6f1279aeda450ca439445f98f63d77573ffe0fe06b499507d3e0c10f9c8e81d189b15050178ffd90a9d2f121d38679324317a3b9de9e21750549cda371fe17b3fe9a599c0861c5cc195488a2dbc25c9843258255d8121627c4950213602460aebfd69b42fa7e070ee5eea490eb2db56ff0c8ff203074528c5a4c469f79d00a47a5009c7766a8d261c8071651b416e8f9c7e618c55996d7b66df569649011a4653d8650222b06f9ee2bf37a50eb868a09ea5473a44270ed959781b888301b6fd6bc18f742c01881d81913614907f453a61b89c84948a939ea8607ca2079a2863b4684e3052a606b3572d7d8d0ed865a1df144d90b363e82a0de6504afa6a9c1f7584606b85be620c615f73be1ee342d8809278e58df12ff853befac9a97cf98d204658a2378979e9200aa3e51288af1e79c4617ce1f3f6ad6001c9c7b65ef90b5be781f57af1dfbc8ea030d7bbe62222ca40bdd2dfaca3e172dd132929ab416e742de1d611d8822377a5025c8b4e6da39f4d98fcd5ca6ca82a206d4773a97b444160e053319aaa7cafa0f1043f5c812317f5ca2a270140e131bfe132392cc3f7cf100832504127f758f164755402cb48ce16921205c48ceb02a4891c80304bb1a37078dede4e3a34343ed079dd27e6d7f8c6367e8ae48fbbcee8465fc9f1f4bef313717f516a0d87ce8c047d60e39d648b6d3c86c8e726a630c0646bd9bb1975777ed076014481bc1feeee2c1957d084d7fed03808ab0c0aad3a693f349a3f22865913111795f9a15c25ca2e40ae1b1bd0d0fb4727cfee3c262bcea1844132fe86e3d7f4c2b43df4638abda758d05830f2df0aaadc2469be925e6aa94f3b08bee86cc9086a2230389af066b491a5a22aa2a95c5c55866622ef3f5104b5bbec7ede8b14fad055007e07a195b1541992ab1ce2786661c49cd7b00b596b2dc35e31be262ebf829b0c0a4165550203de0b0595eebdb8c9aab1483c2597d5b35baa9e82fbb5c43c067c275eae29dd2add6f0848efc8540e46c4541306d14db1f59a12bf9c02b744b8b2beb140cd76147a41e6651a1b7baab62594c8e0c39843d04ce8f2373a423cd4e8f40d2b5ca783e22cfa7989cd2682448503106c0f14a543e2d11ef97e4efe7bb7430bb0f6d05816d83cb578d65bf18d71b76d82bf6be6d3f446acf7b94a3bab20c56e483ddf05320a3157592cdac950e47ed0381d8d09f7b67c1b75a0409ac8b181aa7346b137bc90f033632671d39237a826c5f1f608ef639419160cb037ba7ab7639ee0aef79faba4c7bd0ce6a983222b3c022d5fdce1535429123c7484e32b02f0f7d12af5938a8e6f228a337a78062418bf22da75961b71ff2c481228356beb3561d354066256c8a8cfb81b28972aea757f58d06da01822eace2a6fc82a3c2d52c8752554d90b012b71a61e24d7f1f313b086f795dac063d6e88814f7054ef186f1b299ff3fffc67b757bd51a00241b7435b27a18175c4d320cfd68f4ea4a3d352925e4a5257c6e17502f68ec2828175719e86430bf43b919c6cc7a57194e8700c1e0b5dbc3971be4c3da1fd46bc61eaf27cfa76252045626f26a97e5899af11a142d8458c6cfd50b7f7421150a7afacf5201e617e565c04b4237e7782a74a394ef80b5ac8a29e130f546f6d8c05127aacc77a17e2cd150855b03f27c92135e95c63369bc5312e8c1c1351a24568155072ebc6057309e8a120742684903f4a035235c296c08dfcbf801cdd3f3ed8311b79a32cc9f5c7c4366c1e42fc6a6d85e795ffc9905953c3da4fd9cadb1d78b36853089d3cf5706a00e706f2a426ff1450e51bf4bbf1f51a181eff6e21fc0fb7af0a05e3da0b97372bedbff8f28d6233997669082fe6d8d53bbd7155b1a88b40d847e6cfd8a652fef526623f6fce13046403951564b0ed6bcb002d48ae00e2d695437258e92cc015b12ed367e5b2d84269bdfc984d2ddd901363070df06cb9bf56a06f164ccf8978945f6e5bba07fb3829ac99d6703689c5f2dd3968cb2ff65c4261b704176d3d822cd3852959d2a23514b86e6c9c43ec3c7d29fba54d88dc73f0b8d325f64ec9a8153566bc106233cbe5a1eb6c51a4ed20698a9b4f2d399da1654815c0d9a0ead6e2bf9015eac819b2ccd981b0f370d5274e38e3daf36d8d54d98b139cfa39407edca9cba5a0af01e5af5c6828cc324da6dd0fb0b2e00dfee3bc2f9bfa1ab2c98acc19dcc50f56740627481af742678e1599f791915350df66b2920364299ebdbb56b1f04e7ef105d8bb70b8826194058cfcfed30799178fdcbed2dfe7f9da051f0aca2dd9f894968d6c44ab1595eecf413861c85a43e04411b85af6037142eb44f8878f608054af94a951ff804c33d5485fb563c54ce9c850f1b1c3c6e9afaea072ddbb67a39f6864ec5547c4cc41abdfe9c631988c199d2484f748ce0df5422da39b7d1eaafe34c8191709179ba1ddf6bef51743424b103c95a687f90cdf9906fe4dc5e2c2e4e86b25ede8d7e32f891598c8a284532ae931511225f586324e2261c414a6dd67623936b55890e3c68b44bdaeef302a50fbba3ab8fbe11df8b9a91630b78dd59f261f4daf8c02fe45d4f037a1ca82430b7c7555d7e9aac9ed18212c656952d771f9e9f042c594a1e82d2346d8757b42f8af507e99c5500fa100b75b0f54eae05956d3924c5c6ec84da5432e2ff5df6c6698038efdd1e9e5f44bb663efdeedab4daac05d5e9847aada75d67decba97f478bd9038240f9720f95dd8b78595e6e72d173e58276e9ecad80c096b2b1f51467ed3f329415897dadfebcf0f5c99af9d94df4de175c6c1dc029a73e5366ec14ad689d70509350085d165fc80885591c625b3f53d5e7cc8f34acac43e1f0eb9a63c88cd6f505f4b9ce3a62c3a3f9a6c404b1257ef817ae28b8aa7291967bb4f628b2dc8228505101344856c29b1930bb87e0a22a223daef767176b1042900dfc77034036ad05f5e62eb9e85999cd5621d01dd411ebdc4a5428e84e48f996ea4152763d24237e02f898a81f86112fd6c7692da2b2159f4bfb75a4a4270c6f391b74d058b1ebad6479c7eeb8e376e911f29848ccabb4ef8a7a158f32f07447bd31d713bd74fef4d62b845c73bd8b92e2337136d755585418f49e0a6114f1951add6685206091deefcbaa5454b1187ed48dfe392d651e8ea2ebdd3124190fbe51d1312004ab97d2e49d30f3f9eb16", + "0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e169030e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedcaed441ceb81326c56263efbb60c95c2e4": "0x00000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x000000000300000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000010a5d4e800000000000000000000000010a5d4e80000000000000000000000", + "0x5f3e4907f716ac89b6347d15ececedcaa141c4fe67c2d11f4a10c6aca7a79a04b4def25cfda6ef3a00000000": "0x00204aa9d10100000000000000000000", + "0xf2794c22e353e9a839f12faab03a911b7f17cdfbfa73331856cca0acddd7842e": "0x00000000", + "0x5f3e4907f716ac89b6347d15ececedca5579297f4dfb9609e7e4c2ebab9ce40a": "0x08be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25ffe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da94f9aea1afa791265fae359272badc1cf8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xe2e62dd81c48a88f73b6f6463555fd8e4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade980e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x00", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x94a297125bf31bc15e2a2f1d7d44d2c2a99ce3ed81fdc3a7acf4a4cc30480fb78eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a00000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x070010a5d4e8070010a5d4e800", + "0xed25f63942de25ac5253ba64b5eb64d14e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x9c5d795d0297be56027a4b2464e33397f43d6436dec51f09c3b71287a8fc9d48": "0x00000000000000000000000000000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19504ced830e8a961a5e6772616e8094a297125bf31bc15e2a2f1d7d44d2c2a99ce3ed81fdc3a7acf4a4cc30480fb7": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195066b8d48da86b869b6261626580d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0xf2794c22e353e9a839f12faab03a911bbdcb0c5143a8617ed38ae3810dd45bc6": "0x00000000", + "0x2aeddc77fe58c98d50bd37f1b90840f94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f9cc45b7a00c5899361e1c6099678dcd47cb8f5328af743ddfb361e7180e7fcbb1bdbcacd6ac9340000000000000000": "0x00000000", + "0x5f3e4907f716ac89b6347d15ececedca487df464e44a534ba6b0cbb32407b587": "0x0000000000", + "0x1a736d37504c2e3fb73dad160c55b2914e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da932a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x000000000300000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000010a5d4e800000000000000000000000010a5d4e80000000000000000000000", + "0xf2794c22e353e9a839f12faab03a911b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc4de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f070010a5d4e8070010a5d4e80000", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3a2d6c9353500637d8f8e3e0fa0bb1c54e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2b06af9719ac64d755623cda8ddd9b949f99a2ce711f3a31b2fc05604c93f179": "0x08d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0x2c5de123c468aef7f3ac2ab3a76f87ce4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade98e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x00", + "0x5f3e4907f716ac89b6347d15ececedca6ddc7809c6da9bb6093ee22e0fda4ba8": "0x02000000", + "0x5f3e4907f716ac89b6347d15ececedcac29a0310e1bb45d20cace77ccb62c97d": "0x00e1f505", + "0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a00000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x070010a5d4e8070010a5d4e800", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x5f3e4907f716ac89b6347d15ececedca4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x0000000000000000000000000000000000204aa9d1010000", + "0x89d139e01a5eb2256f222e5fc5dbe6b34e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe700e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950246b6699fb8b8db670617261808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba098ef7dc060436e4ed803af07632b89b65153cb1f00942ff401000000": "0x28f3c05fb6569b52abaef08d394eeba24cdac83fac8140dd011e5d2aba0536c402000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b0edae20838083f2cde1c4080db8cf8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x5f9cc45b7a00c5899361e1c6099678dc4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xf2794c22e353e9a839f12faab03a911be2f6cb0456905c189bcb0458f9440f13": "0x00000000", + "0x5f3e4907f716ac89b6347d15ececedcac0d39ff577af2cc6b67ac3641fa9c4e7": "0x01000000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c0cadce9c18510226173676e808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x1cb6f36e027abb2091cfb5110ab5087f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedcaea07de2b8f010516dca3f7ef52f7ac5a": "0x040000000000000000", + "0x2099d7f109d6e535fb000bba623fd4404e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500e3a507571a62417696d6f6e808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x2f85f1e1378cb2d7b83adbaf0b5869c24e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a000000000e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x070010a5d4e8070010a5d4e800", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc632a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x047374616b696e67200010a5d4e8000000000000000000000002", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "0xd5c41b52a371aa36c9254ce34324f2a54e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f3f619a1c2956443880db9cc9a13d058e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x5f3e4907f716ac89b6347d15ececedca28dccb559b95c40168a1b2696581b5a7": "0x00000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9e5e802737cce3a54b0bc9e3d3e6be26e306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0x000000000000000001000000000000000000c16ff28623000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x08be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25ffe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0x5f3e4907f716ac89b6347d15ececedcaac0a2cbf8e355f5ea6cb2de8727bfb0c": "0x54000000", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x492a52699edf49c972c21db794cfcf57ba7fb8745735dc3be2a2c61a72c39e78": "0x00", + "0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a000000000e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x1cb6f36e027abb2091cfb5110ab5087fdc6b171b77304263c292cc3ea5ed31ef": "0x0100000000000000040000000000000002", + "0x2099d7f109d6e535fb000bba623fd4409f99a2ce711f3a31b2fc05604c93f179": "0x08d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a000000000e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x070010a5d4e8070010a5d4e800" + }, + "childrenDefault": {} + } + } + } \ No newline at end of file diff --git a/tests/utils/gossamer_utils.go b/tests/utils/gossamer_utils.go index 1de9bfb316..5e00ae1e81 100644 --- a/tests/utils/gossamer_utils.go +++ b/tests/utils/gossamer_utils.go @@ -44,7 +44,9 @@ var ( // GenesisOneAuth is the genesis file that has 1 authority GenesisOneAuth = filepath.Join(currentDir, "../utils/genesis_oneauth.json") // GenesisThreeAuths is the genesis file that has 3 authorities - GenesisThreeAuths = filepath.Join(currentDir, "../utils/genesis_threeauths.json") + GenesisThreeAuths = filepath.Join(currentDir, "../utils/genesis_threeauths.json") + GenesisTwoAuthsSecondaryVRF_0_9_10 = filepath.Join(currentDir, "../utils/genesis_two_auths_secondaryvrf_0_9_10.json") + // GenesisSixAuths is the genesis file that has 6 authorities GenesisSixAuths = filepath.Join(currentDir, "../utils/genesis_sixauths.json") // GenesisDefault is the default gssmr genesis file From e9b24a98391e7aff2182d11bc298424d615d64df Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Mon, 28 Feb 2022 20:43:54 +0530 Subject: [PATCH 27/35] fixing lint --- tests/stress/stress_test.go | 2 +- tests/utils/gossamer_utils.go | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index aa5e15e0bf..d6ddd5ab4c 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -652,7 +652,7 @@ func TestStress_SecondarySlotProduction(t *testing.T) { { description: "with secondary vrf slots enabled", - genesis: utils.GenesisTwoAuthsSecondaryVRF_0_9_10, + genesis: utils.GenesisTwoAuthsSecondaryVRF0_9_10, allowedSlots: gosstypes.PrimaryAndSecondaryVRFSlots, }, // TODO: We are not able to pickup the right value of AllowedSlots diff --git a/tests/utils/gossamer_utils.go b/tests/utils/gossamer_utils.go index 5e00ae1e81..6efa115edb 100644 --- a/tests/utils/gossamer_utils.go +++ b/tests/utils/gossamer_utils.go @@ -44,8 +44,10 @@ var ( // GenesisOneAuth is the genesis file that has 1 authority GenesisOneAuth = filepath.Join(currentDir, "../utils/genesis_oneauth.json") // GenesisThreeAuths is the genesis file that has 3 authorities - GenesisThreeAuths = filepath.Join(currentDir, "../utils/genesis_threeauths.json") - GenesisTwoAuthsSecondaryVRF_0_9_10 = filepath.Join(currentDir, "../utils/genesis_two_auths_secondaryvrf_0_9_10.json") + GenesisThreeAuths = filepath.Join(currentDir, "../utils/genesis_threeauths.json") + // GenesisTwoAuthsSecondaryVRF0_9_10 is the genesis file that has 2 authorities and block production by + // secondary VRF slots enabled + GenesisTwoAuthsSecondaryVRF0_9_10 = filepath.Join(currentDir, "../utils/genesis_two_auths_secondaryvrf_0_9_10.json") // GenesisSixAuths is the genesis file that has 6 authorities GenesisSixAuths = filepath.Join(currentDir, "../utils/genesis_sixauths.json") From 347a69851524384eaee1c5c1e4b00165e5b67f14 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Mar 2022 01:58:40 +0530 Subject: [PATCH 28/35] Addressed Eclesio's comments --- lib/babe/build.go | 4 +--- lib/babe/epoch.go | 16 ++++++---------- lib/babe/types.go | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/lib/babe/build.go b/lib/babe/build.go index 95b286e321..971b83410b 100644 --- a/lib/babe/build.go +++ b/lib/babe/build.go @@ -92,12 +92,10 @@ func NewBlockBuilder( func (b *BlockBuilder) buildBlock(parent *types.Header, slot Slot, rt runtime.Instance) (*types.Block, error) { logger.Tracef("build block with parent %s and slot: %s", parent, slot) - preDigest := b.preRuntimeDigest - // create new block header number := big.NewInt(0).Add(parent.Number, big.NewInt(1)) digest := types.NewDigest() - err := digest.Add(*preDigest) + err := digest.Add(*b.preRuntimeDigest) if err != nil { return nil, err } diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 0303401efc..a6b564d1db 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -139,7 +139,7 @@ func (b *Service) getEpochDataAndStartSlot(epoch uint64) (*epochData, uint64, er authorities: data.Authorities, authorityIndex: idx, threshold: threshold, - secondary: types.AllowedSlots(cfgData.SecondarySlots), + allowedSlots: types.AllowedSlots(cfgData.SecondarySlots), } startSlot, err := b.epochState.GetStartSlotForEpoch(epoch) @@ -166,7 +166,7 @@ func (b *Service) getLatestEpochData() (resEpochData *epochData, error error) { return nil, fmt.Errorf("cannot get epoch state latest config data: %w", err) } - resEpochData.secondary = types.AllowedSlots(configData.SecondarySlots) + resEpochData.allowedSlots = types.AllowedSlots(configData.SecondarySlots) resEpochData.threshold, err = CalculateThreshold(configData.C1, configData.C2, len(resEpochData.authorities)) if err != nil { @@ -189,13 +189,9 @@ func (b *Service) getFirstAuthoringSlot(epoch uint64, epochData *epochData) (uin startSlot := getCurrentSlot(b.constants.slotDuration) for i := startSlot; i < startSlot+b.constants.epochLength; i++ { _, err := claimSlot(epoch, i, epochData, b.keypair) - if err != nil { - if errors.Is(err, errOverPrimarySlotThreshold) { - continue - } - if errors.Is(err, errNotOurTurnToPropose) { - continue - } + if errors.Is(err, errOverPrimarySlotThreshold) || errors.Is(err, errNotOurTurnToPropose) { + continue + } else if err != nil { return 0, fmt.Errorf("error running slot lottery at slot %d: error %w", i, err) } @@ -250,7 +246,7 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp return nil, fmt.Errorf("error running slot lottery at slot %d: %w", slotNumber, err) } - switch epochData.secondary { + switch epochData.allowedSlots { case types.PrimarySlots: return nil, errNotOurTurnToPropose case types.PrimaryAndSecondaryVRFSlots: diff --git a/lib/babe/types.go b/lib/babe/types.go index d2981791b4..accea21c49 100644 --- a/lib/babe/types.go +++ b/lib/babe/types.go @@ -60,7 +60,7 @@ type epochData struct { authorityIndex uint32 authorities []types.Authority threshold *scale.Uint128 - secondary types.AllowedSlots + allowedSlots types.AllowedSlots } func (ed *epochData) String() string { From 11b326b2a386d128bc2874a9187d443be0708b03 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Mar 2022 02:00:59 +0530 Subject: [PATCH 29/35] Update tests/stress/stress_test.go Co-authored-by: Quentin McGaw --- tests/stress/stress_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index d6ddd5ab4c..079ca11ece 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -671,7 +671,6 @@ func TestStress_SecondarySlotProduction(t *testing.T) { } const numNodes = 2 for _, c := range testcases { - c := c // bypass scopelint false positive t.Run(c.description, func(t *testing.T) { nodes, err := utils.InitializeAndStartNodes(t, numNodes, c.genesis, utils.ConfigDefault) require.NoError(t, err) From 4de8ed5c278bf982614692005befb8eb41578fe8 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Mar 2022 10:53:13 +0530 Subject: [PATCH 30/35] Using ToPreRuntimeDigest() method now --- dot/core/messages_integration_test.go | 2 +- dot/core/service_integration_test.go | 2 +- dot/rpc/modules/chain_integration_test.go | 12 +++++------ .../modules/childstate_integration_test.go | 2 +- dot/rpc/modules/state_integration_test.go | 2 +- dot/rpc/modules/system_integration_test.go | 2 +- dot/state/block_finalisation_test.go | 6 +++--- dot/state/block_test.go | 4 ++-- dot/state/service_test.go | 4 ++-- dot/state/test_helpers.go | 6 +++--- dot/sync/chain_processor_test.go | 2 +- dot/sync/message_test.go | 2 +- dot/sync/test_helpers.go | 2 +- dot/types/babe_digest.go | 19 ++++++++++++++++-- lib/babe/build_integration_test.go | 8 ++++---- lib/babe/epoch.go | 12 +++++------ lib/babe/verify_test.go | 20 +++++++++---------- lib/grandpa/grandpa_test.go | 4 ++-- lib/grandpa/message_handler_test.go | 8 ++++---- lib/grandpa/message_test.go | 2 +- lib/grandpa/message_tracker_test.go | 4 ++-- lib/grandpa/network_test.go | 2 +- 22 files changed, 71 insertions(+), 56 deletions(-) diff --git a/dot/core/messages_integration_test.go b/dot/core/messages_integration_test.go index 82f9b77b19..5fca745e56 100644 --- a/dot/core/messages_integration_test.go +++ b/dot/core/messages_integration_test.go @@ -82,7 +82,7 @@ func TestService_HandleBlockProduced(t *testing.T) { // simulate block sent from BABE session digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/core/service_integration_test.go b/dot/core/service_integration_test.go index 01d2104a65..7ecd5be0a2 100644 --- a/dot/core/service_integration_test.go +++ b/dot/core/service_integration_test.go @@ -75,7 +75,7 @@ func TestAnnounceBlock(t *testing.T) { // simulate block sent from BABE session digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/chain_integration_test.go b/dot/rpc/modules/chain_integration_test.go index dc8ffaef8f..bc11a6a267 100644 --- a/dot/rpc/modules/chain_integration_test.go +++ b/dot/rpc/modules/chain_integration_test.go @@ -43,7 +43,7 @@ func TestChainGetHeader_Genesis(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -79,7 +79,7 @@ func TestChainGetHeader_Latest(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -127,7 +127,7 @@ func TestChainGetBlock_Genesis(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -171,7 +171,7 @@ func TestChainGetBlock_Latest(t *testing.T) { require.NoError(t, err) di := types.NewDigestItem() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = di.Set(*prd) require.NoError(t, err) @@ -315,7 +315,7 @@ func TestChainGetFinalizedHeadByRound(t *testing.T) { require.Equal(t, common.BytesToHex(expected[:]), res) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -388,7 +388,7 @@ func newTestStateService(t *testing.T) *state.Service { func loadTestBlocks(t *testing.T, gh common.Hash, bs *state.BlockState, rt runtime.Instance) { digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/childstate_integration_test.go b/dot/rpc/modules/childstate_integration_test.go index 0504eda218..6b3cb17de6 100644 --- a/dot/rpc/modules/childstate_integration_test.go +++ b/dot/rpc/modules/childstate_integration_test.go @@ -267,7 +267,7 @@ func setupChildStateStorage(t *testing.T) (*ChildStateModule, common.Hash) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/state_integration_test.go b/dot/rpc/modules/state_integration_test.go index efdff75a9d..db5834eb2f 100644 --- a/dot/rpc/modules/state_integration_test.go +++ b/dot/rpc/modules/state_integration_test.go @@ -531,7 +531,7 @@ func setupStateModule(t *testing.T) (*StateModule, *common.Hash, *common.Hash) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/rpc/modules/system_integration_test.go b/dot/rpc/modules/system_integration_test.go index 9f72c6ae01..3d14ea1a1a 100644 --- a/dot/rpc/modules/system_integration_test.go +++ b/dot/rpc/modules/system_integration_test.go @@ -321,7 +321,7 @@ func setupSystemModule(t *testing.T) *SystemModule { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/state/block_finalisation_test.go b/dot/state/block_finalisation_test.go index 7cf2d8848c..b55466c374 100644 --- a/dot/state/block_finalisation_test.go +++ b/dot/state/block_finalisation_test.go @@ -67,7 +67,7 @@ func TestBlockState_SetFinalisedHash(t *testing.T) { require.Equal(t, testGenesisHeader.Hash(), h) digest := types.NewDigest() - di, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + di, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, di) err = digest.Add(*di) @@ -101,13 +101,13 @@ func TestSetFinalisedHash_setFirstSlotOnFinalisation(t *testing.T) { firstSlot := uint64(42069) digest := types.NewDigest() - di, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, firstSlot)) + di, err := types.NewBabeSecondaryPlainPreDigest(0, firstSlot).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, di) err = digest.Add(*di) require.NoError(t, err) digest2 := types.NewDigest() - di, err = types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, firstSlot+100)) + di, err = types.NewBabeSecondaryPlainPreDigest(0, firstSlot+100).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, di) err = digest2.Add(*di) diff --git a/dot/state/block_test.go b/dot/state/block_test.go index e2a0e94c0b..45508e8a53 100644 --- a/dot/state/block_test.go +++ b/dot/state/block_test.go @@ -483,13 +483,13 @@ func TestNumberIsFinalised(t *testing.T) { require.False(t, fin) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) digest2 := types.NewDigest() - prd, err = types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 100)) + prd, err = types.NewBabeSecondaryPlainPreDigest(0, 100).ToPreRuntimeDigest() require.NoError(t, err) err = digest2.Add(*prd) require.NoError(t, err) diff --git a/dot/state/service_test.go b/dot/state/service_test.go index 4cfbb2f836..f8cabd4c08 100644 --- a/dot/state/service_test.go +++ b/dot/state/service_test.go @@ -242,7 +242,7 @@ func TestService_PruneStorage(t *testing.T) { for i := 0; i < 3; i++ { block, trieState := generateBlockWithRandomTrie(t, serv, nil, int64(i+1)) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(types.NewBabeSecondaryPlainPreDigest(0, uint64(i+1))) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, uint64(i+1)).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -385,7 +385,7 @@ func TestService_Import(t *testing.T) { } digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 177)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 177).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/state/test_helpers.go b/dot/state/test_helpers.go index 46bb0ee5f6..62c8def253 100644 --- a/dot/state/test_helpers.go +++ b/dot/state/test_helpers.go @@ -77,7 +77,7 @@ func AddBlocksToState(t *testing.T, blockState *BlockState, depth int, for i := startNum + 1; i <= depth+startNum; i++ { d := types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{}) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*d) + prd, err := d.ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -166,7 +166,7 @@ func AddBlocksToStateWithFixedBranches(t *testing.T, blockState *BlockState, dep // create base tree startNum := int(head.Number.Int64()) for i := startNum + 1; i <= depth; i++ { - d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{})) + d, err := types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() @@ -208,7 +208,7 @@ func AddBlocksToStateWithFixedBranches(t *testing.T, blockState *BlockState, dep previousHash = branch.hash for i := branch.depth; i < depth; i++ { - d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(i+j+99), [32]byte{}, [64]byte{})) + d, err := types.NewBabePrimaryPreDigest(0, uint64(i+j+99), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() diff --git a/dot/sync/chain_processor_test.go b/dot/sync/chain_processor_test.go index 56b24b7ba4..78083e6145 100644 --- a/dot/sync/chain_processor_test.go +++ b/dot/sync/chain_processor_test.go @@ -204,7 +204,7 @@ func TestChainProcessor_ExecuteBlock(t *testing.T) { func TestChainProcessor_HandleJustification(t *testing.T) { syncer := newTestSyncer(t) - d, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + d, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) digest := types.NewDigest() err = digest.Add(*d) diff --git a/dot/sync/message_test.go b/dot/sync/message_test.go index f5e19ee446..c8878b05d0 100644 --- a/dot/sync/message_test.go +++ b/dot/sync/message_test.go @@ -22,7 +22,7 @@ func addTestBlocksToState(t *testing.T, depth int, blockState BlockState) { require.Nil(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/sync/test_helpers.go b/dot/sync/test_helpers.go index 8dc1462be0..4836e3cf30 100644 --- a/dot/sync/test_helpers.go +++ b/dot/sync/test_helpers.go @@ -18,7 +18,7 @@ import ( // BuildBlock ... func BuildBlock(t *testing.T, instance runtime.Instance, parent *types.Header, ext types.Extrinsic) *types.Block { digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/dot/types/babe_digest.go b/dot/types/babe_digest.go index c5fdbc0702..0f547bdc98 100644 --- a/dot/types/babe_digest.go +++ b/dot/types/babe_digest.go @@ -52,6 +52,11 @@ func NewBabePrimaryPreDigest(authorityIndex uint32, } } +// ToPreRuntimeDigest returns the BabePrimaryPreDigest as a PreRuntimeDigest +func (d *BabePrimaryPreDigest) ToPreRuntimeDigest() (*PreRuntimeDigest, error) { + return toPreRuntimeDigest(*d) +} + // Index Returns VDT index func (d BabePrimaryPreDigest) Index() uint { return 1 } @@ -69,6 +74,11 @@ func NewBabeSecondaryPlainPreDigest(authorityIndex uint32, slotNumber uint64) *B } } +// ToPreRuntimeDigest returns the BabeSecondaryPlainPreDigest as a PreRuntimeDigest +func (d *BabeSecondaryPlainPreDigest) ToPreRuntimeDigest() (*PreRuntimeDigest, error) { + return toPreRuntimeDigest(*d) +} + // Index Returns VDT index func (d BabeSecondaryPlainPreDigest) Index() uint { return 2 } @@ -92,11 +102,16 @@ func NewBabeSecondaryVRFPreDigest(authorityIndex uint32, } } +// ToPreRuntimeDigest returns the BabeSecondaryVRFPreDigest as a PreRuntimeDigest +func (d *BabeSecondaryVRFPreDigest) ToPreRuntimeDigest() (*PreRuntimeDigest, error) { + return toPreRuntimeDigest(*d) +} + // Index Returns VDT index func (d BabeSecondaryVRFPreDigest) Index() uint { return 3 } -// ToPreRuntimeDigest returns the VaryingDataTypeValue as a PreRuntimeDigest -func ToPreRuntimeDigest(value scale.VaryingDataTypeValue) (*PreRuntimeDigest, error) { +// toPreRuntimeDigest returns the VaryingDataTypeValue as a PreRuntimeDigest +func toPreRuntimeDigest(value scale.VaryingDataTypeValue) (*PreRuntimeDigest, error) { digest := NewBabeDigest() err := digest.Set(value) if err != nil { diff --git a/lib/babe/build_integration_test.go b/lib/babe/build_integration_test.go index a16e38a033..db18af9a13 100644 --- a/lib/babe/build_integration_test.go +++ b/lib/babe/build_integration_test.go @@ -171,11 +171,11 @@ func TestApplyExtrinsic(t *testing.T) { } testVRFOutputAndProof := &VrfOutputAndProof{} - preDigest2, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest( + preDigest2, err := types.NewBabePrimaryPreDigest( authorityIndex, slot2.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof, - )) + ).ToPreRuntimeDigest() require.NoError(t, err) parentHash := babeService.blockState.GenesisHash() @@ -187,11 +187,11 @@ func TestApplyExtrinsic(t *testing.T) { require.NoError(t, err) rt.SetContextStorage(ts) - preDigest, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest( + preDigest, err := types.NewBabePrimaryPreDigest( authorityIndex, slot.number, testVRFOutputAndProof.output, testVRFOutputAndProof.proof, - )) + ).ToPreRuntimeDigest() require.NoError(t, err) digest := types.NewDigest() diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index a6b564d1db..8e2abef9f4 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -235,8 +235,8 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp ) if err == nil { - preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest( - epochData.authorityIndex, slotNumber, proof.output, proof.proof)) + preRuntimeDigest, err := types.NewBabePrimaryPreDigest( + epochData.authorityIndex, slotNumber, proof.output, proof.proof).ToPreRuntimeDigest() if err != nil { return nil, fmt.Errorf("error converting babe primary pre-digest to pre-runtime digest: %w", err) } @@ -256,8 +256,8 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp return nil, fmt.Errorf("error claim secondary vrf slot at %d: %w", slotNumber, err) } - preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryVRFPreDigest( - epochData.authorityIndex, slotNumber, proof.output, proof.proof)) + preRuntimeDigest, err := types.NewBabeSecondaryVRFPreDigest( + epochData.authorityIndex, slotNumber, proof.output, proof.proof).ToPreRuntimeDigest() if err != nil { return nil, fmt.Errorf("error converting babe secondary vrf pre-digest to pre-runtime digest: %w", err) } @@ -271,8 +271,8 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp return nil, fmt.Errorf("error claiming secondary plain slot at %d: %w", slotNumber, err) } - preRuntimeDigest, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest( - epochData.authorityIndex, slotNumber)) + preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( + epochData.authorityIndex, slotNumber).ToPreRuntimeDigest() if err != nil { return nil, fmt.Errorf( diff --git a/lib/babe/verify_test.go b/lib/babe/verify_test.go index 8d1ff5a028..4d4752ea18 100644 --- a/lib/babe/verify_test.go +++ b/lib/babe/verify_test.go @@ -301,7 +301,7 @@ func Test_verifier_verifyPreRuntimeDigest(t *testing.T) { VRFOutput: output, VRFProof: proof, } - prd1, err := types.ToPreRuntimeDigest(secDigest1) + prd1, err := secDigest1.ToPreRuntimeDigest() assert.NoError(t, err) auth := types.NewAuthority(kp.Public(), uint64(1)) @@ -362,7 +362,7 @@ func Test_verifier_verifyPreRuntimeDigest(t *testing.T) { //BabeSecondaryPlainPreDigest case secDigest := types.BabeSecondaryPlainPreDigest{AuthorityIndex: 0, SlotNumber: uint64(1)} - prd, err := types.ToPreRuntimeDigest(secDigest) + prd, err := secDigest.ToPreRuntimeDigest() assert.NoError(t, err) authSec := types.NewAuthority(kp.Public(), uint64(1)) @@ -519,12 +519,12 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { testHeaderPrimary.Digest = testDigestPrimary // Secondary Plain Test Header - testParentPrd, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) + testParentPrd, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) testParentHeader := newTestHeader(t, *testParentPrd) testParentHash := encodeAndHashHeader(t, testParentHeader) - testSecondaryPrd, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) + testSecondaryPrd, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) testSecPlainHeader := newTestHeader(t, *testSecondaryPrd) testSecPlainHeader.ParentHash = testParentHash @@ -565,13 +565,13 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { header2 := newTestHeader(t, testInvalidPreRuntimeDigest, testInvalidSeal) // Case 3: Invalid Seal Length - babePrd, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) + babePrd, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) header3 := newTestHeader(t, *babePrd, testInvalidSeal) babeVerifier := newTestVerifier(t, kp, mockBlockState, scale.MaxUint128, false) // Case 4: Invalid signature - BabePrimaryPreDigest - babePrd2, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) + babePrd2, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) header4 := newTestHeader(t, *babePrd2) @@ -579,7 +579,7 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { babeVerifier2 := newTestVerifier(t, kp, mockBlockState, scale.MaxUint128, false) // Case 5: Invalid signature - BabeSecondaryPlainPreDigest - babeSecPlainPrd, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) + babeSecPlainPrd, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) header5 := newTestHeader(t, *babeSecPlainPrd) @@ -595,12 +595,12 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { babeVerifier4 := newTestVerifier(t, kp, mockBlockState, scale.MaxUint128, true) // Case 7: GetAuthorityIndex Err - babeParentPrd, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) + babeParentPrd, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) babeParentHeader := newTestHeader(t, *babeParentPrd) parentHash := encodeAndHashHeader(t, babeParentHeader) - babePrd3, err := types.ToPreRuntimeDigest(testBabePrimaryPreDigest) + babePrd3, err := testBabePrimaryPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) header7 := newTestHeader(t, *babePrd3) @@ -617,7 +617,7 @@ func Test_verifier_verifyAuthorshipRight(t *testing.T) { babeVerifier7 := newTestVerifier(t, kp, mockBlockStateEquiv1, scale.MaxUint128, false) // Case 10: Equivocate case secondary plain - babeSecPlainPrd2, err := types.ToPreRuntimeDigest(testBabeSecondaryPlainPreDigest) + babeSecPlainPrd2, err := testBabeSecondaryPlainPreDigest.ToPreRuntimeDigest() assert.NoError(t, err) header8 := newTestHeader(t, *babeSecPlainPrd2) diff --git a/lib/grandpa/grandpa_test.go b/lib/grandpa/grandpa_test.go index c0e4ea252d..14a60f0714 100644 --- a/lib/grandpa/grandpa_test.go +++ b/lib/grandpa/grandpa_test.go @@ -1352,7 +1352,7 @@ func addBlocksToState(t *testing.T, blockState *state.BlockState, depth int) { for i := startNum + 1; i <= depth; i++ { arrivalTime := time.Now() - d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{})) + d, err := types.NewBabePrimaryPreDigest(0, uint64(i), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() @@ -1393,7 +1393,7 @@ func addBlocksAndReturnTheLastOne( bfcNumber := int(previousHead.Number.Int64() + 1) - d, err := types.ToPreRuntimeDigest(*types.NewBabePrimaryPreDigest(0, uint64(bfcNumber), [32]byte{}, [64]byte{})) + d, err := types.NewBabePrimaryPreDigest(0, uint64(bfcNumber), [32]byte{}, [64]byte{}).ToPreRuntimeDigest() require.NoError(t, err) require.NotNil(t, d) digest := types.NewDigest() diff --git a/lib/grandpa/message_handler_test.go b/lib/grandpa/message_handler_test.go index f0caef4e98..fafb7eb761 100644 --- a/lib/grandpa/message_handler_test.go +++ b/lib/grandpa/message_handler_test.go @@ -30,7 +30,7 @@ var testHash = testHeader.Hash() func newTestDigest() scale.VaryingDataTypeSlice { digest := types.NewDigest() - prd, _ := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, _ := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() digest.Add(*prd) return digest } @@ -204,7 +204,7 @@ func TestMessageHandler_NeighbourMessage(t *testing.T) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -262,7 +262,7 @@ func TestMessageHandler_CommitMessage_NoCatchUpRequest_ValidSig(t *testing.T) { fm.Vote = *NewVote(testHash, uint32(round)) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -377,7 +377,7 @@ func TestMessageHandler_CatchUpRequest_WithResponse(t *testing.T) { gs.state.round = round + 1 digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/lib/grandpa/message_test.go b/lib/grandpa/message_test.go index 8906d47ed9..737e9ee269 100644 --- a/lib/grandpa/message_test.go +++ b/lib/grandpa/message_test.go @@ -143,7 +143,7 @@ func TestNewCatchUpResponse(t *testing.T) { setID := uint64(1) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/lib/grandpa/message_tracker_test.go b/lib/grandpa/message_tracker_test.go index b59b4458f8..f71c3ef027 100644 --- a/lib/grandpa/message_tracker_test.go +++ b/lib/grandpa/message_tracker_test.go @@ -56,7 +56,7 @@ func TestMessageTracker_SendMessage(t *testing.T) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) @@ -109,7 +109,7 @@ func TestMessageTracker_ProcessMessage(t *testing.T) { require.NoError(t, err) digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) diff --git a/lib/grandpa/network_test.go b/lib/grandpa/network_test.go index ce640fc355..036dbb3fd7 100644 --- a/lib/grandpa/network_test.go +++ b/lib/grandpa/network_test.go @@ -88,7 +88,7 @@ func TestSendNeighbourMessage(t *testing.T) { go gs.sendNeighbourMessage() digest := types.NewDigest() - prd, err := types.ToPreRuntimeDigest(*types.NewBabeSecondaryPlainPreDigest(0, 1)) + prd, err := types.NewBabeSecondaryPlainPreDigest(0, 1).ToPreRuntimeDigest() require.NoError(t, err) err = digest.Add(*prd) require.NoError(t, err) From 678b2f8fd9d59cc830411b67abd977d60767f36c Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Thu, 3 Mar 2022 11:38:32 +0530 Subject: [PATCH 31/35] more of quentin's comments --- lib/babe/epoch.go | 10 +++++----- lib/babe/epoch_handler.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index 8e2abef9f4..e4b9cea5c7 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -235,8 +235,8 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp ) if err == nil { - preRuntimeDigest, err := types.NewBabePrimaryPreDigest( - epochData.authorityIndex, slotNumber, proof.output, proof.proof).ToPreRuntimeDigest() + babePrimaryPreDigest := types.NewBabePrimaryPreDigest(epochData.authorityIndex, slotNumber, proof.output, proof.proof) + preRuntimeDigest, err := babePrimaryPreDigest.ToPreRuntimeDigest() if err != nil { return nil, fmt.Errorf("error converting babe primary pre-digest to pre-runtime digest: %w", err) } @@ -255,9 +255,9 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp if err != nil { return nil, fmt.Errorf("error claim secondary vrf slot at %d: %w", slotNumber, err) } - - preRuntimeDigest, err := types.NewBabeSecondaryVRFPreDigest( - epochData.authorityIndex, slotNumber, proof.output, proof.proof).ToPreRuntimeDigest() + babeSecondaryVRFPreDigest := types.NewBabeSecondaryVRFPreDigest( + epochData.authorityIndex, slotNumber, proof.output, proof.proof) + preRuntimeDigest, err := babeSecondaryVRFPreDigest.ToPreRuntimeDigest() if err != nil { return nil, fmt.Errorf("error converting babe secondary vrf pre-digest to pre-runtime digest: %w", err) } diff --git a/lib/babe/epoch_handler.go b/lib/babe/epoch_handler.go index 5ba2ab2cfc..0e78d6c996 100644 --- a/lib/babe/epoch_handler.go +++ b/lib/babe/epoch_handler.go @@ -47,7 +47,7 @@ func newEpochHandler(epochNumber, firstSlot uint64, epochData *epochData, consta continue } - return nil, err + return nil, fmt.Errorf("failed to create new epoch handler: %w", err) } return &epochHandler{ From 983af6eb2a685230a91e62b71095f4dcb769b4f2 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Fri, 4 Mar 2022 03:38:18 +0530 Subject: [PATCH 32/35] Update lib/babe/epoch.go Co-authored-by: noot <36753753+noot@users.noreply.github.com> --- lib/babe/epoch.go | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index e4b9cea5c7..ce661b1e8d 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -273,7 +273,6 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( epochData.authorityIndex, slotNumber).ToPreRuntimeDigest() - if err != nil { return nil, fmt.Errorf( "failed to get preruntime digest from babe secondary plain predigest for slot %d: %w", slotNumber, err) From 0c8a7b0d2093d94fcd097ac3ed102147ead55372 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Fri, 4 Mar 2022 03:38:27 +0530 Subject: [PATCH 33/35] Update lib/babe/epoch.go Co-authored-by: noot <36753753+noot@users.noreply.github.com> --- lib/babe/epoch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index ce661b1e8d..cc9f2f4a1e 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -268,7 +268,7 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp err = claimSecondarySlotPlain( epochData.randomness, slotNumber, epochData.authorities, epochData.authorityIndex) if err != nil { - return nil, fmt.Errorf("error claiming secondary plain slot at %d: %w", slotNumber, err) + return nil, fmt.Errorf("cannot claim secondary plain slot at %d: %w", slotNumber, err) } preRuntimeDigest, err := types.NewBabeSecondaryPlainPreDigest( From bc775c66b05b9df40a70947b57acf6dd10b22902 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Fri, 4 Mar 2022 03:38:38 +0530 Subject: [PATCH 34/35] Update lib/babe/epoch.go Co-authored-by: noot <36753753+noot@users.noreply.github.com> --- lib/babe/epoch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/babe/epoch.go b/lib/babe/epoch.go index cc9f2f4a1e..a72d37d9c5 100644 --- a/lib/babe/epoch.go +++ b/lib/babe/epoch.go @@ -253,7 +253,7 @@ func claimSlot(epochNumber uint64, slotNumber uint64, epochData *epochData, keyp proof, err := claimSecondarySlotVRF( epochData.randomness, slotNumber, epochNumber, epochData.authorities, keypair, epochData.authorityIndex) if err != nil { - return nil, fmt.Errorf("error claim secondary vrf slot at %d: %w", slotNumber, err) + return nil, fmt.Errorf("cannot claim secondary vrf slot at %d: %w", slotNumber, err) } babeSecondaryVRFPreDigest := types.NewBabeSecondaryVRFPreDigest( epochData.authorityIndex, slotNumber, proof.output, proof.proof) From 9d6d62e27c54f658663a2c9e5aad0c5fe4ebb4d3 Mon Sep 17 00:00:00 2001 From: Kishan Sagathiya Date: Fri, 4 Mar 2022 13:19:29 +0530 Subject: [PATCH 35/35] removed a comment --- tests/stress/stress_test.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/tests/stress/stress_test.go b/tests/stress/stress_test.go index 9686a70332..f88112851c 100644 --- a/tests/stress/stress_test.go +++ b/tests/stress/stress_test.go @@ -650,25 +650,11 @@ func TestStress_SecondarySlotProduction(t *testing.T) { genesis string allowedSlots gosstypes.AllowedSlots }{ - { description: "with secondary vrf slots enabled", genesis: utils.GenesisTwoAuthsSecondaryVRF0_9_10, allowedSlots: gosstypes.PrimaryAndSecondaryVRFSlots, }, - // TODO: We are not able to pickup the right value of AllowedSlots - // from these genesis file. It is always being read as PrimaryAndSecondaryVRFSlots. - // We have to fix that in order to properly test below cases. - // { - // description: "with secondary plain slots enabled", - // genesis: utils.GenesisTwoAuthsSecondaryPlain_0_9_10, - // allowedSlots: gosstypes.PrimaryAndSecondaryPlainSlots, - // }, - // { - // description: "with secondary slots disabled", - // genesis: utils.GenesisTwoAuthsPrimary_0_9_10, - // allowedSlots: gosstypes.PrimarySlots, - // }, } const numNodes = 2 for _, c := range testcases {