diff --git a/.gitignore b/.gitignore index c17d38f35..44b69932a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ source/images/* *.bak source/images source/figures -source/ source-master/ source-v*/ source-v2.0/ @@ -16,5 +15,7 @@ meta.yaml source/includes/hash.rst source/includes/table/ source/includes/toc +bson-ruby/ +mongo-ruby-driver/ fabfile giza.log diff --git a/.yardoc/checksums b/.yardoc/checksums deleted file mode 100644 index 718691c4c..000000000 --- a/.yardoc/checksums +++ /dev/null @@ -1,437 +0,0 @@ -build/ruby-driver-v2.15/lib/mongo.rb 1e13fca91e9594cbfed1ea102322ab43d698d374 -build/ruby-driver-v2.15/lib/mongo/id.rb d402d5c0eb7817734d1193e8a2c013e2217774dd -build/ruby-driver-v2.15/lib/mongo/srv.rb 598635c6055ca5c208bb19aa7f023e7c4af96300 -build/ruby-driver-v2.15/lib/mongo/uri.rb 95e162e6ae0248d277c896a475b80ff5964f0fe9 -build/ruby-driver-v2.15/lib/mongo/auth.rb 246508b3899afaa7b9b776b2e1146590b63eff3d -build/ruby-driver-v2.15/lib/mongo/bson.rb bb84fdc029fc7260c6a3afe5c01d1f0f1edf84f3 -build/ruby-driver-v2.15/lib/mongo/grid.rb 246088ef3d0f88b28fbcbd8212f80bc38cc9486b -build/ruby-driver-v2.15/lib/mongo/lint.rb 8192d73e6ce4f3a368e04e86c234c5dbc9d5caca -build/ruby-driver-v2.15/lib/mongo/crypt.rb e5e620e4964fd27df0be37719e9b49e705369027 -build/ruby-driver-v2.15/lib/mongo/dbref.rb 291a21c5e9d82e7e5caf03d4bc430ddec4c6820a -build/ruby-driver-v2.15/lib/mongo/error.rb 611f83400f826665fe47c3203c87f5e9265662bc -build/ruby-driver-v2.15/lib/mongo/event.rb fe2fe0a79af103f3cfd7ff920a71f6a6ee7b8aac -build/ruby-driver-v2.15/lib/mongo/index.rb 4968e19cb3e99a59527c9364b3e64c220ad1dac4 -build/ruby-driver-v2.15/lib/mongo/utils.rb 996378c6f04fc1d254bd016670240c06c04d4b9c -build/ruby-driver-v2.15/lib/mongo/client.rb 300d59fb0314337b294cec6ce6a65551ef51bc18 -build/ruby-driver-v2.15/lib/mongo/cursor.rb d145f6906afb4268e9df9559982d0febc8292bd8 -build/ruby-driver-v2.15/lib/mongo/logger.rb 50d13b9afa1ada78ecceade0575ae44515987e2d -build/ruby-driver-v2.15/lib/mongo/server.rb ecd2ced72d4df219ecec61abe316ed375f4dc7f4 -build/ruby-driver-v2.15/lib/mongo/socket.rb 0c4a2119c95f9693280c62cbfb9691de9fea4fa5 -build/ruby-driver-v2.15/gemfiles/standard.rb 1ce19eeb13ea308f160a0adfd931f9688c722deb -build/ruby-driver-v2.15/lib/mongo/address.rb cc61454192fb85a8c3f1d87d9d54d786f3503620 -build/ruby-driver-v2.15/lib/mongo/auth/cr.rb 939b6fdde76d04457b402d6630a8d04bf8df9b87 -build/ruby-driver-v2.15/lib/mongo/cluster.rb 386287f6ea7dd57233c12d66f332cfbf275405ed -build/ruby-driver-v2.15/lib/mongo/options.rb a0d7a9a932de146b716b57a6ee412660acdf7c6d -build/ruby-driver-v2.15/lib/mongo/session.rb 87bd77abd7c87f4b3179a66a10c87fd671d1b281 -build/ruby-driver-v2.15/lib/mongo/timeout.rb 6eb3f7aab37092392381c60d94167baeac0d3b8e -build/ruby-driver-v2.15/lib/mongo/version.rb 4f52e0a3742bc2607262213ec7054789516d23dd -build/ruby-driver-v2.15/lib/mongo/auth/aws.rb 18e2b82e1f4e5b422808282cff4a9c7209e9d0b8 -build/ruby-driver-v2.15/lib/mongo/database.rb a45dc0e05d0cf44aea6ea95694f500d746fe423f -build/ruby-driver-v2.15/lib/mongo/loggable.rb 5d1dd41e02988be1b0f21d838485884d7d41b2ee -build/ruby-driver-v2.15/lib/mongo/protocol.rb 67b83ff8d1d46c1c4e71a197b393e1f85c14cf48 -build/ruby-driver-v2.15/lib/mongo/auth/base.rb 79b750d5cd1cbb21e25ebd7b71d073fb52cc2375 -build/ruby-driver-v2.15/lib/mongo/auth/ldap.rb d3faf0fe6e2adb41db698c831507231269b3ee34 -build/ruby-driver-v2.15/lib/mongo/auth/user.rb 9d343a40d8f12407ff3fc1720ec064b56809ba0c -build/ruby-driver-v2.15/lib/mongo/auth/x509.rb 5655e53b5071eff905b4af3ce1656aa2c867212c -build/ruby-driver-v2.15/lib/mongo/grid/file.rb d9d287cbe1ced766a0d7a78aa81dbf07228f8cb2 -build/ruby-driver-v2.15/lib/mongo/operation.rb 08e93d80bf3302fefe84d562882a24a683d1af8f -build/ruby-driver-v2.15/lib/mongo/retryable.rb 29ec52df25d3a60c31e318eaeb75c0457c255ef0 -build/ruby-driver-v2.15/lib/mongo/semaphore.rb 60c89dc655038e4db5da64aba3d2818dc8852646 -build/ruby-driver-v2.15/lib/mongo/auth/roles.rb 2ca4353a0bac6cf0c5acc5dd00be8b1bd493620c -build/ruby-driver-v2.15/lib/mongo/auth/scram.rb 82309507054027fd940978f9e5c87d9d46a1bfd7 -build/ruby-driver-v2.15/lib/mongo/bulk_write.rb d7de91a797ebf45c95bf373037a8ca89dcc385f8 -build/ruby-driver-v2.15/lib/mongo/collection.rb 33ffc60773ef1b215b8161e5bccd4bc71263993b -build/ruby-driver-v2.15/lib/mongo/event/base.rb 46922199bd0aaee77ef040a54fb1b5569eced599 -build/ruby-driver-v2.15/lib/mongo/index/view.rb df8feda727b40b29de4fc8a1508a19b5d9fd8e8f -build/ruby-driver-v2.15/lib/mongo/monitoring.rb 293b299c1bd1965ba276c781f574611dd49f0e82 -build/ruby-driver-v2.15/lib/mongo/socket/ssl.rb fe408885768314362fda654b5f3a062617ca1a2e -build/ruby-driver-v2.15/lib/mongo/socket/tcp.rb 9a0d91b5c275d071ef6a03c6014eec0c508739dd -build/ruby-driver-v2.15/lib/mongo/srv/result.rb d2815c8097e3a2f0fa99096a9a8d84c5e1228980 -build/ruby-driver-v2.15/lib/mongo/auth/gssapi.rb efce2190e2ecdc9755f37af5104942769fa4e6a1 -build/ruby-driver-v2.15/lib/mongo/crypt/hooks.rb 8e8eacccf3c43a7a978c6bdc8d09619e3c248723 -build/ruby-driver-v2.15/lib/mongo/grid/stream.rb 2a0710af33cd72e7a37906aa04c9d4bb266374df -build/ruby-driver-v2.15/lib/mongo/query_cache.rb bf0de633168fb5b2ff04cff5c3cfe53edf035b29 -build/ruby-driver-v2.15/lib/mongo/socket/unix.rb 9bec4a49e42fad01bf5ea56e650d3e44e5a9948e -build/ruby-driver-v2.15/lib/mongo/srv/monitor.rb e9c7c1d965516d548b496c661c9e4b4a0a1ebf3f -build/ruby-driver-v2.15/lib/mongo/address/ipv4.rb 81f3b4be47fbe4b7c4554732c35fa2b21a881262 -build/ruby-driver-v2.15/lib/mongo/address/ipv6.rb 691443d774e12f1a5fa07b2386dfb7ff5fe64c98 -build/ruby-driver-v2.15/lib/mongo/address/unix.rb 8881dfd42be72316ea7ecf04f18785ac5b6350d2 -build/ruby-driver-v2.15/lib/mongo/cluster_time.rb 3f815a7740b7b74463bfa50b2021cd66258e4d52 -build/ruby-driver-v2.15/lib/mongo/crypt/binary.rb fbc3825bdd54e972dea9527b7b27f78cc84ef390 -build/ruby-driver-v2.15/lib/mongo/crypt/handle.rb 694d022fdae68a9b07992e29d0ed6c3b5ea9c336 -build/ruby-driver-v2.15/lib/mongo/crypt/status.rb 35e5159f670faa78b31593868078f23a8720a72f -build/ruby-driver-v2.15/lib/mongo/error/parser.rb 59d5c0c050c26af1a4f9da9e8c0a96b44d3f8b56 -build/ruby-driver-v2.15/lib/mongo/protocol/msg.rb 10224aa4e3687df7a4a3bdfd3057f46a52618cea -build/ruby-driver-v2.15/lib/mongo/srv/resolver.rb 9116428e224b9cde6a46a4d28ef45ed47d6d1fd5 -build/ruby-driver-v2.15/lib/mongo/auth/scram256.rb dd3db697eb746381d29766317627afa2b1faa773 -build/ruby-driver-v2.15/lib/mongo/crypt/binding.rb b29ebfec011f65ff6d5c2fda67436e3bc42b0b06 -build/ruby-driver-v2.15/lib/mongo/crypt/context.rb 1c352164fcec55d7046ee4be452a760d02b7e45b -build/ruby-driver-v2.15/lib/mongo/database/view.rb 685e7976f5111aa03d9f4b916dae50dcee0294be -build/ruby-driver-v2.15/lib/mongo/error/notable.rb 0448c609ea6fabae7df11268fc5aa650f3998376 -build/ruby-driver-v2.15/lib/mongo/write_concern.rb 244741702026162c544a8e56c1ffc7f5cb46b8dc -build/ruby-driver-v2.15/lib/mongo/active_support.rb 60523588dd2c03805889926450ed28b58b0235d4 -build/ruby-driver-v2.15/lib/mongo/auth/user/view.rb 3037d771b1b2fda98ae89cd8ef2a764716f71dc1 -build/ruby-driver-v2.15/lib/mongo/caching_cursor.rb 7eb35b2ba2a9868ffb8ea1d94828baf723562a2a -build/ruby-driver-v2.15/lib/mongo/cursor/builder.rb 84065b2352a168e5b1fc980d6054e199fcedde58 -build/ruby-driver-v2.15/lib/mongo/grid/file/info.rb 85265bbcbfe1ebaca3de857f5d1daa2342d4ae6c -build/ruby-driver-v2.15/lib/mongo/grid/fs_bucket.rb 92ca7f9be4645b466b229b5d9a26c46c9031c5ed -build/ruby-driver-v2.15/lib/mongo/operation/drop.rb a58e5904f339df400240e5b008247d2308a0206a -build/ruby-driver-v2.15/lib/mongo/operation/find.rb c614fbd726d12554642c56a0f0e0760d317a1afb -build/ruby-driver-v2.15/lib/mongo/options/mapper.rb 9ab442660129b16ab1e1912a8a02507e511dc459 -build/ruby-driver-v2.15/lib/mongo/protocol/query.rb 1912e66ab9c709cf3028b4e91e0f840ca38da528 -build/ruby-driver-v2.15/lib/mongo/protocol/reply.rb 17efb8ab07d74fdc2d8b28d68a99c362a870d767 -build/ruby-driver-v2.15/lib/mongo/server/context.rb d697c08a65e0dfb8b78c33544be3d0e4806032fa -build/ruby-driver-v2.15/lib/mongo/server/monitor.rb 727051c6d2dfbc20114a9eb03797052f394e61a9 -build/ruby-driver-v2.15/lib/mongo/auth/stringprep.rb fcbd24b56ce466240521800e7baa85756000337c -build/ruby-driver-v2.15/lib/mongo/collection/view.rb abd1100e4c4a6864ab070ebeb1eea17712735000 -build/ruby-driver-v2.15/lib/mongo/error/kms_error.rb 6f13aa253ef871f07ef0282fae1755681339e73d -build/ruby-driver-v2.15/lib/mongo/event/listeners.rb 9bbe76c0ac76182b9d814c9f0a5fbd201bffcd50 -build/ruby-driver-v2.15/lib/mongo/event/publisher.rb d2d43699a5b34781e2f637d37d403b2f253ed1f0 -build/ruby-driver-v2.15/lib/mongo/grid/file/chunk.rb 49a3e626a731bcdd229bacb334df1c8406aa4c06 -build/ruby-driver-v2.15/lib/mongo/operation/count.rb f82742a2ed9e5ed4d7b61d8bf250bf421e000dd1 -build/ruby-driver-v2.15/lib/mongo/protocol/delete.rb 1a5a5fae8181cdb3eb17e169b21a956aabaee74f -build/ruby-driver-v2.15/lib/mongo/protocol/insert.rb d04f4763e0d1fb8c6420b5bf6fadf09dccaef5e8 -build/ruby-driver-v2.15/lib/mongo/protocol/update.rb de5e3aeaf6ce449c7191d1cda059224ddf1ef03d -build/ruby-driver-v2.15/lib/mongo/server_selector.rb 8a9d92287f5a6e1b149562882c5fe02923783e89 -build/ruby-driver-v2.15/lib/mongo/auth/aws/request.rb cd19e62c3dbcb0243e79144eb90fc6701ffcf16c -build/ruby-driver-v2.15/lib/mongo/cluster/topology.rb 2defc73b88d21025ff72d1b2566f4f121a6bd4ea -build/ruby-driver-v2.15/lib/mongo/error/auth_error.rb 411eb60cc5609196c9a1a02731ade317a17c7fa1 -build/ruby-driver-v2.15/lib/mongo/error/lint_error.rb 2435a771edef6c9e82a912605db3d2a00a718fc0 -build/ruby-driver-v2.15/lib/mongo/event/subscriber.rb 5a5a2c580a956a2960e4f7836cff242c939a2b9a -build/ruby-driver-v2.15/lib/mongo/grid/stream/read.rb 4219cb6c919a65f8d40f73bafe2e8f8cd005e1b4 -build/ruby-driver-v2.15/lib/mongo/monitoring/event.rb bf497494739446ce298105ea45f3c981b90c3aa0 -build/ruby-driver-v2.15/lib/mongo/operation/create.rb d61b244ed7ae1b36335ab12d72ec39f5ac5d0c98 -build/ruby-driver-v2.15/lib/mongo/operation/delete.rb f9bea5d35f2775a1aba00f91da6c8ccb8a210cc2 -build/ruby-driver-v2.15/lib/mongo/operation/insert.rb cbc32746b005c1981eb9d5e3191a71a94d89a32c -build/ruby-driver-v2.15/lib/mongo/operation/result.rb d77c683841024df883aa6f872d7ea7a8969ff04f -build/ruby-driver-v2.15/lib/mongo/operation/update.rb 5e8d922cf0f6263d79063993fb0ee362832aa1ca -build/ruby-driver-v2.15/lib/mongo/options/redacted.rb bfe1077ba6db43bb642f394d61dfce2e8ece3d09 -build/ruby-driver-v2.15/lib/mongo/protocol/message.rb e806554b6b903b6732da4f3e9e933fb1b4a979d4 -build/ruby-driver-v2.15/lib/mongo/topology_version.rb 2b5eb517f57f1a372c19bded1e0c51a14cec7e2f -build/ruby-driver-v2.15/lib/mongo/uri/srv_protocol.rb 2894671927291967ec4e284e7973a99c0f767f28 -build/ruby-driver-v2.15/lib/mongo/address/validator.rb 7736b2a26a3eb24d2899ae05c42f7bb586377d7e -build/ruby-driver-v2.15/lib/mongo/background_thread.rb d94231ae97f241a1df3151ea6a6a4601422c8fa0 -build/ruby-driver-v2.15/lib/mongo/bulk_write/result.rb a823d8ebab406987b8fec5e04ae658113ebf058b -build/ruby-driver-v2.15/lib/mongo/client_encryption.rb 8f99352a3372e9bab43a5109d75631cdf34fd7cf -build/ruby-driver-v2.15/lib/mongo/cluster/sdam_flow.rb a7a4d4c78b9c1415323c7b1962259c3927200106 -build/ruby-driver-v2.15/lib/mongo/crypt/kms_context.rb c4126ea40c695c7c09cf8b4c50ae78f60ee136ec -build/ruby-driver-v2.15/lib/mongo/error/crypt_error.rb d97a744519d53915c904222c5c1ad4a4c46cbd50 -build/ruby-driver-v2.15/lib/mongo/error/invalid_uri.rb b40b8e2fc76f07f5908bb58e9d5fb6f21361357a -build/ruby-driver-v2.15/lib/mongo/grid/stream/write.rb 583307faf8789c004a87793681e119cfb70058ec -build/ruby-driver-v2.15/lib/mongo/operation/command.rb 3aae9a6603f98ad15c9be90382c3c6c60f431993 -build/ruby-driver-v2.15/lib/mongo/operation/context.rb 920a48998d3ada7710cbaa189ee071acf04108cd -build/ruby-driver-v2.15/lib/mongo/operation/explain.rb 39349f720d8f544cdc45db6abd6ba5625842d32e -build/ruby-driver-v2.15/lib/mongo/operation/indexes.rb 13992a1e727a226506b7c9bae4878d4ed7d9602d -build/ruby-driver-v2.15/lib/mongo/protocol/get_more.rb 1be21a79080bcc2ab4dbd3183bf2f6a2cf1fc279 -build/ruby-driver-v2.15/lib/mongo/protocol/registry.rb 14b791c8dd76722ce1772a55d127e6561b7acafa -build/ruby-driver-v2.15/lib/mongo/server/connection.rb 411c28a7697db7a072e387947e36918b0c4a3f3f -build/ruby-driver-v2.15/lib/mongo/socket/ocsp_cache.rb 83df5ed878abeb4316861dd38f37cd64fd0b9c5c -build/ruby-driver-v2.15/lib/mongo/error/invalid_file.rb 66008a5f284ffdee2c5666e18b6f8f27e7706537 -build/ruby-driver-v2.15/lib/mongo/error/socket_error.rb e8d00b2fa5a4f4abbe135919d8ae8818ac6c27d1 -build/ruby-driver-v2.15/lib/mongo/operation/distinct.rb 4577bb648a01eda9ef5d71bde926b7104189ac35 -build/ruby-driver-v2.15/lib/mongo/operation/get_more.rb 0dd723bbc5ae2f5a78a8ae55a01e42e1c74c296a -build/ruby-driver-v2.15/lib/mongo/server/description.rb f238781ccc8214574c4a1ff3726593e036ab5f62 -build/ruby-driver-v2.15/lib/mongo/uri/options_mapper.rb 39110f9093cfb3616a68e022ee0e39351a7d599c -build/ruby-driver-v2.15/lib/mongo/write_concern/base.rb c76c67585d2d36235ac25745f9e1cc255d3175fe -build/ruby-driver-v2.15/lib/mongo/crypt/encryption_io.rb 720d2abac9d923bf11ba2140d12ecb292f71b561 -build/ruby-driver-v2.15/lib/mongo/error/closed_stream.rb d263074a666495814742702875c19c9310a04d9a -build/ruby-driver-v2.15/lib/mongo/error/invalid_nonce.rb 5abc165bce132f12151fe334f448df8f27c95c7e -build/ruby-driver-v2.15/lib/mongo/error/max_bson_size.rb 319c0e0225da3dd0f2f1b495aa6ab676e0bc0be8 -build/ruby-driver-v2.15/lib/mongo/error/session_ended.rb b4734e8d0ab96f0535104fb159b0a49f9c9cb4cc -build/ruby-driver-v2.15/lib/mongo/operation/aggregate.rb 22ffb92c48a5870aff5e0146d413da94c04f4a9e -build/ruby-driver-v2.15/lib/mongo/protocol/bit_vector.rb 58560f1c1202dc645952f471e2fc77ec4d8bef7f -build/ruby-driver-v2.15/lib/mongo/protocol/compressed.rb 1b17cbb766e541e10af56fe5b19e59b7d00bfb8e -build/ruby-driver-v2.15/lib/mongo/server/app_metadata.rb 2ea34a07c9ba8b74bc073aa8191c94a979727dd9 -build/ruby-driver-v2.15/lib/mongo/server/push_monitor.rb 528f224d0d1faa9277cd11dbb47c73f503e9c5d5 -build/ruby-driver-v2.15/lib/mongo/auth/cr/conversation.rb b61b120cb74794c7a21b95178f1da7c4df731a3f -build/ruby-driver-v2.15/lib/mongo/crypt/auto_encrypter.rb 337b66896a916ee59628956d891eb0f289193143 -build/ruby-driver-v2.15/lib/mongo/error/file_not_found.rb a8129408c2fa6311bcd2aaf665277152918eedbf -build/ruby-driver-v2.15/lib/mongo/error/no_srv_records.rb cf54e2d3e11490b33d685dd8a2e2c792269a1d2a -build/ruby-driver-v2.15/lib/mongo/operation/drop_index.rb c38d9a35b361d3c51a0d953b1149ed95b07de9cf -build/ruby-driver-v2.15/lib/mongo/operation/map_reduce.rb e5f638030ffcf6fcc62ab9ce71a6870a6f5bd04d -build/ruby-driver-v2.15/lib/mongo/operation/users_info.rb 94435a82512cde61eb161f84f2b0b9c35356e560 -build/ruby-driver-v2.15/lib/mongo/protocol/serializers.rb 7adff515c2c6e0c95164fd5b447424d536edbef8 -build/ruby-driver-v2.15/lib/mongo/server_selector/base.rb 829a9c9a74af8b2604abc23a4806bafade2a5bf0 -build/ruby-driver-v2.15/lib/mongo/session/session_pool.rb 0ff3480bf5a62a05d49d93ef0eb50f4b0efa80b0 -build/ruby-driver-v2.15/lib/mongo/socket/ocsp_verifier.rb 780d9d60acb8cc22fa7832e2716e8f79aed7a8c9 -build/ruby-driver-v2.15/lib/mongo/auth/aws/conversation.rb 2386c2ae586a72c4674519649e05437cd3e1004a -build/ruby-driver-v2.15/lib/mongo/auth/credential_cache.rb 2994449159013229a3b62ffd8cd3342c33eb4371 -build/ruby-driver-v2.15/lib/mongo/cluster/topology/base.rb 5f8d702a049bb7e39a9c3d8e9cdf1a460f6b22e4 -build/ruby-driver-v2.15/lib/mongo/error/handshake_error.rb 56d26bed46402314084c04484f490ca8bfbd29d8 -build/ruby-driver-v2.15/lib/mongo/error/invalid_address.rb f7efdd96bc525adb183f31099ea202d3ca0a1bf0 -build/ruby-driver-v2.15/lib/mongo/error/invalid_session.rb 074f7be8fce60a1276ca4ad45cd32399fc1f3227 -build/ruby-driver-v2.15/lib/mongo/error/write_retryable.rb 688889a128dcba87115e2362c272e907c538cdbd -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap.rb 4255f77d8ea082aef693412e1d95e2730eb39599 -build/ruby-driver-v2.15/lib/mongo/operation/create_user.rb 8c0e8abb0b762963e0d3fdce1f2a1809e62f2e31 -build/ruby-driver-v2.15/lib/mongo/operation/drop/op_msg.rb c4cd8e45f5ccc4758cc209e84d59c6e194afaf2f -build/ruby-driver-v2.15/lib/mongo/operation/find/legacy.rb 66d5acb32f0027328a500041ae8c5a10eca48711 -build/ruby-driver-v2.15/lib/mongo/operation/find/op_msg.rb ebb9f03f1ffe3c7e15de6081a9dc55009bada62b -build/ruby-driver-v2.15/lib/mongo/operation/find/result.rb 02aeaccaaa752c340212c45f4cdf31ead3db2f60 -build/ruby-driver-v2.15/lib/mongo/operation/op_msg_base.rb 270f70ba9615ab4bdb7c571bbce0482b05922cf0 -build/ruby-driver-v2.15/lib/mongo/operation/remove_user.rb fd55af8a6c460420870eb8450dbae688ab257f9e -build/ruby-driver-v2.15/lib/mongo/operation/update_user.rb ab53d364da970e053a7aa5ac8694fcbb129c59e3 -build/ruby-driver-v2.15/lib/mongo/protocol/kill_cursors.rb 257579fc3af0dca1c77375df4b2f66cedc1bd8f3 -build/ruby-driver-v2.15/lib/mongo/auth/conversation_base.rb 97ad4829adc4312c38bc280e26145a8f99494bff -build/ruby-driver-v2.15/lib/mongo/auth/ldap/conversation.rb 836addf3e38fcb83a1371bcb07aec341da42a36b -build/ruby-driver-v2.15/lib/mongo/auth/stringprep/tables.rb 3ca6305d363fffa2fe4a6298811c88faf57d4299 -build/ruby-driver-v2.15/lib/mongo/auth/x509/conversation.rb ddd2d4e0693ae6efb91c0dc4e120e205d9dbfe10 -build/ruby-driver-v2.15/lib/mongo/bulk_write/combineable.rb b09979d7529c4f660ad8432b1ba525aaa35204fd -build/ruby-driver-v2.15/lib/mongo/bulk_write/validatable.rb c2b26332b6acda8caa4472b029e40a5fff353297 -build/ruby-driver-v2.15/lib/mongo/crypt/data_key_context.rb 63ac9b4c759174aa46ccb859adb1858c2868a306 -build/ruby-driver-v2.15/lib/mongo/error/bulk_write_error.rb 25db8dfd989faf9fa7d2ffad8e25560007fba990 -build/ruby-driver-v2.15/lib/mongo/error/extra_file_chunk.rb 01e7e14456fd84685aad5885e4f39bf40f4ee256 -build/ruby-driver-v2.15/lib/mongo/error/invalid_document.rb aa23f46d67da0251c51655e5c9c97d5fc3101a06 -build/ruby-driver-v2.15/lib/mongo/error/max_message_size.rb 11cd2089ccb9dc648a2b34735bbb58b9fa540c15 -build/ruby-driver-v2.15/lib/mongo/error/missing_password.rb d55d52c970426eb73db788be47ee890f432bfe9d -build/ruby-driver-v2.15/lib/mongo/error/multi_index_drop.rb 071fa72f9dad1aa9c5b4c66d00864eb9bb45ff03 -build/ruby-driver-v2.15/lib/mongo/error/unmet_dependency.rb 116093195613095d492cae865af4629b00a0fb15 -build/ruby-driver-v2.15/lib/mongo/monitoring/publishable.rb 05fa58f97c555aea393664536347fa5d379b48b0 -build/ruby-driver-v2.15/lib/mongo/operation/count/op_msg.rb 806642d69e93b429c9351fd890d4c33591a135f8 -build/ruby-driver-v2.15/lib/mongo/operation/create_index.rb f2b1edafeaf3aa0c1e1b95b768dfd13983fb60c1 -build/ruby-driver-v2.15/lib/mongo/operation/drop/command.rb a663ea4bece111ee92a2c953d8c1605f680e1506 -build/ruby-driver-v2.15/lib/mongo/operation/find/command.rb 7f146ad3521cfc433422da7d30a5793dfe9be07e -build/ruby-driver-v2.15/lib/mongo/operation/kill_cursors.rb fafc171aee8c217989914ea34026f69ba2d4c070 -build/ruby-driver-v2.15/lib/mongo/operation/shared/write.rb 8907137ddd02dc37e7939ca2c1c8300566d9af3b -build/ruby-driver-v2.15/lib/mongo/server/connection_base.rb 26be01b661229cd0dafe2e540832e8d078bf320c -build/ruby-driver-v2.15/lib/mongo/server/connection_pool.rb 303a8af7bd5047178c497db9b14f06d2e271afad -build/ruby-driver-v2.15/lib/mongo/session/server_session.rb a92e513bc74f9a4524a2b2be61d6649d5450ccce -build/ruby-driver-v2.15/lib/mongo/auth/scram/conversation.rb 796bffe9187e70fe49e69ac450096e01c39bbee6 -build/ruby-driver-v2.15/lib/mongo/cluster/topology/single.rb 1959254468b714add233c95091149bc91e4a08c8 -build/ruby-driver-v2.15/lib/mongo/collection/view/builder.rb 12e10e15e13b598ca004bbb175ec28e59c4d8316 -build/ruby-driver-v2.15/lib/mongo/error/invalid_signature.rb 53bc98d5633ed708118442765b9501e58d92d28f -build/ruby-driver-v2.15/lib/mongo/error/mismatched_domain.rb 5c7f8100ea929198d32d65d5ffdac57491574140 -build/ruby-driver-v2.15/lib/mongo/error/operation_failure.rb ba9e15b4d79519e304f22f0d630703e6622f196e -build/ruby-driver-v2.15/lib/mongo/error/pool_closed_error.rb 07a4886ab71d48b7494e43dbc42cbb82215c2125 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/secure.rb 4c5fd0d8c7a336e3b176b609b3dd9dbc6a08989f -build/ruby-driver-v2.15/lib/mongo/operation/count/command.rb 91998d64e9cdadc3981fd8708b85acd3a5e64c34 -build/ruby-driver-v2.15/lib/mongo/operation/create/op_msg.rb 9008038f00b8a959d25c57517dea7cc57124ec14 -build/ruby-driver-v2.15/lib/mongo/operation/delete/legacy.rb a74555d9f53e6c9d612fc115d052434474c18ecb -build/ruby-driver-v2.15/lib/mongo/operation/delete/op_msg.rb a6da75983708b9f505c8ee3f25b93c0bb9417cc5 -build/ruby-driver-v2.15/lib/mongo/operation/delete/result.rb e4627a0c81237f47187757f133a5ea87084e3111 -build/ruby-driver-v2.15/lib/mongo/operation/drop_database.rb f7b8b1c221ad942f954682a1ed800b6d5c679be4 -build/ruby-driver-v2.15/lib/mongo/operation/insert/legacy.rb 01ac9b9fad552c692693673e8a5bf230c778993f -build/ruby-driver-v2.15/lib/mongo/operation/insert/op_msg.rb ae8f19a247245d61fbb4c74659561b38a436e987 -build/ruby-driver-v2.15/lib/mongo/operation/insert/result.rb 6a2cf61f4d1ff4209d0cd1683b5ed0caed004451 -build/ruby-driver-v2.15/lib/mongo/operation/parallel_scan.rb 895c7ae861dc55943d68bcf9cc9a9abc5378f123 -build/ruby-driver-v2.15/lib/mongo/operation/shared/idable.rb 0dc0bd78dd684b3110c20a93b4a65eb9fbbb45b9 -build/ruby-driver-v2.15/lib/mongo/operation/update/legacy.rb 1e9642a18117ec84e7332ac6aa215acab1ff1bb4 -build/ruby-driver-v2.15/lib/mongo/operation/update/op_msg.rb 61f5b218c7c6a60e8320f596265019b2a53570e0 -build/ruby-driver-v2.15/lib/mongo/operation/update/result.rb a70cec50579564b15cd824717c58a6087c3813b5 -build/ruby-driver-v2.15/lib/mongo/server_selector/nearest.rb 78aed8d5669ad6992e5762580fb712160e5eb288 -build/ruby-driver-v2.15/lib/mongo/server_selector/primary.rb b4a4f7192a6132691069ac9c8ab3cd37c906a886 -build/ruby-driver-v2.15/lib/mongo/auth/gssapi/conversation.rb d28a95cf34a236dfb8dfe1c65328d53e21c9bf5d -build/ruby-driver-v2.15/lib/mongo/bulk_write/transformable.rb 9043eb780acd5481fe36623553bf2eddcf591baa -build/ruby-driver-v2.15/lib/mongo/cluster/topology/sharded.rb d6413d48d2bee27cfdb6fc86c63c413ffdc50eeb -build/ruby-driver-v2.15/lib/mongo/cluster/topology/unknown.rb f99386ae46ce18616dc6a068d74462a6ac75d92a -build/ruby-driver-v2.15/lib/mongo/collection/view/iterable.rb 723e81c7d7fa5d022092757940a5d12cdb8f1b2f -build/ruby-driver-v2.15/lib/mongo/collection/view/readable.rb fa5d940c321a46947be86a3ab397628f0a719018 -build/ruby-driver-v2.15/lib/mongo/collection/view/writable.rb bfcc08f90130f2817016e92366883af8c5beefad -build/ruby-driver-v2.15/lib/mongo/crypt/explicit_encrypter.rb 543770657f0321fe6303a49d10e08cbfa15a6f80 -build/ruby-driver-v2.15/lib/mongo/distinguishing_semaphore.rb b4b0f755bd23301db9382749083c67ba6da56318 -build/ruby-driver-v2.15/lib/mongo/error/invalid_txt_record.rb fd22a612fe174ae756927bab05e6a17df4192e64 -build/ruby-driver-v2.15/lib/mongo/error/missing_file_chunk.rb 5826bec2133bc7d60e97cfc02aff30b9edd5898d -build/ruby-driver-v2.15/lib/mongo/error/unsupported_option.rb 5fce39a4b48e37adf412046e33975b3b004ba391 -build/ruby-driver-v2.15/lib/mongo/operation/command/op_msg.rb e9cfa5bcffc4cdbb1c1de6b29f98c50e3d3139d5 -build/ruby-driver-v2.15/lib/mongo/operation/create/command.rb d80d872799d85641b44aa746cec5757958188ee3 -build/ruby-driver-v2.15/lib/mongo/operation/delete/command.rb 3ca1b0bd8f1e3cb7ba9d4380e032b15f079f8eef -build/ruby-driver-v2.15/lib/mongo/operation/explain/legacy.rb 12ef879db132c045cf9e9dfb909efcbff0a3e906 -build/ruby-driver-v2.15/lib/mongo/operation/explain/op_msg.rb 0bbf7f9937118883f082a5bfbb402d0b3431a279 -build/ruby-driver-v2.15/lib/mongo/operation/explain/result.rb 310e693de4df1a559fe1e90ea6b34b012de376fa -build/ruby-driver-v2.15/lib/mongo/operation/indexes/legacy.rb cdcc9c63315b628a90e98d2dc5366bdbebe70026 -build/ruby-driver-v2.15/lib/mongo/operation/indexes/op_msg.rb 4fa4beb38ddc7a2cd81ed0282fbb7d3e38970c27 -build/ruby-driver-v2.15/lib/mongo/operation/indexes/result.rb 56eed97d14c9ca6986e3d377a9ea5e15ed316b7d -build/ruby-driver-v2.15/lib/mongo/operation/insert/command.rb 19dbc185ac67cd7e05622aa692f06c9bf8926c3f -build/ruby-driver-v2.15/lib/mongo/operation/shared/limited.rb 40c1735c8e051de575bff79b776938685537044c -build/ruby-driver-v2.15/lib/mongo/operation/update/command.rb dcce0ad0ef1fc29088d61d22aac830043d24a3c7 -build/ruby-driver-v2.15/lib/mongo/server/connection_common.rb 3f69ba7201069995074fa49f08770dfc956be3ab -build/ruby-driver-v2.15/lib/mongo/cluster/periodic_executor.rb 61ec93ce24530b45d5cd08c695fcf6cf650a90a5 -build/ruby-driver-v2.15/lib/mongo/collection/view/immutable.rb 0ae9e990ed71b90a5bdc72ee78d12527c52c348f -build/ruby-driver-v2.15/lib/mongo/error/connection_perished.rb 9c56b67c5cdfc4717f85c28ca325aaf53d85c2bd -build/ruby-driver-v2.15/lib/mongo/error/invalid_read_option.rb 2498776306cb9cdfcb43f21ce98bf587720ea5b8 -build/ruby-driver-v2.15/lib/mongo/error/need_primary_server.rb 1cf6e5e39e9e663e2d03fe01ba631b2d37ce7ad9 -build/ruby-driver-v2.15/lib/mongo/error/no_server_available.rb 8e50c07ee68c25fca13a572bf3cbf0e9238d64c3 -build/ruby-driver-v2.15/lib/mongo/error/server_api_conflict.rb a3c558d5b657326249d1c634b4252aeaab2b3296 -build/ruby-driver-v2.15/lib/mongo/error/unexpected_response.rb 71bacf06b1e15c3a3bcefe8420d622011059244c -build/ruby-driver-v2.15/lib/mongo/operation/command/command.rb 01cfce2e72e7363f874a7b03eaeb72865a170e14 -build/ruby-driver-v2.15/lib/mongo/operation/distinct/op_msg.rb 5d6d859a58a143021f91b5503cdb1e723830e252 -build/ruby-driver-v2.15/lib/mongo/operation/explain/command.rb 6bf919185714339b584471d2b386739def5cb539 -build/ruby-driver-v2.15/lib/mongo/operation/get_more/legacy.rb af458332181c559952233610f82c06e8224dc921 -build/ruby-driver-v2.15/lib/mongo/operation/get_more/op_msg.rb 95ee3edb62112441dc554e6725966f4436f6a6b7 -build/ruby-driver-v2.15/lib/mongo/operation/get_more/result.rb f82257f10558c9d9689de17c88a41c5af4c8b397 -build/ruby-driver-v2.15/lib/mongo/operation/indexes/command.rb 152d622f49089611f9351ff0913ed58bf55581ba -build/ruby-driver-v2.15/lib/mongo/server/monitor/connection.rb d3eb1f1749585500cc16a466916fc8341e4f4652 -build/ruby-driver-v2.15/lib/mongo/server/pending_connection.rb a6add086b763cd565adf56ca0521cb27f8d8797f -build/ruby-driver-v2.15/lib/mongo/server_selector/secondary.rb 6105973ee5e96b1d38b05ff6cf735a7cbad9024e -build/ruby-driver-v2.15/lib/mongo/auth/scram256/conversation.rb 334cfbbf677f84f48fbf36464531be6c6aea2244 -build/ruby-driver-v2.15/lib/mongo/bulk_write/result_combiner.rb 6c56f17d5ce6b9cdac36dcbf4c9fd0294518858a -build/ruby-driver-v2.15/lib/mongo/collection/view/map_reduce.rb 49e681f7b905fc231e17bd57c42ff728e44e8be8 -build/ruby-driver-v2.15/lib/mongo/cursor/builder/op_get_more.rb 957724746bfd17016e42a7c28aea2d60988e90e9 -build/ruby-driver-v2.15/lib/mongo/error/invalid_read_concern.rb c897375ffcbd9f7dc24344da42cca09c97e4f9ce -build/ruby-driver-v2.15/lib/mongo/error/missing_resume_token.rb 21f790c8e2ccc761967b92a89c8cfb8b5b9bffbb -build/ruby-driver-v2.15/lib/mongo/error/raise_original_error.rb 085ba59066bba47e6919c2847bc380a38b5519da -build/ruby-driver-v2.15/lib/mongo/error/sdam_error_detection.rb 267549fc2b5db736d886eaa19a4706130c2c1288 -build/ruby-driver-v2.15/lib/mongo/error/socket_timeout_error.rb 9429e5d0b4fbfbb1ee4c24eee71b49e66a0bb11a -build/ruby-driver-v2.15/lib/mongo/error/unknown_payload_type.rb 19a0ea21f5a148c217eef312ea939767b93d0460 -build/ruby-driver-v2.15/lib/mongo/error/unsupported_features.rb 7d9800905a677653fec8147cee7418446ef4b890 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/base.rb 0b948ece3c433a49b22b80041a50c646e2359e9c -build/ruby-driver-v2.15/lib/mongo/operation/aggregate/op_msg.rb a62be227bded19a04f3714afb0893399a02ce542 -build/ruby-driver-v2.15/lib/mongo/operation/aggregate/result.rb cb8cb9312488e270705029ca9717d83feb64593e -build/ruby-driver-v2.15/lib/mongo/operation/collections_info.rb ccf78676c56109725eeb083e62207c307280b718 -build/ruby-driver-v2.15/lib/mongo/operation/distinct/command.rb e343856ecf3d733247bff271b9881e3122622001 -build/ruby-driver-v2.15/lib/mongo/operation/get_more/command.rb e13f9557d85e6ac97b3b51cf4b23a36d5798cd81 -build/ruby-driver-v2.15/lib/mongo/operation/list_collections.rb 7357e3c8fd750ef2642c05792a62eb0d58cdd14e -build/ruby-driver-v2.15/lib/mongo/write_concern/acknowledged.rb ba92ed47e5735a861cafd5f464d61f0f397e8218 -build/ruby-driver-v2.15/lib/mongo/auth/sasl_conversation_base.rb 612ebb3c793f72458cb76fa08badc148acd4ad53 -build/ruby-driver-v2.15/lib/mongo/bulk_write/ordered_combiner.rb c8fe47595ffe7a2352fdd370c70d11fff090a38b -build/ruby-driver-v2.15/lib/mongo/collection/view/aggregation.rb ef6e34a36c42289d6d2d0d2d60dabf30f3173e4f -build/ruby-driver-v2.15/lib/mongo/collection/view/explainable.rb 87053d27303247adb7cf0da3e66c03803fe0b2e4 -build/ruby-driver-v2.15/lib/mongo/error/internal_driver_error.rb d40f74dd01d8180e3012ae0140e5b316dc660a08 -build/ruby-driver-v2.15/lib/mongo/error/invalid_database_name.rb 1bd384258f8041dd3075ed1d954736902b12f867 -build/ruby-driver-v2.15/lib/mongo/error/invalid_file_revision.rb 63fe22872a9ad5995ff427d4c9582807b9d5bd12 -build/ruby-driver-v2.15/lib/mongo/error/invalid_min_pool_size.rb 8920e318246ab75322552441c662b559c1379568 -build/ruby-driver-v2.15/lib/mongo/error/invalid_write_concern.rb 176fd351ac11025137dc319404b1766f9ba4682c -build/ruby-driver-v2.15/lib/mongo/error/unsupported_collation.rb 3fff4a96f3dbaff879de52857842b08a50ee8986 -build/ruby-driver-v2.15/lib/mongo/operation/aggregate/command.rb 9949a02c4cd2ceb839d560ca75136edb9cc80e23 -build/ruby-driver-v2.15/lib/mongo/operation/drop_index/op_msg.rb 7ad7d1fe02102433da472b2df215e3065513375a -build/ruby-driver-v2.15/lib/mongo/operation/map_reduce/op_msg.rb ca11e9a6b17216f3bfc6e01fbec63620091dcf3a -build/ruby-driver-v2.15/lib/mongo/operation/map_reduce/result.rb 13cea2b90f76da5819d99d7b19875879c09c0f15 -build/ruby-driver-v2.15/lib/mongo/operation/shared/executable.rb 7ce50cc4115a7f412e66bc88d5746b0498226fae -build/ruby-driver-v2.15/lib/mongo/operation/users_info/op_msg.rb cc396a1f50fc3c3bc35ee0d8ad9cdcff30552237 -build/ruby-driver-v2.15/lib/mongo/operation/users_info/result.rb 943077ca8166140e7775c42eb6944084dde3709b -build/ruby-driver-v2.15/lib/mongo/server/description/features.rb b8cd2d8b4133cd3c1b6fd6fc6a39e12c3768981a -build/ruby-driver-v2.15/lib/mongo/server/monitor/app_metadata.rb 2dba4ac0f8edfbd7c06e33b8c7e4ab15f7c6ff37 -build/ruby-driver-v2.15/lib/mongo/auth/scram_conversation_base.rb 7194ec0720f11143bea5aa8b782a2eadfa852bba -build/ruby-driver-v2.15/lib/mongo/error/credential_check_error.rb b9f7d233d22c3fd6e3b33f8164b3c31c52bba913 -build/ruby-driver-v2.15/lib/mongo/error/invalid_bulk_operation.rb b6e69eba28058ca710351ca90a9b4317f6eca99c -build/ruby-driver-v2.15/lib/mongo/error/sessions_not_supported.rb b32fd996c294ebb7601159271dd184fe37553f6c -build/ruby-driver-v2.15/lib/mongo/operation/create_user/op_msg.rb ef206c69cccde5a77c4827763ba71e2effc32ef4 -build/ruby-driver-v2.15/lib/mongo/operation/delete/bulk_result.rb 081792167dee2300bc01ba4b808978db8839ab0f -build/ruby-driver-v2.15/lib/mongo/operation/drop_index/command.rb 6396769fdd9457e1405d037a8db2e9a6fd5ae2d2 -build/ruby-driver-v2.15/lib/mongo/operation/find/legacy/result.rb 157daf1b99301797151b89607d7fcebcf3f8eb7f -build/ruby-driver-v2.15/lib/mongo/operation/insert/bulk_result.rb 6f6de0be1c590789c19c108e1f9ed3b510ab16ac -build/ruby-driver-v2.15/lib/mongo/operation/map_reduce/command.rb 7730dbfb966dbbf3d15c5eae50d9745581533957 -build/ruby-driver-v2.15/lib/mongo/operation/remove_user/op_msg.rb 2fed4d403fcf4db662119abf9cf53713f69ab54b -build/ruby-driver-v2.15/lib/mongo/operation/shared/specifiable.rb 73ff8cea0bb817449fe5843d3995bf1f9564fae3 -build/ruby-driver-v2.15/lib/mongo/operation/update/bulk_result.rb f0781710c5d6b15881c84e1983c74ebf443e65a1 -build/ruby-driver-v2.15/lib/mongo/operation/update_user/op_msg.rb fac6f897754b389e7d8b4db730cbe9c3c2635cc1 -build/ruby-driver-v2.15/lib/mongo/operation/users_info/command.rb e3bb8398a60405da520a43d201b9765131cea678 -build/ruby-driver-v2.15/lib/mongo/write_concern/unacknowledged.rb 016369b5b7fbf5fcbea9b14fe7c5dda64b468fc5 -build/ruby-driver-v2.15/lib/mongo/auth/stringprep/profiles/sasl.rb fbad5ea2c44a9c10380f425bfdcab88025b0072c -build/ruby-driver-v2.15/lib/mongo/bulk_write/unordered_combiner.rb 75eff0a5a8133ce640da19b39b6c5bf6c67b63aa -build/ruby-driver-v2.15/lib/mongo/cluster/reapers/cursor_reaper.rb 677ab02db87607c7d3d60fba69f8c1958bb06233 -build/ruby-driver-v2.15/lib/mongo/cluster/reapers/socket_reaper.rb 3becef422556020328eb4f896a9d0c5c3aeaed67 -build/ruby-driver-v2.15/lib/mongo/collection/view/builder/flags.rb 87241892fbb5281f5e8c2295cdb9f73daf9426b5 -build/ruby-driver-v2.15/lib/mongo/collection/view/change_stream.rb 9c3cb01bf82c534d78ddd74dfaf0d4af58ef58f7 -build/ruby-driver-v2.15/lib/mongo/crypt/auto_decryption_context.rb 0d6f429a4015d5563283974a9fc73990ad6472c9 -build/ruby-driver-v2.15/lib/mongo/crypt/auto_encryption_context.rb ef44cba95aa53a076c746c6f90f2fe993629422e -build/ruby-driver-v2.15/lib/mongo/error/change_stream_resumable.rb 4c0603a04ca82bc0a1ff13d40263ec0112ab4410 -build/ruby-driver-v2.15/lib/mongo/error/invalid_collection_name.rb 6e6d645a7939ed5eddc9c951d667ed57b1c3df0c -build/ruby-driver-v2.15/lib/mongo/error/invalid_update_document.rb ddff77520c5228c47df2d95668bbc7fbeba67528 -build/ruby-driver-v2.15/lib/mongo/error/mongocryptd_spawn_error.rb 204be309f61481184c5adc57bc070a9e413ed140 -build/ruby-driver-v2.15/lib/mongo/error/unexpected_chunk_length.rb 2c569c24e6bdfd0e5700f4c254ed3c33e0e908fa -build/ruby-driver-v2.15/lib/mongo/operation/create_index/op_msg.rb 8aa727cac4976a738677152c4621784b4984b6f1 -build/ruby-driver-v2.15/lib/mongo/operation/create_user/command.rb ab5f21c646b289d61fdc1eff173ebf03b5b04c74 -build/ruby-driver-v2.15/lib/mongo/operation/kill_cursors/legacy.rb a4622094123823f6c9d4ea8a9e244c23241f9fba -build/ruby-driver-v2.15/lib/mongo/operation/kill_cursors/op_msg.rb 05864dcc8421a4fff26b432f0c75fce774ccd3ec -build/ruby-driver-v2.15/lib/mongo/operation/remove_user/command.rb 49537743cefcb5b89727affb6bbf85ae9a98c210 -build/ruby-driver-v2.15/lib/mongo/operation/update_user/command.rb efdc4355a393456e60baeada54708b41b2afd214 -build/ruby-driver-v2.15/lib/mongo/auth/aws/credentials_retriever.rb 46d0124efb29e01e5ebfc2e53c0a8b8e99033a01 -build/ruby-driver-v2.15/lib/mongo/cursor/builder/op_kill_cursors.rb 2e7789a2394302f8e9c45eba8007cc239ad600f0 -build/ruby-driver-v2.15/lib/mongo/error/invalid_application_name.rb 043ce7cd0eacb70960d694c3e48aeb209d89b178 -build/ruby-driver-v2.15/lib/mongo/error/invalid_cursor_operation.rb d40f3a64478549d220185c2b3d378e096f71a6a8 -build/ruby-driver-v2.15/lib/mongo/error/invalid_server_auth_host.rb 8f67f3cf8f62b60462809ab6322e52472a4665f2 -build/ruby-driver-v2.15/lib/mongo/error/server_api_not_supported.rb 2fa0fd73024b10a2d5cbee1b778bf286d8122713 -build/ruby-driver-v2.15/lib/mongo/error/unsupported_message_type.rb dcbb21d8aab3f399c564fb49290d34c7b9a04d7d -build/ruby-driver-v2.15/lib/mongo/monitoring/cmap_log_subscriber.rb 10c3d0440da3dad8a8680a6cf40a2c299a41c4ea -build/ruby-driver-v2.15/lib/mongo/monitoring/event/server_closed.rb 889bb4fa9ff781e9b921d350424213bc9c773d09 -build/ruby-driver-v2.15/lib/mongo/monitoring/sdam_log_subscriber.rb acc9fb66752ced1b96f71db321056cad49383013 -build/ruby-driver-v2.15/lib/mongo/operation/create_index/command.rb fa6c67ada65c8b36109228a59f9ae3710a027dcb -build/ruby-driver-v2.15/lib/mongo/operation/drop_database/op_msg.rb 7f003c77794a2248460eff83a8a4d5834b4e702b -build/ruby-driver-v2.15/lib/mongo/operation/kill_cursors/command.rb 770cc03ec8462aed8897d86772c92f2fd7c4f906 -build/ruby-driver-v2.15/lib/mongo/operation/parallel_scan/op_msg.rb 0e64003850232dea24eb9655f779d015e7f9fe2e -build/ruby-driver-v2.15/lib/mongo/operation/parallel_scan/result.rb 4be06be38212897801e980c832a771829c55e65b -build/ruby-driver-v2.15/lib/mongo/operation/update/legacy/result.rb c75952091766ef0c60247e89408d53b3d8ad6fec -build/ruby-driver-v2.15/lib/mongo/server/push_monitor/connection.rb e426e6e727b49034aca00f0dbd2a85040b09ab1c -build/ruby-driver-v2.15/lib/mongo/cursor/builder/get_more_command.rb 9f117e1b14dc96055419a848ce7e9dd4a20cc46a -build/ruby-driver-v2.15/lib/mongo/error/invalid_server_preference.rb aae1e02f355457604295d13ac689c9d7d1afc382 -build/ruby-driver-v2.15/lib/mongo/error/unsupported_array_filters.rb a742433ffbae36460eaa3c04790daead5d055892 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/command_failed.rb 8fd0dcaa8acd03fcd6af6685c3cca40e4374f5a7 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/server_opening.rb 9bde84146c58f5828adc2de19bb8e87d1428d725 -build/ruby-driver-v2.15/lib/mongo/operation/drop_database/command.rb 868a205c06c61eee22b9671e04f55acdcdfb44ff -build/ruby-driver-v2.15/lib/mongo/operation/parallel_scan/command.rb 5965f7526d7fa315764df92f01c27906b35f0473 -build/ruby-driver-v2.15/lib/mongo/server/round_trip_time_averager.rb 0acc26717eafce748957d8782fd2060660289136 -build/ruby-driver-v2.15/lib/mongo/collection/view/builder/op_query.rb 6970a103e6103ba162a59b3a1937328242ad9640 -build/ruby-driver-v2.15/lib/mongo/error/server_certificate_revoked.rb ddf2a91856c325fd933eed197a3c7e786ad7512d -build/ruby-driver-v2.15/lib/mongo/monitoring/event/command_started.rb 4eb32d87dfd4cb14686b13fb8e97c01904e61458 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/topology_closed.rb 770c2109e5aa8105388adbba643e96f5c7b12d42 -build/ruby-driver-v2.15/lib/mongo/server/connection_pool/populator.rb 44f67a4d25053dfd71fe51dd611d7fbc5a5a22c5 -build/ruby-driver-v2.15/lib/mongo/collection/view/builder/modifiers.rb 63a03a33bc0e8373a6e2760b3be943e3a907111f -build/ruby-driver-v2.15/lib/mongo/crypt/explicit_decryption_context.rb a48fa3eac0e2e951a27aa21c2581cb0a7d0c5c51 -build/ruby-driver-v2.15/lib/mongo/crypt/explicit_encryption_context.rb 5b11d78459ddb0f21be44aaacf513d1c1b3c7b5a -build/ruby-driver-v2.15/lib/mongo/error/invalid_bulk_operation_type.rb 1ce1bf9bc1654202c2084b34528bb9f7bbcf5722 -build/ruby-driver-v2.15/lib/mongo/monitoring/command_log_subscriber.rb 07e3fca8fb454484b8dc063f793e8cdc798b8a99 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/pool_closed.rb 0e1506caa6093c081b36035d1cbb85c3fbaf8732 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/topology_changed.rb 342f5f91403ffcc92581e4983ded5649332e0d6f -build/ruby-driver-v2.15/lib/mongo/monitoring/event/topology_opening.rb 07fea6efc1c12c09b5f63ce4d8e8c9f0857a9b4d -build/ruby-driver-v2.15/lib/mongo/operation/collections_info/result.rb 4ca47e55db655d48934394bb7b1d4f0e01b84929 -build/ruby-driver-v2.15/lib/mongo/operation/list_collections/op_msg.rb 261873f2936c86d41b69a34ee98b7a2d15d8dd7f -build/ruby-driver-v2.15/lib/mongo/operation/list_collections/result.rb 8688d24769964ba97645ecf08a55dd7a1c4e8df7 -build/ruby-driver-v2.15/lib/mongo/server_selector/primary_preferred.rb 2e2da040d89805850186adcfaf81c419f7910746 -build/ruby-driver-v2.15/lib/mongo/collection/view/builder/map_reduce.rb e321184c7e7100119156a7a96b39190fca34bbb3 -build/ruby-driver-v2.15/lib/mongo/error/connection_check_out_timeout.rb c47c0822f255f379d6997782a8a026550b52b41f -build/ruby-driver-v2.15/lib/mongo/error/insufficient_iteration_count.rb 110bc398e177393202fc5f1dc612d1e299b247ab -build/ruby-driver-v2.15/lib/mongo/error/invalid_replacement_document.rb 5fdb1a424999c59fa68590aa653a8d6792efe227 -build/ruby-driver-v2.15/lib/mongo/error/invalid_server_auth_response.rb cbe7185ff162194ea2749745bd8c380e6123e490 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/pool_cleared.rb c7061bf4d10188f2c159bb17b9a166c4ebfe73b5 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/pool_created.rb 64572cc27f3320f67485433c69c0a734a5dba87c -build/ruby-driver-v2.15/lib/mongo/monitoring/event/command_succeeded.rb 0c23bc92a2886dadc965b609fce045af1cf2e899 -build/ruby-driver-v2.15/lib/mongo/operation/collections_info/command.rb 99e30bf7aac8cc2c12f8d01190bf3ea37768459c -build/ruby-driver-v2.15/lib/mongo/operation/list_collections/command.rb 54fce94f07f37a5f6b6107e174d0e1085b6cbb01 -build/ruby-driver-v2.15/lib/mongo/operation/shared/op_msg_or_command.rb cfb888ac3f2b9734f308c244b1b4944875acb523 -build/ruby-driver-v2.15/lib/mongo/operation/shared/response_handling.rb 146faebc69cf3d3bfc42f634716bb72836ba04c1 -build/ruby-driver-v2.15/lib/mongo/collection/view/builder/aggregation.rb 21e5babad38f2ada751e8e5f41740788c7c47c32 -build/ruby-driver-v2.15/lib/mongo/cursor/builder/kill_cursors_command.rb ef79ca536c163e98bf6e625f4d73f0544cd6c4c5 -build/ruby-driver-v2.15/lib/mongo/error/failed_string_prep_validation.rb 8b424bdcaebe84be30116acbf493aabae895542e -build/ruby-driver-v2.15/lib/mongo/error/invalid_transaction_operation.rb f0ee3530537a823844703d21ecffae4d38345bc1 -build/ruby-driver-v2.15/lib/mongo/operation/shared/polymorphic_lookup.rb 9b76fcdcb64401e8547402017a89ad3a78bc3b32 -build/ruby-driver-v2.15/lib/mongo/operation/shared/polymorphic_result.rb a274de5cadd70ec93404b979523cff00bf400d22 -build/ruby-driver-v2.15/lib/mongo/operation/shared/sessions_supported.rb b140d846bd9ea00602db21227b68eb66ae5fac19 -build/ruby-driver-v2.15/lib/mongo/server_selector/secondary_preferred.rb d3e1c86513b047fce3068ca48f2ad820f0344f6c -build/ruby-driver-v2.15/lib/mongo/collection/view/builder/find_command.rb 8ae1063afc8da50bb0c18bab3d5cccce7be182d0 -build/ruby-driver-v2.15/lib/mongo/error/missing_scram_server_signature.rb 9e9d5f1b29a0d4256fb0f943be6ed8f9c9ebe450 -build/ruby-driver-v2.15/lib/mongo/error/unchangeable_collection_option.rb 044d258fd6e2979b324443529e0d32df50ca39b8 -build/ruby-driver-v2.15/lib/mongo/operation/shared/object_id_generator.rb ae8f87639a7f32947584be7f8e8213244879fdb3 -build/ruby-driver-v2.15/lib/mongo/operation/shared/result/aggregatable.rb 52f7f52a5bded941ef6a4970ad6d351245af0490 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_ready.rb 993452691de75e6e1e60d8950159e047614c6e3a -build/ruby-driver-v2.15/lib/mongo/monitoring/unified_sdam_log_subscriber.rb 6c749165ec9990828995c2d53045eb6515c97e68 -build/ruby-driver-v2.15/lib/mongo/operation/shared/polymorphic_operation.rb 23fa4599ee00579c8ed5b3799f74133ab198a5ac -build/ruby-driver-v2.15/lib/mongo/cluster/topology/no_replica_set_options.rb 1ffb073dd46e4b62559f21a8c997e37f0dec8a33 -build/ruby-driver-v2.15/lib/mongo/cluster/topology/replica_set_no_primary.rb 722d492af70e266a997dbadf7e3d83bf7b77fd83 -build/ruby-driver-v2.15/lib/mongo/collection/view/change_stream/retryable.rb d3231fb8fd304b83c7e34e7cd5687c823e1f1268 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_closed.rb 9e8eb8ba85cf652262eddcf70a0545edbbbb1b59 -build/ruby-driver-v2.15/lib/mongo/monitoring/server_closed_log_subscriber.rb 7d6e60897870b92aeacbb13617366d541279c39e -build/ruby-driver-v2.15/lib/mongo/operation/shared/executable_no_validate.rb 80cac4f3fa723726702e412b659d7c46207bd6a0 -build/ruby-driver-v2.15/lib/mongo/operation/shared/op_msg_or_find_command.rb 2307e70abd3f5f991e0819d9a92a9674cb2c342c -build/ruby-driver-v2.15/lib/mongo/auth/stringprep/unicode_normalize/tables.rb 173f1d82dbade3037a7cf1889898214bd497cd72 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_created.rb 1e37ecf508c4583ce620080b689e260dd1af723b -build/ruby-driver-v2.15/lib/mongo/monitoring/event/server_heartbeat_failed.rb c677f6ccab79ab2c4d56975697ee0774d4656428 -build/ruby-driver-v2.15/lib/mongo/monitoring/server_opening_log_subscriber.rb df73c2b9b3fcb3a42bdc788299c4850971595559 -build/ruby-driver-v2.15/lib/mongo/operation/shared/write_concern_supported.rb e9bc3fc1a4095f04433667a95a8ac335fa3a7244 -build/ruby-driver-v2.15/lib/mongo/cluster/topology/replica_set_with_primary.rb 55a83c6450b3faedacdba583b4b6a849ad369b5b -build/ruby-driver-v2.15/lib/mongo/monitoring/event/server_heartbeat_started.rb ed03954d6cd6a23112ca2b934d625bb07c8dbfe5 -build/ruby-driver-v2.15/lib/mongo/monitoring/topology_closed_log_subscriber.rb ea2acf22cbb00eba16b5f1797698cb8e105df18d -build/ruby-driver-v2.15/lib/mongo/monitoring/topology_changed_log_subscriber.rb 976c70944bfbaa48b458539ce2b7c4a1cb193ce0 -build/ruby-driver-v2.15/lib/mongo/monitoring/topology_opening_log_subscriber.rb b7d5df8063410c0331a082a742b4ad66d2b4efe1 -build/ruby-driver-v2.15/lib/mongo/operation/shared/read_preference_supported.rb 46164ebf95efa3e2052b887acc86bf7c78a154d9 -build/ruby-driver-v2.15/lib/mongo/auth/stringprep/unicode_normalize/normalize.rb 093d86bcb2d59220d3723f8d99f2db60915e7b47 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_checked_in.rb b2b44c6f0fa5fc3a7569bb7b4b29c906077a44b7 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/server_description_changed.rb b448345d7fdc398799d6ff28da4783f10b8914c0 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb d0ffaa3d1066615732450715d99c24be208a75d5 -build/ruby-driver-v2.15/lib/mongo/operation/shared/bypass_document_validation.rb 0600f5c4e8a7cd6bad7540b6d31c4ae772573778 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_checked_out.rb 7786717303dcccc7df7d015e26689172119954bd -build/ruby-driver-v2.15/lib/mongo/operation/shared/causal_consistency_supported.rb dfdd4adba62f862c8fe652489ac0cbb79b22c496 -build/ruby-driver-v2.15/lib/mongo/operation/shared/executable_transaction_label.rb 7c6ede287cc4a164331241b425e158b20ea44a8d -build/ruby-driver-v2.15/lib/mongo/operation/shared/result/use_legacy_error_parser.rb 60a80d47241f4e5bedafffe19ec574263825cbe8 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb 6254a441c923d500253905a0597351a6cba9c526 -build/ruby-driver-v2.15/lib/mongo/monitoring/event/cmap/connection_check_out_started.rb 61f7583e25156be8a1aada0388fe00c69126cd80 -build/ruby-driver-v2.15/lib/mongo/monitoring/server_description_changed_log_subscriber.rb f91049f22fb373a45e01d59ed3b6d5d1edc6fd15 diff --git a/.yardoc/complete b/.yardoc/complete deleted file mode 100644 index e69de29bb..000000000 diff --git a/.yardoc/object_types b/.yardoc/object_types deleted file mode 100644 index 429ab7388..000000000 Binary files a/.yardoc/object_types and /dev/null differ diff --git a/.yardoc/objects/root.dat b/.yardoc/objects/root.dat deleted file mode 100644 index 614c30d22..000000000 Binary files a/.yardoc/objects/root.dat and /dev/null differ diff --git a/.yardoc/proxy_types b/.yardoc/proxy_types deleted file mode 100644 index beefda1ae..000000000 Binary files a/.yardoc/proxy_types and /dev/null differ diff --git a/Makefile b/Makefile deleted file mode 100644 index d51b31781..000000000 --- a/Makefile +++ /dev/null @@ -1,121 +0,0 @@ -# Makefile for Ruby driver docs - -GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD) -USER=$(shell whoami) -STAGING_URL="https://docs-mongodborg-staging.corp.mongodb.com" -PRODUCTION_URL="https://docs.mongodb.com" - -STAGING_BUCKET=docs-mongodb-org-prd-staging -PRODUCTION_BUCKET=docs-mongodb-org-prd -SEARCH_INDEX_BUCKET=docs-search-indexes-test - -PROJECT=ruby-driver -PREFIX=ruby-driver -DOTCOM_STAGING_URL="https://mongodbcom-cdn.website.staging.corp.mongodb.com" -DOTCOM_STAGING_BUCKET=docs-mongodb-org-dotcomstg -DOTCOM_PRODUCTION_URL="https://mongodb.com" -DOTCOM_PRODUCTION_BUCKET=docs-mongodb-org-dotcomprd -DOTCOM_PREFIX=docs/ruby-driver -DOTCOM_STGPREFIX=docs/ruby-driver - -TARGET_DIR=source-${GIT_BRANCH} - -SOURCE_FILE_DIR=build/ruby-driver-${GIT_BRANCH} - -# Parse our published-branches configuration file to get the name of -# the current "stable" branch. This is weird and dumb, yes. -STABLE_BRANCH=`grep 'manual' build/docs-tools/data/${PROJECT}-published-branches.yaml | cut -d ':' -f 2 | grep -Eo '[0-9a-z.]+'` - -.PHONY: help stage fake-deploy deploy deploy-search-index api-docs check-redirects publish-build-only publish migrate clean - -help: ## Show this help message - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' - @echo - @echo 'Variables' - @printf " \033[36m%-18s\033[0m %s\n" 'ARGS' 'Arguments to pass to mut-publish' - -html: migrate ## Builds this branch's HTML under build//html - giza make html - -publish-build-only: ## Builds this branch's publishable HTML and other artifacts under build/public - giza make publish - if [ ${GIT_BRANCH} = master ]; then mut-redirects config/redirects -o build/public/.htaccess; fi - -publish: migrate ## Build publishable artifacts, and also migrates assets - giza make publish - @echo "Making api directory in /build/public/${GIT_BRANCH}" - if [ -d build/public/${GIT_BRANCH}/api ]; then rm -rf build/public/${GIT_BRANCH}/api ; fi; - mkdir build/public/${GIT_BRANCH}/api - - yard doc ${SOURCE_FILE_DIR} \ - --exclude ${SOURCE_FILE_DIR}/.evergreen \ - --exclude ${SOURCE_FILE_DIR}/.mod \ - --exclude ${SOURCE_FILE_DIR}/examples \ - --exclude ${SOURCE_FILE_DIR}/profile \ - --exclude ${SOURCE_FILE_DIR}/release \ - --exclude ${SOURCE_FILE_DIR}/spec \ - --readme ${SOURCE_FILE_DIR}/README.md -o build/public/${GIT_BRANCH}/api/ - if [ ${GIT_BRANCH} = master ]; then mut-redirects config/redirects -o build/public/.htaccess; fi - -stage: ## Host online for review - mut-publish build/${GIT_BRANCH}/html ${DOTCOM_STAGING_BUCKET} --prefix=${DOTCOM_STGPREFIX} --stage ${ARGS} - @echo "Hosted at ${DOTCOM_STAGING_URL}/${DOTCOM_STGPREFIX}/${USER}/${GIT_BRANCH}/index.html" - -fake-deploy: build/public/${GIT_BRANCH} ## Create a fake deployment in the staging bucket - mut-publish build/public/ ${DOTCOM_STAGING_BUCKET} --prefix=${DOTCOM_STGPREFIX} --deploy --verbose --redirects build/public/.htaccess ${ARGS} - @echo "Hosted at ${DOTCOM_STAGING_BUCKET}/${DOTCOM_STGPREFIX}/${GIT_BRANCH}/index.html" - -deploy: build/public/${GIT_BRANCH} ## Deploy to the production bucket - mut-publish build/public/ ${DOTCOM_PRODUCTION_BUCKET} --prefix=${DOTCOM_PREFIX} --deploy --redirects build/public/.htaccess ${ARGS} - - @echo "Hosted at ${DOTCOM_PRODUCTION_URL}/${DOTCOM_PREFIX}/${GIT_BRANCH}" - - $(MAKE) deploy-search-index - -deploy-search-index: ## Update the search index for this branch - @echo "Building search index" - if [ ${STABLE_BRANCH} = ${GIT_BRANCH} ]; then \ - mut-index upload build/public/${GIT_BRANCH} -o docs-ruby-${GIT_BRANCH}.json -u ${PRODUCTION_URL}/${PROJECT}/${GIT_BRANCH} -b ${SEARCH_INDEX_BUCKET} -p search-indexes/prd -g -s; \ - else \ - mut-index upload build/public/${GIT_BRANCH} -o docs-ruby-${GIT_BRANCH}.json -u ${PRODUCTION_URL}/${PROJECT}/${GIT_BRANCH} -b ${SEARCH_INDEX_BUCKET} -p search-indexes/prd -s; \ - fi - -# in case you want to just generate the api-docs -# generate the api docs -# you must install yard -# generate the api docs from the ruby driver project and output to the build dir - -api-docs: - @echo "Making api directory in /build/public/${GIT_BRANCH}" - if [ -d build/public/${GIT_BRANCH}/api ]; then rm -rf build/public/${GIT_BRANCH}/api ; fi; - mkdir build/public/${GIT_BRANCH}/api - - yard doc ${SOURCE_FILE_DIR} \ - --exclude ${SOURCE_FILE_DIR}/.evergreen \ - --exclude ${SOURCE_FILE_DIR}/.mod \ - --exclude ${SOURCE_FILE_DIR}/examples \ - --exclude ${SOURCE_FILE_DIR}/profile \ - --exclude ${SOURCE_FILE_DIR}/release \ - --exclude ${SOURCE_FILE_DIR}/spec \ - --readme ${SOURCE_FILE_DIR}/README.md -o build/public/${GIT_BRANCH}/api/ - -migrate: get-assets - @echo "Making target source directory -- doing this explicitly instead of via cp" - if [ -d ${TARGET_DIR} ]; then rm -rf ${TARGET_DIR} ; fi; - mkdir ${TARGET_DIR} - - @echo "Copying over bson docs files" - cp -R build/bson-ruby/docs/* ${TARGET_DIR} - @echo "Deleting symlink ftw..." - rm ${TARGET_DIR}/index.txt - - @echo "Copying over ruby-driver docs files" - cp -R build/ruby-driver-${GIT_BRANCH}/docs/* ${TARGET_DIR} - - - -get-assets: - giza generate assets - -clean: - rm -rf build giza.log source-master diff --git a/REVIEWING.md b/REVIEWING.md new file mode 100644 index 000000000..abfd59061 --- /dev/null +++ b/REVIEWING.md @@ -0,0 +1,42 @@ +# Pull Request Reviewing Guidelines for Ruby Driver Documentation + +Contributions to the set of documents in this repository can receive reviews from one or both of the following types of reviews: + +1. A **copy review**, which focuses on information structure and wording; typically performed by a MongoDB Documentation Team member +2. A **technical review**, which addresses code snippets and the technical correctness of prose; typically performed by a MongoDB engineer. + +See the following sections for reviewer expectations for each type of pull request (PR) review: + +## Copy Review + +Review the structure, wording, and flow of the information in the PR, and correct it if necessary. + +### What to Review + +- Wording +- Page structure +- Technical content to the extent of the reviewer’s understanding. +- Whether the PR fulfills the Acceptance Criteria described in the + linked JIRA ticket. + +### What Not to Review + +Nothing is completely off-limits to a copy review of a PR -- if you notice a technical issue, it's best to call it out early. +Copy reviewers should constrain their reviews to content within the scope of the JIRA ticket, or otherwise create PRs to address anything unrelated. + +## Technical Review + +Review the technical accuracy and completeness of a PR and correct it if necessary. + +### What to Review + +- Code snippets; ensure the code is idiomatic and that all technical claims are correct. e.g. ("To create a `Foo`, use the `Bar.createFoo()` method") +- Problematic explanations that could trip up users who try to follow the documentation. + +### What Not to Review + +While we welcome any recommendations on wording and structure, avoid blocking approval based on any copy edits. Please entrust the author to make the writing decisions based on style guidelines and team-specific writing conventions, and to create PRs to address anything they deem outside the technical review scope. + +- Wording of sentences, although corrections to technical claims are welcome +- Structure of the page +- Any unchanged lines outside the PR unless relevant to the ticket acceptance criteria. diff --git a/conf-sitemap.xml b/conf-sitemap.xml deleted file mode 100644 index 46a12751f..000000000 --- a/conf-sitemap.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/config/build_conf.yaml b/config/build_conf.yaml deleted file mode 100644 index b29ddc7c7..000000000 --- a/config/build_conf.yaml +++ /dev/null @@ -1,43 +0,0 @@ -git: - repo: 'mongodb/docs-ruby' - remote: - upstream: 'mongodb/docs-ruby' - tools: 'mongodb/docs-tools' -project: - name: 'ruby-driver' - tag: 'ruby-driver' - url: 'https://docs.mongodb.com/ruby-driver' - title: 'MongoDB Ruby Driver Manual' - branched: true -version: - release: 'upcoming' - branch: 'master' -system: - runstate: - serial_sphinx: publish - files: - - 'intersphinx.yaml' - - 'integration.yaml' - - 'sphinx_local.yaml' - - 'push.yaml' -assets: - - branch: master - path: build/docs-tools - repository: https://github.com/mongodb/docs-tools.git - - branch: master - path: build/ruby-driver-master - repository: https://github.com/mongodb/mongo-ruby-driver.git - - branch: master - path: build/bson-ruby - repository: https://github.com/mongodb/bson-ruby.git -paths: - output: 'build' - source: 'source-master' - includes: 'source-master/includes' - images: 'source-master/images' - tools: 'bin' - buildsystem: 'build/docs-tools' - builddata: 'config' - locale: 'locale' - -... diff --git a/config/htaccess-mongoid.yaml b/config/htaccess-mongoid.yaml deleted file mode 100644 index fe629b851..000000000 --- a/config/htaccess-mongoid.yaml +++ /dev/null @@ -1,408 +0,0 @@ -# Each YAML document has the following schema: -# -# from: "the path to the redirected URL" -# to: "the path to the new location for the resource" -# type: "currently this script only supports 'redirect', and -# ignores all documents with another type." -# code: "the HTTP redirect code. Raises exception if not 301, 302, 303." -# outputs: "a list of branches/paths as follows:" -# -# - 'all': generates redirects for all published branches, but *not* 'manual'. But giza will take care of manual as part of integration.yaml logic in redirects.py -# -# - '': generates redirects for a specific branch. -# -# - 'before-': generates redirects for all branches that -# reflect releases previous to the specified branch. (Inclusive.) -# -# - 'after-': generates redirects for all branches that -# reflect releases after the specified branch. (Non-inclusive.) -# -# All paths are relative to the ``source/`` directory. -# -######################################################################## -### Giza requires this file, even if no redirects -### More as a safety -- in case, we remove redirects during deploys -from: /mongoid-tutorials -to: / -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} ---- -type: 'redirect' -code: 301 -from: /mongoid -to: / -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - -type: 'redirect' -code: 301 ---- -from: /tutorials/mongoid-callbacks -to: /tutorials/mongoid-callbacks -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} -type: 'redirect' -code: 301 ---- -from: /tutorials/mongoid-installation -to: /tutorials/mongoid-installation -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-queries -to: /tutorials/mongoid-queries -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-upgrade -to: /tutorials/mongoid-upgrade -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-documents -to: /tutorials/mongoid-documents -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-nested-attributes -to: /tutorials/mongoid-nested-attributes -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-rails -to: /tutorials/mongoid-rails -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-validation -to: /tutorials/mongoid-validation -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-indexes -to: /tutorials/mongoid-indexes -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-persistence -to: /tutorials/mongoid-persistence -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/mongoid-relations -to: /tutorials/mongoid-relations -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /mongoid-tutorials-6.0 -to: / -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-callbacks -to: /tutorials/mongoid-callbacks -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-installation -to: /tutorials/mongoid-installation -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-queries -to: /tutorials/mongoid-queries -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-upgrade -to: /tutorials/mongoid-upgrade -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-documents -to: /tutorials/mongoid-documents -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-nested-attributes -to: /tutorials/mongoid-nested-attributes -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-rails -to: /tutorials/mongoid-rails -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-validation -to: /tutorials/mongoid-validation -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-indexes -to: /tutorials/mongoid-indexes -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-persistence -to: /tutorials/mongoid-persistence -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /tutorials/6.1.0/mongoid-relations -to: /tutorials/mongoid-relations -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/master'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/master'} ---- -from: /mongoid-tutorials-5.2 -to: / -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /mongoid-tutorials-5.1 -to: / -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-callbacks -to: /tutorials/mongoid-callbacks -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-installation -to: /tutorials/mongoid-installation -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-queries -to: /tutorials/mongoid-queries -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-upgrade -to: /tutorials/mongoid-upgrade -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-documents -to: /tutorials/mongoid-documents -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-nested-attributes -to: /tutorials/mongoid-nested-attributes -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-rails -to: /tutorials/mongoid-rails -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-validation -to: /tutorials/mongoid-validation -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-indexes -to: /tutorials/mongoid-indexes -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-persistence -to: /tutorials/mongoid-persistence -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} ---- -from: /tutorials/5.2.0/mongoid-relations -to: /tutorials/mongoid-relations -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver/master': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.4': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.3': 'https://docs.mongodb.com/mongoid/v5.2'} - - {'/ruby-driver/v2.2': 'https://docs.mongodb.com/mongoid/v5.2'} -... diff --git a/config/htaccess.yaml b/config/htaccess.yaml deleted file mode 100644 index f284bdc32..000000000 --- a/config/htaccess.yaml +++ /dev/null @@ -1,264 +0,0 @@ -# Each YAML document has the following schema: -# -# from: "the path to the redirected URL" -# to: "the path to the new location for the resource" -# type: "currently this script only supports 'redirect', and -# ignores all documents with another type." -# code: "the HTTP redirect code. Raises exception if not 301, 302, 303." -# outputs: "a list of branches/paths as follows:" -# -# - 'all': generates redirects for all published branches, but *not* 'manual'. But giza will take care of manual as part of integration.yaml logic in redirects.py -# -# - '': generates redirects for a specific branch. -# -# - 'before-': generates redirects for all branches that -# reflect releases previous to the specified branch. (Inclusive.) -# -# - 'after-': generates redirects for all branches that -# reflect releases after the specified branch. (Non-inclusive.) -# -# All paths are relative to the ``source/`` directory. -# -######################################################################## -### Giza requires this file, even if no redirects -### More as a safety -- in case, we remove redirects during deploys -from: '/' -to: '/master' -type: 'redirect' -code: 301 -outputs: - - {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- - -from: '/aggregation-framework' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/examples' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/replica-sets' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/read-preference' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/write-concern' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/bulk-write-operations' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/authentication-examples' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/gridfs' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tailable-cursors' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/web-examples' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/faq' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/style-guide' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/credits' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'after-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -### for v1.x, have to do before-v1.x since the construct with : {x:y} only seems to take before/after -from: '/bson-tutorials' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/contribute' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/reference/additional-resources' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/reference/driver-compatibility' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/bson-v3' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/bson-v4' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v1.x': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/installation' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/ruby-driver-tutorials' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-admin-tasks' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-create-client' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-indexing' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-aggregation' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-crud-operations' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-projections' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-bulk-operations' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-geospatial-search' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-text-search' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-collection-tasks' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/tutorials/ruby-driver-gridfs' -to: '/quick-start' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.0': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} ---- -from: '/whats-new' -to: '/' -type: 'redirect' -code: 301 -outputs: - - 'before-v2.3': {'/ruby-driver': 'https://docs.mongodb.com/ruby-driver'} -... diff --git a/config/integration.yaml b/config/integration.yaml deleted file mode 100644 index 58c629af7..000000000 --- a/config/integration.yaml +++ /dev/null @@ -1,10 +0,0 @@ -base: - links: - - { 'v2.4': 'master' } - targets: - - 'html' - - 'dirhtml' - doc-root: - - 'sitemap.xml' - - '.htaccess' - branch-root: [] diff --git a/config/push.yaml b/config/push.yaml deleted file mode 100644 index a37950699..000000000 --- a/config/push.yaml +++ /dev/null @@ -1,2 +0,0 @@ -### Apparently, giza requires this file, even if empty -### Must include ref to this file in the build_conf.yaml diff --git a/config/redirects b/config/redirects index 6500c208d..5e3de710e 100644 --- a/config/redirects +++ b/config/redirects @@ -1,176 +1,166 @@ define: prefix docs/ruby-driver define: base https://www.mongodb.com/${prefix} define: mongoid_base https://www.mongodb.com/docs/mongoid -define: versions v1.x v2.0 v2.1 v2.2 v2.3 v2.4 v2.5 v2.6 v2.7 v2.8 v2.9 v2.10 v2.11 v2.12 v2.13 v2.14 v2.15 v2.16 v2.17 v2.18 v2.19 v2.20 v2.21 master +define: versions v2.20 v2.21 master + symlink: current -> v2.21 +symlink: upcoming -> master raw: /${prefix} -> ${base}/current/ - -# redirects for all v1.x pages - -[v1.x]: ${prefix}/${version}/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/aggregation-framework/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/authentication/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/bulk-write-operations/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/credits/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/examples/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/faq/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/gridfs/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/index/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/quick-start/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/read-preference/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/replica-sets/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/style-guide/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tailable-cursors/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/web-examples/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/write-concern/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/bson-tutorials/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/contribute/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/reference/additional-resources/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/reference/driver-compatibility/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/reference/bson-v3/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/reference/bson-v4/ -> ${base}/current/ -[v1.x]: ${prefix}/${version}/installation -> ${base}/current/ -[v1.x]: ${prefix}/${version}/ruby-driver-tutorials -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-admin-tasks -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-create-client -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-indexing -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-aggregation -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-crud-operations -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-projections -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-bulk-operations -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-geospatial-search -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-text-search -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-collection-tasks -> ${base}/current/ -[v1.x]: ${prefix}/${version}/tutorials/ruby-driver-gridfs -> ${base}/current/ -[v1.x]: ${prefix}/${version}/whats-new -> ${base}/current/ +raw: ${prefix}/stable -> ${base}/current/ # redirects for all 2.x -[v2.0-v2.14]: ${prefix}/${version}/aggregation-framework -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/examples -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/replica-sets -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/read-preference -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/write-concern -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/bulk-write-operations -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/authentication-examples -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/gridfs -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/tailable-cursors -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/web-examples -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/faq -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/style-guide -> ${base}/${version}/quick-start/ -[v2.0-v2.14]: ${prefix}/${version}/credits -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/installation -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/ruby-driver-tutorials -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-admin-tasks -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-create-client -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-indexing -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-aggregation -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-crud-operations -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-projections -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-bulk-operations -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-geospatial-search -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-text-search -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-collection-tasks -> ${base}/${version}/quick-start/ -[v2.0]: ${prefix}/${version}/tutorials/ruby-driver-gridfs -> ${base}/${version}/quick-start/ -[v2.3]: ${prefix}/${version}/whats-new -> ${base}/${version}/ -[v2.2-*]: ${prefix}/${version}/mongoid-tutorials -> ${mongoid_base}/master/ -[v2.2-*]: ${prefix}/${version}/mongoid -> ${mongoid_base}/master/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-callbacks -> ${mongoid_base}/master/tutorials/mongoid-callbacks/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-installation -> ${mongoid_base}/master/tutorials/mongoid-installation/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-queries -> ${mongoid_base}/master/tutorials/mongoid-queries/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-upgrade -> ${mongoid_base}/master/tutorials/mongoid-upgrade/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-documents -> ${mongoid_base}/master/tutorials/mongoid-documents/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-nested-attributes -> ${mongoid_base}/master/tutorials/mongoid-nested-attributes/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-rails -> ${mongoid_base}/master/tutorials/mongoid-rails/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-validation -> ${mongoid_base}/master/tutorials/mongoid-validation/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-indexes -> ${mongoid_base}/master/tutorials/mongoid-indexes/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-persistence -> ${mongoid_base}/master/tutorials/mongoid-persistence/ -[v2.2-*]: ${prefix}/${version}/tutorials/mongoid-relations -> ${mongoid_base}/master/tutorials/mongoid-relations/ -[v2.2-*]: ${prefix}/${version}/mongoid-tutorials-6.0 -> ${mongoid_base}/master/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-callbacks -> ${mongoid_base}/master/tutorials/mongoid-callbacks/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-installation -> ${mongoid_base}/master/tutorials/mongoid-installation/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-queries -> ${mongoid_base}/master/tutorials/mongoid-queries/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-upgrade -> ${mongoid_base}/master/tutorials/mongoid-upgrade/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-documents -> ${mongoid_base}/master/tutorials/mongoid-documents/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-nested-attributes -> ${mongoid_base}/master/tutorials/mongoid-nested-attributes/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-rails -> ${mongoid_base}/master/tutorials/mongoid-rails/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-validation -> ${mongoid_base}/master/tutorials/mongoid-validation/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-indexes -> ${mongoid_base}/master/tutorials/mongoid-indexes/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-persistence -> ${mongoid_base}/master/tutorials/mongoid-persistence/ -[v2.2-*]: ${prefix}/${version}/tutorials/6.1.0/mongoid-relations -> ${mongoid_base}/master/tutorials/mongoid-relations/ -[v2.2-*]: ${prefix}/${version}/mongoid-tutorials-5.2 -> ${mongoid_base}/v5.2/ -[v2.2-*]: ${prefix}/${version}/mongoid-tutorials-5.1 -> ${mongoid_base}/v5.2/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-callbacks -> ${mongoid_base}/v5.2/tutorials/mongoid-callbacks/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-installation -> ${mongoid_base}/v5.2/tutorials/mongoid-installation/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-queries -> ${mongoid_base}/v5.2/tutorials/mongoid-queries/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-upgrade -> ${mongoid_base}/v5.2/tutorials/mongoid-upgrade/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-documents -> ${mongoid_base}/v5.2/tutorials/mongoid-documents/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-nested-attributes -> ${mongoid_base}/v5.2/tutorials/mongoid-nested-attributes/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-rails -> ${mongoid_base}/v5.2/tutorials/mongoid-rails/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-validation -> ${mongoid_base}/v5.2/tutorials/mongoid-validation/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-indexes -> ${mongoid_base}/v5.2/tutorials/mongoid-indexes/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-persistence -> ${mongoid_base}/v5.2/tutorials/mongoid-persistence/ -[v2.2-*]: ${prefix}/${version}/tutorials/5.2.0/mongoid-relations -> ${mongoid_base}/v5.2/tutorials/mongoid-relations/ -[v2.7-*]: ${prefix}/${version}/tutorials/ruby-driver-admin-tasks -> ${base}/${version}/tutorials/ruby-driver-database-tasks/ +[*-v2.21]: ${prefix}/${version}/mongoid-tutorials -> ${mongoid_base}/master/ +[*-v2.21]: ${prefix}/${version}/mongoid -> ${mongoid_base}/master/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-callbacks -> ${mongoid_base}/master/tutorials/mongoid-callbacks/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-installation -> ${mongoid_base}/master/tutorials/mongoid-installation/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-queries -> ${mongoid_base}/master/tutorials/mongoid-queries/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-upgrade -> ${mongoid_base}/master/tutorials/mongoid-upgrade/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-documents -> ${mongoid_base}/master/tutorials/mongoid-documents/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-nested-attributes -> ${mongoid_base}/master/tutorials/mongoid-nested-attributes/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-rails -> ${mongoid_base}/master/tutorials/mongoid-rails/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-validation -> ${mongoid_base}/master/tutorials/mongoid-validation/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-indexes -> ${mongoid_base}/master/tutorials/mongoid-indexes/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-persistence -> ${mongoid_base}/master/tutorials/mongoid-persistence/ +[*-v2.21]: ${prefix}/${version}/tutorials/mongoid-relations -> ${mongoid_base}/master/tutorials/mongoid-relations/ +[*-v2.21]: ${prefix}/${version}/mongoid-tutorials-6.0 -> ${mongoid_base}/master/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-callbacks -> ${mongoid_base}/master/tutorials/mongoid-callbacks/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-installation -> ${mongoid_base}/master/tutorials/mongoid-installation/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-queries -> ${mongoid_base}/master/tutorials/mongoid-queries/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-upgrade -> ${mongoid_base}/master/tutorials/mongoid-upgrade/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-documents -> ${mongoid_base}/master/tutorials/mongoid-documents/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-nested-attributes -> ${mongoid_base}/master/tutorials/mongoid-nested-attributes/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-rails -> ${mongoid_base}/master/tutorials/mongoid-rails/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-validation -> ${mongoid_base}/master/tutorials/mongoid-validation/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-indexes -> ${mongoid_base}/master/tutorials/mongoid-indexes/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-persistence -> ${mongoid_base}/master/tutorials/mongoid-persistence/ +[*-v2.21]: ${prefix}/${version}/tutorials/6.1.0/mongoid-relations -> ${mongoid_base}/master/tutorials/mongoid-relations/ +[*-v2.21]: ${prefix}/${version}/mongoid-tutorials-5.2 -> ${mongoid_base}/v5.2/ +[*-v2.21]: ${prefix}/${version}/mongoid-tutorials-5.1 -> ${mongoid_base}/v5.2/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-callbacks -> ${mongoid_base}/v5.2/tutorials/mongoid-callbacks/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-installation -> ${mongoid_base}/v5.2/tutorials/mongoid-installation/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-queries -> ${mongoid_base}/v5.2/tutorials/mongoid-queries/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-upgrade -> ${mongoid_base}/v5.2/tutorials/mongoid-upgrade/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-documents -> ${mongoid_base}/v5.2/tutorials/mongoid-documents/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-nested-attributes -> ${mongoid_base}/v5.2/tutorials/mongoid-nested-attributes/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-rails -> ${mongoid_base}/v5.2/tutorials/mongoid-rails/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-validation -> ${mongoid_base}/v5.2/tutorials/mongoid-validation/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-indexes -> ${mongoid_base}/v5.2/tutorials/mongoid-indexes/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-persistence -> ${mongoid_base}/v5.2/tutorials/mongoid-persistence/ +[*-v2.21]: ${prefix}/${version}/tutorials/5.2.0/mongoid-relations -> ${mongoid_base}/v5.2/tutorials/mongoid-relations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-admin-tasks -> ${base}/${version}/tutorials/ruby-driver-database-tasks/ # redirects for 2.15 -[v2.15-*]: ${prefix}/${version}/aggregation-framework -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/examples -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/replica-sets -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/read-preference -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/write-concern -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/bulk-write-operations -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/authentication-examples -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/gridfs -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/tailable-cursors -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/web-examples -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/faq -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/style-guide -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/credits -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/aggregation-framework -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/examples -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/replica-sets -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/read-preference -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/write-concern -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/bulk-write-operations -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/authentication-examples -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/gridfs -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/tailable-cursors -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/web-examples -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/faq -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/style-guide -> ${base}/${version}/ +[*-v2.21]: ${prefix}/${version}/credits -> ${base}/${version}/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-aggregation -> ${base}/${version}/reference/aggregation/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-authentication -> ${base}/${version}/reference/authentication/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-bulk-operations -> ${base}/${version}/reference/bulk-operations/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-change-streams -> ${base}/${version}/reference/change-streams/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ -[v2.15-*]: ${prefix}/${version}/tutorials/client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-collations -> ${base}/${version}/reference/collations/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-collection-tasks -> ${base}/${version}/reference/collection-tasks/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-create-client -> ${base}/${version}/reference/create-client/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-crud-operations -> ${base}/${version}/reference/crud-operations/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-database-tasks -> ${base}/${version}/reference/database-tasks/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-geospatial-search -> ${base}/${version}/reference/geospatial-search/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-gridfs -> ${base}/${version}/reference/gridfs/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-monitoring -> ${base}/${version}/reference/monitoring/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-projections -> ${base}/${version}/reference/projection/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-sessions -> ${base}/${version}/reference/sessions/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-text-search -> ${base}/${version}/reference/text-search/ -[v2.15-*]: ${prefix}/${version}/tutorials/ruby-driver-transactions -> ${base}/${version}/reference/transactions/ -[v2.15-*]: ${prefix}/${version}/tutorials/user-management -> ${base}/${version}/reference/user-management/ -[v2.15-*]: ${prefix}/${version}/tutorials/query-cache -> ${base}/${version}/reference/query-cache/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-aggregation -> ${base}/${version}/reference/aggregation/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-authentication -> ${base}/${version}/reference/authentication/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-bulk-operations -> ${base}/${version}/reference/bulk-operations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-change-streams -> ${base}/${version}/reference/change-streams/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ +[*-v2.21]: ${prefix}/${version}/tutorials/client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-collations -> ${base}/${version}/reference/collations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-collection-tasks -> ${base}/${version}/reference/collection-tasks/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-create-client -> ${base}/${version}/reference/create-client/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-crud-operations -> ${base}/${version}/reference/crud-operations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-database-tasks -> ${base}/${version}/reference/database-tasks/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-geospatial-search -> ${base}/${version}/reference/geospatial-search/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-gridfs -> ${base}/${version}/reference/gridfs/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-monitoring -> ${base}/${version}/reference/monitoring/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-projections -> ${base}/${version}/reference/projection/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-sessions -> ${base}/${version}/reference/sessions/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-text-search -> ${base}/${version}/reference/text-search/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-transactions -> ${base}/${version}/reference/transactions/ +[*-v2.21]: ${prefix}/${version}/tutorials/user-management -> ${base}/${version}/reference/user-management/ +[*-v2.21]: ${prefix}/${version}/tutorials/query-cache -> ${base}/${version}/reference/query-cache/ # redirects for 2.16 -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-aggregation -> ${base}/${version}/reference/aggregation/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-authentication -> ${base}/${version}/reference/authentication/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-bulk-operations -> ${base}/${version}/reference/bulk-operations/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-change-streams -> ${base}/${version}/reference/change-streams/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ -[v2.16-*]: ${prefix}/${version}/tutorials/client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-collations -> ${base}/${version}/reference/collations/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-collection-tasks -> ${base}/${version}/reference/collection-tasks/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-create-client -> ${base}/${version}/reference/create-client/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-crud-operations -> ${base}/${version}/reference/crud-operations/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-database-tasks -> ${base}/${version}/reference/database-tasks/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-geospatial-search -> ${base}/${version}/reference/geospatial-search/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-gridfs -> ${base}/${version}/reference/gridfs/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-monitoring -> ${base}/${version}/reference/monitoring/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-projections -> ${base}/${version}/reference/projection/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-sessions -> ${base}/${version}/reference/sessions/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-text-search -> ${base}/${version}/reference/text-search/ -[v2.16-*]: ${prefix}/${version}/tutorials/ruby-driver-transactions -> ${base}/${version}/reference/transactions/ -[v2.16-*]: ${prefix}/${version}/tutorials/user-management -> ${base}/${version}/reference/user-management/ -[v2.16-*]: ${prefix}/${version}/tutorials/query-cache -> ${base}/${version}/reference/query-cache/ -[v2.16-*]: ${prefix}/${version}/quick-start -> ${base}/${version}/tutorials/quick-start/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-aggregation -> ${base}/${version}/reference/aggregation/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-authentication -> ${base}/${version}/reference/authentication/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-bulk-operations -> ${base}/${version}/reference/bulk-operations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-change-streams -> ${base}/${version}/reference/change-streams/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ +[*-v2.21]: ${prefix}/${version}/tutorials/client-side-encryption -> ${base}/${version}/reference/in-use-encryption/client-side-encryption/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-collations -> ${base}/${version}/reference/collations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-collection-tasks -> ${base}/${version}/reference/collection-tasks/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-create-client -> ${base}/${version}/reference/create-client/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-crud-operations -> ${base}/${version}/reference/crud-operations/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-database-tasks -> ${base}/${version}/reference/database-tasks/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-geospatial-search -> ${base}/${version}/reference/geospatial-search/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-gridfs -> ${base}/${version}/reference/gridfs/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-monitoring -> ${base}/${version}/reference/monitoring/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-projections -> ${base}/${version}/reference/projection/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-sessions -> ${base}/${version}/reference/sessions/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-text-search -> ${base}/${version}/reference/text-search/ +[*-v2.21]: ${prefix}/${version}/tutorials/ruby-driver-transactions -> ${base}/${version}/reference/transactions/ +[*-v2.21]: ${prefix}/${version}/tutorials/user-management -> ${base}/${version}/reference/user-management/ +[*-v2.21]: ${prefix}/${version}/tutorials/query-cache -> ${base}/${version}/reference/query-cache/ +[*-v2.21]: ${prefix}/${version}/quick-start -> ${base}/${version}/tutorials/quick-start/ + +# redirects for standardization + +[*-v2.21]: ${prefix}/${version}/get-started/download-and-install/ -> ${base}/${version}/installation/ +[*-v2.21]: ${prefix}/${version}/compatibility/ -> ${base}/${version}/reference/driver-compatibility/ +[*-v2.21]: ${prefix}/${version}/issues-and-help/ -> ${base}/${version}/support/ +[*-v2.21]: ${prefix}/${version}/get-started/ -> ${base}/${version}/tutorials/quick-start/ +[*-v2.21]: ${prefix}/${version}/data-formats/bson/ -> ${base}/${version}/tutorials/bson/ +[*-v2.21]: ${prefix}/${version}/connect/mongoclient -> ${base}/${version}/reference/create-client/ +[*-v2.21]: ${prefix}/${version}/security/authentication -> ${base}/${version}/reference/authentication/ +[*-v2.21]: ${prefix}/${version}/monitoring/ -> ${base}/${version}/reference/monitoring/ +[*-v2.21]: ${prefix}/${version}/read/ -> ${base}/${version}/reference/crud-operations/ +[*-v2.21]: ${prefix}/${version}/write/bulk-write/ -> ${base}/${version}/reference/bulk-operations/ +[*-v2.21]: ${prefix}/${version}/read/project/ -> ${base}/${version}/reference/projection/ +[*-v2.21]: ${prefix}/${version}/aggregation/ -> ${base}/${version}/reference/aggregation/ +[*-v2.21]: ${prefix}/${version}/write/gridfs/ -> ${base}/${version}/reference/gridfs/ +[*-v2.21]: ${prefix}/${version}/read/change-streams/ -> ${base}/${version}/reference/change-streams/ +[*-v2.21]: ${prefix}/${version}/write/transactions/ -> ${base}/${version}/reference/sessions/ +[*-v2.21]: ${prefix}/${version}/write/transactions/ -> ${base}/${version}/reference/transactions/ +[*-v2.21]: ${prefix}/${version}/databases-collection/ -> ${base}/${version}/reference/database-tasks/ +[*-v2.21]: ${prefix}/${version}/indexes/ -> ${base}/${version}/reference/indexing/ +[*-v2.21]: ${prefix}/${version}/indexes/atlas-search-index/ -> ${base}/${version}/reference/search-indexes/ +[*-v2.21]: ${prefix}/${version}/whats-new/ -> ${base}/${version}/release-notes/ + +(v2.21-master]: ${prefix}/${version}/installation/ -> ${base}/${version}/get-started/download-and-install/ +(v2.21-master]: ${prefix}/${version}/reference/driver-compatibility/ -> ${base}/${version}/compatibility/ +(v2.21-master]: ${prefix}/${version}/support/ -> ${base}/${version}/issues-and-help/ +(v2.21-master]: ${prefix}/${version}/tutorials/quick-start/ -> ${base}/${version}/get-started/ +(v2.21-master]: ${prefix}/${version}/tutorials/bson/ -> ${base}/${version}/data-formats/bson/ +(v2.21-master]: ${prefix}/${version}/reference/create-client/ -> ${base}/${version}/connect/mongoclient +(v2.21-master]: ${prefix}/${version}/reference/authentication/ -> ${base}/${version}/security/authentication +(v2.21-master]: ${prefix}/${version}/reference/monitoring/ -> ${base}/${version}/monitoring/ +(v2.21-master]: ${prefix}/${version}/reference/user-management/ -> ${base}/${version}/ +(v2.21-master]: ${prefix}/${version}/reference/crud-operations/ -> ${base}/${version}/read/ +(v2.21-master]: ${prefix}/${version}/reference/bulk-operations/ -> ${base}/${version}/write/bulk-write/ +(v2.21-master]: ${prefix}/${version}/reference/projection/ -> ${base}/${version}/read/project/ +(v2.21-master]: ${prefix}/${version}/reference/aggregation/ -> ${base}/${version}/aggregation/ +(v2.21-master]: ${prefix}/${version}/reference/aggregation/ -> ${base}/${version}/aggregation/ +(v2.21-master]: ${prefix}/${version}/reference/query-cache/ -> ${base}/${version}/ +(v2.21-master]: ${prefix}/${version}/reference/gridfs/ -> ${base}/${version}/write/gridfs/ +(v2.21-master]: ${prefix}/${version}/reference/change-streams/ -> ${base}/${version}/read/change-streams/ +(v2.21-master]: ${prefix}/${version}/reference/sessions/ -> ${base}/${version}/write/transactions/ +(v2.21-master]: ${prefix}/${version}/reference/transactions/ -> ${base}/${version}/write/transactions/ +(v2.21-master]: ${prefix}/${version}/reference/database-tasks/ -> ${base}/${version}/databases-collection/ +(v2.21-master]: ${prefix}/${version}/reference/collection-tasks/ -> ${base}/${version}/databases-collection/ +(v2.21-master]: ${prefix}/${version}/reference/indexing/ -> ${base}/${version}/indexes/ +(v2.21-master]: ${prefix}/${version}/reference/text-search/ -> ${base}/${version}/indexes/text-search/ +(v2.21-master]: ${prefix}/${version}/reference/geospatial-search/ -> ${base}/${version}/indexes/geospatial-search/ +(v2.21-master]: ${prefix}/${version}/reference/map-reduce/ -> ${base}/${version}/ +(v2.21-master]: ${prefix}/${version}/reference/search-indexes/ -> ${base}/${version}/indexes/atlas-search-index/ +(v2.21-master]: ${prefix}/${version}/reference/collations/ -> ${base}/${version}/read/collations/ +(v2.21-master]: ${prefix}/${version}/release-notes/ -> ${base}/${version}/whats-new/ +(v2.21-master]: ${prefix}/${version}/contribute/ -> ${base}/${version}/issues-and-help/ \ No newline at end of file diff --git a/config/sphinx.yaml b/config/sphinx.yaml deleted file mode 100644 index 9272a19ba..000000000 --- a/config/sphinx.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# The items in the ``builders`` list are the name of Sphinx builders -# supported by ``sphinx-build``. -# -# The ``prerequsites`` list stores all targets that must build before -# sphinx can begin. -# -# The ``generated-source`` list stores all the targets that generate rst. - - -prerequisites: - - setup - - intersphinx - - generate-source -generated-source: - - tables - - api - - toc - - intersphinx - - images -### --- #### -web-base: - tags: - - web -### --- #### -dirhtml: - builder: dirhtml - inherit: web-base -html: - builder: html - inherit: web-base -... \ No newline at end of file diff --git a/config/sphinx_local.yaml b/config/sphinx_local.yaml deleted file mode 100644 index 775914bfd..000000000 --- a/config/sphinx_local.yaml +++ /dev/null @@ -1,20 +0,0 @@ -project: 'ruby-manual' -master_doc: 'index' -logo: ".static/logo.png" -paths: - static: ['source/.static'] -theme: - name: 'ruby-driver' - project: 'docs-ruby' - google_analytics: 'UA-7301842-8' - book_path_base: 'ruby-driver' - repo: 'docs-ruby' - jira: 'DOCS' - sitename: 'Ruby Driver' - nav_excluded: - - /bson-tutorials - - /mongoid-tutorials -sidebars: - '**': - - 'pagenav.html' -... \ No newline at end of file diff --git a/get-pip.py b/get-pip.py deleted file mode 100644 index 3ef3d7056..000000000 --- a/get-pip.py +++ /dev/null @@ -1,23974 +0,0 @@ -#!/usr/bin/env python -# -# Hi There! -# -# You may be wondering what this giant blob of binary data here is, you might -# even be worried that we're up to something nefarious (good for you for being -# paranoid!). This is a base85 encoding of a zip file, this zip file contains -# an entire copy of pip (version 20.3.4). -# -# Pip is a thing that installs packages, pip itself is a package that someone -# might want to install, especially if they're looking to run this get-pip.py -# script. Pip has a lot of code to deal with the security of installing -# packages, various edge cases on various platforms, and other such sort of -# "tribal knowledge" that has been encoded in its code base. Because of this -# we basically include an entire copy of pip inside this blob. We do this -# because the alternatives are attempt to implement a "minipip" that probably -# doesn't do things correctly and has weird edge cases, or compress pip itself -# down into a single file. -# -# If you're wondering how this is created, it is generated using -# `scripts/generate.py` in https://github.com/pypa/get-pip. - -import os.path -import pkgutil -import shutil -import sys -import struct -import tempfile - -# Useful for very coarse version differentiation. -PY2 = sys.version_info[0] == 2 -PY3 = sys.version_info[0] == 3 - -if PY3: - iterbytes = iter -else: - def iterbytes(buf): - return (ord(byte) for byte in buf) - -try: - from base64 import b85decode -except ImportError: - _b85alphabet = (b"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" - b"abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~") - - def b85decode(b): - _b85dec = [None] * 256 - for i, c in enumerate(iterbytes(_b85alphabet)): - _b85dec[c] = i - - padding = (-len(b)) % 5 - b = b + b'~' * padding - out = [] - packI = struct.Struct('!I').pack - for i in range(0, len(b), 5): - chunk = b[i:i + 5] - acc = 0 - try: - for c in iterbytes(chunk): - acc = acc * 85 + _b85dec[c] - except TypeError: - for j, c in enumerate(iterbytes(chunk)): - if _b85dec[c] is None: - raise ValueError( - 'bad base85 character at position %d' % (i + j) - ) - raise - try: - out.append(packI(acc)) - except struct.error: - raise ValueError('base85 overflow in hunk starting at byte %d' - % i) - - result = b''.join(out) - if padding: - result = result[:-padding] - return result - - -def bootstrap(tmpdir=None): - # Import pip so we can use it to install pip and maybe setuptools too - from pip._internal.cli.main import main as pip_entry_point - from pip._internal.commands.install import InstallCommand - from pip._internal.req.constructors import install_req_from_line - - # Wrapper to provide default certificate with the lowest priority - # Due to pip._internal.commands.commands_dict structure, a monkeypatch - # seems the simplest workaround. - install_parse_args = InstallCommand.parse_args - - def cert_parse_args(self, args): - # If cert isn't specified in config or environment, we provide our - # own certificate through defaults. - # This allows user to specify custom cert anywhere one likes: - # config, environment variable or argv. - if not self.parser.get_default_values().cert: - self.parser.defaults["cert"] = cert_path # calculated below - return install_parse_args(self, args) - InstallCommand.parse_args = cert_parse_args - - implicit_pip = True - implicit_setuptools = True - implicit_wheel = True - - # Check if the user has requested us not to install setuptools - if "--no-setuptools" in sys.argv or os.environ.get("PIP_NO_SETUPTOOLS"): - args = [x for x in sys.argv[1:] if x != "--no-setuptools"] - implicit_setuptools = False - else: - args = sys.argv[1:] - - # Check if the user has requested us not to install wheel - if "--no-wheel" in args or os.environ.get("PIP_NO_WHEEL"): - args = [x for x in args if x != "--no-wheel"] - implicit_wheel = False - - # We only want to implicitly install setuptools and wheel if they don't - # already exist on the target platform. - if implicit_setuptools: - try: - import setuptools # noqa - implicit_setuptools = False - except ImportError: - pass - if implicit_wheel: - try: - import wheel # noqa - implicit_wheel = False - except ImportError: - pass - - # We want to support people passing things like 'pip<8' to get-pip.py which - # will let them install a specific version. However because of the dreaded - # DoubleRequirement error if any of the args look like they might be a - # specific for one of our packages, then we'll turn off the implicit - # install of them. - for arg in args: - try: - req = install_req_from_line(arg) - except Exception: - continue - - if implicit_pip and req.name == "pip": - implicit_pip = False - elif implicit_setuptools and req.name == "setuptools": - implicit_setuptools = False - elif implicit_wheel and req.name == "wheel": - implicit_wheel = False - - # Add any implicit installations to the end of our args - if implicit_pip: - args += ["pip<21.0"] - if implicit_setuptools: - args += ["setuptools<45"] - if implicit_wheel: - args += ["wheel"] - - # Add our default arguments - args = ["install", "--upgrade", "--force-reinstall"] + args - - delete_tmpdir = False - try: - # Create a temporary directory to act as a working directory if we were - # not given one. - if tmpdir is None: - tmpdir = tempfile.mkdtemp() - delete_tmpdir = True - - # We need to extract the SSL certificates from requests so that they - # can be passed to --cert - cert_path = os.path.join(tmpdir, "cacert.pem") - with open(cert_path, "wb") as cert: - cert.write(pkgutil.get_data("pip._vendor.certifi", "cacert.pem")) - - # Execute the included pip and use it to install the latest pip and - # setuptools from PyPI - sys.exit(pip_entry_point(args)) - finally: - # Remove our temporary directory - if delete_tmpdir and tmpdir: - shutil.rmtree(tmpdir, ignore_errors=True) - - -def main(): - tmpdir = None - try: - # Create a temporary working directory - tmpdir = tempfile.mkdtemp() - - # Unpack the zipfile into the temporary directory - pip_zip = os.path.join(tmpdir, "pip.zip") - with open(pip_zip, "wb") as fp: - fp.write(b85decode(DATA.replace(b"\n", b""))) - - # Add the zipfile to sys.path so that we can import it - sys.path.insert(0, pip_zip) - - # Run the bootstrap - bootstrap(tmpdir=tmpdir) - finally: - # Clean up our temporary working directory - if tmpdir: - shutil.rmtree(tmpdir, ignore_errors=True) - - -DATA = b""" -P)h>@6aWAK2mlUeH&TV5jz=Q_0074U000jF003}la4%n9X>MtBUtcb8d2NtyOT#b_hu`N@9QB18%v5x -s4kpO(&rrJ|`eKX`vh}(J+9c$zj(&U7jVi)I-sG3#xx1$bt^#koRK_v}t4mq4DM@nUjopH&ybBEPi}^ -xLULGf}>fj-c03mMwHi99FA7T--xk;ZT?)$>+`x#H%fIi^0Qu3eJ`dRH!XO;R4izux?rb=LBwVVdE^h5 -`i|scqS#v!TyE^NqzAHP)h>@6aWAK2mlUeH&SQ_4?Nfb0055z000jF003}la4%n9ZDDC{Utcb -8d0kS$j+`(Iz4H~8<^WVIJLgqrr5<}-^;T6;8q5#@Ng9Wt^y_P9ptD;}#IfIdelLCWGbq(BX^E&5*g5 -!^K>s8^EeX~AToilV)A2_e6~zhOaP~KZvIOlqFiVW+60AOs)?J~q5l!-OgI;*jfY94W3Aib4Jnnk|YJ -*Ng1Ga|{kpv)l&^K>8SV(XV+<$mHY8?a{!1#G)Y63H$85<@-{DTbUDCucxV6x07;%M+|!-MO9j<0Wi# -11q;*wWw~Jk1&J^A7l0*oU_7=O4mXm1V;gv{y`K?W($dDS*GDs|`L>=UQy}+QW*VBSKu9lNGW7TF8+_ ->8{Ie!4j}^zf$g5NMG?#$r7JFwd*iFi`ae1M^!{C6|@<7hU2_kIGVf4lf-PN95Q{xc~)x -H)+yD7ZSTFu#C|(HBN!o}6m1}htb9MfmJk{*1|JR5!La3y^@g-eNlcIpg@K#xukcX$%OtzJ!59<8S&nG(}iY -;;Zg+|Wh1kV4`#XSvS-lI5dD<2OBf7?{$GQX$dFHlPZ1QY-O00;mMXE#z}dd^oV0RRB+0RR9Q0001RX ->c!JX>N37a&BR4FJE72ZfSI1UoLQYZBb22!$1(d@2?ozOA9r*2x>tu#V^zP)IUzitKEiv`V!k<|@9{>Ov0001RX>c!JX>N37a&BR4FJg6RY-C?$ZgwtkdF5H% -bKAHPf7f4uIu9hLB&X@4rs~YaaW0;wwkLM3lhJ566bZ>VQv?f8l64vX@7=`*36PYN>%FylkqGWC_T#s -U#p>eX;@zHACAq2(Oz?U~>z3>#Ey;!p!X&TqmhqaDd%@~0ktLHYStAEL&Mq!4W;3>HxM)emw_98@k6h -Yc^3?ro>2rG&c{AGxz9R*%Dq5g;NescQD5;?3dseiX2KU>ytdc2+DR{kMTT8p8ZPuLHM_y+YTWj)ZqP -%^SGfmL2Ce04CF1bjXr)?&v8ECb!HZ)c#IqN>qc-;xZ^AGs>=H1^QZzJnM?v)QbuatK0pC+LPf&-KP7-2e_)&DtyrC9O6wLG(r1di=am=FdqeTM?1u@8pKpw0nyzDR -RK>_~pNlwB0xG=0je|0neJ%Dzu9p@nJ`SpP+670+Hb|MH9$kp_eF#B0<9?d(IkVN)UUDhg`_Tw_u%18 -qAeaG0;OeRb6+=ddSzmg3k;Vp>$sgnzxXNd0moSUPA`pZ&UQ)1fb550O4V^Y@yWX>JL -b7q!n}q`%|bNL%yp@3%?-w@WrCE@G4aL?#uP3_u19WFEQCxd=09dGHphw0@Gu1=I4sRIYs|D2Tthk7- -E{lHors28w_yzD`$0Rbxw6UAY~Lq9y=bND$!U?!l342msbH~4nI&)<)@&hjz;>KWLEKA_0GfEw}i5>8 -j!nic$FM=(zc^kf`Te=(uWlghQ4RgLtgEv48f`i{B;VZc>{-58EQ6LgrW%!t78fsfWu*z9T&VImwVar -9s7+E$yy4~b8(aaEG1x`qzzO_JaGZE@CXUYA&?$rgC+ua^Fp1MfMKXN5IZf`oCUJ?rh1v-OZ4S8&kP% -XjAQ|oFGR9Pxl~ERFnbL6`F{P0;@`)Fz#j1Q?tU2n0~Ir=^%{Hwqzk;#Rr9uEq0fL18TujzumIZK6D$ -v@I-(2t+sd@0B^J7oOM@U7t#y5BtO6LTK6OO(hI -{~cLXS}j-WY@=8X-`3Rhd+WQ##`0f4Wki_N?;TPX#3{E^ --tnuKBC4CzD@J8#BYp`j<~be!udVk(Cp!AHMz|wJN(1&oDH2nDg?&RVbO$_#xke;yqw%wy>z!9u}-q- -rfI@Fl_lDW&PgK)V-u{=n3W?1CIEO(p+zcV0#U?<2-+uoLNYpmx;MH!V(;7)NL3%r?ZEAm?8ifut;lB -)1+4{zyg}QCVfiNwVv9?y*6w5DRif4ItDm` -5^i-GvlwU9?5RZdfRjQbchCd+ATj7MJW`1sR|+TO4R6A3yK#z)?>IjH((taZUfPZOU=@$Fc*;aSwUOr -D4NG#$C3cpeT4UuLH9lD0({`zU!3*dH;O$Dy7ZhP161eYthI_cE$zSn2l)ml>Da^14OR%ff9H|N4kkD -MDDAe?04&|wgl(MA7-Q_^sj!Ah|6tcOBb-yjwu#s?;8@^*&o^Q_)kNtk?6%I=6sMvu7eYY42!cQws(` -O27eUvEA{VK8QZU{iW5zO4~L6f`&n+JRZE3-$5Lh3$2<(hE_)~^;PAGvHDxvkj4J)+ET`8%QwX@aC69KTlHk!eIin(||Yg&Fcu(27D -oHzm4v0ni0glJt<=VE=m(fHJXJGCM;yd}FM0OWnkr#{Lr(no6!FFlNoyYViM4h?~TgbYZ^xKTK};Z8I -884;T6&^-oZj6W*x#OQJdpm6d8JjiDWKTE0ItlWsuKKX!>6N%)_>QTWytfc|>l{MX+4ziDwq&LqYE#; -$kJ`J-~Qyb^*7=*s^CP)h>@6aWAK2mlUeH&O*KS42Jx007x9000&M003}la4%nJZggdGZeeUMV_{=xW -iD`e?Hc`$+qU(0{}r5qA@ZQ;x##|sxFHNu{Es`sO;&2dXiME-@qDo4+xJCc>z4s`Iq%5B=UAv-N -{llG2@;$!qFDZ(mCp_N@_L5h8BX*){W>FN)W^z|6-LNe;+fuIjpYM#S`tPOMY-F|Re=0MZt+m>*TGna -yK~#m(Y0dNZ98aYU-x$^%l~p5jtp)teD!vm*u<}7@BjK7`khP602W&a7R3&p>${z%w^XVYO6)#iqF&A -|Mcn7%W)dzqn-fo2`pUP4Y=mg|W6{0k0DXaHA=nMFM%h4M|*`Fo+Q-_I(v=O^HE2Qp^U&8M%r51Uk^g -dy@4ZGQUSrz6MEc+Vd(&Kpf-8bK5Po7;o`B(P(+gGoizxwJpWUHMdYu;?LMrE)D2C$yMvzRgX5VG*f# -}yF!rOcZIgk#|E*CcFSChU!9W)AGMbzJhz`21MFYo&L*$#PXSS`CtZN~=%o;%tWYDKuO5hMI0f^Mcmm -jO--K=Cj$X5Nnp9nS&PcCNAcd$9u@2Sg;tGx-yMU82q`Ovj?B!7diuu@>(>lt{8_kzA6PXTYi52kf}8 -+AwHCW-lynN2w{L6^r5t9ceRNNKnj#+@5SCMFLeu^U_{L|2j!b(93@f0qD3@Mn5ayvMaE4oC7qlTK5e -h>yfn49$0ik34w8x^Iv>sF=~jF!LByB5j_c+8iXUpa23QxHZk}}IS#a^(%#$=_~@Ojcio0H$?Y6ocKN|v(OT -P&(9Am$Q;NqvfD9t&>;yWv%XPP-A6fN&?kMHr+VTxt#c0>WGEZcf+@gdJ7gZ+b`%-8)I7KJ?b%x*Xk=uT+a7RK|00Aj>KYOy&yJgt;_BDZt^ -Z$LrJr36)M!uEG4nq#?IKQ>ROZZGUGG#FXLEl-D(6(KuR0q{jFvM4mWo*YkNmG|G9&qI(_SfO78Z=z= -l`X#q8lFr;9cVo)FV%aU1y6u=DPA#x|lqLE!>Bj@l3Y{gSIN -)mi!IZn2nMEjIG&b5dxwp6u;t%O5m0Dpt@qTyPD*KLKuLrBxE -f|Gy`FY~ZHed8D%Y}#^swK%^{I_|H|7Z2T!hl@w<$D_sdwd1y{O9<78aQEBAx&NE!^kW3XM+UpcrEth6`M{Xp3<#F2kG8W2z7@Rj?#%F7nwn%8hL8!mVJ9RvX6a3?GH*0rIii9yl6c`8 -VMwXilN%ksfWpc0`FEWl8WwZl~_p)}+}lxY~XhJO4J7{$@gmDPB?2h~)=?XU#(kO6n9(|XV3P|KosSI -NjOtWnrVGzx^oN06_v=Sn>U+oq|_;_Pe#9JQ+y4xiQgnx8?=Ka<8ld3yHu^M5=#w6Lpa+|ZLk#*6X%6 -lllv0d%(>|B;~Xl%TwBb~?BJk%_uY1fB=ItMGGB;^s-2oln@I(y`n`V*!_-9#?yppa4?_5z?kS;3E!# -8OF|052W^w|>pD>9zeicSV=>uJ@a -P&YA(p;U>Jd(ga)-7g{Ub=bOn3f6h(*yl^N}D9PaP$d(y}D*#d2RMiBP>Zg+Jypt$)21CKi`}DNG@ -Z*T@!-;>YpYMhxxoK-0#eyeeb&>c;Avj+0jXgRgu{2G)FzQ`DNX%ev#0fk|i~Ev7^M#x)K4R6C*c$o< -C8IkySn#+pMif6+sNLA~jl?|~>)Qz`{q+W@UA+kDj;cL7BVD&Z4*HCNqM_^xub(yPyW3#z*f?)Y{lR2 -!6wHr~8-F~Ujos!i|AB+{WdH@WTSsPLVDm?Hhh1M6UHld?4v!`*vI>k6_7}g3`Y#6r&x$C=58z*PHEl -!n7Pf*f{lmQ4Gwj-^BcUF(o8$Yp4al&eA-e@^;8j&Z9R>WrzM(R0+4a_r&KumrjD*Eu>q$~Ku_C -?k4$PhV4n8PPjbq8>u6^<*%jYnl9BDR|htJsKpf~b+2dleIAoe ->w-mU^089J|ksM{Jamt{gm8ofU(H?4~-?ZfxjQ8W)u+IIpbUj&$_U?H@~sujV8ZLUV5q3cq*j{RwQgq -_0+?DOih5UX|*AMD~MdcLWkZ-!XlX9o6X8}8vB_&?M_(KK+OgdNyH8YeFoAb=WTIUvFapyjGXo27XeU -`wN95|OW8tFXWc4q)bY79|pAg*W&~9D2+|XK{~xLBW(Vo;PW;gS0cQ^X-{v^1Bgn*rpu7O{*p#8%n7{ -e9U$ji$d~GO7xa}jAbW;J3j~jj-flaf0i6^-X+dNUBhM$dNd45vG@8&90X)XzlVQ5cO~^j4K;^XQICs -MzqlUn*^HiRK~YdP_aRB&RP^GE(omm{-dWh6EWA%w+ouX`igUw@JjUegvhBbMsgmUkD>bNCY0YZl604~W5T{%=S -Z_4X#kvJOf|TF~xD|xn#4Gg#-r7ZYGGW3-H8(WCP(yKP{kMM(vsNwEm$qCoM4u1N)>511H|slpiH@^> -pT_SvL(8?{rJuJRbn3@>8{r}04|vAmX$<@8jHPU3J>cuqSnrqZQ14E~)b&=3zbp}+YVJhD@4UW8gB2K -B{i&|E98Z*BBQi$M0vtvN9ET5Y{mNjp=E0_}a_E)q6ZJcj`GDAEvfwoXH-mHs`lo@Xr;`4|8kBcR9k> -lHog$#H%5D8(TXMp2!%Y~}z1-E~gH%EeAv7J;Gc@WWPd@CzmZYj+*;mW*c*!5CV>!~!MC -1mRJLE4Px#_=d@{7-QFl$U12G6GTd{Wnlc0|XQR000O84rez~r#;P*J`ex^P -&NPn9smFUaA|NaUukZ1WpZv|Y%gPPZf0p`b#h^JX>V>WaCyyJZExE+68`RA!BtUM#yaYDZ*jN{kh{w^ -ZZ~M^1W8}E$QfG2qGN7kNg(AUz99G8Z)QkJq$E4-?jCSP(b^I@9M0=ALpBJ4S4F-M*K3(nqR81Q$&+i -o;(5gsuh!*Ya8ax{tGHZ=yvT~{&HiAI<;jW<7&}z#PKv7HITJaX6Ct(`8CMYux=pe*j{1oIvP7w3E|Q -9;>`qimmS`e-?1pb(&=h_Eh1HeF?Fdl~6)-U;zC!aQ!dWAtE=7`8$OTg(zs@+jD`d)2uI5qznQL~p

JV4BdoYb%&{^NlFf1Hg)CNsAP5Enu__B$v8j(=OQ%Kk6F(`El&9mtsBfKh -C9-;nq%2b*)z)zlD5Oj(JN(n}^yu`{#hCH?GRf05?q%!Ll~8j#k>_eHc?@g8+r3EHD<@KP;!;=F*^|oeoy(``%MWyPf6}cHfHbFC8( -TeohNr%#Al>4cHpTnYQJXB*u@eST!LI^{#%i!Fv%N@tf)C`Q!*D2De-)U>|4)OP-Zrz|YuwF!>u;P_bg++rC0~0H;VKj -|O_k0jWe=+lPzE`9Xk+1$yT5jD5fzUX*+;7Gh50-khBNba-+QTxZ2qlIgJ^fsLy8ihU9(r%@Nj?&p7=!IX^!>n#8B)N0W1q0m&lL`x={HC=L4^_hP@pdd^o|dhqe^y$Il@<@e(oWxgP5iy8rr$8`bT*8l;N;kaUG<59c*paSYKhNL@i11@^-F4awmx->|f -RynvHIo>c-A(gKq$L>9`9Hse7gK@~9Uv(E= -@?(i^QG%S6D`Zkh?bos8O2j8vJ4Dg-%<*~^iUDHw0;g`1ebK-d;5$rPjVC5FXuBVH|Ey$wT2lK@Fx)+ -`q)f~>TRek(*C;W{|rat`USDoO$ZS_Zbr41*Do{^IlucN4y<612S+er04oKf&JLXwj72=uq}))q->1oOYbeIS -eRkOv_^dq+BPopQ%5~h{rkVN(Mmf*G#eL%ri>u$j!;DEnVEP$^j~3=2-*(oFv{9VN;udn70@q}OTNV( -v(D{=29NYw92Rbbg!XG~BG`N^3y8Irl_BKpPwkm%b`sCH&&XF}s9a8u -14PYOuFk;0}E=XFO3Gl%`e$F12EYXpba`o}tasq)PPuffzEYAQ6f=U>u`ly%UQ2069e!$52pYi!qEYG -L+C55=N57m_ZJvMb4c>Q-`gqqR1M!NU>{1p$sR~!_~S3PxfpMa33r-it4pTgL*i)cfB(5j)?*3(cYRj -CfT%bM#JRJQ0|Q)iM%0lU?w6p#)6t{mfK@$i3J4%xPi=oM?5?RHiLBN5luj#IT}hka%1bF -;4+F?c8}CVrs}~SU;z9t7AN6bc*XsalPcKf`BRtDXLA=j4?9l-93U|S+)Jhi9loaFCTeMxyG6h6O=C3 -;CG@K(T{O!kokhf1uMB}1u2afwA@fE+LBN(WL%qYbopJgY26oL$B?P+DVX(ABU7n`4NzjGc1zec16*V -E?cI^K-!D=u6HpVS;3tt@X~ZzvK{Cs6^Q4@NdN4Jyr?ugU1!a+m@|@X#q)ezQnCTB69K$?$r^6>WX5l_qIhMq~qS$@{UZe7E -K@Q=ogF@fN5|olUp9wzT{^4UT15H6vRYhR@zq6F6Z!&gPGwtZ96*6HU2Qga;NA;i4MFe&zO+~3c%2}F -st8;4KK)n>5eTE6`Q4P-*)6Ph95IHNz=~YLC-kQcIfTL>Uz*phUW6pm-UP+6GULU((a5^B5z{g*=D!U -Q;1`6>%7P2cDY~M&ORW4-DdWuTNmgCJ;@-*T{8MJ9rXXeu6qnL++m@;s1{A%%#j>h`myf1`KCDPF>l? -5)uY*6qPL=Hq)}(|mt%Lbq}PB}Gsud%d9J%o>{6r$FJ}=ugYpcBK~kb7KY$^2wZ4vm4ylgozjx}kRkE -R!zA6DxB#TN{itdJbH{(YFn~I-^0Ya&Gz{k4=nA!Y#3NDw=+&+h@oD_^b65l(1(NbsFH$ -(m}5ECJJ^(hArI2g6VS5>nxk~1|DtG-G$Q!sVWTdew -H#~>=I^(T&^VmN^+AB+g+6e_n+!HOSW84C2y=g}efn43gk&Cib1ViM!ZoY8>01>@Uv&XRZ&>r1i^n)=xFcbNj4?1sK5Rs!u=;kq~ -2R6YvN)zZ!!uQOQ3g(xW@-=$#-l8oAMf%wwZLyNnf_@J9|ww!47)3zj(*G{-Y1&kr3K#GAHzV<$R9CX -&N>9xd(2fvkE&n<2b+rmU=u(%OSx~|yhNyl}_pMZETM(n|St@!H)=lWPXMc}U*Tux+1-C%7m;nYg$>` -v=ut4f|yMlHNuH%6Q$V-qE`i|X1+A8n;YKCI|W1t?0cl_%iIx?*$qUGe&CMU$#4_RU?g8DlhE7Flyh5 -;;SU3Z2qnQ9*{jSZCN5&l}L9&y|u}>(6T3G|q`Nhg@#DgS9vT5t+Ta8OEYV4Kl;Fl=0JPHZ@X>PzGVk -TJd9AO&@YGFH(NQ@$a6dlV+n2GntPv>me{g5~hbkypp5qr -e!SvH9op*{bj^8VY8zhB<8_yPSrdeY_l`}KbgMsqL0+}2l)oSFUYD(^l~9pieUVLRXj`>^7^EfBD|Vm -L5|5REk4OwGm?KF5zO!IE?V!%1-_j+cZ~HH9dGnez -ohE172bw|tS%POQUwvlMT-q^$uxBO-5YJ(J1^d?beF1?u(gPvjiu#?tNkg#Sl_ko|_ViI?kU9*7en_q -xo$i&ffJpZAolM^lhF|`$KeKny`am>|G`-W#1%_N6LML7$Pirn!L5(R+T{xjWMKzUG2JML;Cg=VIEi!IfNh-qs(ucsDsY*=O&H+xniiuK -R()y3$x2mRhWHqU4_J_l8-vv`snGsBx=OrC^d$(A4}e2+Gi%F_ouifP5C~*r5zAkh-TwgeI|8oPX9Sl}Vkpk*sSNfcVzn=0)B(F5%2a_{BrcVy4*A -(2zj*L|67;I?HKUGPu$c&yo>J>fO))-jZ$((Z8YBzE_4PX8F&Y3h)65q^xFdvnimt3TMA{*LT}hsW^Y -8~He@%TUckO!rmeII{mSVcfa>F&g|AP)h>@6aWAK2mlUeH&Pz#fx*%b007G}000{R003}la4%nJZggd -GZeeUMWq4y{aCB*JZgVbhdDU9qbK5o&e)nI2QywJENbL3JgKm5?j$_B3#*WW%(&?lb86qJGHAScZXddaV#zm~HK`*(NK;;%}W(j+UDiAGnK_U93NF>5f3=f-k -wceVlHx6PzdRm|mL&9xD_y_j0HFfaTcelR7^bKm#WKH~JG7AsLWb%2Ip0#>E9#3eV&T+V#o=?Oej3s| -UlqAfl%Zd|9my)@^>unW09(pu?3?XW{D2i)@|Hv$*Ignvgq>v|s2qAShug_YrjH6mV%LTH{h5|}KUx? -Imtq|?P0O3W%vz7}*2g}yK3w}`EZU4qY5A^}7(2Yo+ie|QaW0jL82b)_r8Kt#}K -A<8E@;p*7{hGIspWX^TI!3o=i*NYh@wI=9GCguQlvXJF;Ixr%ik61>C;0K!)d?kjBE5AS}5fe5D7dm3 -_eaOcDrdiZ&y}t1?f!)YgBz(dSScjUDcH3wQ6Lz%}48Jio2lN(=S!M#wXALQ`S_*y!DKFstPTLNX&dH -)85}YdAry0jDqIp4!=s8p?EYWGTOM#>>XcD}65Br4$%u@hQXe&Y&n-Hud -&xkkwuzU8KB`xX=q!37p%B7Q!Z}=$-NcYpz6_Ia%Dv{y0AXQ29YlNhN}p2Wf<8<|$6X{8OrSVdkOj%?T*#sH%gA_-^l65{3uYrunC3!ZJ<;3DgQyl`~dHwyf^T8~RL1{*Z -40NaXtF2tl^+={lr&&!YJ!LviPT7eHeG3>3>WyNz*+~W4*5OAm$j)Ep2{l}q<-tPkO){3;9Zs9aa0gd -{PQFDyzMMc^SN4U`9R;tRptYn_OlKR<0^$lvt^`^*~1CK(}%}^A$m6zZDU6+H&l)L^yAqEX-2zpQ7;@7oiph5k;ZUSs>5D(*gkw6Y7jStZ{K8lAQh~>O2^+4BZ?7Qau -VW9MmIY)yhTPvv6LJzuCZ1HlK)SeIx)8P=cFATpSIJuAjKMi8_4gIB`+*~3 -jsKXvf%oRZsNSB2b`~Mrh=Qg;IFQH)A68I;6L1V!i`WwHZ@!=Ky{dT|ZI -rsy$0K>880k|v1Eu5$ph=Je%yJ^EtrEc4llxM(FA3rsXv1atKp3kRd6uw?VP8?E`uA%ClkB*r*VO -GpHcn6X|yMoSP3}|a`BR2avU(GVkK!!+^&V+9A57cX#8@DDiRr6_zm8`;-`hu7UtwKrDDOr0uZP5Xmm -0u$WOO`;khaF9TrjZ(wnaVb>I-Cmzfp{)WPhd9GF&@rsk^Ub=KlxM1VnA(%?Jd;rhl(y#@wd?GDP_-; -%G-kQw@@jO0rBP62qk&pv^qA^V|$7I9uQ7ekTk%ifp9A+-}8A7Utn-9*-fGDit$3JjOup6*!fS=TMju -JddCC;8ty!1>~^DeLAi?N1&%k{P$-cpY-EVi^I%b_g7G(OkgGePT^VD^$@Ks@6af&1Y~TRG6n)5573L -ri;YEo<)}r_f!L2IRvOosl7Go^^03j65gaA$n+{8efbCrM(hwo|`nLt+*MJn+%=q3}8q#|G@>>!8P+< -*Y%ax4onv;%k`p%i)rIAcngS|ufc*3iMR^kZCZgU`5PS3g+ie1i+Q6>P1LT|u4!v$N!i}7Lg)p%7N1Dt@Hqay5h06!91(&%8#gigwfl| -()qudK(S3mjMHYk1-RZ~K)2$0Xq*WN0gX?42JEy5z=4$YH0|ZuLor8x=z!mr!C0diAuLQ-BU>sL3eA4 -#7mTuKeWcm?#cm$PLTmy8x@dXfY$90vXp>Z$cO0n9T!`203PyNd&b{PzVS%n#`hgbX_RL3l!1&gAB*k -JfSNYwhDAO0xXL!pU09i?az4zx9mukw^_JBCJU??FiSp64#U%AG6lg6=U|rli_WQLSc>Q9WvuI;8~}L -kyq(fevw4zbYsgcvS7zG3P^SFzf_*XFzQNo=$<`4j>r)PiDfFOu5hX#+VWUlN*~2fX-?>Fn{uA -0e1pI0S1C42bkoTlPr}LhlAh_fgg;^p+ijgXNVVr-XTXRF8bL3M^ZqQCNh|*v8^7v#g*Mu?f?rQXwX` -HMbRycqJ@#A(hyoEy|9?;YGvtD~&}7rr=2{`8!079A(^46#{6=gdpo0f&``|J%NrE@e~1}rDbT(aPgNeq$1jjHr^S>E8Qm -OL!S5X$k@ngUkB2B&ir0QR&cMNtq5*wSBHS-hZ`jj)rjunAeK1wo`GRjIHBWXXj+StvF&jcrLo{>Mo> -$*@1%SxjE25{MTaOn2e_bI(w9ZgRT-kmg2$eU?D)@2ZT;_U4OP#V%+iZ=j2lkY -FzY@?eQ)vOHL0(LAUObi>hq!}R!f5NzZ-lREY8Q^oag`X`Q*0m+sEX5W?m^*E?*aap|)mr-cMCVvZB( -70Q9gq{h3gTCxhT=DooVMmjYlt{hBLQ4A^i&eeqkn;;r*7>BXbogoV=r;%T-5Os(a*f`R{Qa7UUbE4q0zmGX2#tU1 -npY*pvHWl!@R6&2E`w+AXEt9f`1eU6h1jmuca~Cxfq -qZ^I$sXfJP05t&p49D+m2rcSr2v;PBUj*GKQztGDd@?G-yaxH>#x@Q$I6!tckIZ_ -nuY^5{SBPcM(oj?S;%wJmjg`sOHMF8-21t93?sT&Nvy&k=)!1A)ReY71-VMZ(@9KHf<@Srhksg^5Ne5 -m_jCQVJ{x>&BaZwWWD5TJeo@HDV0joj}?uc_dJS&#F5tJiy*F-IsIH@*|zPP^}ieefnf?{MldW&e^AD -MRPY6R&FxrPuB$U1%Pk4T#>uMPC(L1lvxpXGqw@+i`Kmq_aJ0}w*fmygL&>4ZvVE}LQUotc%^_YJuZc -#YPL#YDziq)QFN}Cz|74We6c-$k9Ec}4D+?rA_n)#c9Pyv4|pCb+uo?0X{uJBR%uib=lJcHUy|b2-|J -kz5kwXv{nII?xCe~JjTV4dkmw)5rh&~ine4UKb>usmCI8{)Um!_IGx6Mi9#s+m(f2?6_|wnN{ijpdYw -#@h!2##b{inPBfEFQxfS(pqr3duTx^EYm#WQfaXH2`g)$SOU2~@yFHFW<>q&C3Pjv=V|WenZ5-Bwg)z -7s^;fSt6YaZKt7kgzHZ*)`Q`4d5JJN-FUdlZhFRb8ed7;A6d>PyQvbnPoQPNzAd2Pz{(%O)P}>|uGk#k_yu$g?9PSyQP;r -xu(-GTj$Qq!F)J`d0w8QL7@%RBbG8qNI&NZIY#=c&+y%7f-pE)}r{>;angRoGc<$)58C%IdkdhdG>>g -d_h^{*0Rg*(i<=MF^Uy3)BDh{?ULpRgHg4@YTCL=`+8w%P!=d(iv*RV?GE^v93SX*z~I2L~QuOO5M+g)3p?qFvDFS3iG&CCSTrbW}DTLghXOSH{K7PTa0$6K -VoeZRwtEIDzfn}?X<*ivbht7<7%X2N7;EH6uDY_nWWn6P=0B! -j^j`>+<+S(a)is}=TdHlni3tW{GMY$2Ey8?_Y$-`+mwao2Q)x-}k& -wu5m5re@}s}0LCzdOsA+|){2#urAFjTM>y9t^^~GKW!GbGwe8b;&KH+Qe@ot!T%4(;0fX{l$fZ&{md) -9j`NP4y)OzV<{(!HXyCHFi(f+u -+O-_OZfXKtc1Ou1o2o4tur8t1_u0!AU@v=h`JSCeWv7jSBsqtLGJKB`C?XkyR3VmZC2Y3gU -zE-^63&xtg*G5O8hgQ_XN|^e`cH~5H%rk=zwZTN$_JyPF?BRppuyDAE#-~Y6xQ$dc8ytRg1cC)R!9Zu -D)l6PPXC@T9LC`JPf6OlNBet*Umw!155ttAklWES#7r9Qf?b!YE0fWAR%@}8_um%<@-{%V-&;#xmjeCqa=I(P*TlV()LTjb_6wlaYML{Eaw%aLvM=n|ff7`P)?6?r3f^jOoL5_wb$P -2=XqR%1pBkrXg^=6%QL-vP+Y_A%|Q9i`I$PpvB2~O&RBj*+Lf~r!juyH|0V5v0e(Szwd^UjFy#{BIy` -wQ!Y_rXq4(Y02!(B&QypcHHa-)GF5g6fT36DOs-6KqDBomn-jofpp*vYMr7*E^&3QCR4AbTG}>g{|`d -Rw!YrA*`I|5W_kL*b;xGtnQ#itJtbk3tqbVGOc-j$5#mM0exoi6UJ@}2AMf?HzqYITqzgH_~7j^f!x6 -1Z+*#yaFT47b0h`|QqC65iahe&{@s3PIwcCJzA43o86j|VZEbDlGstciO@1eAs`Ls9srUY$G^P<|_Se -7t^vkTJG4<*(Q(5IollM%CSp#|``vwJzQSeeogVU7KY%H~@S2mUCQV=w7TSns)fI(;k^7%PS=<3A#@U -f1bD6d{yo-9-~8V}l-I%6N953EzZBvLIUNr}v>4Hh+EWI|~Sjv^`pof|BpXdz$%p)D^PLEB{|t>mRNF -m3cV?=>zd(=B96{G?A@4DLdxzOYD`3&535#6F_n3c&T{hYMG$LhbZ>;jWPSySeK+*Rr-IqzO7e7aSjH -FMV|43|=J5LN%5+Gi(SFLxzO^Nmhm0K}SmcE9P8^zepF^!B{i$EOv745AaM^jC%+EjAwu1ke&apOMd) -ci}{TA7)nL*# -eTu3grC2|TV!kpcj?Gg~PTFH!eSxDa7C^IvW$iiY4}NA@DDa*+OJ{yePDuJ;CYsl9plgq?Qr>nOgfWVBf4qv!9M&OXcIWR+kV`L -$wV!1?>qQdByaq){aw-NX!Q1dYdKtfQ7A~0MXy5XWBfXkK=+K~ShneR%Y?f^0hfzA5~8s=f){28=(a5 -9#c5Zf0OVh!-8!T^ACYom_DQ*ze3BHc^hwDyB*>^=K -M{SltM!B5%CyC>A+kC%VcDS-<>A5PiSDdIA|eZ-{mOrXKpI~@9~C4v%Q-DAs -0rXnR6V)>nL*d!N)sB-9IORlL<4+17+vEe*(=n6CAlp&O;X34b67^3VMFL!)zo)KS+FRh49|5$bZpcf -xi0Y&dP;4E09t2MlpIToew0b3t9a}F);sfCr+f$#qSG+NRFoZT_MQWQE1fFR~Y4KGR2iH03^honBAQ9 -Ms*adUgfDC1*$rA=KR!;IXvpq%rb1}0HM{poQqR+kKH1ri`zH^DxSbA?MrkRCI=Q#sFOoo6rLscHt?0;TU}5VfA9sF_S|zWmBtB3T=pveSkwA!B?O>b}eOl!I&vzXoqsO;(u+m9 -N$4?|_nmVL({TTE7CS0S#60eJdxvtLCswx7~rBzwg=mUTqpdX|Ule(wgwoZEms=R5NI_i$L$QmZbyA} -7oJEm{G<+9|9QUsG2&u?re*G}YZo?d?5xoE}U%cem0gK4OKIjO -2rJXoc{jGP+|Wzd$d@oY8o~`u%mp;{M$o^M;{)i^yybmYV^d?%g67pq{qB|IZ_wgfjmf0TwN9R<7BfObpx?ruThc!JX>N37a&BR4FKuCIZZ2?nZIDk(!$1(l@B -1l+dTF617eOuPrT7muir7ObC2W&PGLY;pGZQ7>-fc=1q01hY$IN?ge---<0)-?er^wE>Nw3sOqC+581 -9ic(!t45doi88nme2XeD$Aa-2VcO%N%?F`OuAvPTcCzHu%Ljv&zMnV3<5-QK&+Y$=z#J31iFa;IR#%jzPK;rjW*dZ`h$moh#a<}-8~^|s0001RX>c!JX>N37a&BR4FK~Hqa& -Ky7V{|TXdDU5MkK4Er{=UD0RX$h-Y#}|gXt0222SMvSf1K>drF0HoEDpDBbU?EB{>T@J*ZW%^c0u2Gvx$X+&kERwn3C -d@pL-w~e@RGOcWj@*q^LyC7ra(}G#OZ_Xr&mRApaE7i8>#D9C)iM>#EP=2Ehypi>X@zsJwKjIywvZ7P -GDa2DH+Qh^gWh`$Rjt}2I&%uGe4YPR%RSA+A{ti|1_lJzHzt(3?&`4i(Gk2Y#fH=$ -onpu3s=zIA>hdg9P}UM^e&?{Q~n*z@A`diCdXD+hDTb9g~WoCA5C-P2KYcQMSjn(_bL@Wy|d@?-gcF) -TPmVSBbKQlvGxC$5SU@A94czrx&=It)RFH{8oI?Qe9TIV6$Q00t;vcHaYdTN4wMNJFINkU|pM??wgt^ -ZP{9|Udc+=f`lPu=<)66?=UoR(9i@I4lAB41;g7PnM!sFh3azXgkmc!ZV6v4Rv|oxK<0CAna>d}g7E# -=%clNFl0OT}p~OJp*fRO-Twu0fccf|NI|84~))*jF9ol-MbVeYa`i^Ljyjxu*JkHu(?G4(l@6?Q4|Fg#jyE#7@R3tmc0XanB57MRszEu6fWksyn -`*Fkk;;9-X*_5yaQ+3nj~h613s5(dg*`*-$UD={cZK6}Acq-MvBnpq~E+D2B=Hb-V!Q -OS)IbupGu5=yY-ovsLnnBF+2-0PW{a&J%*0{%?}BvgPglfvP?VKZX$-?@@%tgrL!`jo9+)$grK5>pu;TyGIG{IdhXFXvq@`k_q7;Jc-#Nkq(}QB>Qe -zTvj>SN-f4XL`1sT0mZ^MP+%Bjbo(qaeM`=*v5uKg2ia*wBPtdeaE%;?TGC-o&{}7p^DOtjmMA%2obA -^MoM#7tI-)XQoz`|NzjWE`o~gulmMer7rGTHKgE`SpR -265o8_AfrWfS)I`Ow{UH7brLllT_`DQ+dP|QmQ#|YO>8euxm=-tx2%iI#t7;$}RF?GMkDr}bx5FY)A{ -ZMfu4BPj{QYHJU@}mC{zGQHYM#!@kxKwGiq<+BZv*ED+5#ChXbp*E#Spq@^e2IW%M6Bgf=_R~gx(y0O -Rsu=t1$zyl^GbBvY6Id>9RI-mzov>H*9I4AEsXc!fT$OsJ6$rCc;wWIed>DQD; -fMv3K+fgHSh5w!wAPR|9`;>W7R;Q9KHsm1a$xUJhc?7Dj5w~0iC($_S{7L#PPX1iQoO%iusF^eiaxB*}7h0;tyih6pgq-kD(+X=sVhhm$)!)IQ -H!)mkv0)?Uj-dw7E&+SJ;PW$gHTCdn!=~5ge@jU)CB9&(GxQcWbcjjIo{w9iG$q5Al6)wks%}^OqMQW -nLL8xEGgCr8War1$%4b~Gj8CS<)@z8v}Egc)hG)F2RhyC8sJ%Tn16Tl2B-OST4Nvj6N6qqCSJ>ZBSb{ -(m)9j~Q3A$aaIl3ej5s@`plP2!0hR+(s$6EIlA4sbN^oH??G>@ahD*7d0o6IUS|uIkww{kO5sjG2JmlOT(~XaK*O)g(v@{tW}|}V3tiybXc5rHqh+W~la<`tu@Uymuw!%)L?)NA(wm@Zj7#_#K6T;C6G2Rn(SfKmuE+dWzPcMM@q8IsojJqIuQcd6Mq? -|Z_V+tpv#*`tMyuy6T*5e`K2nH|0qzpdEU`0eecT{A+Zpx%WOE#}0ky`$r4<)B!iy$-8lEs|eOy-I0J ->n#uhj%ikYO&(Vz*`|eoYMeM7|gWYVhG-4J^cBbHqK(jmZ -qZD*`fyUK6GAb>`aT{orx$=hYW~O3pAL9>W;%`j$+4F*aWQFW#P{IYnT#C=)?elBJN5Xy3?j5|BIz@GQ -Rpe70r0Lq`b=YarE1}^?gTsE9CUiulPd0Or9u{%t+c`RT0Th)n0(TxWT&bxcJ&K;~*@O!*K#2fWHsL7 -$Bf-w^W>?WE#wXBgryJ>TbXAO+2k+dAyBZsPV>@?;hlYFLNKO&c>L-vg7-p?S=Lt|K~s_Ef?{Q^qja0 -@v}BOM(YP1K!ZH<6lrz&RyEJq~KWX6`{xCf#NV_ED#N4R83tCPl+s`;hw~3Jfj1CgXHbC=52P28I~v3 -B&_D3O8cWJwi+}KOt3sf1uam){Q2d!NbvL0m1}DYPegi=pKe5ev%iMx&Z7*3Kq_C6r}47a7tN;WW(Ik|L;1u?>ku@AVYD%9!5TOz -*jA6*fj(XlI_CT8t0y2r$Kf04!i5xlDOFV7IkxUu6mksZHK=XAHHwnN-M$<_Fq-(jMV2><|D8UO$!0001RX> -c!JX>N37a&BR4FLPyVW?yf0bYx+4Wn^DtXk}w-E^v8`SZ#0HI1>JzU%_(`L|!<;p;+7j+4bRiX>wa^+ -AW&&4!ylXOG{MDMkaM46~|cgzuz;YD2bA@yZ&HX6lXZE&&;rF^p0g&+1j=dS;pk9){SL+V|3M8k@@G7 -lWx7>R#>?c;d#r=wvwCh_{C@y{#W|`UaI@>s7+dPyA6-#U`|d-I=q&3nmr0t=mtCT2ToK$jz`fLsTJd -f_3yH7aZYaJQy>(|kU|@&cykz^B$XA7;#DeDA)eA)SCz=EZUW(rR1cS7@p(EgjmS!R?1|s|)oZtSjCi -LDQJK^T;tw6Nx)G%bzuM2TSK2v-WWZcC&PWOq8e(@ -OMji7s`X4+1}bOb3DK7 -cEs1?Wa%AYQ+{r?=p9>I_hu7zjsym#80+4T+9yHOGu(?p^_saE(vD)r8)7;-~{(6St;qMVj09!E^5n? -H$Po9jfQ6b;#DiU|38X@`?s8*^nzVI)s@Vptq#nzHBb^+1qXPBh-|ZBSjYw23sz`#X4#%A3$GpFCFm5 -UTT31ze>zh$5|>GUuX^N_EYcZejS%)>@%Orc(HeW`BNxVZCOj6YQL53WOAUZ^N_a1yPI^9uKZ-8;YXD -LJQRG6~G!Dv9ZJ$YpRbP(N@MoSOFW8&X8;L1R1^ZDj&Rj$y#JwdX&htjxXxOJAsR)F|kxs-%VkY*TS9 -F|8F8k@E9e)svkOm&$mLx(wa^675yJCBo9yhIBNk|}23~4Zl;pOj1^iJ=C2xqW`hrc40gu;T3EZ7D}u -*FkrsCI&+s@T0AvEy3-l;EnEYKWqSm}`2b5@^fuGH(O~9);UbWB-_fgEBqvMJmJNDzDl?IGqrv%xEU< -nPGw(2W(bAw*6M-TPka8-)QSLPuS3zaaJtAZE?W@{H)@afP9;I*t&?~7b-L*{YmCEaXDc!&H}KBlA_= -Fb+Ca&aSKpXw7c4PECM{BAZHNLtnZqZo&_2J4o8@EvRDCF7Z;1MF {I;dxHvW(-bO!tjMiHoZ#2{% -4thRHA3Z9uV*nGPV%O)YX+%DnTjZ|3#{U5b5ajh%4OFp(1gZpHpbYDo>bv;mny>I({S?Nch9WQgkrlQ -N}{TOCXC0n|G{|LN8t_f(gEpc`PKEMfWh43DI)ec5v}>KQkO3=x>r5BJmlC6xP()|Gp+SS%cv7^o;5N -`Z>lv7Q}eE7*B^-%;B7%q<+8Kz+2YQ1;*wqpj~7jwIQkw4i4vuF9o@D+#RRxi@mez3aET?jI?y@B?5l -EpiE>6slxs2d@Rj5uOIQJ=&v(K%h>$Xs5eB$fF*;91Po)j%!|Zy=%9yfTRnyUdKIjLd2m_#Ey)d8Pdn -6X418+D{6_UkWLLh^suYGYffF=HgRq7Z_wJY%Zj8wN#E9@qu3?GUZV=w&j&jkBo*lUrGq2fpZ^kuRdg#uK+aJ>o*?=0>Md_zW -8?)nAquV1x`14BN5mReIvKc<{P#?KKCTfC6OyRgb_nE9i|02#Hi5!QrCF=@#Ao -^#y=LprqJ18R+-96V-C2gbBq>3uT5#0&OXU{cyiCCC=QtpGqUK6<&Wv-_-@9#;@@soT(Xn^a-r;xO3} -gVDh0sKm&>+7+Z((>LPy^H`qGtJ&6hG5d{n9O@;JAo-FT%>ERRbkLUe$W2OzF{xF#n)f{?7rq -*^2GI#WD)-Fq^&TLOz84d_x#KGNm(j>*G6#iIXSlzNfhtd8+r>fvX2mtQ~e!57v(=ro -E@Zxhp|5*T5Ql!pKtxW5o4zdVjP&dUZ6n#aynr)_xDZiFX6G92V?0PbV|ss_Iajp0P@INw$td;8~Bwj -$X%)N8A(}V?BAE`fL2O5tM;|7Fl?F^pd9Zlf^GPcu(WiX^Kx69!&}Qbnri3nq_m7#N5&z_a~7;Gvs)r -K{Z7Y-XVCnFSK#&c$lEM^EW2W;fzM?FdqDY0yX9~qOWugWD7lrG?}h^FvN}@7s2nRhr$HUZB93c&wk^ -d))UhB^_0)iX7mhSXG5GU$KV;2HJa|G2+UvzMH^~_`2CJs%osE#xB?r1$?@@2=;ci! -h;m^K5>hdl2y?^41dhF9WoZTk~B(*QCFGW#{hFb&*mmbDP9e%TavMHEBwv2{9Q5)#8(G-O$~-+oN%DI -W^yrNoiDCjTXtIi3O9KQH0000801jt -2QYR^T({u~~04Od103HAU0B~t=FJEbHbY*gGVQepVXk}$=Ut)D>Y-D9}E^v9p8f$OcM)JFU#a2Nf5|w -#%ko4{hs6gu2Iirak*hvmO!ywk;O5&L!87^r@Df-`UX7<5dl9J^siU@EbEq7+;{aTL4K40p@860&Hjxv=!SPC<0(Ezk%c4osTYqRM#|i7#_e;#1i<@ZTuiQ(#_k@iCW8iO+?4GK6b -gB%qKeOY=K}>@9rXv6WP4_HM;nlmgU`G)AO+AB>h_T8c|izC8T<{y5@HEctvhgi1XbLPZLXv_TorG*7 -_jVp!b{vQFjP>=z)lVAPQ=c`c_w%s^J*z~;A -(EmssO`rEIG^Kc6mE!E!HLSVE{kC@7Lgjb8y%l@~bzcBffXPz5gvf{@2Ozukq!_^YgRwH`^hbs`WQ?; -+7{UKEMb9*R!g}Aa9Ao^&;;6u<{4>VXdU!Wjssn#Xb6#y;Wm)kclJ}KJAZpcu%`D;9*L~2NDZ2$ -TyHOa>4ljjlvKqjMmuuv37;f8>o6!ipOH_bEyIHgp^;=pCVv4JA9F9h@ST2FNMFARxy_JaO#kvGX3aU -wP%@4l*c<|3Sy7?hIXn%e8!vQQzrnvj;&H2UU$?>bJ6F@df#Dc~1BCk2f%c2fssI>YFRVt2H02ULngP -)0QdIEXowE&T?(_COys#icd{KL?;zy`9SxRWeP?*!vHGl(N4^rMnje9hz$`_Mwv1z2_^MZ`{`Wdv!jI -Cvf%n#1V-3LL!3iHN|J1B3+*DHF)HJjqqjKwP6B5oqAg)0U$Fd%#V(5IPt-do9yocJsUVmP{t*%4VE> -!?rZ)$})1Sd=y;(bczK8Y*D8x3UUFNR)u`rW$Ome9IqJ -%i&~3HWE<9kOAD^0f66l{+@nnVZV!S7tsvWF{3s)j$jZD2_?cYYr6q-s@8y&wjX7x8lH5%hHc1mGyl}c6?AgrnS4$_-LG?L^H4kmc8Uh -_O*MV@UmhM=WsM#P5E$dxWwQH^nkK^cgI;hKu%n1GHR;THggj5Yu)VGFxeDPyY;l~0uAU`6UEh)}0ce -~o=ur7*}gNWOwf>u5Zry2sR}`EI1pJxogy%3t -vGG*^KSyEa)Hu`3@VlBbMI*{mt+uY~&qeSqKdRM(8?<-S0b^+Wf-5>tL8CI^yyC50rNA|sEVCq`70E) -`)G%8ebn!xkc@#t_*sKQLWFG3_4n>G(<+LebO_dtIooZHrvBsmU|yRBDxJh)s?i^SV)Vp(DUkY^)*+2 -XYor{Ten66W!;&2<%g!Grol&1EeJrZ*QrE(2S!)Hp0}tVBx#38OuviALgk1Mvz)htCtYI>2^B}Gxn#eljYs2-H{bKDL8BlH?YKue*?CQN -AJ*Lbw_~!txeN&HcY4iYW_r|<|sZAB-53olOs|U>yMn>A`kP@~o+eP=Fkg@M(ox`2rO41pc)^_T0dPZ -eJlZ!7U1S;%6U@s$t%&z_ZUG+z=JYPbH#s^lJK0P2?MQXPwN4qxj^XNZmiNra~Lp_7V96b2x1r@;|#5 -4AF(ej6G1Y+E0UgtCXbunc1_?8Z_x0fJdazr*y<%L7Q7wkD0gi(mfsy?@v*BTU7(E~Rj -@vey)OA4brVgfgRTAHK?kU2aV0!-Svt^u`!O;x68E7~pdw=qty?F5>v*^41b)$r#`^G_;gpM3^oKP(k -hKcT}>6aZAuwC;43h`Q=THl(H%+c^(iRT*SUPOm7~l`C6?Dy;?k-3^8vwGOD3v|0PAOi|v1U#ZhoVc3yTt32m-OL@<~d -*c4{uKo=in(WNGUkmQiJeiG&^D)WYT*tNIclrdBrdyBtgG66r4wy|8)&aboo{9IbWBaphBx5!_v?j@_ -HkfuO6s9xo@9mQ|8>V>R7*~NaU!A?pDAr_Vgd6#l1b!T6@fxF@0#d`$Cku#Xt8uv@l(f%V833?D0@~f -=IBtb(-L7vFl5fAWjyeD3GIfpBk)oasV*nVEw64;3)!rUdB4lmUV}Sl!q

5fEM*0ZI;@M^QS3;Fu5 -eu_MU$$A*3sM10`A)_kO)>iR^>8Gx^DJB{&w1ZfreblOB-!nV2GA260$Ifjj#?0Ydommp{SEq^~;n(} -w9*M273#kgb%WmH3jROJFewAK~xH4pyz%V!oKTS#zM*R4Kv=aj4}zG4H|*o?52#g*f2vE -jv)9EOX#r^E1Ue9cWA@HBQrbzNuGuG)5o>aedKbk?TSIyQ5Ampk5Whe5oT7rAgoEx71Mj`g|V*d$iy- -JNgrz_Ei>er|s{#cvlVEV&fi>O~)V4{4Sduwa@JR79Feg?A*nM{j#|8N=?ub3=Qjp%6HBvH7tDZ21om|)ktshetk2AKhxkSj_fUyjC$5>;U|6=lVmaTBF -of3Lf_U(6?j{yDVwOoY3z#N;0K0lm(tMDPD&BYbvUYX+c)amTWn@cWxY}DcQKcY(0c$_fyp~_OZmti8izRj^uzZWJE)xsjIme -y{;KJ@6-kD83SpV01F(l;RaJc*&8Ff*aPg`T-di}wv>}r+Yv8I=mO{h!%yJ7lDmaArr`l=j{pY(Eiiq -+-}F}FUY*nTct>P%r8Yz2%{F?H(yN~)#!0S+yrgsJ%@$9=Pv{eB7~O}?Q$Mo&e?*!CAE)t|xj*MN=Jj -8>>O?!Yvwy_vNB;v*O9KQH0000801jt2QqFhkG-v<-0E7Sl0384T0B~t=FJEbHbY*gGVQepBY-ulFUu -kY>bYEXCaCs$+F%APE3iZ(gW|0EHu%7XCZET^+k1FFb_x{J_GAMy4PEIr5{jB0|XQR000O84rez~ -C7Ak#^9KL`lNkU2BLDyZaA|NaUukZ1WpZv|Y%gPMX)j@QbZ=vCZE$R5bZKvHE^v9BSZ#0HHW2>qU%{m -xB%zAB_M=x9D7s(^+BHF6FbswvDKc$ykwuN968qopjxQ1^%UL=DZETUe<2`rx+?_5iEwr{ymgtw|Kg{1v&>AuOMoNWZ(6Q-z8oY -#`rm1Wwlrm(RW-}@u$XI^qCX&Lsc7!4OdjU@ec7xBHTHMDW|c~v5c_mWK&MzOvptiQ6 -S1W#@8JMBQVDj~ArA7q0Cj9xvvnf=`0Mts{KM~8A3o+^zJLCF{rNY*ZZq+CJ|pnaQbP&vn`26@K}C62 -)0BLITcqTs#aop1Y&KidjqgGlCq~o@ltbqvPRQju@|ibOKL+nzHA)=GEr*Mf4Huq!3EvQenE*sYc6Sy -nbTb;AISE$5ue^zrJ5CAM)uG#VrNrlwccQ{DD&;QsbZl5njU+e_-Cp13@4tV$$v@ouar^1&+f_swt{@ -5_mNMErFu@yR5Pk$zooMvW>X8fZ_QKn@j8I7a=gpU2zecM}wl!06vV1*X4JY6L*d3o7`hcgRRibwSK7 --Dx6M_O%3#)Qz1Ml3y4v{mG~S<}On5L`?hjiQ-;Y9o6w5!A8KJ;08})!^hlvW3)$${l~y3Dq@rxt9e -?UA@jx#6UCvTl^%f;DTj@Qlpeaz0hbyoafyKF|#3c~m|*0mMc*`JU%%hpe!2SkHUItU)9o|_us4U$(DeXB -U3YlP(Xy9%r~WXm3?vsfqT0N$BGfS*B1uB9wAakQoKTME4ta;DLfn!o9P2W&b)h$nVn=OQh^2wEvF7} -bCj#pp6c0X54LR1|OV@VlZ&@jD!cuLRJAA7~8x@_Be9EsSj3k50m-&w)TSB+@w}9ZLv_!FM#COUcj1* -Z4z+5ei$4Gv7=H?(}>tG6!eUnk?)F2=ozoniM3E1p_%s^0;Hw4jQ|EI;MGbD<`-E<-OJgZjip5zgc17 -zPP-+IL-axLN6DnGK5ewX1~RtLu(m!7g)D-H*A|WcVjF}aBYa@hE`O{QXFS~5@}$WA7L6nMtV_hZ7X= -!${^)?raFz&!HJu?REjoGIITK8Q)S3WIkTeznkR$mex?-&vGZ6y)G}Fw{|~L>$8U09F8-6+dl{jRjGv -xIHc*z&vo(HxfN4TCh@AJNu!8F+21fs#>>M{+5F34ftsusiJ -f@-9!1Zy&qQA5%Xr+y0a=eUDGqwW=)8nMdZlOK)4>Nu+TS3GptUpM17onJLNBc1qCf^W1P=UdzThrH< -T#sHXy%Xx<=#zDL}JellL$(;Gv^-6hXLZD6imlsQ4E8ttpvW1ACaNw*ieSfUh)l&o@4+LakZnB8Oi2m -yq=#JuR(bp0v1j;$(hFHEqQ}G^gI&I&~H}f>B!t>cy-}XQ%FcY5iOoaL=|roYdRX%I32l4Aay3LXL~h -fNM}`OM9|>jB_{b25x}eNsRCaJ1f^__@!8zexfDkTG7fu)KmG;uqtjmBH|5|uW~<4wW@4Q3(Du&E#!e -VsHa)xV7$v9fyx~8chka)Hd3b%Un<6g!OxtAQE;Zvfvb&($t_DbTlcuGO8#Nth_+|}b4Yim{7sW4x<5 -c&^BsIld3-yi~nmTtp3)9{_HVLN#1aj<-_OHp-!R8UkPi9_h42NvfMr->q{}L8v?R((O1|U@!%9{`n1 -ml$+DMO=Ns=DXLRPVR1Z@A1*r41g(+va7O`Jw&q?JVyk{*8Ni$@IHI)5Mx_8s?D_7XhTQ!iLIXqE#OrQeNfXFE^31D00tr)ldJFphcYCNq2rrUy5jNK_= -O@vRPt&xHLQlb-rEx+inG2dj}12P<_Y4uRSXH$ePzlre=%Ai@ub#Gi?J7l!er`(g8L#J;T?=A3df%%4 -+|{3H$KjOHdgDnSN>vz5^^sphnk!d_J~s2L}$(M+Nu&HN!h9vQ9I18`m|>Uoh#^!mBOp>Lcd;Bg@Fe* -sWS0|XQR000O84rez~V?zs_&kFzmc_aV;ApigXaA|NaUukZ1WpZv|Y%gPMX)j`7b7fy+Z*6U1Ze%WSd -CgjFkJ~m9{_bBvcyX}Yv$f3zMGuSf9kMTJ-6mdR<4rFJ0)dujn-^J9Nol>lqW}G#Aw^k|Iz_S|;n(Pd`kPm8?e7EYG;oqWZ1fQwEJzsoJ{VdS6ZDiicv!!_TFTnau -p)Q6y2Sd@Y}xqVo?Ibpj|URKjCFjHM$9w-Gde*7^h?)HTKmpmr{va<{Ow;k6xoE1#yxDGp|T>adWue` -kcw&CG~BWD$qi*EeFti#XTci#U6Yt@9jgPO;TF&kGH`BB32~ugCDYy}!S^ADPGb{q6hd-NU=!>S6lkC -b*g22esLU*^jfkpJw%;_tX2u!>c#9v-iR5ZV|k`dzjsfdc!Uy#8W7&?V94RcvM=)vMhhxDwQfbGEJa- -4F6(rZFnZ~U8+9ALWu}lb8{sgWm@Q~LdMaJRJEyxL>}|&)EKcHYd;d15}_e>in}2ZonE$*u|N#wVp|2 -zMueY(jOUvm-6h?gvTMuOcMGpn`dK9J@(9`X#!gwanHG7G1uk<=^4m%sI%aE;2boIOBbHFe#PUDF=yZ -BDwvYvptU_`fr%N6OG>p*z&f;qdOE;jzTIyWwpW(RAYTJAJVg4bw{{Hs*$Kd{9Hk;1AJH7Hzs=VN_NF -Lp4RU~leIw+DzsNgUUTv>InzBDml_&Y3doZj=e5c)9R)bdrbAF(&s*ofI|LSBd9gr}RGW08VP;e(=k$?3Z5${>nhE=Mu^r+HDP6t5yz~vGiHw_S!3X6a^bl1h(d2y)jRViezHSShP6Rm@A)}(`8+obd)sjtFJ1*3|r#bsB#pPE*n3#G -UijS7DZ)XXr?!55l0NBWo0F2dCKyQ)a7rsMpKhjOEG8$f^ysBd@E5`5m1@M4|yhYgQ?zd*xUzN2lAr^ -4+lKHW%M2K_i8p8HKh*g8+irA^Nj$Eqk{0*ZK9&UxD#_|R{SmhEXpVf3}dem05!^zucc~+NnOKgV%X( -mpCY#*&Z*V*?txHy!vk8>hfOMXAi^;QWWcrqj}81CqqfNm0HrkPVk&TnKqdPw&bAO7^QSJ?JufI?@Q< -U6j?;{33L=go?*eVPCoL$;S(Jjve39p%5Gxg`xEaO#PC;kvEu4pxQiAP72NS!Pq1w@eL>YXtMn8&;Gs -eLLt&0{(evk&M3DhN0al{=zE%vTO(3=81jlVY+Go -Ydr)|#K|%|zO949z6QU)ev#N1SF{*YH26(9PvPZu{+1`6+fSaOpDHsn!p|xDbf)dSem0Ob_VJvvU5dB -SFEunrBhB}Ij8K-DemHpdPb&Nm5DJ2KFDMj&~I&usP~ -x~oY0DqEj5%@0Ed(HqasIVgPp7)pmYS+}_w2NRdZjz$vNJ$;#9IyDVT-_^WvY=j6#z5uKVDvZVv`B;E=KIzA>F66l*(C6pKPCRu+TBsaYe_SgWzUrZ;=(YbN7z -0qEAKR;)VY;@Fk8}q^N8anK_gY2+oZpcHw`E>}5ajq@Zr@;%h8n{bO!#DW4;eBPij$+$EO)phjS&6;aZH*a}x%fpIHlyFUF -&RvhK*lvlDjbSOAAX^e+=B9y?~4Q*LF+&W8{6#(q>0Bb1K16q;2CSU;<>VM2i;7m0;Eqj9$>06 -K?q0XLGZ4pxavUNU(icRBi*t)Fhr@1t3mR;D17AMM8RbFA-6fe~0X^ZjX(*!`+8hPLHrZ7&A1+n^4Cz -Vr%@5V4w6U-unMjcDx+1Z~n~eD6RL>|K_*+^-g2}Qo^8)Kz{Ku-~29jk-!c6GaUz; -?JEOY;8xoOmKY)%Qb;M;$x*XKzLK{`fo(%m)sMaD)CRvd;!|9;J$H9C$4`z44bT)rj3_j68@x -`E%m3Tt$paX7hET89h`>*M{#k=6u^!DNM}*M8+CAIxqzg?AKcXCHHvXQiV!rnKqfW9TA03k&2VYmnm>Yx)?ej_KN!U==Q7};+DM -t(;la%{PJ6*{4MVNa86@pgVQy+2>vzMY@rnUw%bOW7k=lEQ0rO84^6wx{B>r0Q#9Wjs#Ou{mdck+$^; -`Jy9S5X^;`{O#q-m(95*+6<_r7*i39(d`VVlDlwO2~MwEbs!RxEfvboKU^H2{GUUG{&)<-jZ21;hR9k -wLau|uO5b&vua62J3aSqV5q8EG)qR-A&{c^f+_Q?gJt=e^G)x6I&CXK55rUvz&<&A0UQp+8)XAK_U9o -RM-3ga2vzpgf4dU{0OltGe5PS0M@)6y8G)diEjG3=y>}${N7n0_N;3@3%QC0mkavem&VHZ^-mc`l|+` -4zGj9O^Al&0olFe2`ztDY=WQNKv8>3iy(Z+i#c@oU)5cd17&bnBn)ceca-3qy47y8br$i?pOFYQ+7iY -My#U-0tVD_SAhdI*62S3<)c!Tnm%YO3+b*Dr4F5o7W>cN7JTStdNYHP*xkEHFO{cYrjEl{^SGOCe<(5 -TxOzVODlI&?T!90fVpC!Cd|q_YKR(FKz~2H?!39Zdid_R4XXb1!?%BR0&{ssBEHzlKZ^Y_KQ}yZ46T^{hSCSRFB91KtB~g}o(@6aWAK2ml -UeH&Vuv$TOB6007Ew0018V003}la4%nJZggdGZeeUMV{BZL)G4yoR$XGNBqdv0S``)~hazGSzyhFTuFwDd`Y}%cd{{}Yw$4?SNMNR?r@N=8yQg~;1 -i_$QC6!!=qHNM4uSJqC#C=t4%6c%kSxHe=X+BTOOp2APq)2Pg6k;KlX)aBlBA?5#m~9&I$Gm9%DAK%c -lDtWiMv7)7*Ms}4m?c@Zjl_HCR>`C;axs%>eh=@H#sGRuo0UlB_~j%_%2MWwP|TAY{#Vsj0MtefX0my -dG8bi1)v}I6nU?CaxR<%ClFYzs9@9DCoHw${ar`k&uU-|KY>|h}piFASo&iVVrU0bG9D1g8Bl8BDXPJ -W>d|4J*Ry+dMK!}B`)B8Lc1VF{XGlA6N*Ep|vv0eiRH5kIJd)sz^ -u3Bb_y6(>Aacn*hzNs=OnA;V6d!;wTNSG9mgVFmqpcxWL6j1rjap!9}Lv-g>Y50_){o+hGyzd-@x -ei|{|Zy^^zHZ@aVZ4^I%6ckldCi4%;J>X0@8YDnEiaebsS^7^I=gC^ST{Y*Ud6q_HRoqvyuHzZtsk?u -FdKKUN_453>ub2Edmx}qS`5AB(MCiP#imIYNw$%-Z -S9YDnu8WNgLR$EGEiEtVU=mAOtP`K*?_7W*v>s-M8jBt$d~E8i@;zo0QD%UB&}u4>o=AtFT+wHSg5tI -uJ1=Yt7nL$oQk186TN6)A&$i4JMpf_CACM5gTJqE5YTA~B&k81D~%^M^qEJE7==;9b33i>YaUvt22%v -%4zINM9F!8b<1w6eofa^mDQPnvAD4FI;R_AKi3mS^<`z@&>2s(gedtofX{_}_v;_4#3`H3I0(x@@FQd -B5(q=dsadU5;1cVu}PCghu(8e~TpJUab%>fjMTOjxtCFO41!(d{CtH(T!NYKo=r4h9d#q1Y3Z>RwcF2 -rOaVDH(iVLxbS*IB^0y#Ix$#X{PtLbdmV;)C4Q&NQiiZWn?QJr@&q%0Nd49V3YJ?v}^9V=4kOv@pTWq -#9@}?zG7G(4%CrP!v{N94ekvObxfO;>vs_=O1Dcpe&1Ln>1U*Y$YfV^;or0Ur$i@+sxvnZrATEKe+3x -me*;G>s>sqq{O{rDN0#QYCx}y$}Man&OQ(3kbpO8rA&cX$y&dh(k|~U6Ju)>VpA^Aj&S>VbKu@i2YNe -3bii&B^`-=g28jRyC7Z0lCM|;3{(4H6{s3s6;j}HE{MRQM49^W20a_mUKg>tAlcBFxJchowCQLKMU4W -1@O*Qm}8Vgv;#4>7*L*VeY0kc}Q3dSN}uDegPROm-{dag;n9j+5tz>M>l!Hyiv^>%3{+S*6k4I{985; -WQ3S(+zRD(m6Mw9z(Fgdc|HG5!l#pisY}=xksK7E3K%i;YC)q9Rl;CKH;rGUr6-!+H+ynF_iAK2cOqk -D?H_0Wg6w`5?2Cuf_(%$Xiip$;DvhkojmAq*+b8*|RyhYc-+C*I7Y-M(Yo8Lk+QzupzF~oc2{1dQ&&J -S7u3r7kRb?ggi@c2uKb`WAQ1R0zIeUXBN_$CbN*}CrR -+qWF0GV1At*?@RmvWhZAo|*l$b^B& --L?0S;0@s*6oEm(;#W!JRY?DL$FhrJSeBbgq^eIA=Aku`P)i08>EjHy|`%u$i3|ZF2DaaI6xLgl!qS*vTv!t*==Uq=KWskxmunqqo^;1Fa~f*Sxo$>nSSUfyV$1wN?Bghg?pMG<6OL&MJ?ZDS-o -s10Aj+JIzAi)S*)iwR6mv0_F$o`QhVFk#6!A#pQpTCg;+2pD&;oMn(=2q2vykR>fB(;PRfQ53iuP4UN -D`R4sT#<`NK9GgX2O}!xxF^=jZOFjhI?AmAcRLkE8nv?9LaFVEqO7?U`YqumCi;wIxg(CRPm@mK_*fY<8o64+J{Cx*dO>VJPM@Eg -6mirv@Ph-Po`ZfBlmf1~?tG7+l1Ik?F$@g9MY$bzTi^QN?x6Q>%JlXIq*SjKBVnS??7zV?B -RtQ%=Yy5Z$`~N12n&m+qA-09Co3=rK$5U!I9AqN-JFEZ106_n9^uE6@Oo7|(nqi=1|!Qv?H1ogQKXIP -J8;MA0)$^KVhkAU!wS@tZW}l_1s;IFLoNWz0d|+B+DOxdj9)fU9IWjc4X!phMg3B8v@~>q(7~9-{feC -6{2{H1oT6|KVB6u$csoJScNS_eCm(N9k;+txXmku^D*2C13h2W?%_hlU#C_y>CJ=GjY(a&AR!D)IiLj -l)^hz-NM(#kQ7(G#gOl&)5y?IVg91$>B*%w+AEVaY^)b_%6M^FOxrCCw$m5y+t5LazIoc(7S-FdOen- --=oTuFYDK1kp@7y!klDK|}ILKDF0#UgFsJqLX;iaaBO9Qa@2KJ-d7DYy?&c*OMb0?eiiRR7-j;XX*sy -s7EFPh~}L4Spd8E(L+XSUt}*I7UR3!LT3kpABQMZJRO9vz^F0ibaozRF@yq<~St-B1?w&9xVUCSW-(5 -NB7CGqGQzw3lVMJPY@#O%Y`gYVmL13p(H^#9vOYFoHQ2=T}$nuNc(X)y2)l+362pp59|r+l50 -uUOkG!<28{R+&&9vZ=E)BKvur!5VD9S9xvxZ+f8= -w8YmQ4bi(1|ixEOFfjyxcG00g@pRTB-6$7zz^rg#GC#eU;`Q%KNvY*T5byo9hqc)KdpXlhOCKCUYNtx -hB(LIN(RVj5QsYiE7o_+udh8o3x|ozIG?`WAZUwZ`LB;tY;WESqeS8Oy(=}J#)#S9d%ZjG>ruIxUNi -~SC&~=tn5a|Z9>?#*e{Lf6>%%p@@g3S&|5}fE$1Fx{ANs-WmY6@%Di+*6JDc73XH9b`3K2ULNvRRh2c -P*qe?zzy5vp4)>k)m%!_2$c9)#6s_P*s@5d1Sncj*XS9Icy$KzQglf{tdSon{&>V6GyIW+cP@M;?XB~yb%t+W7zTC_Q5r%KoL}>_lb(s!)3&D_4C~Qj+RRsDF-%7kw -1Q8MqqM}|vk`c3cY}2 -JWIi&iH}5@8u#FCf$W-sW-A7PkDb)@^$&tU3j~ev5ttzuJOYDSp!jjaq}Y4H!DC!}u9_*U^Z{w|K~g} -H-aC*`5nrDFC^(XN9KGl$Jl<5#F9=%63#pJMqOSA72*x8 -{6DrB4{pS6oijx>l1I>GN~qEY10>jv{sl-lNe5;7brSr&B)+cHNzvoy)o;o{}_rTF^AD_^&h3M3@mo~ -M@=BZ_u$1Ql$u3ib(nlO-uRAs!U9N7l(&ei46^vTUj(HiUhux+ECi%s^CqI0#OkVYr!=yi599T{*aR|nl#YSuOW?87fM -{=y5=$v!p2kisEZQGB4Yv_?$8sLmIYEX_aEOhF8vg5v*@y%#~m1mfwEv}6rnvFV7C9p$OgVkFL&R2HI -(rASyoRJ;M=($2-IS!bk2$0!FX4UX(+rdf|DCDnWdJ}hX84H$eNE_A#hh8Q7_?*B=voDNms(c>x`5%@ -alz#)uS84yCy4O>p1KPNmfl`jNww3=cpIxq-l@0$MfJA4fA7Cec&ua9 -0)mqzo#lMFRkcsj8Pd2`5=+J#pZq`(xyYvMF9*z!mW}AiP3%3?iHPSyuG=(yl#`xIjws7@|yGVvamYK -%NgcZuP+qS_5usf^Z+_!r4Qdw67N$antL#ZFe2ydKBUc8o!GmPp*5gE8M8XR=n_u_XE7@ME2vj_Az%d -7A)hHb38n#c%>wn}*OLl0I6H=0B1cW1h4achlT@K7ebr1JqI=-V*xm^iz?SnqO_d3aOCU -1lQVKR<7c}!+C{?^BS*rZn3Ln?jmLFJ&RtQTaCK5zug0o%hq4>V$Cb2@?hc>?=O`#bM9o~eTgy43Q3b -7$LViSW~Vhoe?Z8n{0L^G8Qg)z=e;8Lq+f+H8g<$pwvWBQc8GxOp~(USuJr)M&2(O-$!}2?N@}w|Fc> -67t=17%=GVhyfVZf&ep@QyG58WkC@P+-OdEiPF0ic(r(0L6Jgvy+QuQ^5Z<)z?7`oQwZzfA~QGV8QS0aX|I -NG8vH*bi97v1LU|;yvT3YN2wN0!mH_uyq^WLY*_`!B|5=;sUhT7mL3RPra3yvs9s=(T(iqD<3JIfia6l1~Cp9C`yxlXAE+8T$_AR|}> -R48Q%gA}Ud&|rqs2i^gSb&27#HasNgI@yXP<_&kcw!96l=%-JLca>Gv6r!sqOiv4WC{hwSMG;KVCD*njm+Kr1GA -6@3%E3dqui4h;^2Y{9^QPHkruHx;Mis|hz4D!_4?FN-nPJjGa=G)CEg#rAje=5}X@F^ZrN;OE7N-_YH3LlcdtJ)5FiR%v6AGhbKtPn -g-jSRRRLuxY;--%b#4nW*0LfHJ)7|Ci@m6V1f4BDw92yJq(1NP)Zyll-h7mt!Us>tFz;Zh9XD>L+)z) -ns3sRZu!g)MPW!?5H5_AmWRVm}Cg!$tmpNzZBJEo#sX5E;B+U$!bd0m_sYoQj*d^X^ORJ1Hdt#O-}>Lb15JRm3d<6sl)r58=NvzKK#)gaT85FhP=%vf -Ak>i{?RP3r=MV2lcncL}V@HC_N?4j93KcMHF857glHBL8ZJVmBW6eY?k2}CdXyWk>yRd^a!>|?k&wdV2926jwMgjv_`xKZns4*-tcuPK#Fa#Vc#rQb#rQn1!eNWPsuRZIOug+PU2j}#d+O0d%0yRSkQ2@mIMsw%GgEfA`E_stF6!L4359+3`P^fvO%h& -?TRYVB)@48-@&l?C23bs2Aegq$59_r?xvM-d8-S!8u=&}w%Kis6_jloKh!Xp}cf&yjwogvnJsP8y8SKfxtI6h#JhKs!Jw3Lqz}!$2+LI#T@Gol-p~a542fuLR{UWX{nEp2Fi#`>3qz&k|TPr&$!ucJp{+agFgXDi+BIjG%c-FB73GaN;&OR$8NYjPW$y%6lquEbp?iHZD~=tw@(gv@h1> -M>9}M;-r}>#tl-5&w1kakPEmVNaFu(T*AnHUtnOQ&s;SXqc)?%WBzBn5<19G;5)JTmMj-4StwZGQ(#OQM#_PY^acPH_h|f4dSacht&w2`K?VK;FlJMaF%qL -dIkKb_ggN6zzW##o3hh7FJSWB0Lfljvb<5mvsl1VA0+-ffQZ4G1`^9(6!Olod$}W(koFfJ50v0b#@UZ -}Rc=y|5vaRW0C~ZvZuCyCXk!m5QQ=B2i1}Lbrj(S{hSA(nD-3D6U9VoJO7ye$QzT?=W?@-Wmb=A49*D -?G$E~OX1(cJCnTN_B($*q-9$INlMI_qF!MZE%KNMJV)U%&kL;9p1V=pygCtnk6k=Tb^=AP1ykn#%m1`7VO36 -})`Ij-EJM0E3cAVaE(VE*~$02>>$Al_L0%fg$LlJ}Q0j6Zo1;?yOphmvZ#018HuRjiML|;mSLq{jx@O!DW^BNGEM(d)!L&k!4p(`B)jb#@eKLv{I -i=xZxE6c`z?61OG*+pUfww?af)k1Fw;IyeuMJL1&V<3byBcr9#2wT0JBleP3=sn?6Vc|(`u!fa>NkOY -`e=hgNS^z>6Z%u{yi&|9WtA3-R9$08=we|p-^9;1aneZ^89NEaj?Fo(r$Lr{YZlnJ4@pYo;oCgbeT|? --*1R}KXV^N>FDT^ITg+Nk_cF%&!GGV3kvDwytjt7kc*v6plI*^iF4B966?*Fa6jfk|&p2?F=?fI7a+- -AlRZP%b%<9|>AyG19)Jm`NjU2uS-CD4HZ$ZXBeP%b_jWyy3V~toVi)tE<#mj?PK;G5Y;iQR0qLRr- -oNvoQDH!^0Qtd9?Dc+Uq6b@ul&Kr+SH+axcp0bLuHYa-SeE*wc1>l1i2`;T=&IY(?V6kKm+QyVIpAxj -AxVrRPIym2e_n(1vNQJ>TO0|amC-T{A7HV?x#jwW6GjXugxvQ9~B)M>&(~w;fn -B&;t?kd&M@$oRe$=1-qzb=2@vA)^tKxdj`ce)M-ofQ3qZnP}y_1WZ!IQOC-ysP*u$({R{4KvhVBp^4u -3MuhO-F4<%UOUoUR^?WQ8Lb+6yw4j!`{z(h}A{$hb?_ -SIcB2zwXfOehyG;cat-SjLy-#!_V-)`nbpd-{XRnW3vol_T651T}B`}_$T6% -L=&+1s6F1ESu_t~5ArAxEzJyu`6`053ya&T>du(<6nle*y(s5_Tj=QK7M(YjzE!6U^nZ(~?#1=>KLJA -y`W?iD|ZSV$|)3%U3LlG#ok)w-~L9|Ce<%aYKgnp0}8=x4F&C8G{%>pzO+{~4?=xU_NL-KWfdxy-vxc -`#6a70mo8lut}l(i2k=sw_AKQtKZRSeOd?cLC^LW+#`)z1P@2?%oP)->EAdy$62o6kTR&zh;G#6s|8| -^a9==x9-q%v!8vSuC%icynEoBcFwgW_9Z7|CVskH0lRM0Ibgfa^&S -P_yPh*YZZG;-%=W_zaJHBElb;mp94pggQJ<7KGpf{Cr0SS(+cWcoatzL2+%D4Iu42(fISJx176!`fw- -9%L*IIs-g6U!z)@x416glN#xElEir8I^KxHqrf=aQN^gxlUP;YBZLx8%hE9B#&zn5*?ulOx%q}f`v(; -%WSAIVOcUajz_VlD){T`1W9<3(_8v!4KzmeH1t@QTJ-`h~*mC-(8FOGGBsn#YW8}ukBjqLZP(4Vy3`5 -r-A9^cwR?g=x+i}^htgm$oGNFOlgphhzFS=^SE}#WzRi6ad`epiSz+)F=t7gE{wwp0?>v)gra-eM{U@ -vVal)(KFq)>9lQcy!Nb#LQ}#Oo$F68FQp5|jd6DKTI=>?-@G3H_EwL9s`Q*?)4sN~)O396I%T@~(fWDi_dZL|gBr>T(a0I8%UY{aj=|P;GiZtl%>j -?Q^q%KNDpL*8d2+K`e5&BMk*0amFTL`!L+wb0|Mj5fng&ko;B%*jE9b0x%X$n-9}F8B93`UPwJpPb0B -5typWp7jRhOTxF8`?Rzuw+n-~JA++c&n)Gl5@3eT{IVd{~OlF=eT67YorSoFwS|PvWbO!NOrnC@*9k)Ry!fFpcuH9i8l`5$io4`P4_0fIo7+6kmE0 -9C#V!6RXbA*3`?bvQF3*Frf!*JDNJF!V5pH|3W+wtf+fwI=Fi*rPgocgM$Er4l5tv+x9f>DncL}W~$K{>^> -=a@lDg56_6HBPf);`BiM_))Eh8s!;>rr79ESOl>A``p>6fC1oF6CC2wUQRwXw~pshI3}huiHUuc|mQt9%jhZ*8 -Ddu6UYQC3;qg=2`Tz#k86`VhL`wLdtRyLChC!I1EFV;-lwQOdTk=H~3WpYR!IzjGBt5Q}Y6ZotG(%Nw -Dm{CN8J)ek3Mna6D#e0@n?-NsUay#jQ28NCWYNry-q-Vjh4GJP#jyaF34*vHAr#AsS++vM;B~?#Y{fa -rfdt{KJRy$83VWw5C-ZE=GY8yqxZkwPSvwq>#1e#tgl)W7mr`fPKVx;ZrIDeQRA!zE!d-7Ae}x3vk|p -+KzeFo2E)rlvh*MukOD{<RbOYCrS3F&$32*#)N0WIgsol}UIU)|q-zCRb=|H(^?jg1Ti92SfBJ*+Q -LO!73mHey8;9~Lu*w?qy4l1EYcc;Nd8q+l>RyfL-q#w&iqSfd5g$&+jHWevP>gU(LzQ=)1JPxN2Drf8 -l*S{2jA&1LoR=4L5QPhU|ry*<)(L^=@%5J=eYNRfQ2;OeQJ^gU~9dd*XHM0IhoNUi>+=0!SO?Xscu*c -JJ8XKWn16yyDjZtTf$oH&9L8hV*hj#GhA@Ymlj#ZeRrA8dRJT@?9hH9zD`;VhTMR1-(|)-y9^{HiJrH -rc;WO9KQH0000801jt2Qt8?DFH{5o01gWP03ZMW0B~t=FJEbHbY*gGVQepBY-ulTVQFq(aA9(DWpXZX -d5u9=xlZku7h0YqTOCMo#kx%gzl_sPid8cIke7HGuwgn@=h -c6$$6zA{Woc~pP`h0nLarq}TVt?ZGHURoL)HT9;uIbWOeJ3yof}&tT6a}2YE-V!?gN1E$F|;8}A#_i^ -FkwzH74G4wZ=4J%U)X%Og*buD>k|!hP9&gnhoGI%6q;U9U5|9;R7o|7G@QS`@PUDQ7(9yGJEH#J-q>H -%YgS{lh3KF52U}P8ZDjr$cBAt0D4qRTRTVcRpkgpm{VwushB8z -Xlk9u5Qi|+KaaPiBR)1{Mzb5?Q9t_2Rl(H;H6s$iM$r-Ykqo`x3!rkiCe+xXVgmfIS}VP?Rn -inck8#$pTO5m5)JpbUyfBV1gCQMxthn3yucCdHiISF%k!=!8y@1Rgx%c42ixE6FRvcqVT7aV?`5WYI;g{Alnqp=XF`^ws5nWcXq(W+ -r?89#;=kHV88_J29@?0E)$kQNl6sW=D|s6)-jC%Q2FtJQVRTmm9b26oPp(}NJNgvlZiL;cu*Vc8L%tU -4scqn^ekl!Mj;>S+q2W7%O?|%=YML;RdpdFLJ4oTcX-`Pdo#4iK@|GJ;TD1UlF!Gdw;ToyzXiZ*M{k2 -zu`_|Dc94HkD0%-wcqZds#eFj-WCGbUZiMAw)&BpKsWpB=YjZ%m>eLabvecWt%x~+Y>xV*TMQs^l6(S -9aIVrw8m%9m*h%f-6{>5Fm%=9kBIQZaq)Gi@qjo!u#tYP{Yu$ -&)F3Hc;wJ@D??8$;t`uxtVoD`wG5&bN{(rK+5bCwcD-laY~4HE6w8G)V+8*?S9JPjON7#M6T%q+u590 -laq7eJFQqtw4U8L$aFhAtL&I&W=mz -C;$K(00 -01RX>c!JX>N37a&BR4FJo+JFK}UUb7gWaaCyyI>u=mP694YMf>`4qsa-2ci~F*ui_5iX8(feCL34+LV -+gdw-DRy6Rg$v37vz7x89pRZq8}~p!wG@2%f}2k&)-Fx#&nwrDBpOriXsDTAiGnl3(|X -Y(?9OTi)$REe;3PX`=RGXd80Hh-3$G!x}$xZ`wYU0V}+z3dw?inCxg<)-5lUrg~6SEg -Gi$#*c6R@%G)n-d3+Ze0cXExlwdmz8fSpT64R82nW~k*H=;snWAJR0c!0*fsW9Q=?bO~92QiH|A*bb@ -xWE>w@KE}T32+?`wBNyg9K@!n!u#ay}nAI{>F^uRn^f0Xu3E#IjLK!6nQV1*2iC1+y5lwfokBDd&QQo -y9P{;HPLjjIU(?XvA!fd?&eHBYe6&QhRG`droD&dV8L!Zej071G&YX=!4ARnc*k{B<%+f2HTjClor3? -qy1vCvjuAemmS!&$H}XFWN~0^#mhU=ngH`+klDA-7Yn -(O0uZmk^Wc+N_hPZ^mN$BD<`&w_i;L%%lfw;_+k-yO$akN=e4m*K#rkvjlm+}z_x|$-dlqWq8$E;76#NEM*+Q@&V(a6hV@PP%kOR{cI -H~evB(uS72e)`b2t?7A;r1NjrHxT*@B@gW@Tpi6R_-<=&(5}Zw6imNxvZGea~IlpmQK#@Gzso-e&FtI -0e+vlGA;w_xVW5-&;32i%A6O)tR{i^T_x>%h;{jLE!b6&qJ~#~BC&DloL0*^T%-!}J$aF!!#l`aI)CB -SU8L@%=`~Z;4Q&VTf|!Vx?YUp;2W-5+5%6DKLiU27RNQ+Jr>xTID0fu+wjwx|bAT)>e}kN9FSqceJ); -dM*_pWe791V!<_5|6ImzCcld3Gf+sJ9o+i(4vWSdW2w%|S}x?_&F`FxN6yy_I>Y)tv^mn$N=_6UC%>D -X<{;r}b9ZyD<>5#v4v9&icnEX(ZGM5=6~1$^4+;?j-xveMI6L^7#u~#mhgEgNZdRfa0-K?x6wb7 -Dsb?$u(I4i=vo|3pg!A6dcb9Dj129M$708LZY@Mh$y6J2_PpKt|wZ6h(bvOld(=w@l-*8mWHiOGZNy+ -f$}b!88<#Hy<#m2>IaN*U8AyS2?GrFz@{IkbHw{jE$nMVJx0ep-V;*>r>(aDNEmKim+6Q=c>VK8+bt6 -8bI@#7Jc;KPbKJ<$n3?Kn{im2q%Y4q*+Q}L%v;(uS#`FNm$4xFY7iV}6(91r50Z)xg+~_DayOj5*(8p -5gQ>d65I_o(=IA`Pb%ahF8E?ru-9Zzz%Q-AD~k&NvjQPOKS5gZll!!E=0XJ;V*nlOdn(0su91$LLJZ@ -IP>csY*-t54m^hVGH#gk(SV4FK_6~#mx`&Vn{ -|00Z_rn<5xC1~41`>?0yB_=kgFeh2)`Ys!&Je&M)D)!jTc84pl#`xH; -6H_bz_9s~QxZJ7y@B2~(2RoMXA_1tOJaKo7L}Eij%TdG@LBr7xeLw?k=lZ -VO&%bHiG;!RXigSfJOs5L5=sPUW=FzMH^VIm2R?pylP%H)SAdl??P`|CRMt_&nn)oFIb6ge0hYw)l)M -IR+A4(_vssf{=9>rf%9QtT^53w4a$YrB847HEbR_h^@sY!mjy*dl`W8&0k;iM7v_f5upG(R57V=EKSd -I^nS|^L+9A*-La3nhh6B`jiho7qAa1`zy#6!fxzEavrG4#%ycysqqbqh}V+Uy0@5KH}M+>IR`N_PAP5 -}z+p%Mgbd9^N@<)5N^fRU=))4W@z!Xe1NM;AiG- -77I97<0Bbnl)4>U2o*LYyZX?bE|iL#0!F~}Vl$-^v_6hRmiL@zJp}$ZP8zexa3~ -9dr4p^F<)dXQKfGEK(|??qo4o?;iP~tn-xbgY8Kbj|$60n&qD=kdW{Qz&G83%HH9M{`t_0%H@|eU(E- -P4Sw(=c!PYCO-X1$)D_@B7ibPnN?xF%-ML$1*I>LuVcvqseQ0C1rp%^+>BIFKBcWh;+Zfm9J^San3x2 -B`II*zLjAm5>e8f=v}stGH$dHTT-nSXm}kDU_8$?}BJHbdDN<0;mIJkazgqz@DkLMARyI!z^n|7pq+> -u4oIUGHMx+`UcE-vkFqlDS0md^$x4nrirV3tRzaTCWZ)t)6ZJj6Ngf4WuU%6O3(RY>CeEC5ju -Kf>-GnMy$9>E2mjbJSBYB87z3{^^w?AmrAuTlPC#I^A;e^)v!w^ywz(Yzc2yR1j+uQGPEYHGi5m=YBL -8ZSL-CX;Es#=VljfX2k!C@tDE=P96uuCcZu|wg~*e+5BTwdg8&g6Fn?wA73>oF6=>GNYyf>_KjW(?CFcUa8S3b@9_+c8&6a -SbM2-YChB0%svBYuy5l>{*R1hCQrr(cJLHH3VadQbY_3sXGkE#wBx1nW~t2|5g((A$lDK4DQ$j?pt=} -PfYL?4J!k$1^*hc@$D91bJxc+4QmWWaf}dAi^H(DT`)uVYdm7Hs0VD^@pr@+gRjw;e`5%tz*SY`RkqFxVP`K9hQK`}8XVx%TiWTdm<11nTi^!(arlMT2s>uPYS$Gj=OMt|6OOj5EAdGOoT=wbM`z75fL -4-KS`G|5{`T7z(MPIbx5()JaaQEtSmseG_m4~IQw~qlGRiagI~~jM$v%Jar8Pz7ym65mEfMBCD#=ieo -%o&JPYL`AUpE`i-5!A)UVuSrwgg*#&B&3dXPp3Y_me>hJ~M*D_WX-y&#~Omj5g)i6*EkHy)-S5cr|0j!Z`Wr2SaeM~=)G-8fYzKk -KG?g{Ox5*Ef27=Z5tqN~%?B*Go&_i@=$%EMB_kjZ)j8PCnz}Eh!HfG^L!pN+K;jaTIOCEN`g@t=ju@I -LDh3#)(1cEJ>PqKUnl~=UBPMm8@WLV;-`(6HlNqj{+y;5^Y!o9b>_e#EG5#0^8Fl^D{_RR_x|D2Ma43 -ePNtg`o5EWz?BAntBhnPHGm;xx7-OYCtI#@17}4i}Hg2rpm@iA41m>n8O^#zTlll#W75^)S^%pt4JAV -bekfEznd(J#W%vV43@M!SoKw_u(R!h~ZMyz8&98Seg^mL_>)?afuGiJBxiy<3T`02Tne?u6x}1rdw>F -+fb;vg*X8)oKTl?sL6JLw|m=^^K07MugXAkE>+zhVj!0Q4h`x@YUJj4Bcey9CqgZk0N`X -7&!_qlVT-7^Lrw`cKMdu~oMOENEO3?8sS>!5b?Hk@e%`CkhhRjG7?8jKgEbiKkinPXoFDHkXI1yD-^1 -QY-O00;mMXE#!0Eu}0l3jhG2BLDy*0001RX>c!JX>N37a&BR4FJo+JFK}{iXL4n8b6;X%a&sn%JQ&k3HE!R8G;-XaZQfM7ddA;xj2e(%;%Va)3mt~R(ZEs!VNhy{hH$21j0b -aV0c`j;xSMIVc83Y$4q>U>hGaV;tS#T59zrVQr{$KB}_Ak%Wd=A;d`nez^QWDG%s(a~{QYV3ErphHZ6 -D@xe`w7gZXzlaMhu0q_=RdwY|7r5(-R0%Q#L16V)>GmGPnvDU0BxkPCO9nL==X --v|m8ai4(SEr|eSYVlWuM<=8}vOeAI!3_VFQuJx!W1q3QZI%YGTWmBHqMvl!r(qEjgk@X+^iP)om(6@ -am@A3xoS3cYSX6_i21w*B*=ZPGJ=rdH -rbLm7D{V5g{aAbmpp+3YSL}RVPT`}#w%$SZf(HFv#aH3(VnvFT8bT93DRX@HWPr84Jm1?VO6H -?R*C@8Ch*8iea`ECq^_}y|mv)Jb;{9G{$ucc=Ry2+@7))Nk76?js&YlSGW_};Zb#x=Efs0*<8UY2$3a -JDh{fk^fFE#xLmOdj4heP}QqsR)t3A{wEQ5+rg*nNh`&!t|BBJw~=ZU~r^shr)4%~bIc*oQr0=QwZ4q -*$g_8X>&OGsRO)tf!(`3mz0jsxmAS{LcD}phU>wbQ%uoEIrEPtzZk8qMWd#Dm4;p1V#%KnD%x~Tl~;+ -DKlQymiNHH^QXl6fri--1U3`PIpDFNSVjwr!I(`e%17j{cQ8J3Fnb(789PMW8ir`G>}QJ9BxcwM2ru= -C6Y6oyE{p|BQ}YmGQv=7c&z{(4DT*J^b9@?^Y)8R-6G3I9$b=Eu#*sd?qy(6Nwp4#sdA(TXAyzM+_+xg+I9tWZL6cLw}B>v3w^E#FG55C3`t$#mhnhVLd0jBZTfp`VN9VTn$AQwlIr8E$<3=J- -_lk0Ftp$oRl+*9;%SZrE6Y>VItBA@lN1$P`O>77)SuF+e;_>|IRj%;9a4z*J)ey=T5W1Ie6jiBZ5DFb -y89I?v`6qtOPA*mqQWU1x3;6)+waf=znJRICN9b;m+q`oAuBL_yQLWF80NZTHeU~o+cU?WnSxW(@+RI -)cwagZ%-D;Fd{8g#NF8TrX!%XP*sE?fL;lT>nvBF%pC@paMU-LMcU^czb$tWP>N-)GmJai)ncUkJo5Ew0V9dBoB4f$@f=0t;W>>QS%zRopxWZrN|gOE -`>F7&YvsP^>kFA}3q%drooMnIjaXDmq(KY>B0AZ-Ra@?J>WI44d@5#S31oRdXlsuznS1QAZHHhkZx59 -t#B720MF<|8iGEAS#s+Ax&=2kbyDjhGWHjo6Qnx=>kRdl{k7(kFP8wjVB1LBY0xvGWu4elptHjHt`Y4 -HWw;2nY=xR2TYXsBq{s=yk;CYnZzwfj|7doMi&n;lh&4$X~bbUE)jH=;(-W?wwKYsP>>38VUTbJKpfF*~Xm6Xe4qJ^Wmq5r_r@IELcS*Ei?^qR&$R3)$~~3}YwsC=gFfy1!Ng+E#N*2a`T -5r8$uMsr6h_E|#WS@;6c-S+6_y?y(n7kDs}dnM7d-O$>6mZ8lJ6#g<0B0sMM%{_nG+S;lY0^GDNaJ{7 -#IBl)}CrUO%k86h=~){)geSHA*C5@S#H4>{~T{26oQ-;}zjtMd|IS}m8hOj5&WyUK7(MKuo-t2jbwT= -}7uon2mCFghX7Eq-=TvxiCHfG=iO%AaDi2XSII@tk0%S3J`w)Om}Q7pvQYN;j{w9KmcS@VN?gpM-R2H -L`1vN7c?=EoRht3F^k}7#CY8rl?I#b*G~kXQWjLKXrrckhpma+M|yII?x9NSoWU -BCR@li(FOng>Bf8iZNK)9fuCpTrum=x=^`2ha8eghFclQpKsei!p$%Z0*9k}do_xLHBEc$`Ra1lcJ-Y -qx9!>e$<9e|z7WZ+2b06}WtHay1~PPTWdL!p-H-glKccZ0eL -hDGd`{`{iLuv8ONe6k_q^dIZZqpg|_4w@pplRqL&6-QsW!YOz6B6lR)3LijyieafIDAS?e8TavuZEq$ -CU9)eP5t{cqtzikUnuD(xb3_H{dyF3SRK?NjC=nZ1F+8gcxdCm*T1p-Yn*%>UI-ud_Al_~R>Mk--oy^ -EU({T?Lpp6=Q@K`d=(v=_sHb@NXArJ_a~~%gSk{#eH$*p?&NtS!32oCyf8u;LiwiuLm^^skUQ}Io0P#C_U4bT7z#62YS5TNMx@)W?y<}dBUMlyjxp%XDZfu*uEFY23l* -V72y_vlI@cQKyH2B>v9je)E2vB#D&v-W<`FEQ`m0OCv`Ek52h5`ew6Dixfeh!h#(rv1q|CaFy9)jY&v -vE&$+0SM0hkyCMy#U{L=tSwYu76iJB|b~OKDBS^`#V{33ce11QY-O00;mMXE##IpWxjT5dZ*3KmY(B0001RX>c!JX>N37a&BR4FJo+ -JFLGsZUt@1=ZDDR?E^v9(TVIdcHWGjLry!h%wF6t}<w=YyleWkiD#fq|?6r5+G*s`p=E%GwS*b{b{q}R!oe -nW~Rl9RB*Lm -yiTLZbUK|(48OeGZedvVwp5diEca~F6lqu@qswf1)-*}0 -JPIK&9o;|>Os=NyD5Ew`7VxIVKF$LT7)s_{lIs}-rc)*)hm9M4sxIP!-{#FgZmb|!D_W0=H-OMn3n3c -ld=Z7HvT4dK4+z14&eQCV?7Jqj*@PAgIeP4|ZX)(FY>yr?hro8Z_b{|&@ds9H8Cn|9Q*34;q%wgx!I& -?-ja7!;^Z);V8o1b34e)0NyFbbQ -%<5Ln9aRt?-$yy#iCwT*aYTx@kJSz?hK)_<|tBww(rrpo!GBk5@~7_*l9FFVfjGkh}E+QDjKEv$$m@y##c`4Bc^uE78F@cu?0_+iU`$0Z3mDk>sa{+3G5GsTJ -5RPp0=5CGXid9ys@5^aYqYPiu|TtVnpbK~MG@n#-O8)Us~02uU*SaU*jzOLOqQ#`lE=uXTy0(DsDN^Bz{ -~!-uv#2;>c~8;Nm84zF3cVblx5UNlY`#pSY+<&DT70x*3>R+QTC*>S-H-*?=>06?(9VCYF*%b6ivuxU -~1xl9-AyChfKnE_tF2^bB@+J1lz%mPfB+tE2TB7WBdkEdK)oPf!-Z(uOWoQLF`%AM**~HS*zKgiEBwMbh=(|igMJn2$-G0Ln!n)=ZMzj4!q2_~w(Z|B5SRu&wn7V378|i`FeeAsd?$Et^!Vx!9T?AF3)bQmnc8zJF$`JiKBFmLYX-YMM|E` -#UAkR6;I>ORfiujhPf3A9B?bRTYe%@6YS)3uz(PjTLFV`P~OQ+B61u^)Yl3dSoOTWHxfJBpvU^6=YLF -O09rfya?v+aoy+Y05#mk1z68RBiJ7t?n#CjN<_{Mam(RX^c@bY-yt+Jp@g}}{cX{y^vkT(rl_;Wbe|q -uqJid7S^CIx_;_~^$tN54a7Z)$%vu9_|FG7vpT>LvGE{h2yVH4CHoJO4HJSm!Lh6PNcCasD<_(%Eyzg -F|kAu@!BzLc#EfCYhcSfn6cT*(a8nnGz>Uyez3A~k(x@@iOwVY1qq``8X#n#_A<|Af?dG+!TTHjcQ)0 -(4mPeJpD>k)qTi2fIG2Z7$c@pIeCum+Z%$iQEQ_j#KAoZLp0zDR;$y+)rsS@a!u!;lD4YU;ynXHs~xZ -wm;7!Vh{G>7!9}!=|9!Ng92$A>k4wXQ0%jOqzx)!7%c;iHW%QG(65$h+DLYb2}$c)D_tYOMDwnKmZI* -lBcstG@t}1%LG!ufcQ8Xl?WW8#E+cT9+9##x`M{ZHWsez(`!<1K4ltjjDOmiXrZfwd7<>SvW6@^{+Y@ -gBhE$8+NZO#U_4Gq{%?8fj`u9PBXu%%iD#6d=>)Q}`sXS?ILZE6C0(Y-yUVJ@8Zib$D_zhY^sf$>cu1+3BRez5?E-Sxw5JO^>kPNX|#*)p{&8$i;UfCn?h@Q8N95 -Q|%J1E>rYk{+>N07xRk4J!+s6rz|dx_1Dd4z6?+mOTXliX!Ed*Rz5rGN;WhPOx=&VhZp2Rag#S151!n -g;W9KCzM3<1zJ -`VUjRTnDcFt9;RN%Vjgz<+%aVwbULNIgX6;+?O|lh;}y(3L~8D~Mr?L@WEY%ZQL{6kSc=wB3?=E^Ws& -K5x0bH8s)NhYIr|KHCT+!i5hfTZz~j{hFQdH$N+NnwEbZeY1^S-93{WH?5Npf!-QJeWNg=wE?)%y+LsY8I%+riCa2>uGz@w(Cb~^z0TypqlECW( -GYJriHj2Pakp0w{0c%aH?d#`PSC{N0%tw-ewk21z+2tC~NOY$KAp9!G?u}YMg%x -YBLn~sxa;k1jK^{b3bHhGt5&e&14LVQ0jOpN!r}-Ua0*#NTiwyHg%hd`tg^ST6b}zP#r;~{nS#)lp0zIn0vpGXT#i^MW9;&Ga-nzJbTakDQ -|1|SFRHX)yr1a(EAy!EVm#(6|a+S9_~ZGxwiW&WB&VNLBYnbYCGN)di}>fiRTSgzHb=8+K1P;WUlk-jN(PK -tlLo#~+B5O_TgBVY`42_9dk?yZ+BkaFFAz;F?1-PHGJKKZDL&!yE4b~;7QYMO<(rf?-eXc{7&(gBE!L --jU0v{@jFltjlPiqKda2ct-h(}SnQY!`lx0IWv<-W=jI)v%+n!aiCC0#aHbBuo^bPx6ktJ$r1KOyexj -%bBX?HICLtnFVp@fa9C{167wn}Pkdmo?q1)`kz79PwFrxkl6ZKWx}X_p1M3NOErnN0Qa{&pn{p;ePmT -ltE{D`wvD*`ZhQGI3U`d;qBcA1k$&+{RcymzLo6V`vgu-^AVit*s;T?rTZ8>dvqhv{0J|C ->4a3iZ-~-|J8PIzW>>dcYd&6z+A765hyLMQh!fTh>Q+3q6tg~(pwjGHBM}od#%y~S(9M*eA>O99{3L5 -Y5Sg3a_ul;{XM`X=D@Dh(Dqa+$#u_ULb_lfP+vG!J-IK#n)+ky`5^`v=hbQsp)iDmNIP713JUxQ1ndu -QU1pgS~;B*R0_;e6J1Gc;^?bsd^G*|!XKU{(pkOnM34JXB?c+^~$3ECWg1<1~19DqXwqI35zM*-IOur -h=de2zB6oq+H=lsDp<&6WLAD$@+2O%!;A*^-IIY#DYK_3Ib=(bfo^!`8pA*r3gi;VbKsgMtt3;O2m%B -en{{j@mQj;h#ou}y#9v*{X}6sVy}O^y6Daa`PB^Y!w1|UQk;%PEtlr?(!7SKA1C@zv*QluudzEHF*E< -~CgmY&W=K8?&d)GHkJyV1B!>r=f~uQ{lg`uYx~YEHCVp#yI)10Yj1|ylpxmI_2V}=FGoIpZgQ5AIM)}9|U-OelZwrJ+gV*E7nMkRK0BcNis}pwOALZ?4K -A-mvijVA@{^jCOoNE#6cy8q|?WX_uF-~wkEVz5$f$2JJaBClH*F0V)N~9EN&$Mw0MWJ3`d;EwW?sjrU -T-_ZUmaOp*E1mvpzYAIa%G0rE^AS52s>;FM-{P@-X1_{QEHBGzeX0aaH4Ur_&J|B&x{Fm>RvdIeQ$_C -6wrOr^MT!oA)b3WAx=aYubky7ljJSUt&1&gOfh87v%4`f+MfiEe;0jRhNXVM|(Xz3}HS4ZY?ieLZfFKtTG1n -`U%Kv+{S%HFC^P12*5T1ZoNLu-Tnfs9PV&h?>H+UumKI}Cel9d}>wuKbU8qm(8;IR9wix%y07nc|U=)(0C3FfL@T|W#h9isDqDbVyZPq>gQ%V{`o9V&M -O4(OzZ(&ycZGZpIll`i9-#abq>7aM#4*0)NO9KQH0000801jt2QXz-7IPV4k0EHC*0384T0B~t=FJEb -HbY*gGVQepBY-ulZaA|ICWpZ;aaCy~OYmei$75(mCK{yD;-q`XcX@g+US+v+pvPL$ZVke71kPQS{qHT -64QX#2voVNeH=Tej<%a3G(1VQJ+$RaQAi}&1zR@M|OO;?q#tVmNPi_%!n_|h3wd6Cxd6PC*->7>zvL8 -Qox_Tne6$TMD=GE=?J6;xIFj$f7QkF^jBy?_UQd+aN!nsC^SMx7!)0c1G+~2*Ku -=`hc5AmgYR6-4_xk@T8l}j>Hl-xHA9_EWL?jG*XlSdUB`nB+&$c6UYld)&d`CZvL_RV+y{4Ra@>h|T= ->6^EU#eDG<+_XBed_7?J3tSI5%_4hh^FI~b5w!m^vjg9-F{9o9x^s(FEn8V?48OmXh0$WaWw~?$OMYIIN)&L0$ZxGRb_Agf&z02DZ35 -Q`y>OK}IIVK0WH@i%Q%tli7{xO$pF}is)Hk@zI*qd*> -JK~h_!m(7NxW@<4Wx&>~mI?IrqZNoIup)xE1s0n3kD1K3jl)OrxpHFA+pjNYmjx~M*(3=oqxR;;{d1&nvb8ud8nPjK)`u}-{G*=dJ_22mBy8B%aVvAbf%xZ -bsHZjSI;h?=$PvUagK6V?KIojkwH!d$ZjiRNcv|BHTZ)yjcgb9NO{CdEduF#%Z%4?<`R|AXD9-Tm8y`!`di&tPf(47@8-St%%#BN;k_Rs(h8Ja-KB0Lr -Kbnaccbye)6w?e7mb@9^-(qcUGw+*nbuYAK->i^ztczXyl`)w?DDOxkX!~Iu(uBHKoZNVVu|p#1&MYO -xLHqSTU?mbP)8}pMj9CNyYYkxpCw@NAP|I7DOOq>Xi5PyS;na!q7uPIMrVQv;BCh~d(L9|BlN=6yi!Q -y-hdZ`AtNB#AB8BVT#;nb4jI{t!Z9Tu1(fG#wWcrU04Y*}=U7uf&(y4@$k}B@JcyZw);Wq4rMQ}wgW5 -d;QjU6zpM_3h9mU1{KBe?hdHd}7+1mCStJ#^daUQR~y*AZkqanh;q7fN(pwjI9K?UGK)@exUelU@GWk -$mf-8K8r4JU`*+bi~el&V^v6TWN}Y8tBY@K4WEQL_WW;XV$x64j;Ff?fT)tJHt5h6w;&a6fwXOc^wgZ -ZsbMa;BKCcclz3!#0&GnWB)o)>}g{BDmAjPQ|^I;d8Bklx;D9U&JZbBWGxzopSB+=Q7ip?@7< -(yq2K6hK7V(AJg=VWA2r!hPGqhAq&>jkE3@w&pwu1N#Ue}w@P&T7;UA!i2SLlWePG!o9i1VqFd -T8UL%u>H4oj3;Z_AZoO}I -W^`s7vElb|B3@2fqHm~G;s#14N277sl_&1WBpacVzABPE0ef!`t -wAJC|ot=l)CET=#X^|LDL4`QH#Ffnr*q_SEb`^VybjyTMPYmkGG((FlctSV!9!4r0Gz)fHIdJmVnkJb -3`tMx*-xX1}@ZGCLZ(bXaeWU3;F)w5#VW`>|3uUMlPjoyeRVcj04kyV^Q!`K!+9!v>Ga1+3g5u_Uch+oOLsk+t+8LxT@c!J -X>N37a&BR4FJo+JFLQKZbaiuIV{c?-b1rasJ&QpK!Y~j;_j8IIL0h*jY7;S7XC%qQ<)F}lV2Q-!{uad -U-hZDrc!JX> -N37a&BR4FJo_QZDDR?b1z?CX>MtBUtcb8d7W2nZ`(Ey{;pp^xF2K(jxub(h6TugE?w4OYa6WVh9U?AT -B0l>6sd_+Jnz@#5EO0J)!G5g; -tBg`+N2iD?v}3k5y(-y8uue4QNtBFZ(=>v$MuILibHv!Yz7rY5H2Zdc$x3NCi8}AK+qa@TFGXdqZn&} -{sOkihmKA;1L5tcm&Nls)q_ulj8+}1swuU-FA&vHm!CE`l+RKZJt#oz2$pG`>6OIdMZ7=M_SKof|HQU -v)s9C{#D=YzpgiZh|P~$i=6_8eylACNRTwW++Mc!~%)O6g0YqzFzq68}P4+{d@68FLWX9t?M2hpa -Zu7O&+XO^Ctmbp~HDPmLyeY8kXn5QhCl~LxLIKSfhF;^6)=N;(qu5Szs*S8BvfW?7;c1E1|f2B@4G^n -m3|!eXB&&1Q%yHJR~~JRn|MHY=%3NZzKPkk9QyQ>(@VA|CImo;qBYow?9I8HM4!0F#NpKsf3q$pFGp1 -8Ve<}4Tm{noDDqJ;ct>8adoRJ!>&dbSf(RNx@Ku(%3g`Q<*r_{LUC(zI=yDL$GL8wu7>zEWD)`h9|DI -(KzFPbs-=Kz72i{Y;`dTnvu5H+Q1qI9Tl*jmdKl?p*743+wnLbCnuS8}EPr!mgi;UEA!s9fP*Tt|{E?zfSVzbaNm6udX^KW~&(G~A8U1jt`a3y_f{Es5Y7R -}mfGD4$g=m$1H1^9~orgFPom5g^~t^*xYGB2HRn%HK-s&y^ -)>r5?!#kqa*7R1=`}5m^)FE4@cKA!iYC|wqEbsWS->pBmMuQT;)$nX8JN=FX)$Aq?|X@k${(|#&)A#3 -o22=%S!!-i_DkeRU*kK216wFMg3&R=v47)2Z%w|EPxIm1pr46Rcwz{TIKA%hZwA;)-{9bd9U3jP6{Qc -GVdGiY%wr|ccc1)HMW*x>E&fYE0w#1n9+hX_;#r?@8!mFP+X7Ge8sC3H;yb{RMJBF#STXj(j{}$EW`e -r*2^6&O2^u9J42(qV&~r-nqQw~7`y0u?dACfipnMC3JNZ2jH -XT6p%vXq>RU-~HWBo1Z8DmrN%M41)Q1r(4jiVAEUfZCS&n3{JV%t22W(di;}cr$E*>1~pPYZj5IDX0t -|l-QbcSG%ZM(V9UugYOa;VHnfM@k6nnc|MH!gBreZD+fjnG(LcaeZxDTaK932hA_TNxT0|XQR000O84rez -~{6VY1jR*h$gB<_>9{>OVaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZLVPj}zE^v9xS^sbAwh{k5e+8l8K~i -h$y$%Bg81oy7ENdUur9qNzD6&A2CE8XiiyBGA&kORu@9s!SqAcg7YX>|5u`TlMc;EQp9kZ5V$I^7&>Q -?eJW#z6BQnPHOMAd4Zn)kCaJ6?&+rmQ#aRVepM^N)Hjv!4!cPvw^e ->+>F7CuK_mB}hoJk7;!m(_*S?A*MbVo^HNtpcWkE5~wief|CQjNSZjetvOtGsVe2=Dg9RsMTnh3n_)1 -v8%G7UsJrsG<|5mFOK`~KVJQqo_~9B{gW9xzOD~ -5_FbtUG-ntTF4@vWC)sfQ9gRh4T4y_mYYb$0l_|x}vwX{~b&>s!jT%7^(D#R0H9UtT0I$Pzw&7@UsMv -nXdBt*+kem_eO}n!3Q42FNXGJL&>}D(WOmDfN#xam6!slENapW=zRpTKPXt_~S;V`gcu;mU==APmMXxEW$VYgRYD#*hp&*}h@FjyER0D@B5A1Ms_&IvFxk -Lhr9M2K;6gcLJNiQ8~QYVy+&o3|IpDPJ8my%^%2?74S5Aa^aab6wJzweVyb6izsv6Hx$wX`#>IBY^_S -2|PCM3D#{**~?T}=MFqe1>0L?tBMy%5PRH`!?|6X6Ygvf%)fBhrMnWa&g_P1?b2!*oIR#2{ANeW&-aHC;Gh0m3((I6uHBUEe~2gXkPf;~-G_53;^Xo4> -QM||eXcDI769;)1LZ*Q-RM}WuAJfG#CxekC|Kv2sW4|Q>e&!81xOAu`;dw*pTZD9z$Qlg1y;rIoG$85H?cZ^*Sk -0hHQ8nTJtQP3b!rh|r6jlqhkN`vw!ycBwi^$=xFk%UtP$FS5;(4L@=@A~+Fwp}ZZRn)|i=C)wTgi6qE -y3IlI$np8hoPOUv+qb5N5pE)h-{ -$(;;MHP~a;-sjKw|9{9el4s6YJzNG -`tiXrV7Udff~GVgG3Q$BL9uXDZJk`U52#7O$m(`cebJ#xuZvP}5o61@v*BdEA@(DTQqa}ZFXt)WZ%`N -S@_8CdXDyNN<`DOa#JDx9%n1}|OzO17JXEEa|Z)5q+^LCy~D0Y1Nu!!~>;t~dI;x`Wu?4~#n94XSp9P -1g%n0UnV(@IBVUfjZ&9Q76|4ALud8IZvC@T95)AI{Hlrtnf>EAFKNCgh8E*I!>TzxW;Dq_IIOb@E!>3&B+#YG=c-3Epbf947Fz>g_<`^dF60cc=2)=nQ&#f_k0payC{2 -M*z5ssuFuhgB1W{eK3V97TeQNv@6aWAK2mlUeH&STJu7Ono004~!0018V003}la4%nJZgg -dGZeeUMV{dJ3VQyq|FJowBV{0yOd979NYuhjo{jR^_$SBz0nSCyFFihCSx@;u0P(m<@b9S`Yk|)V6`R -{k~ugFWXGN=edk?!5S_wMY7s#e-Usft3#g0Wny3TjcusgM@6XglXO3?L5$_LF -$CJ786flJ^2aiQ)kBiZSF1}%RioxsC~4wskJ({B1`KGmM`_Ko11~T&Xrt~}Be&?Er!F;RB@$(cyNHFC -iZxc0Ca#3ZhB7Z&P$JdXy0O<0_E?iy1LphF&!;r`GEcsx%ZJ6{>*6zG&QH{EHy9fiXz$yzAWbE&Fik_ -oM1BE$+e&I{tJ>CF8yqS<^0Gm5x}Wm+B##l?3u75$S;>uo#M#xiDd@k$F8^#cdqgerBa9|N@1KD^e@3 -8g*VKt^iLk>ONX=X#Cv>jcy;o%U)!A5C){Or^$$C -(Zvitg=ml%d3@I&Hs{D!?DHD&rWW=r-EL$`+W#u~X14D6Xl;ekw(f2l3rE#-&sQ7vpUzUk=!%wq*-Y= -5erkZc@F(5*?>{|L!5VF&W%t$|FR(N?4V!o}TPWCSbwKIMH`Ikj(jbMG3Jm`Te*jQR0|XQR000O84re -z~a&Qd)8w3CV2@C)LBme*aaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZLZ*6dFWprt8ZZ2?ntyXPsqec+^&a -W8xA^|}$P6P^7#Yo6pC*#HJ^b8gTcUfr#ytccqWV;0IA9tku*&JdEjy{LQX -SzI4ebvNCjim!2W8oyjt9>(7;}MWMUSc&9OEIBdc(x3j9`SO>QH@ -MjE>(Bci9uJ2BJUq0tJ4=gCl)QIQzyFKU;%ebv-rmeB?xx-dE=KUv#}5&C`HYRgHknuf?2m52!1FnPgpYFNWu)adH=H|Z -~mJq}=ConX)&V2$;1aWD)cWPuQ>F_#G|TeMX^?Qtc33D|)$!lCNvGKD7sxgZh5X}w+N-qqbnsnd0m;{ -Sz{zjKPu7m~bSi@M=CDbDeRLJ&nh_EyvrmLM!HEvxlTHB~YO%LeBo%+iD$kCdbvZnUa!YYeMJujx3t5 -f1U~$sD%M0$p~VDWq}{lP_dPLhpG+D{Y_Pe+mzDYwnyVt~_(P!E`n*gZi^+vNV?c|D)KILG0cd#P0jW -uzOnw`tGY3;zLL^02xjcRmsBNCBBwkt%f6K>;VXSJ+g1(~*s4r0^pBdDdCom -WkSmfdd5?XOHRZFQ!!3cT>!D;~olG_U1L2b&X|rjz63T5S_1NQaRv0?3GP?!Iy=Nk0yAx?IkeW4KFm* -yKV&rn>e1@Q|2L`DX%V$#nlrX=1g~`OT0!PW}T>O9KQH0000801jt2QcUZ++v-G*GiepHwGG2$|Mu;ZKM;+`dl=3S`WHdr4QATFkx+38FO1$&qxJV8(j)T!?w8<0BZ9OXU@zp($oOqr -m?!P5PvZFwCljH=AZkLy9_-P#_k|$m?Yh{{zD&I^<4xCK|f27`1l5Fbif!f%_FPV}IK%fZ`UeQgq&1f -1ZGBnMA%pCp-ARAwxWCa{gz=1JIBoM)re4-NN0kuGY`*M>dHBHH5R__T)MnQ9gUMOgMKNBcwwJF5 -FhNFQw~dXRtmzGZz9CggAh2vjWI8VBZW84pM}dTT+w-CFPb(CJm=7gu7A#qE99q%$g*Ok_t{k(~u!DLHt8+cSYLgHE>lF(ORg-7HD-m=GxQ`jlb$)QX^RhvY*^**U8S^z15 -TbJU7$CkUTkAf61n>2YHwWcP1WV@ndG-mYwO$PS|I5`;fXQq_UaJ0l(YnphyMb{?FpOE;Z6#nz`N*LV ->Aj`=_+6wte-X~R3?_mL-MlT?PVRf254aOB1=?v*KurRRKP!)D%3l79dk~EDa4EH(Bx5|(4dV?W{PKh -6o$mb_*w5n7;7X+ig -pKXS@A1neh^T@RzPH=1e35G5pD^uIC#{XFmXmJViicVG)5<7JM;?o3G|(l25 -VI@E)$SZD1oBSxLxH9~MdFwZXKA?y&lC0SQOeMuSYqr5|R6lF2d275;58e}O^R=ySGmhY#lzeg|Xt!} ->C@Y^@RUMTMD?p#1#mt`(uv2G@p*dMN11f;C%M9}r}3q2Bu3Iy(<>S;i*w$^>o&qw!*`CWUSs7>#^2% -&&KUETca!&L`v)H-g2#pUOD2j1pc1317~DUN7_6cs*Awro8qfKGbTfom&;ScS0^?njxmRpAM(S5rWQ; -%InK)k3HuqWKa@*_TP5FXRl|Tf)0|eAg9}0DJV*26-%TAyxJM5ffy~F5n!B2~; -Gm6e@kn5ZlzNwCY%x2{M)a4i^n3X740_|n%eYOx~dZS;#iy?et&nhGWDuOZrBms3{1#!%?k^HWCMqze -Mw4ECJ6&3oWQKS5|@@Uw3#iC+~k&KUjLRB4sx6j@g;c)1oDo;B?DR6fHE9fcP9De!UTRwZsV3&@j!LP -2Oz9X|3Wo9Q?#&&v%JFW!d?>irm?9N;n1IdVGABY>G>NDyM8MKSQ@5^RrpV`4JZ@DE)8O;RO|2&%?xy -h}~QD;m%d7ySk@C~lJg7$Aytek1MRqJ3{RAn@K{6SGCHJzk*khQ -IU1tr|d~`}MvN}=heMM_&Ztva)1aH8&dBDrC6+_0_URo)(?s5`TI*mqfxC<7PP7lFRd*6=ixqi9D;j| -=ex&`V}%A-qgLj(HnfcZ8Fa2yXv=$2QV341p7vRMqwkcc#59B?4Vo_oH20NWQE@A)4#9kEmmy=c!Pvm-G=#Y+bAE@~QADrv|o^Vg1^s2+z?h8yB?K$nu$Zbv&&<~^H{|V|negnqY29%_c*K?~g -YV|JF|0&4XT^ogZvn^MkJ{_Wka=-&kbJ0U06`|p{7!Mt>Q(A@%ZVxLw`O(nBbO*Jc%4u#g?ebD%t$M` -dcgJrfrm)W1_$#siHNTOf@c#r*O9KQH0000801jt2QcLb01zDz0U(Dz0Z#WyO^d8xg1|TaA!yBu})4tClro -)eO?AeJwkr(?=~_naE0w%pL}+3b$mRcgabuR&qW2ky)3_4@qs@(@d -JM59Zeia;;gnzsf*uszPQ7rF}c)+&hE16TS;$Q+Y-?jkk6{{H!Qy8iim{ZIPk`r_i3i+@1cHwTta76d -+4D#WE@O7kG&->m5&>BBx~82$cL)_udTU@0MpOgIyjS&>gd!{6U*$XT-(i6`Ne?M7^SW$R*0Wwf|hU? -jOBr=hw_h|MRvmQ&iYJyck+SS)J3A$lht=>yuIug10fw4MhEo{n$?;*j~S&GF -wo>sUyf&U7AYCnS)pGDg^J97gZOPMQj`EZt7likKtPti(aR$ieu!ou_L-(vZ9AqrM8=GH -Dt0jooItCV<0xXvJRQ^|rHXm#XtF=(5JdY8pSPf*EwC8jJmTtn)dX^O+y=N58jnX?E4qe+Q+tGJj|w<{b3QKyL__Jn7f-st%NKG6x;KM7HBd-R+vMy0H}XIt)-g8CA(l&2Pa;s5J}vIkmer>mr3Mq%@+@#0r_tk}J@WPE>wxiA_ -;96U_ALC0rLSev#&dTOTA%5u4cVT%|@zf&-njEUMloB8SkVS=1ED-1-7w8Hpa9P$w>uS7+2m -s*+=U^O*JaS|M#rI?shh+26P%AgMx*99;Atrg-|Kkvu(r}Y*V^SU%Z9BXfKf_b3NGVJ -6i7@Nn&OXGqE;$9Dgh#{LoVdkz#E@ -4rU(P&nSh~?JzF?&v?Sc`&5jv3Isk*98~}NQ!D&g!2T=!Dapi)A;(4bE9Rb}62$7Gmo2f^{fNq$IiK0 -Fblicqmg*xT*e(m)ZdDe0drm81Dro1k``3zJtn -9u)cv-$eXN1?PKUk4w*Ip488+LC-`T9Y?#LSzBHaf85+Uf!nCijciQ(&_M29QDuT(OrTWb)z4(JMP8F -v?-G}C$={sLasV+(8ip>yy6QQqkPYwSA=4qoxu5d=@?5G@NysySFtj~n_)V|I?9pLPb$j`8688*MPv@ -eR;4iSDFwYr-Hie7qZtm25Jdp!>~Y7reW)SijbwG^>da9GZa5aH6^iVs@$SB8pYX!y0s%HpmJS+YCEd -ne9#K1UJ9C8D5TdX!YMcex4ZnGyOfE#r6_hL5>A*+GYXHtI`N?C*`>^4LW0-gCl#2(;L%;~Tj};3gLp@)vd9x|v`^~{~5Ol -D4`UPmRCEtsSU5UwY%=`IrG;ln?(B}lq^%mGigh-M<_xW7Gha%q)WEtMkn!g5Xy$g8hnOB6j&z0YPgS -x2D||Bira%$_NMENWeta|+&ERi+&xs;L{PP3EmRd60|L-OQSovlin0*B7R28X#tYEob$DJJX2SQLBUA -M4I5~gfRc~5*U0`P?(z!a||+2 -7fXU(6gg8i2$get0{>*9pU+x8jRKGM5?tn3VbR$Gu+%teYHn^Zq;>iRG8`e_fwnUR~1l2m1Hxi?dJXA -PjE(08m1?NixsoMA;E>>+3I{zAGvvI40)6Z)c_b(JU`Orhob|>)E+ea|TQY*JmM~UQ;If$$&rZ`6DO% -#`S+tO9KQH0000801jt2QggTnF3SY~05=l=03rYY0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*WWN&wFY;R# -?E^v9BSZ#0HHW2>qUqN^%ECaT-eHaE5RWKm!Ua&4Gnzld@6f7;BEH;#=l9W^J*Y8NZk+GcB7GPTv?~c -dk-kmF15=!&NGzussysV`%gzdBxjRD#{FBbiKA@_S;?T1IH7mM6VsCgYzUKvmo6LBi|ASf*}SsN}ZeS -$EaCvO&Sc#a}pZEg^o+E(}5W(ZH -l(pp_B)-Gvm#9l>q-vjFYil&>!1T|@Hy`QspRca}rf=Wh-28R(2bw>hdHsAr@N!bof;Ceb1{oiiXh2W -v;SR64Mwha_gvcd>Q^g40Yxgdqv|=T?<9e}Jq=IQpUdo3`NS5_BjgHN{?$lW>m+p69AT?Tm?a`=Kk>? -AyxFv7eH-C}H`i(S&wO^INH_&U+Xsf7aL!xU)dCo!UxM%)weM@R3zaXxpQDS`mTBb~lD_IXbherfbq5 -M)BAX+vm1;SKX@Pj3DbZ8>NgqB1%wZ%)5tUruZ&EdK96vUHp0eXo}Qt-5}`yY4)P86#MFx`>|))FK8q -qKw}sT6=7ci>7^?wGi|gK;Ow;t@`F(`W<{jWys)$TQq%Pwx8Q{X|~Of_6pjdJAkF#@mrTj^h)Owki?6!uzev(*N_x7Z$-=? -?8|X}1^?voE{KyV?Y@EKRZ+GA(ty0YM3d9hgFzqb1BMtPv)Wm;@SSTZLe`08uB=^0@e6s*vOb(qF~P^ -~B@h;DKd92>P!ejg4S=%q}Clmslb^Nv@Ua9_U`lrVdf{C_4#`COnec(lr-qR&Q?|h2XadH~eYiX}3Oy -ZSJtY1-)c%5u%#PL9-$KaW+`f_j)ejcb(D3^+0!+#6P(TfaaM_G(xh+E)ZLA%=JtN$Pn6hssT?XWZbZ -wuw@%`wKCXOAZ6=1XjC7MMRM#mKHH9B@VCz!vTLy17eIFM0fhGC$=tp7nyXvD9v*w*p(Da|W^9qH5wS -Kt(s|Ix`oZ0&S?@{wQZFV0iL>W>zCKZIQWr*V#C%rnxmS`JoVHk2t9|;8rN|HXLsxTeX!AfX- -35$N|5zv}gU*A3&l_esN!mqLc!+z1Bv}qtTZW5Wi-7eSM*zexOKgOkI-B;58#F>TTD{=ytgsot -^`v0I#iTL8;|%U2G7yA^b%WX1J|!bWo9{QYXPd;kKf@ckQziZ3LSuL_k<0~3NN!6heiYR>l_tOAuyP7 ->tn`N?w7QoeLIZBeaP!@|KZ#o1Qrya7fq68SQUCe{E>&U^I?z8Q -rynYd4{Ug!aP09IJq1u=BblwBa0#Gmq_yq7Og?ukKN}r%;6V>mx329A$M4IQS2nO|+=;L>4OP|7#MhZ -ksg4xX2q@B0WT(Y1_MzRs2QrDw-D7ft5|8s_`G8{{T=+0|XQR000O84rez~Hu%0?=mY=&9}fTkAOHXW -aA|NaUukZ1WpZv|Y%gPPZEaz0WOFZOa%E+DWiD`erB_>T+cp$_*RLQv43axr?fNjF2DBG9>56t~(JUQ -`ED&hv$mT+k8c8M1ivIT}V)EQ{zH?QfWJ%Jrs7#b_HKds=ODb|NwQY{~iD*Mjtx+fk?M2Qnw% -e2Q^Er_c`M8b?sY+^4N*E=%mpgU0+vajkT2`Q_^B^u1z`q>^&1p`gHVo~dPZc$uTbrD-U0Pl5XOU<`a -;Ow!&YG9=S1^l4BWCU@CiY(9_fPLXrQ6?5wr|o87iVX$&t3(=%af1k`!}!7NkYDas3KgEP=l!}BPG}N -lrwD<+hIc3)2)qf_!X0)n9;Wh2tMw0Ft`;}x&!4SZtv{Y;-Rc3-|w -BZK@hE6c}>OAtx2huIb)}T@VHT)J#DM!f4V&Hx8Uw$3+zojz&=u1t`fd+198Hgl2}_0MYnbNR%oE6?d -lHk6NP&1kAq+AwO11?#X4F&{v+oE0tg!tEy?;hke4evhiH6dtimD0Sgw9Ny0vuBL6)a|*blDS= -KMqWj1|7@*L3S{!r`DJWB|5_@v}jlfI>tDCE8s-~c)>)z=1g3V;cW1>}F&@BYPNEeK73R2i&8h$%2yupRbjPhAX<|rNwZ6ppaqv~-kc|=Yr*D&Y#>!KU -Q6Ifxtd4g2zeYO?2YM>!hFKqC~nBtn`tZDzf11o+*0+L0au$r@8m&0;Y__orpE3BqK}uC -X=3gSv_D@YZbYP0^8aGdIQ+5+sJ>>EO=xU5{rTaVk3(ZK7i;q6YuGLgkxkwBZ -^=aDC+YGre!}OB*Ey^qXNK-3eX()6WlHa1dZ6nkjTYjyc+cCh{qQOt2f2Mc8|R_0+XGZ=r>iopbh=lv -uA*nFq5j_RQ?+nIZ`C$vEJLdHdTs_byT!_F5tle{uiQ|?U8rLnt$4|ByF)uBTH04J{Va96PTH)uNpG` -_yxWeH=1i?d272h(3`?Bm-lBJ;;~M2UOVwW_ZC-B%p|fh@y2^3gJ0@Dt*Wxv_QPB6xk2!mKdLc#6vg@ ->~ULW+9Ja79rx;CTq^{Z+$DW^q$Ao^L1HHf@6aWAK2mlUeH&TUvUy~yP001)w0015U003}la4%nJZggd -GZeeUMV{dJ3VQyq|FKA(NXfAMheO23T+c*$?*H;i(1d;%m*k_|EP#E5(XxAy6v_R1<2wECRY$;OZC26 -qOf8QZ>anvT&gC&wPhcoBQj2okS!dT;-H^3MX{h*B_{A9KC4%oO(l4-x=wv*yCFQsl>AooTfHQKwuyXW2A!+_k(0Dpga|B3Cc_Pe+2_~CGP -b9jxUHcxDC6M|1f)q@+ju`pwNSHMtkABb!Zh7Yf}CeD}gY56W -562nob#Qfu5FfIEJY5RrsJ{U!3a#1lWf4VRWAy&Q~g$!Fw9Xl1{U7Xj)ep_Hbhf2%Z>^mH4$19gXPx5 -mQ=R0HNx*K7jFEXZa`K0JQ}c414hoNQi_gI2H{1xs4>(bdv3Mz&alC*AP0z~2p*t;T}s`m|UXU{$*^e -eSgCw5Y(At6E)~@G9I|rq*GizkoN~OINNde`V5v9Lf|08>L+W338xvTY@80KNqsGoD@%z -&Lr19zrpv5_eg0SGnbi+blWIr80l4r_ho~TI@i2uFw81zCtvW*ft6B)<%+_1+H+07MJixx|MoFM_1&O -;`S2t9zBZc5E5%?Y>jY&nw@amx8`h$^_x&S9-cjay8T`tKcIbrWv(H-6Sd9VQ43iG%$Jw1FKqs}n15p5o|ns~<;Nru<(1!e3DD|Tm3EpNi-F?@uRYpRJi -g(xuw+xRtGTuCh_xPMX2U-1nJ1IUYOfBkrwk~Sfx$dWfuzgumRAV(ZDw}{c&Cl3;KPvl5CWo-ih5@7w -->a(qI@OTcjK`qDzF6OWoEH1XKgjDi8J7)vV)j*-L!S!9b|oZv#yY}b!Ib#+Xo<5$JA>L9n=RGvN5?` -A<7D|bF(;Pkh^ho;#h@_S<#4^n~-2n8PjC^bmn*$A#WfheVw@}9E970R9(R!EbNJ=#sap-z6h#9IL7j ->$z)G9jTJTple}qL(K4*xZ#uK~7|MbJfF-8M9UMiI%?_&pJmWs -M%N!&HJvcPj@R=XNo5n`Qs`Ae$9NDq@gebfgq6$5L|wMH8DwBg4s!clo>kV_Xccl -harCc_22vGYfrrEm*r{!c!JX>N37a&BR4FJo_QZDDR?b1!Lbb97;BY%Xwl%{^;#>K2oyun8nnzM8uZy8b$l{tNwFGI8ZffqgUw7j{00br3*(9f$nvqDL(dc&r4a}x(?pc~ -{`mS$znzHhK*R&nW)}pEUj;HeXix=uSZ`-=jKdR>TwybaU&t}KltZQ2HTj+0M+jnJUew7`6vB7bhUAN -0x!S$%`K3rYBy?pmB{qFMns~57(uG}T*1Fwsw)y;Nyw`t2o)3-SnqgKf-%kMHoEWuHQ?v-bCQ~&+@Io=Pz5%s|$P*Y+98D_I&|!DVthMG)#sTy3c)f$I~urZ+VyQ_T9Frr~0=1= -QMBb@3Xqlo!|1G`?BTtyzVaKn+1C;yKS0RJgfWN6e!VUT`vGy!3`ppZ{Pmu?E;8@aRIas_2eIO?jo-S -y=>d2U9dMbz^$qbo6w^WkgCZu2S!nfjyRMGpzwW=#!{xRR|0MFJ40~%0nKP!m`=T^%Df9wAE>8$>Gro -Jhzf|%&r=fsdtbsz59rsKJMfy1WvO;K)2$=DSBJeHt>k3zOaEP2}W-L -CHzFXq#T!t{2Clt%VF{Qef`oP#ylALzE{dCWVvhDh;;`M{>J -v>S4CcUkibykJ?KcY!U*L_(PgJ{st1(>;}uL}7x-88KwpQJ5dMK=L7&xu$;gZSsH>cPaB_wJ0}08S_c -3-&#T(}MkpbQJI&I=ILKw>Sz_)81ztYE9QRm4@~^dU_!rPC=N`#|x!_-|{X40#9|sCwD3D;@U!a46W-INf5)kU|=~|BnwWLNvEH!Ma++jLu$u)5$MxtOzFpyFBfpNSpM!S;c9OjPGTU%W#L`4iYJ*0+^;{yliU -%DgF*VJo@U00JBU4F;CU(1vAgz6DPO&7|=ycR(i5FwyT&?uGVeh#BchWZ?%BL*EfWT(B+kEe`)s7E%h -bn(<8R*<-e6U882QXBjkYDh^%(tYK5rEaCN8cCBKa8}{2E$-ZXSivC -NY@Y1wTl4JtXvUPyT`8@~F^^yZ#54o_J_4UyXmBYnd)@={<`K@9e!ag&N4dKufWJQsx_OamACS(Fg;e -TlAL3^QZo8IamnZcBvq}NbNn<${aklJc3;25}L -+{zbc?)52x0qvMndQFO@@lu5jqDCkxM9BqKwl?p=5&yFezVswS+^|( -g!j<9ZaOd$yD9_oz(0c5C*4OyKif3u6A^9@oEqr^1Q*L?zq@U-f}?hipjik?^n&0p**kl>!v-8&kP*((z%$Tmnb5>DA3(g)92=c|qRq`BufK}a;AA?htul_NUmXaq&fN+AhoK@v|!PXe# -nXsyBcFPLLQ%wk@v}74{CgW5@PjnA51%pXE*|CT=Kdp~P?+?u7KVb12sjz^*jp}j54f54Z3}J!Jdla(wIgQ&R9I|qf -GNH^Q8hJv0DD2eHw#y=IOzfU^BRpxxzaz(YEa8jFes?CY& -{#JKqPRs}ZWN?HVRCW`-%3NC|FdTDn6>p%< -ZZd@mU{2$nbSg0sRWfyfI7xNHG704otw3GCn1Bu={r$EjCb|={ddm%pFMrEG4}UNJX-@|=@h7^Oq?Kr -VQ%h#0Cp_%L~eVAj24EUY6vjQcxG43ZXlU`UT0;v(`_cU{26Oy%`I4ck*+g0x1rTf>WK^bLkHSrmOs+ -lw&{1StT=`hAy6BakAxR(OSRK%lJC(v^R{yb{BmJoH-AdE(8|z%JKNk!0$JPFw2ri3YB~#s8>^uuRk^ -1o_sp&#gSeqJ)>7>`5iK_wO5&_s$OKls8P*6H#0n_lm>GM!FIg$LvsWHR7Z92#I|u^A&H5DqAC@KUjM -rYBb@sib3zse}R!s&1`&kmM(?dY0qUI$kKop#_?B`A;0L*J|UL8Ojx4p4+qiajDK(XPLd@m0xFIZ_qhfj -3!2vQ;!c)K$xw_n0U@c5xhw3}`=_f9ztfk2P60g|MuV_rfzq0^By{k1IJE@ma=Bsd_b-a9?p`k_TPKM -Pp;Tzd>)?>T#5lQ2A#nUj{9gwgn5>*%p5X~*tt(G+z1N`-SQdcDD!r9epl4KwUXh73 -eDO*+2I|^XUaOE0Ow@cik=G#QzMy(>a>YBoLRGV3SBhg?Qc3YvM$8MgrG!D?Dwh!oFY2}hr``LNAU_L -R_MAOpjFqg=NeanA^WIbRmg5e%NrY0`+W_z3XXa!31t=`0e7Dou8xedY1d0QbNDFMf=mz64Nq^0Dz-q -93qm~D?K%uV%U}b$DH$12^_>uHoDKd{-#S-bN -u*j-?u8}#bnp#nk7RYcgc5U86Nw2V7^}Hyz(D}NhFuf9Qw#dzF3T%911Om>`|0C5N6ZFlBpvVA9PEAm -tGm6O4OGr?Ur%8s!#%>KN7Cd$!fDeZ!Kt-yD?W^TKx?gtn8AbNGg&fdfTQ**L#fgoT4G3-HEl -kW6nB5uAE}|?H -WA9O&wH^qA?ka)+!H%Xs|hwh+zSOt3%RIrVbgYJXM4RhU#G1kflnW5OM)htUUf;eXeDoUFHr@&0>_FX -HKI#l^>1{V@xE87qmx>6qV{CEj3N#(`QvQ3W!hSg_<*z)jm@C8^(fQEm)NN)Rc8RJ=w7$ -;%EGHBu~GC>D0|53D8fya2BEslW0H`w~F6p`Q8Iz8-@kT1PUl5%^NBU+qO-AyTzRgEtFnwy^o7@h3G+ -e;y58UW9EV^kaL+V_12#@k+U#n2^^51yymx -+F%D^rGU@xb5_L%wb5nWGMJ8_Ec*bzW=Zb=9lXYzx}3=DZ$ClAM;IeKTvlB=p*+$+5M+1H;Jh%>`&J4 -UP|k1+qs&zCiBa=C8+GUm%}sn(o+wEq=DmJzs@Zw#H56V)F5|dgz%{dsG{6)Td$Gg~};(S6U5&s2=hK -mgHSWSD<;wbgV&Fj-ZN^B2aW`}SV#Q|58T(?~anw(xub28PZW!_|6Cy}vkz_mcTrvLeMPOq)<*D6F{7 -6p|@=#$ao7ZEZ$Bzy<(ub@qv$|Um{K1j=@6BTO7~GUpgIg3ih{lY~WROY382MheeZa?9XIaBjoxSUGP -&_z?E`n`ZNH28)7tj63;w*#bg_M_P#FYY3t+h9L?9$<_^+x;^`P#lG@L1L3qfww2R{ -O^SzJ33jSpjVH+EL2q}s#VLE9E~V9uEP;#FXbYS(Ek>gMOn&+_S1ARSw`Hi?hN3ZNPsPf)v -de!NDO%BtOTfHNjYU`y5qyzqC(r~I6nkUoG<&#|Z>fQPJcI5?;pEL8dc3FgAxqgc>s((x&?;h=bIZ-Q -DNDW1oiY29>Nwu9E-WGEZNgD&{pI_O9q!RUYm#V%ln^zpuV0FA+7c5esKbU{ys&bfkwSvsD7Jx=oa0< -016ZZwEzp!%WMf_5MW%}|)C-A>u}dZwPv2H&b?;kT1dt#(D$WnLqEG`n%t#ofWSknr}NZJKK@Vz)j7b -ijCSGlH=D)ykgv31eEo4veX1f5I$G(}6H36&gVZUhG~jJQ5!&E3Od(Y=G(#CZWRAFmGje6n5iB2+(V2rHZ#{w_4$09D&Sg^?Yz%>y}sm0AV -~)+pH@mpQWhjk@MDCYThUZ#e -N4qu!zx)IYNECI@m(CUZuI!NW1tely47NIg^{ylXIOAB_tQbOemkaZBy)(zEmq#=I!baDV-t2IRRc@$ -ap$rWqUYfg$hf&W6RL$OgE(i~uG@+8v$I=pI{g|~cg}YEU3LbI�+5tNEh~&97V_%1|Ua@GY2aO2+B -msXDs67-f_phI*`mw5DsvA+WBP61-cm_#S2eG#iG5A9GBhJPho(gf??!KV1uGcMnO$3v2kclS?ayc8S -P4!hPzdXld#E6Gr0x}&|^t(zG70~XhyqAuty>W3y)+gBw*%MkJb*qZJkO*Q_ -r8O?EhGjlWHLvZiH`iZ|7b2}m4UpY#fl?5&Ml!K``UyLJW}g&NpY>*#V4tjQvCoUCx>~uvs@B>D9tNs -x5AL5L7At!$VK=F;TsfDy`5z1K)j+iCuL8UJ<3PdD2t_?FtMZvVX$qguXh{P4rl-p2{y%55e;)I(>iW -~Z=|3}2%8)8ba2j&}X`!w+;Y&>0aIXZEYFz~@vHvA90^h@p^mJB+Ba_Yapf<;Xje&@(ID)^UNuTH1Yc -lo>d(5gT3RMdDPmYMNin4M%fee{P9Q|19vIXoow{Ma=yhBAhQ?xs|7<{{Ps~fEu(M=o2jz`dT)JZMPC -ey)@)wb24lNs(EcyW>>6g;`X$>B9Iq5%G-mdEg~g`5libvU`QrlP+rG~V(b$y*goUXRw(7UQL}8^t_a -zt*+#!d$Z%6H;ba{}MolJl2Y;A*{m0IWjc5$1^VEB29tT3JjjB%#%_z5N%8rwOgkpbMgq2yL=zuJI+M -%)jq;>RP3xHOh?-eXPAyQbx$z`#o1?(7E;5KD2mKY9?V>g(a7pD=X$3#Bt?b32BoZb{ZJAjjl-LbOF% -T(3aPrmTi!}J0hxHodpio4V=~#BitQln#qZP!5Rl25bOL3CTRRk2(S14u$RITZRniq_q3;zNVny$^7w -ZNu`QOwsD$Ie1g2m{BOLbXc*L<8WJS^$n23ZJ%@i6Wkcl=gO@ -Fi!J -6y5Sa$`)9~DW%7&VIZvk8}#ky+0t>Kf9$ZSx+DrW7wJlo@_ttZQ@PPfJ9ah5$asE`CsrL#fR*8@7TY6q6mplG2u(?wodMlDIiqivy0)+35h^t39jM?fg1l1 -y5!gL?8(Sv8A1nuokbFIr%Ub<+quf>?Wl>serHx)bm6hu7bHf0@$Nc<2Vsx{O?vv2F*VnAK3SG>#X@p+3RTDN49Rph^iG?;sTvXgY!d -o|ya*UF_31Q<7#z4^(58Qyo`rWzKy}9POis=+vWZZV9k1Lh)jZsdeJvV(x1bBj32|jo>if(9WH)sLLF -j9Nt+CDx$DaciRrm7NiJo$U~*4_&`n4z6h(;9$l@!EUQul0W}qKVAV1QbyN#BYIn!=;z%fU21CuOu<9ob~WMR+!NYXqv@ -yiJPQ;G8rCW`)FGf?V(5%Qc&5vm;5sGfU5uWmO#5Wz*?kL-Y^iSI$v?}lDUSLegZ4la5FPOYSbwQD%@!E(0&x#~W+vvaa!45--fn08CI$4P}QFunDgGRx*u|Iz -G+(IP_CN&33q-~tM!k_L$r%f`w`bYk_9u?xLoDcv1mOX3oyvJ7iuB4^!R^3epks8l?GO22jUHeQWk*< -Xu_Ih-P@JAS~)X5m3Rhl>vMeDXv&Qck1Lz)4e)(`8Tk49n$SY$*Nn5J@>I%0CjKZvtC&^fbQzViymEj -g()$lZu>p(Oh1o0sg}uB6+q4Gro-Z!M5|XLQFDA9xna`j`1Yh3n;4H&|tht91r!53z@!FnQBg>M|^Ih -bjt{7AF>erLX=EgnNKd{Oh?oA*VS%M07$^kdRO4zfQu1O8SyqzQ$_5fe0ka%CjNncw5hf-e;32Ao#yY -CH@6aWAK2mlUeH&W5(*9)Qx0093i0015U003}la4%nJZgg -dGZeeUMV{dJ3VQyq|FKlUZbS`jt-5Onw+cxsuzk+ZOST4Lm`?`Pv+-=j|;&MsQqy>t_LX{=jW-LoOQr -ca&=zs6bkd#P?c6PJrJ)99_ZIUyb?=NX1>jO*EP1kmkrzsPMrj{+s)~YVMmZ$pnY-ZL!sk*Y?%X+&N) -pj=9AdW^faeBwAqLvnk5)baCs9G+otc>$g*dzI&sGC;Ql{#@Smi)hIULOuwRal_ws^AYl%DQW=^u{Sz -)n;v{0KDMJ0)P1V>gx4}4*12!WKud0mz~ZwJQTh-!aj7f-`AS-#J=Wl2W8u}0+4`Yo2=~>))u8$r_FwQ2IL@AZULehgHIt;n+l -ckLbTbs^@H9vkPj|NQ#?*YxUNudn`{{`B+Px7Tlf1n1ZUmM@7d!U`r1w<~UO{F0R&XrrGHJAN0y>hF%WF -nOJv^LELX>ElSfWJ3!D_&StZ`%#}4bCExR -#s>b6Hz@D0m~A~hQkION9gh@TgzR({E%CA)aV-qscGxA0^Pp$|b-Jm84>6ZlzN)Qc7Te*sQWfS(kLmA -9XfnzHlDA%cU5_0Is^3_I1vg2hSy#|h~baY=uq6mD7_Ri?Jin=ffyjce{~a ->UsISxBjpzoiUtUw42!IS-|@0;4!mmF9hZveXa77}lq)t5Siu|;3#(CpSj{LXCCCGM1ar?2o-Tq-Ee~ -0HP6|OgA-M-(t$^lGy>*95&He3sR|~Lza22zU?zoYh|4tzU>tNTmd%4ba{RQ5{ttsj2S$3$a?IknlSY -!xTu9!v}ldgH%q -gnBf3{sUQy(n7W-kMPFB7etQ0)-zTgu7r%%aSXocel<1{ko=N*pvBQMRxNHiUlb7aw^oCHP -BujM+P=(BwUuWgq?=Bw%R^x?2EfD>ed+Q87ar)y8X{XCP^&>H}s-iECENE~dIG3&f=9!l6Wmz)%(PIA -mt72rfqg?rn%t$yi{~FhiLddcbi%kKLXOVeW0KbWn%gKZM$zJWDj4)&)nO9?_{qwLM3YiM)2y+ebo=B -^?r{SOQ^@!l64*yIq+X9>vG$_L!0zzgEIj3i{Vyz?_Lq=qjaUQl&T;#i?qwsnt1FjcO57Y+y`IWUurp -)g*;o?E!CnvGnTrzZXlAJVh>^fBjEn0|6`D^P@6ZX*nSMz)!)rQnTdwE@-jZROLjn7}g1c8{GgANy)4 -!tj8TL`^phW#5fF4^&MwL*OVf6XLKvd;dzF%(aDS|NmpPs+jHJf$878Z*@eJaDIDCIJ^=z2Kc7&#}^l$N4by*@EuH^&^s1jA^ROM3wHIYAQV -|8lz;K2!5H~lZNrQsKjQoX}LeAAC1xrd8QFp7n8I*r@e1RcKvyUBEyWrRh|aE~eNPfQDK{Fuo!J-|tH -ICNH46PT&E*Juob2$F%O7$3f*{(j`kC#by5p-EVY#<}UK%H#kBqm~Z=e}p+6hy0T?#Mp|VGVXV -rmtji4;^Bq`otTctIrNfe;S>sg3ipD2#HJhm6+*U02A;!E!^(t7d~UO$@Az;VD&>5~aGbUyw=?O+5~m+qQ~o_s6J%|+VmnX=r3Vd+I8p=rxeDt{d -ETRNFFDaPj7c|R_REvT6lP~65U}iZ4gJ}xgnbt_8TXZgX#P?q$xFqemufj*P1P`siIWe(7>6<#uwSPn -_=Lz1A}dIdci|&tOAjvmd%gP{Bfz5p3s`>6zk1bcKl2RWl#BHPr`z%H$#bz6OpjJ6@)^UWvA`v}=d9v -T8DcqE)%SEliQhTKNlg$#p()pQN?wtDE}>WYcIq2uj*FvPYrliD@3$#Ng=&jM6WoJtZ{KLqNJI59PAi -In>SlZ&1+(QN334v9bbYsCb2g7Z)uM_ZzD6dFJY2HH#e#jq9t>qmw{}NAf=o?rG@v|V5pWn^@IZZsBE -)_>iJ*^-p7c)3&1wDX;@6Ituj=Z~s@~44QC2vftZ53ZK-S04m}uCL~^IGb{<5X6cFsA`SRRFC&91nTU~a_OD!CPKzp+rP5}8 -mUr5gIjV3e%D05IFi~jW)(#y)a9zCDM6Aq41m4xn!rabhN5LiHLNWv%-(~^O^^`>s8)on0Zb_s<~!SX -R@ZFv?R_Kh_<(I%o=euk(?7JF2lbi1Vw5g;6h@RN^6S`9qr`rIDA=2be#fCU+$5W?_}KxMhi7j06t%x}np)wy4>E{2bZb?%6S64 -X}F7+C4nh#vNw-ji4PRbRKMV6v=5#^iu1sc80{(ed0IZa$6C7EC>q;%j2iY^Ztli(a@Dw2(cAG`z -Lqpa!6+sB)ZJrc&76b0A11{~vpv(WZmrL~{$3!s_!ZdoD9y)0#^q_?H^tflw11lCG>(Rli^_go&s1^4 -FVRQ}D#uf6~u)S682|{tfB68Cjl9FnG1pvQj2xtc?HCyoQ8p_PZJ|XJc{!md4~-JCf#;K5+^KfECjB@ --2k3NqD5yj@Xo9&(=S2Mds~xII)REf-X@IH#<*3LH8_}5r8Wufvh2b#G!e%882Z0?Oej@>S(y5$prnx -1gNwQO91%`y%we^%1u+Cnq)bZ5;B8|Y-b}hwEyF=gozBICnqO{hk)TaOo=H}kS-6q5>Q4J1oo`eP#z0 -KIRN$jx0;E=`vgQ7Kx+wXU??t_gTJmsxh2ceB+$ySI092FplE)pxxmU-+#|H2W=7zeZ3tbjQ_CMpmT# -=x_;EESjL7soxhf0RY$0Wm?KP`RS{bdkw8y4A0Q{#@ovWV1jB=^w!Pw58DSA)EJh=OOF<{!zI#+W9GN -~Z8(puzQk{!#ddGG@iLIV7x+yLro2le;H;7&g2!Vy|gj2hCZfY4>fUfu2zU8RW3g@Z`erjaBXVm17E8h@N}XIP76~5^prJJxr9rq)FF( -z2Omfnl;kj4o~~Mzl>k6-Z~!065bcS3LgwAa$hW6CL=S!jGf~m>wcc{S0k*+mfi&^agL5Q6n!t!{71j -ZwSFtuOb$!GARckXwH)aJuVhxb>WCmB2RapJAgmcH*N>I008@qDdA^Kw -Z8O<>SF;Zq!7c=0g{J8*V7pMP}0hET&!$&?`q+DuoyKX6)$M^rJ2aFyv`4X1$^$UHP>GBc>VDFd*hRB --;{apc#3>f5+8t#S`}KVtYJEFeRw!mPY&_7?XgWMh!Z}B{^yGpe0pqY>G|vx&nk}f+u2(1IXGR_<)UIYvi)ouDhwN8QsK*I -Ll|s+$IWJfOia`%FRoI8H0S+yvZ%Uy`n9&)I?inqh)v}~xexrBpUsj+qHrRN}2AnZ8a0mcg@lw$(DtZ -c-f-y#!Rd!z5qXLG}x*+gu{Y3WPolLeeE0{u>6YKYy8DBQ -)MjwzR)jU9w}FtGQ$^*|=<_trA*QaH9(CidVo)90L;O9;QP90Nd^`hb?&w0a@iVV-4tdE0P&rxqLZ%( -}F&CLfp+VeBQbq)MH0!+>7Pe{5EH>`HF$tXh`mLR|uoXrtny^(=#kwy6b&m`yDpjK@-Hq(RA;{aXaQO -L0A8=J1W}or5ozzAkBW?I&=*R=;lV3WKQ<{8b`K!P1FY`qebWiSPXs9QsOsoLy -m$^S4ufzePw0b}dbs}IX6fwBB|mMMLG(1I$RcK!>D1n;GIHInQvs110b2!e(zrwXHd7^*Lz;TMnI&}H -9|biITh1!E*k6V6FJw&{o`r{tgg%<2evPu`vmljaq{*GW1#&Aqw-0?PP?t48y%n;NA#L&D+tz9WB+qU86I7sLKPu*a)b_zd!cCoR(WZ}v2he>?($Pgck=7#%e{3 -3DUwNWv$xaEuzBH*fMXqd69nZXxzIo}bD5mlGixANAd;qZnd)m@`BF;)@SE+WYT7G`>T3z{MPTyJ7M| -b3ms@hW0&7zwvptqNv2H@D~43^1jlk2?H3Un*1M7O9KQH0000801jt2Qc>;3Jx2%t08 -|?Q03HAU0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*Wb7*gOE^v9xSzB-8wi15#uOPfABm=Ur&&Khd6XdcDn -#~4ITA(ltm6m9mjV!66lr&rPzjtORN~9z^-M3>bVvCv?&gJ9BA$M2iM;1l9x~fYNMNA%xysQ}CsywYL -5$Wg2q!~~1{a$8!^O&p24h@JSmuXn=Qi;--xDg_Gppl6dDr6BxFCt6wR;GB~N2O4CUB*HUq`+YO%yGW -3u4Jl=R?M?JlQB=_HxXt0DC`MjR*5p>X&9$6+;SzNI6oeFmKg0z{dh`6RlKSdC?%qu@OriSx(e9i&zG -0ikB?)T7cV -puhp4O1d_Psm9m5i%^-GUFi%FBS=Nd?8lszTwGro7=^RChGyN0i_wnoTB?IOR&Q$3yjxVqq8>F}cscEx_U*wS;fL-wPOdDr=$5CSu2Ul0=O -aUx{?rM2(*hm}aqH{*28(v3rQLeT9-?d?ZyBb~gN00zck-=LPV0zLTj?Uf{e0Bvwmr>h;e+ -=9t%(|48bw;TSSd-X*@p7-mGOKZ|5xZ7ZxuI0Ua%x3krDS;ZG*3{s6Wt|3eXBaoRqCfWfkA?v$P4%uxF+s&F+jFTB)X|@*`x(*^3oroG{U!?ykiedKh7d;yggHpHq -3BukN&t~&x-RDa`hCzy^uZ#U+U0eYEZ7eU85I77zvnXZ8!I!5ZD3bx7#`DV@a#7~bkatc2Z~I1ZqeO} -w0R_5$j?YkY~%fPwsuw|q{bWQiAPGAZn4u8^-fM{*O -y;cSBj}aUZ)A$!Y;~7>KsC}Ni5iUp!yi4zz$qRM#A^BL9aIveo~ncX^|3U$|yzjrc)i_6t)(kI}{8Rb -dZ(r1>S7^Q3DZ&u~uYfb6P!DA^z61;(~(}GmE`ZVQ9y$P;0A%<_o_4B5>h0H1{u(_vQNO;_Bk*Vk~_Y -3Yq#tDn>vqerz2jQ+@CD^sGaXAA$U!V%>PLVAAb5gzrDZ -t`u!#BG$)hubBL@0#w{QP)o9}F_vdmywBv4Ln!nbLoQKVbJ@B5hxA%`v7k78ptG<`^%021gN$qAr%?Q -A6g+C(TL}8FtQV6!R8Q#dx*<{2UJLdsYNf~i!Sd8mGGN<0PxW8w(ea0K+|o -xzJgwOmQs<7D`aIzt+L|aLiiwVH|GqUvcm-NGcSfpMxr2ykIN32F0=r2!cRnq?1ilA~lk->lOX)J5n!}ETwxfk -|-kY<+;0ucXXju1!-C|w$YfTAgWqv3;e~Xvay)9@2gee7Akro=Eu|jFhD+(+lFIG31ReJCiu7EzG_35mnPB|@w#CU -nj`^(1;<5jfe(pQXC!ej$ftt@6XCArpCrE*bF9bK#`{Tu~V{kRxFYt5c&B13QQyzCp2?lLbv-;Ev -Y_~BS_afVSdjKW!1HudLsWKoHRA_n5Eq7RRq}o)(6w=@p3Q>}yBNBkY8|z@*XIj)2j+)ms>M@*`(*l? -r4_K;tyJbTX{XdPNU?3T?3h*OwY6nlMO~o_3>mt4Z#@H(|R~p`p&x=Ry6$VE+7Qpj7?Q}weWzkjCeSU -B>!D|R3xVnKmC2`ntk}Rvds$pjv;UM8Y!IchT`g=9P5yTS_>K`@<#yBqoc;@UTflH~(XW9jCN}D`APu -E@j4qPXJi}^xlk7b<%XQsMeyT>z$O5zojOh~`H6V#+(lE`3UuZ`3>VgSGIiREo7T>B$ -S*2l_Xtw-pL2R@b9%zdRJFOBulFf5)DkhJ-nf{O^-oF$G_A~MD3k_jqlM6wZ(5*=(UHxuM9&wtj#g9j -zUOF0lBjJ5Kiz57)ZyEB8env$pl+n6UfgBQ#B|tqW{HVyAB%m*dZIS}?5RoZbA-b;DLOvh-41Qqu_W! -b!p_SGJeAj^R;A}46ZraV*mn7F^Vf00A-kSr&rPXhdANi#rZ_V(wL(Rs5A&ph!uka_D{xwzX!1sl-wi -ou=6Ys)7RJ-;3K90&(KCUjmr0P0#eJYXv@!LkE}h1CPCA|Wl%8k6Yj%F(#of+xpPXf(u9!*pj25%8RG -0Z=U&eTrTL$p`8qQRr*~)iI*#+?b%SqOyvU3|3+~tBU3A4-CJR`xQYN(6Ruyzd*Xb{rOq&FH0TB6tZ6J>=tOrPrS6&hBaQw^d@p`aILTA-i4o9k_LJP49sEMHx(d#@ZKQPjCZo|Dj{dP|W!@6JhS -lfw1AEOVSq`Io$LA22e`_1QY-O00;mMXE#zHg_`oo2LJ$)8UO$v0001RX>c!JX>N37a&BR4FJo_QZDD -R?b1!#jWo2wGaCxm+ZExE)5dQ98!MP|b54O^M7&Zh|F*I$rVqG_^dqEKd0xg|vF0`nUloRjQ@AxK*mY -mMn48)PhyCd)Jxfjw;$nwi2DMZQY^(AR_wfxqMOeU2STaxEht6K?qPS~~)QWLsTg0~uS_dc2UaW2+t6 -cJv93Qua&YR0|1hBaxe%up-ivy#aLsfFB9&i;nHp?Y(gU&FRB96`o!`2Gr4FSL;R2iW!vdOa}x^zoOE`PC -1vuYSyb{r&y>x9`6nQr;Q4Ck$p^|C=I(KQ$;TdEh9PgE61MKs1EEqAom -hCoyZA8myo5X81&+!)WUtVE^ns032B(hR~5pdh8Cv4Vohv~WO0MN770WlOoE3dS~Wvk$E@^jYUeLY_8KtjV>{T{q-;&v`^OP_T-Dd_mGQJ;AY*5f -kEoad?Q~dI`ABu22Lg{=!%$t>m9);G#gi0*lET5Ai(rur#tSI^xa{B~%EhGWYa}0$zEHo6i#yl5k0qI -a$6S??nxhZqAUVnC=a)N)JMkj>0;5c{f|&_tH9Ii8*YxhzKxs>ulx{$#8ay0NqiU&Bhoj+H#!LS#k0C9m3d5)wn7G_9V%m+ax2+iv>65~EoTtONn+zEMW0;&wjH=WK8>&`!KoI`y~Ymu* -5P31nBpT{U_zJDZZBLP#%Im}1iT-pd*y2(*jy6WH;Jmt>uX~l{r -q<>uad>NENqPp6oghx<;`Ai&UX(Q84L5-`*oneL~wo#iZ$+5xq`9adxasdi4#t+*|Qys?-ww8?y!|D<3KxKw>1|l${$KFj^adyc`${1CjIm?j9Y|w!jUv% -N=27x;+ionOh>wcO85#h>t`b3+hwdAk1!7=@c-Mb$@Fbq@U{eODqtxA&s^A|yMA>CTr{=^La!?eU-EJ -vL@vgQrRnQTjlvG7E)`KWl^g`b74tFqCErlB0Tl%gE(Q0N7yG&%%a-1Pmz1xiXq(ui{cK_-Sen>Mc4z -kBB2Vw!&7%KZG=jcx9*Omw9EBC ->(vHk`72A#|~kc#_Bv%J%4)+qgLngM=LzG)>;bQ+e#qlx=|DvAJLNm$zdypgZ&s)N7lbj@JfR@)!O~wIVU-ByAYwh>pxLMbQzEwg+2!j -8J-h6-LN`X?8FeqrnbzccDvJf#yJ}sPRv>8kuv)YGt6ih;GR|A^-(imz}Um4^J~waofOPL7!wEE*!b< -6BM`)z+8dItBxjv{VrBgLS=dK3*>gt<_Sj2!o$Db_=6_vMPJr?j)}&*w9W|Q(?g56Cb(le44ux&#)E)umSP2_uu3FO!5Fh0u& -|n=C4>D^|BxJG1kvk~qUi>N)KI#@u54tS3XEL)V+1a7eRIghHVF@Jt!@tKQP_(l%+JT0jk@i0XR~_JO -Ze9ImElU6a(j#?`@l#Q-9gS-eT(|^1Sj}BkGO!N(1&jVEz@wV$PTIN(472Uky`Z*?A@?iN3}(PVP|TW -UzjqEDc58jJ23QBx7;Ie>-yX*Im(`HcplS6hu#jO(I`PjUf+x**8yKVe9Sl>!^V+?V&hX~x(ka0<6+y -|g_jN+CppZ0Q*JJ^+$D9N>#%F`G6w$qNEQg85)1MsE}efdpfWL! -HEwbMi$-p2e!+0Ux{d{tp>L)uwN(0*4DyQ3DBgz%JC{Mm|bjx|MbJv&uhEO9KQH0000801jt2QUID0m -S+I~0KWqO04D$d0B~t=FJEbHbY*gGVQepCX>)XPX<~JBX>V?GFJE72ZfSI1UoLQYl~Z3&gD?<(@29xT -2e)MM0rp^G=Aw&nnyE2+A_We1u@u%83E$p>fwI7|*o22``}=dh9!kYaYke%YcqqtVirNVwB8(xGU+DLx{Wvon+Bbjqr@g(|v570-3~&L{A^ -Qw&ZqNIkOeR}&h0zuy^iP4s!R-+e`bItGx`ns;tB9No6hhCag_5{&sY+Q{2oP*D6mXg^yzjAsfG8bw15} -&bw+jpd;dB{RTA)XPX<~JBX>V?GFJfVHWiD`eg_PZH+b|4;@BI`+cQG4C`~U$qwClPp7@8Huc2N -|AAX{{zRhCpq?$6tgvTP@Av(A7oB=a18q$tbQ8W(_9b(S^Gv|yzz*#l}}T0FI|) -O?mcI9YX3`BFFGN-glIw7kCKTVzdKy3yb&?SAPu|7GCtevDshAGlK2c;88fE$WbE+3BohId!-^`*eOu -8%5S{!C6I|ybg!FxvBnO9g5VDlarG(sJKT+ipDtDaV=Eep_G+Z3W2*I8?y3cD){FP!R>L9lI!QNd#$8 -5epkvo`c;y{5*`uS&IhRIbBqfH1XAg()U=q}gXS$JAwW) -%Nh&h~zhesK9;4yS|R?A{yNEdiN1KNc{PaxEoajS>9hf#tnm?rQjH9}G7n@!^CEcQ&EV}&II4&TX7v+?z*o){xe+fRs)Cub}PB|ZZ2z_V7guBJSX4jR8!@2MC9O3V2 -$G^bsA=~dM*l|f$WMjg*wW_ZX#f5Xm<;DNGtV2teU`E5nwhz5czlQ}>om7HJZxoMV$9QM|4pJDSUN`( -L;J;8y0|XQR000O84rez~x%|$KZUF!Q`2qj{C;$KeaA|NaUukZ1WpZv|Y%gSKb98cPVs&(BZ*FrhX>N -0LVQg$=WG--dZBff^!Y~lL`zu!T0uuEHaHv$#7ph7TY7eNYtWCTD3&(bCrz(G6Cn1ou_~xD6nc1Df+Y -+2|TqqOC8`NB?5WUK(sH_P*!$6=)XMKd*EFqZ3yIuz?{xc*%2ObYjnQb@wvRQ4!{ONxFEY|PKl3f;`W>7TiiU1cQwaEJLGwpOx~TYYGXjImr} -2(U0AqShq){NqdKnY8PSMx!;kWRFY?fCf~@07qTk+I!on0Me!njE!I@HJ~{_8g=NgW&{incLbikD&-T -dOksW5V!H&Q_Js1#&}Bpha$CA8lH{G0R!UL`%hP&=$k*z-~35G{B?PGart(!;G3D(XA6QKr#01Z4W=L;`>uh-;fgbS3!;{)>~6MHftI~O>_IAt)D -yW8Fc&r4mmRBa&?CCBk18m*@^624FBgl2%{HE{LfXqMn0M}7MyX&eP@3bls$m$vYX>IAkjxH-wcBIl$mTJ!%?VYfvE_6;i7(coA@XUo8d5lBElTf1O -`OqxP2ea<_1Qh*uPH)(s2+c{~lkxgU;}1@9ORg*u;AWur -d1if@pp75*1j&Qw8uB)YByrz1K`qMi`I#n7&3oK1EL*RBK514q0typ35aN{%ka_XpM)&UH)))6-E9#~ -t9foRP=q3u%1)Py79_A+08kWciW%<=`QW9Z72-Q2i7X){MLb)v*0(T3yQ_3$`Vvjdy5~1F|UV1!=j~z -ME$NS39U~j=&v7;w#Ah)Cta*M(T~Mr>r#LwdF8;eth-vHPL<7xuQ+VU^(ryhH@@{TEi -XEWsXeu$M1bBx25bvjR7@BN_58HDr1lK(d>exY*qNG-uvtnQ%Vn>}`zhq%URf~8Qn{+c0NTq;S$gcaS -`*0cBRoOe^p;PRjy^T^&j~;);_G@L5sYpj+HRu`%6dy3DNXB4;hChLc!JX>N37a&BR4FJx(RbaH88b#!TOZgVepXk}$=E^v8`Q^AhYFc7` -xD@Mzul|oL4!%85bg#`put7Xw@xmeS9(pu}-#&))}U(YxuX@Xk7H+yE@d-G=8c-z83xkhOM)jI1Vd{^ -$8uSL#l2HzGt_>0xOos)AKqPk61U%0tB -``lD`?r;MbZmBacGHzb;L^ -#j07e!cD=i=wDCh5+|T-V}Rr%EV<>dU0`aOOB1Gm5~(7wtmF$^rK@RS~j?vik$THm0~iFjf` -NMnWwVzi9y<((cIM$fhSFzp8TnpqSCfTEfTqK7`GGj`#cl$#AAEn?dgocmi~g3!o?Wfskj|}@8TR^38 -=N*aoWolukL(D%hb`~IJs;^GWfr~*J4(f&Y_$OEdSkmI?Lm#WnXE|IBZDYSqb@rm9XxVmO=%qaq?ScD ->(aoTw$&5w{m3-joFU9Eq(z|O9KQH0000801jt2QbRvW&L98)03HAU03QGV0B~t=FJEbHbY*gGVQepH -Ze(S6FJE72ZfSI1UoLQYQ&Lj$%u7kFP{_@6aWAK2mlUeH&W3 -!S>bgW001^t001BW003}la4%nJZggdGZeeUMX>Md?crRmbY;0v?bZ>GlaCyaCZFA!`lK$>rfs$*M)P< -&#N#(9eciPL8GfAdyGI3>`O>OyHGEG7fGZd*1q-||3_uH>u01yBvdp7gowAryl0*ywa(fxFz$=Pgna< -!FWmzA~H_wBw>QZ#GPZA&F~P0?3Uz_+du@{#VnE$a^#O;yRfYuYsDZ>tKfs(7BB%z)lWx!X5wC-O~cz -OMTk+BcOl7s^hy-i4~!Y|46Le(uVh><)Wr?>F{aD^J#KvlDvkvZ9=00PK}zTMX5Sy0`uGLv(EJFYpL>VFURc-rBpuVa_{l$Yv$M7)3hmcES -%sPZx0HTP1beOtlEruRN;LFkzhe0fE`Kfb%>%ORkzxZ){mSd2QWCYXOGyN9NQ1+Qxsb;!Q$3%VjJm7* -e;&ZsI+G*vQd^X*FI&0d-=@9ElmyfoFbW_HrPD=W)mo0Uqg)=j%oUDow#sv~s>R&A?m&IIR?75sC3mv!uHZX0pkbPQ -$C|90|1GOP3y1suRAahP+`YC($Sv~bOLYH!BJyZFAF&?B3F~c(tmtom{P8z9)rTi`6dcV2^?lz&_o=crhr&oLBx7S4}QN3}olx?5 -|eD*E9|`0dMfOX+8+poZ@d6?*-EUY1QChr1<%#x9N%Izw28tI~}tk<|q@xvpewuH7KH=(9yM(7{hjeCrWU -oGZvJ$S|)mrNru8)8UH7uZ@A#A|w%ma+KX_6)Rb-6Yy%FDs{I)*;)^^D!}o~hoN23)3TEMX-v~Z^?O` -TJu)-`>hshN_QWs)3Fwl#4MAnxpMFD^1~hbk8fB8T>RY)&2fW&nrpB#S+)$^CLi-bgRleBD`~&I91+# -K?g`6=t!YMQewJ^kqYXCTk_LWgNbQ?q-kvqR4u1t6a{=vBCynhm`MDL|=hQ_KT>yt*9e;~wr#Eta7elS|OHYr+g9jv*VZ+Z7AK}NwJ7%d7B`lRJI)(MPy)#M4e+C;zr?I8iW`lRLIityciO{zS#Fj#A6>Ri49L&;eRykmN=R)PM2a>nm0bZCG8^(8_Ryu?j4kD$x^D@B;o3p>q -djpPGD;iZ_FTRN#{oSV*-m^Rnqxbr4ngLE`8d-QipYZC#fw>8e?UeA)(;tfC2Ob#~vBg(#Ybx@xilu} -vnbtc6)2ZcGg&(&Gs=_LMNsYE+Cn3H}0L#ICGmVHJ3!!)0f*miG&`c$tbKdnlk#zQjG+Z>AcE+KSsdf| -yy;pRO=az1K$I5puHVGbce3kn!AJ*RsAw9t)9BON53Rms28Xpjv|m{M?tutW{(U!F2*=nbUXxSt3#@) -qN1b@cYO`7>}xgoeKX@jE{&}-1VS?>#+Y;9-@1i1&r-=*KiPgQz!oSi_anWulr7i2L -l06><5%U3LCyx;_d(f?=-iZqWFhw8`L&p2X;U}z(|ZHUmsk7C1MM%_Z~GD7`X$9tYNq&oI|g0xLx*m2 -D-8QoF)KEiZ-Wi&WK(@=@Jm1VI&}-I%E#e8K+2^x+obn+iV1A=`agw9*_X>l)LgD;3nH_y)JXKRpdAF -44vWw0%V#8Y4A2vAhdu)zRl_l%pKT-1xW00zxJ3cs2;Kdg7my+d9+Pm7vXZYuz=`TwYjp>0D}#}cyML -Y)YT#A-az1mrbrCSod!+51>(D=MIes`D`VXP9fn!Ll%e}!pPhpqoqqMN|Mt1xdv<|qafYU;Z7SSZcF~ --j^@j=W@ZYB#;;FzK8Jm3q6KspXU)?pJ(l|eXW>OjZ4Z9w&Orgk!X%ebI9AN1XGf -e?C1ROb`3J@!F!$1b&)Czs)19~9U%MfFM6-SB(O$1qcuukOzE>*VG3)Pi7MoVP35tmq=wR6)%pb7LIx -MhM`LfN{bOT63J1A?xVUHTllpmktBk5^o{0g-xxev}QcHl(rsdn|g;;qdY3^c&+)ak3A%S?<|3nBiRI -!!6dpmN4i(bW-{{xi}y7V^4i|a8o{L2egvyFmTT|WlBiV$VPX(_DS9haT*LggAEN`IvR;dO$Mrb>pIf -SqnnACl|*il#_A5X8#%n9$$M12gzU;{A`#$ZErzHR{*I-MdxU_VAqoLK4&Vf=o3`ybfkueZ -0N%QnVocvJ}G?Ll>jgA&jnAVD_bSqByi920^lP+iHn1~Vpar+ka{EZf)wg-4eX53mo2T;0GP$+yHwjJ -ah3UPU8$$Fd%Y`>X;Kh&&AA&lAfxXDk4~!0dJ40=}uhY^}?j7RZ7Y&+@bouWEnxu#S4}q^>C&t-ftdm -WY%EQNYf$(Jo&ZSlw4-S#EDllAKjBp5NZ4E)zxr7Bq$y;CMMksTrCQ2-mh)gG&Yv6wlK0bG+#Wxg@tG -_2EbwFU&l>rzYA;qWVrMz10D`37C1K>p8fT8ZS^@6vMPG#($3Gxg3qAzZcjaR(pn>W~53a5~L>LG6k# -7CXwPkLM$Np+1E34!!007G*P~+2=DdvZ#`%#D0JBnq{g4*KU{PTQ#S^>XnG8HsaKJ@Q}!ZIx*z*NDG$ -Zdp8JA91+~)o6M{jt;0Ox)2I3(%mp3iL^nzd)y_0TU})aPp!8+=?D@TjmxVY@5C+gpTv{7~;no4^jF@jp^Lp$dARir?8JP3$DRf1^j4&4 -zXWwhXYV)j5?V7kXg(INs=KTu6g1(@RTZ<&=Kc~@z+Zo6S?=`=Sy>cP_0wMeK|TZaGqHB|hio2$%p3!DrU%>B -ZL5)67#jL|nj@#!=1;G-`XKIU4OIa!TbRW-N8JPMW_W-W2w&x^3XCn;SPDF5lRWn3;2r=(VI+%dj!(H --(n23i704d=`dr^w2hlY=y=35?5DlN8#rD`Z1?pu@N( -BMabrjvq=YhP;0BN@00~U`5A;xBu`QS`W!G8eGt1zy5@%SkCq*sX;d`~J~yj-J7puRmlh!qM1c$mudL -2VSJzc#?O*ELYs%A__v(#ZZ`Z57x}I(-Ge)MGgBS}F{t*hi-=EN;jOaT1(%C9d+~Yqpx{_n%GLODec82^&XV3m02fA`#8js3=?C$=7^0GS0Np+ujj$2Dj -Av>RW%_*a4XdCG)?_T4YPbVo(e$-1mR{!5i`Se&88st$~i7n-A0vN(;helLJNh&e0|jTk_n9vraqs+D -^B{|jg;^LM$^l1>w0TI8-9=g($i*Vf6xKF&qRa?sWW{`o$U{>)#_;6#Z;rj_Tn6w9-5#JaacWM^#`yy -u+9qX`^1pkAhOf<*8Sqe|3)kKP7vYlF6)#1McH+zVke3O^xBPoIOiC6l*^(CRNG=s{fK;T -aORIX$IHu5MZLV2E#!#66#1)=X6-^1zjFTDe -aFXk8Q8aT@JUI+G-xBm?O4ICxA6U9dwJmaf~TL-^7JI1?QNsfnqIM*PabCg5m0l_UBv3@Im^tVR#S^U!1>Wqe!wK_0+a-yJ5EbDqFp24-ySkpn^N -`x(fcCeh -n=#4pn;qKn`|MOVVu58NlO;Mv4mIVX1lbNP?2LCZHjAL+Pj?iTjW#=k#XOf5O;dmWl#EvM+3F3SHlch!NL4qC(^mV3_y}2`n~cDL~81H?Wrq`6# -Hsm0NraElS4|4@%PEIq!MeqdF>1C*|#yzzx-J{%tG%rCkZX0h7K=L?Ol93np1|^OhYDu7)YMj%@lL{1M1lqr+s)!A(Efx}{|V4#cLrE1B -s#WMbam;~bXXR!7|*0x*Rlh3N9}*17Vv*@Ce(+Ls%2-1p0f=}Ofl>SIe1iCyO+5cJ#xp@l?l`#)V=eFczw*!6Bp=Na!uKu&OZ>jotW}0gJeeF4%h -NP#w5n4v$Rf(FNa&&H@JKVpl5KiC>ryvJe2QADXrhS-a5(Z;>7?8VrSp9B`f}HJ$m4PNPJ8F~9!&#-w -R4Y$btP6-^-lXZ3A?2p)j;dqhqT@{TO1hD}3BHfqacnYNM5aM?i{ygeSW7L&knbiw5SI2;y*yij^)*l -Hp7bki^w9kadB6x&haaKbxm1ayaN#i_W;Kt^QlQ(Pf{4q&)3(Y820=X^BBP)*4NQC#ELw59g?W}uZR% -v|w*&!+)FX0eg&Qbcq@OVGAal#okH1%o|v+JVV6&q`-SfmpSyDC-W0X=`#!8XaLOUMGx5)>!S;wdKyC -0q7BvqH?qI&UBd!Y8)1wP~C8J9?g9Shr0P0Oy@juxA}xLC}TyqCmO^b%|qSM<#N0v=KR_$!XXhGU7bZ -GbVJnNwTFdgoQ$>mm~uVr!v%`A2KJ~njYQhVjvE^r=%o%=SXrf*&llbZbS>yQRSl@YtTpmh@hRnS`~hwiYq+g9*0cz_wTN&sV&fmg%`qKT -NvG+p!{>Lok3MgWDdd#bGC!4}HA~v;}{8-lvBga(d85 -TVCg?L3L%)Bo63_(nt$!mqRBXnmtv!+0le(9<1dtFV1zSY#nawv{n`M8g{g&Wx(&(qry7Ketmv7W+wm -aSVj^61w%S70(%_L0wcI3vUlMos3)>U0B}SCOgK-WI?{-szARGO^_kK -fOhOU>c=&R)!_8hU@xk4QT~|F)|5~%o^hX`BK)?9<|nQceCn8^8%X%vAFt#vAI)Hx*BA@JZ)_gK^{1k -T^pR$u15UeP%Z+b4!x?hmN~%GtCVSwrlz5Ph)vowJx9Xl?!F&dNHA4}K)W_FAZayAORxI0Txtq^XMH| -RW$r(RSp(*z>yF@8P08|n8l$*L~u_}q5q{#+Mo6dA7F-d72tiHF3^wi1`83ud(Bb4Z4CN}#SHp7uQ)v -}~SUB)(PHcgQf -EXT)az^6R(b`BzU6;decyy^=?2Tixtk#&Rc7MbDT-IOqL^pSrs87mEAD9#5CGIYcRdg&g*RNc@!^D%G -jFo|J080K)j>DwH$8=6U6D*(B;NUFmngJ=*_&mGnhmvkMT!G%ZDq=<%QwMk>c<>=XeAo9l*!4CP9@!$Jl -#@H2Y0PXj<)=i^9tgcGsjx&{>qF_7Y62oUgq+shdYUdRpO6WE^o(=lT?u$y@Z)V}Q^Ll+|HSjd_bVlYztCLw;} -ob2te=ZziGcmIU;>pYOrf1`)a+cSoi!^>qHop#?Z^G_)?t&sP|nx!{J*pRc)_L)#!jX*Nu+1okud2gK -K-m~*-_By1(^h}E|y>3>NjPoKZkMBVWiGII|6JmLa^VC+=EbxOJnjY>X$}{Q8cpLYRI)~gY#4q|x5c; -y~r9F0bRySvSl*d!`b|HnY_&_%mf11RKvvyjCr#B;!HM{6qOER@rZ^UOtybw!tZMGUZxDkSBW2Qpkqs -e~zlbk{$oE;tEi0BOpfotWUtE8i+XpE_%M3)L5efHRmpN1LCLj>af@+EU~;^@#&MeNurLcbJi-^n#D9 -ljqzA2e&Vb?W;(BWI-NTm*LAF@w$ItZu4l2SKDEv~)e&Fs0@2b*j37l0UiG0lKtsFs0sDLE1U-cwKs? -Wnv_!U~m{v8vw4J?+$kN4|93?Sl4Dm!eK^+$r1TrSn05n6KPxwXbk<-fGC-#j@$6#Zn$shB-ML$!x%1 -#z-_w(Ov*1fEz~T!#{h$Eb!rHG_o9m}wf78O4KT`{_yFAH?%NVy0D+*^zDGpEMlY#jzy%JJ4%$7WmJp -b40}ved;Bl)CQ*CnsBw4`7lLl_&h5`);Ea8wO^IaBJ{yMhLN$GjQ3#d`BPH#K0UGXQ-4ikgH=mVj3&Rm^kjPVPU=KPjrPQPXhl~ZEtirvrl{@(Shq>+$yDu|v*(8fIqy#LSo#DV|!LFup -%^NCM#WB&3k5oI4zK4&=Dw(6_0l&B@>w%co3#+{T@=>iC3WJN*#!ENysp#bZ#hNmrGM9v8XHOKo&S0K -YI5a_w9+cttydVVwQ--H#4Ke#F2E%ResssGQ!!l1CVld{L^!TKSWBd?LYWJ|&p2i7l55}gYTJaLCc!^ -^F?B3D4aLJAxr+Do=CoRV-9sT}?^;fZ)qiV4oqp5*Q~5lAF)=4ZaS>g -JJJgsM3tyrX{swk%g9xnoD^|6Oa)M+D}M8PgszNEZbF3Bu0hVDFOP?ifBzwR5A+r8h;_y#60hO9KQH0 -000801jt2QgE_eLh~X308Wws03`qb0B~t=FJEbHbY*gGVQepHZe(S6FK}UFYhh<)UuJ1;WMy(LaCz-L -Ym?i?k>B@MOjdCbjJP;SzSLdzOyy*G6{}*)Doai-wb_HP(_)6=hM93LNl-|V`omP)j8U3PLQx<hFwUp~;)mkF*{L2ru+HG+V$-mByrYW3=2l551yIgc -l8_cR$SM^(!>a}T>a;(*%gbX?%HN;pgg0ePx;|UZ$!`Z`3Am^G*u -Gk2Ur!`R<11lUzx`*;i+t8y^v$`?aKB_cE$F#yLJrlnjXHSXCr-Ya1l%&T9H&^VoO+#%@($q*#+&cSd -@$FBq6!O3YNaR-AX&LKYx98_Dym2U$4(zyn6oKi{YMnim-)RXs6ZG?I`5yn>ZL!4e_9HujwzI;g`s?Kq@h35}y;j&$H=;CjB{pn&BCCaX}rdD0>B1ZMM*Q8D2Au`Nu6-VV*v;14m27 -1^%Ty*audw>R6G%%pL94`(X4Qms9C|OqJSfD&m$`OG%)>s6K9_54=a -qTluw%Z@m-2FV6(Vu`97#pOn0t$eULyOfor31u627P6Gj%*WU>dYLVvK>KJ&LVF-E<-0P6Nnh8RlY=P -x8NkLY-~OZ3coTB-3;nbTfd{Y!Wmbr;YhcaBm9(2sX&FT9G=`2}>izV*(ojxsXbeSrXPeBk>L)TSz|t -)AIh-cEjP*nb_rCm7o;$SDW}Yo{yOH0r?z}nCqSAIpt~SiM?)jFt4MSlp>lyCW5)RU=x%?ZPs2~X -=fv2`$IneGy)FijZnUb1L4@*?syK1ppm#x^g4FYm|n!W&r#z+Cy0oDVv4fzv@m9>+T?QM4c@X_ZNf6a -e?{@~TvYX9y<39KQ;QPK#p1TC-vXuKP$}VH(qadM)TVqZg#t@YNKjwF%37~AAX -S0Qu)yiS!KJJe*MPuKm2h?fBSKdiLN0T#PeGOgJAlM2ckrt@D6TGg1N%birOHJ!5iN)n$ -7-5zuv_nq9k)^!>7dAAu>Wu7^UfhKvY5GIE%7Tu?STRs(=A#IV8Okz}yPd$q2*TfL9qf6y0Jo~fFkMZ*WZ4l6+B_wPvYg-OYz$WpNEP8=+fnhVeONxR{zS5T`hh7@VAUp#t=&d5~oGU -1?12&EYng4v_cim0F*{T=XZ~$B;dBP-Bg`+%v}<@qr&XvI>37}X7u#B8#m)b`9$bU|EPBp324lsjO?NPA-It%@hJV_ -cta$rYHp8J)8JgH{yVP#NmSrsoV!UNml}ctC>!D&FwlZ*YX{A#9kW{*2yHRPa~gjSr1_p`tY-A(6p`t -5yMkesgV=f*`TNLqi812i21{HK+$F5^(sKrB;cKWoZ244y=vUZF);M%|AE|VFsj50$Q4*5ph&h`^+A0 -8b%2Xf9%gK3jGkzpD%#bwGsF@RCe!)Z$WtR;a1{0?qE-V&g0D+4xD#r3>^Q!Kb_U|Z`(HQX#{Ihszp^ -zNNZXkOMt>CsX3exAh;I5LB}XlwETb6KfmsIG)5({L)i{Qs80yCgQN0@1f*GKdI@(EO+w^GhIT4`{$- -+_&KWEVt)XPs=!!)gAF*W*?~ -%_uA8RQA!BDEz*(w5d(4wSkPQq8crrL?UJRUu{XIbgrng?*;gvh4^R8L-XA5I2u2D`M?_GZUpr4&xa~ -7*KQus;#@^MV#R0Ss0J3m;1pL=Z5xk&wPD=u%f^#T0Vye(MfvXwRyVBNqkl9xz4`nLxU+%lmkV_S8Pg -#OhY85BrohBzXe_iVI%w9*?xlV-@tS^(atIavP}#*Xay-Dd-LHm3wn?A<#A7e|zDf%ugtm<*PmmM+BW -R?Y;TKOK?F^pgO8-Xa53)ZflesZ|bIehZ4qMbO%f1Rc2D6-bLMsPOT5<~99QS|GX>`_ImP^ariqwgvJ -{Ji2I!=~;DqqhaR5QL!M1F^+T;+n{Nu-D+coXB=wqI4zn?tdZ+T8QK}zi)BSU>X@kCBLo;q86Rl`0n- -5r^|sn>K{k_pIUUu!aVU@2fx~`6$t!FseWolS*~uOf*8^b&U}MhxPJv92%U}!?yIT9|3Xc5pvN>-`;N -`^N`*|{3g&CPaSl_GZrlZKj;-RD0_uvi%G4~B>48&(NA<^tQ-x+js-6*LML&p(XR(i&4-)bV2qLw#D% -&MxxBhUfShWPUpW^tjDy+b9_v)r%I0<5jq6GxjN$Iznyo2t7eSh8YAK-dXw&br~RCV;mjcNb%c4t?<* -_PnW-7Nssq>5UU~(b$t7W8L#1PKi;;LD`Wzf&3ICj|dWBjE`>0w$`>ToS($7OC311z0j4mr8J=yeze0 -9p!CSO2~#8Jh<-LGp-4-qS=%Di;McW;lXhEeF|v%=3)qy&x(X-F;g1_S`5Qw{&B0)lT}oLSPYgOG$@{ -7gVM9Q2u4A;Op+JqQ*0-QR*r`F2sx`4eJSP>YZ#-q}zm%$K^|DXH0J0WP%(I6CYbSr8_1Bb?%Ere*Ja -}O)b7+3no<@6hGe+;&ELhho+#6-4k -P;%6RvmfARVE^sluT^wl7O-bzNBb%I^Bg$9Rj7P98F&(=ODZ*%jBnUqYErznDetOG*GhM(YfEw`Lhnq -aDd9&aWn?LhGI$5|AEGAS*Oc%+N|fe7=nw@pM{y3GRs|Bul;Gi1l=yI1^d3jn=5jhi%`|0KJm%~{CzG)-+~s2e;>n?c -NFTKz6$4tFm?r7a16dhKkT!f4JrBDEG@^Kv_qXMPM8=|H1C7!Xp;JoHR15UfnbrBwlkq0VbIe!ppW>3 -3-iB_pYDkU{MgYDvHK;NeF|U_4x=P9r$a=a70kAEOHvdK^2EIXe7T!q+N6Mye#0KczEI)v~B4fmU4z) -^%?=TBufhojA0PZd@!YTDLOl&N01kT4Ww5M5!CqSbgcevS+1(1cycV)H435KC?FdO?J`4llYZ^Hc)*g -p|~kP_T;(|{;XX!?x93{9J0g7_iLCp{*d~WgPo7%l7qwyXH405B-7U7@9BW#!BaWG?*9;b}{+;(StxSs7PS{Cn3n -P+>(9KN)+-=Vz1RmZeOqze(ql23pD9+eevpN=3RKh{JoSA+A=12+M*>=sCik}c#pxRTst(ijpjp10b- -Zg{xhS`C_V!|rF9WyqM26r{2Y@{m`rCA+oCMG=PUN8X6yo?oT%vx5KLxU5>pbI;-&&2amm@QUAtRQFo -doQpcNxfAWxK+!WcOx@^k4{{bO>N+Cv5*n) -!v=}!%)xj9fd=J2Ayx=ZM)Q|7N=49#Logpxt(bmko$Qq28fdN;|DH~I~c-^B_{}!(7N@7$~+>4{gw|=m+zw^%gpe>qFbp78uAk37c0+_7g?lMuc}sc(-9N3_y`+Shk&5*wTsxeU&l -?@xb1NEW!N$)L*h2Q43OY~+aD-GlB(4~w&kJ5;26&wVo3UnrsIr*3MHR%Wil$2f_G2+KoN2}W~+LI7e -(wr>4|f|P?nx)#q1HX%osz(=3KCh;lkQB=J10iKZmlnYqNLkbbLp-6Q*m?T7w6Sy`td|)1;gpYVx9vdMD8BbMGdq@45+zf>diRENeWMk%@>Kh`S4Asz -y2tSCV+TdKyJiV+bf;ZkS-2^0aaw>XQh$1K|&4#_pq`ci=ervM@SSAh@ppN_ -eU4?F={^C1$WSL<8g9ZbAMRQZn5IV58Shg^N4)bxK9oS>q&xvBkwIPo7S%)E*$m@-t{+T>@9y?X&7e8 -<43Hq&PsEWeSq&9l@Qjxy!pQQx-je>oen{XM&y-^rv3YF;8j7TdB=Uv&%4JWZL9Ky!gJm^yx%>=N>*d -Ft=FD<3X_@~NnuyEc#GJ47nezY#AIDKz?S~Kxh-fF~z@qBYY?H1P@|E9l{brJwh -S7a}?dS9}fn>eO2R~5;qYb#2U-=bp#?@+cf3if+Aybi(>f>Y+XYK}T}&7PrhL*fA#U!vwS3p|2!4P9G -79FhSvr(SZ0cbb9RQ=Z<`zz&IFVWx_C=a;!|k6Az7>k{2 -7{(n`4Kny -sJu1^fu|j1=aE>HW)2UXrz8r{PSGrZJHc^<JRtC@f%NbA>b_9&O4?;9Zjn>hZ^m20iapM?ef$ -aKMIc1@hIDb#qlMSRq21edFgH=w_gp|9}u9m2Ra&e;&giUHusO{Tj;QSh5NPS1oVJY#RPf}K -r(=p8Sjgdy6WWNINF2CcSj13=ca$i$R<}xR}m*fX^RZI9L?UqH7Dd>65hccAx8q=}W#Ai5EWsgJianuN-=0#*?Jr -VhAwIL-Csc0-rOqjo~-sLVfbYT4Ko4F_m|`qxDLJSWok7O2IPwpdO)wiafoiE0{Z*2%jYD)|SLZgLBCB_Wcr;#&01^*BeHp -FutC4cxkUdL>Mbemq*4%ro`%i3BP%Fn)m|81l;3;58GrMfM&wu+aq%zqe42p+`8R));Eo|2h9>fLi@Y5@_67)H&+DgzRhya8oF$YVn1SR4w`Wu+* -Tt`;eFikBdT~eO9jXvlw{giXPEHDn{v)xUeVqkUE4-AJS#uTK -0n%em~;}J0fT~{LYHrZdWa^6%<@K=F?V)96Xm{^QDjgknWs>vs>L)^ -{levWI@*tx$=Mats@AMKsP`cFvWOiw(2iLtlEqJlyN%CXXjXzj8rf!P#h@1&Xz(P*z_2f1xmHbNAGu< -T*5c3`Hf4XF-=_VPn%XnVob%a?+T94|E1!rr6A#Fp0M(l%wg`%3WIVajVV*~Sxo$mOFl*71 -V`17H6jsp<;Zy&RSL)BZh-K`aG!DPqNRg*iw#Kih1;?RhGN$K$c<3iKD@xnC?idE~;{YUV7*J&x2L}V -5`N}=Up)Yp&q;zTEK55*pV=%NH2+2iCP<36Y*IYt}@b!c36KVt3lj~O?hxC1%Jf9+18WBs}To&Uge>0 -oR$DY0{*3*iqfgQ5h6ZM7}Tkf2>%fqfgw*V{^BH4d*ne)by+esC8hMcepn0_!nYxJas{<)-K7L(juLiGPVR -=~j{K1R9UdPC0Htu00>98b^qIMf&TwTtW>$I&tqV?ajkQST>fog-TqF}EWAJHSE|(OEN!HlfQv}eTle -rO|hSk4IWj>k`>F#<98EW09kvwMUm1A)%V`~5nl>Ov4jP#{gk8-imAIE|JNoq#kga1ESs|F-5=Ls+wO -8zeC=8+E?z1x@@^sZ99a=M%kXwqyfEK{5mD=zOqlu&xdtynjH9vyyy%jdhvD_mjYw!y37x<(FTqN}?G -0Q#%u@wsIm6nxqn??o>h3%N6Cyn^hRYi0||en_zH`O491xQ?vNQp7|NOfPfmpS}d{MUkp5_iD}fA-Dk -pI#H3<`0y-o^04A=xEkK8AMD-ISW+?Elzh^w818X@ch7Z|+@P-?S&T(Vl0@ODOowbV#o@yl8_xUhIKT -oWyh^yFC~6G(bV8}BFpDAmny?TM$5|Ej3b%<4W6v>n)Km*jovFe4s1XKF9D+r -3O39by6Mgo~4$oQ4vR*DWwzTvQx9o0&w+u9gpp;swbAQaP~LqHA`PS9*0#HA8@LVwe26&k>94+qR;K& -1@z0RWDqg?Bq>FJq4}H8XTHOV9t7ba@m1dl*C~f+rQ|Iz|NC`&k{ZWmDp}w=YK|@qBFh(`bBeURYEeP -m2JlU@_M6@4gJ{Fz8^uRjY9Lkc`1klt+}Ip#U^-Y8CwBZ+!(1sm&Rh27YeBS#FKi-=y -qw-mKaCijsh|6jP6YF)km_|$M2}qMRRC2(r)_2CYZPm0`Nt#>~e!_&SJ>@O({p1e3AM#D)f^%Lw*>_c -az#OCIFqzT?&W@r(0^sV9 -e}dZsSeAH>rsmi(}4As@`ydooH%ck(M^x`K&D4X2x%_HJ%J8R7qAp$&(ndx_46@Hm!8^r#i>*e_uQ8Am-AmiGTgoectJQsYG84P)Ra-8{u3CC;E1prD>aK3G*X=E{2&&_xR -J)sgfP>?Sv-ex{5inv-QTGrarq?KAA_}4-JwKYeUzt|&QL%Avo~Iso2}dPgPmhUwBk#3O++g=P)Ru36 -+2|KJXB2JKFL{<7m(lPpM+Hk+Sf`z1?;)|syz*ntg3$3DKJ#jY?B%yTWymy2c`8vKKekG>&h(tn -A`tO!@>_SdOKpNIfVg2di@^;w$k{XZAdi{46!?O3Z9nutz(9uF8r)V1$SRrg0JNn}gR+{~3i}*(ncP2 -Hlm0Q#nmLaP8B7Tbr!Q^E##s6z5x%6WM>$=3U2;P-IE>wV<$`k-F?-eK5VOfI+*auY;aJ2&>XdhllKn -uL%nK;(vaQPlxPZ|GttlR*t+%J720`H&%M30QMDeicB>&kIZoUqSl+U=yHCHqSkYAa{~#sJ2D6Nb=Jx -}Rz8=YjyUWem{EYIs=bK#miLpQ+S~e=}NoYra9NX~L*NIoo^K+Y4zKU<(mWr-M!^8iOu5ro?N42rn9U -GAz9=+Lv?4+pu6xgLWFt#FdgaZ(}q+Cs!I*xIa>Q%|+9%uo1R242$J3dt*hiriZOdz|hztx9G!=@J#a -QfaqLB@IUCC+h@^5ZoI9nN6vudIMk>R$&;=*u`#Va!xA*dA -+jdXFABS^T6~Z69HhF}FSJK?Q#}|Gsv&`R!eE;>Aw6%ZuiHPluC!^88?q%C@B&Ld9=WAYf_I9zfPR2} -4)uv@a6_ijznj(JTkvI}-qzaAhe&95@EDTHZ*mOEo6=58;weFzvm!JC9iLLbVpvR{N?UCAXPLTA4)|R -PkGB;Dne76P2iR`6XjL^Ytb)hN&X9zMDi9Rz<_tB((2!qP+KO^Lw=klDTVTQfRd3%5^oeUZnHAKTgCYZ6vXQxunFd-5=UFtIIq$$i-F1e&=fcjXA``0r --nHG91DUzLc`$ZV4h*k4rpfcb)N)fBnX$er>)nRRAzKo8Y6M2H@s(u9C&y8o+`KEqZ`n(A{JH5WT^55A0 -XBY_?5bgc6Yc!JX>N37a&BR4FKusRWo&aVUtei%X>?y-E^v8MQc`kMC`e4sPE1c#D9K1HQAp0uD@n}ED^|$OPf -5)wh6om=78Ioxr{my(ha7XVO80|XQR000O84rez~UByq4x&Z(HtONi6ApigXaA|NaU -ukZ1WpZv|Y%gtZWMyn~FJobDWNBn!bY(7Zd9700YTPgoeb-k^)rZ)i>H|WZhc2NFX_gXbA(SA*dc260 -B_U};mymz2^s4`TD>dUGr8zi+oU+s}lkZsqqSfpo -fm)+92eAG4ArwlErXaIMT?#(hmOA!Mgz2ykOUlv>M}nrx(LRVyP_YkKREAEopjoyUMC29V%vOp%fr=x -)YS=&T3zsx_anBT*rOwlN3+4g91=_DC7fNnZ{#U-~!}x7a0sGAasD1=Jmbj9@U;Gsx8wy?ow7ngCux6 -{2S_Tv>AsAFg0)4VJ>(jOSj7M*b`lv)#>dX{za4pC4LGV$oypy%`9SbLQyKSF6sm0ao*(w}A3F;Hjw! -X||xr&JWgXflB_RW@ayji8rh77C`;lbDsu1dA?@vU}&BH$XqGZ`JcV|H9yW*H@IMMd@W+%KW= -Rw$3+k`474mnG2NVg?Yg6`~otjyS{h>n!f>1O9KQH0000801jt2QY-P=Z6^l+0OT3~03rYY0B~t=FJE -bHbY*gGVQepLZ)9a`b1!6Ra%E$5Uv+Y9E^v9hSzB-0HWYsMui&&kNSz|Idl;|)?rJn%7p%#GzzNW~o} -x%}%tn?pQg-77`R_Z26e&`^#OcisDRszm|IXp1p68LX;Tiem)Tro2e9VMD?m-#f|1Zd4Kjke)Grh -&7bl4#p&ts>Dyk9O*fDadjx(`sw-hotU_|c(mEu^peVV{X-NL6YF2{Ikc?IpRevuN9+Ha!=shWGMEaW -Udm}IC^?FCg=fgLn_~QIsd@>vjjs~Mad^$K8!b&e=oThaQUPc&4uQxosj4uc0@i|U&8l~mDVmbA>_s@ -rCAMVG4gTIr5|6UyYdJs>3`taZ%ZlVUiJwwfLoaA{NgP^gr%{!9XE_m*R9l~Xjvn)aPhMbq&nm;b4rT -!f7bjFs{CS9hY`J8~OX`To{wn_DecPW)I3{>DNSPfhmos#&5)_xWedRGB2&Ei^y_?AK*U_M#ob^o+1X -v6s<=8GN@A9FMoH6#I2Hc>elk6<8aI%7Zy$iXZ7Tbb{9Z)r`INxq;81{ui1C45DaA|p%6*>q*Bl3F7K -KXL=4z&=uxHDLwGlx6tiv|jK++bzjTMW1A2V3}xkg#X$5pQS3tbHW6A(28_t`;rqD0AwXav>{5ueos8Z65B!15utp0fK4c0-fB!&yL%n|pya=fCq;_SP$TXRD>~d -BHJ$KZESTb7>iaGsv0p@4l9!n!9uY2G(&^b{&kYO}p@8Ek7()mKv5b`CoMkU3B6%+;ABSY_!w9Z#C=! -?s#&!A#O*L&UP#>P=BY>dG~IjldG8z=%h3l3z)J>SA$GaPD!G=Q -j8)Y*o-%$Wh&&z>p%xA$Z638fxIFwKi3Q>Gg8lz;&Tmw?nikOit&qy9Vc_+y&m7NaYn&yiPgNa%dXoP8SjRE(!hh!;pd<)KCj+N4g)pRcWKw{dq{=sYo&Gz7 -z*B>FIjg>_*$CB~dxJa^e4hXD{<2KZS=F`x80ZZ7r367Z=*eK_~$+9i;*chn5%H(tj9kDEA53p7n+ym -Rh;uB@Q{Bkzg5FY2XnlXAFfx{3g`0J9_y^+U-F41K&A%eAL+?CrgTZ-+_9%0d2)aD75>(>$MR;q;nqClp})4xNE;B$UJyE~O^mnkm<3(V4 -Pez9jN)8hur8vD+pdJp{G$RCf*+A07uli$tGMe@WfyU?DYx5NmX#8x`>o|hm&~Kl+)_l_^5>S%V}agW -7JEf^M@2ayZQ84KAm7|#?JemEZ5B>-v#0keC$Nz-bnI-ZwXAc0~G4v_sMGG`q%E=CIV~C7()Qb)(gD$mLP*=Up>AZ5R7?l@Zr!UuPV -KrFBtl04!M$V5q4#S8cQKDyW-kSy~Wwyh+6P`%TY_6dd-w`Z;)~p*XrG)pP}MpQO^{V3tH!8D$^Sh^|2|wB@mnlVE21#udTUHJ$lJ=3WvU -suQB7KUKV};9|8h*@Ze!n)aym&KeG_|n7~*0sR5O;OR5O&P2Qm^3e|Ay&MSb#(>Ny}Gi>3T~T}q=`_sO#;*8;{07?TWrRasT1 ->lilw8lqYJ4;kBTPN2TpA*2b3B$)nL{0MpcVKDRWY)B#3lI=TyTyl*UF?QqP(poXhyC8Bcj~gR$$r09 -jB#1KL_%s#`nVooQ#!kWRNdnEccYUT^;!x4nIKJ$Dmm_JyYJc0FkuvRiaK-*$(9sqV?$>96jA#-8f3V -eR+3PeslO{EgQr__Ow#$T|vW<(Yg*cTb~1N4@?vyVVXc=J>NsMAPGTh%iqNn?y_;%I3Swmu>&p%(vfU -Fx$;VpzT{bQoOd!g&RvnjN2BEC&`Jfc1bY@nziZz&c`YM|L;OofY`N3ZiPLtTIGk*qP$Ep;fuhHxm2` -w2XCZHdD&uKiB4sMxh1dTTe=ec5nsS5>wi#70|XQR000O84rez~EeumzvI77B2MYiICIA2caA|NaUuk -Z1WpZv|Y%gtZWMyn~FJ^CYZDDj@V{dMBa&K%daCxm&!EW3(5WVXwrpjR@RI4J_1-2+)#7$7tEm{OcU> -F1~&3ai=>{JHVzuDv -=R-M;u|u>JIu0ObQQ{>QC!yewZVfET1CGL-E~~G?~KuA$s+`*-NS(*o_v1)^yepb@&4V#Z|tv+S63gd -e$6tmTUg#?KuL#S;^#=9c6&5SER9F+S-90&rYtzBAe^acum}*<5T3EnMvRqdZ3bO$6 -cz10bO(tYQk%Eg9CUO)^}`R_A+>2~5%7{rixbYcO08BT)_3T*b7rjhzJ%>Iu8ry6mx+gO@q6mqv%I2B -Ip^U7nh0_^u=0OY|%ot_~KOj@*o&)EPPsQU?1&>cMAM<$>oyj&C-IZWy599%GSWxcw`hwmT=q1_j+;9#QZLd;l?LGo!#aH}PHn)fDGTH5QMi4vTCd -LglM9Q9CZ{C%Ctt6XUXQc&6Rg+1=F`6p0z#yJ?u9`MZ-FZ4eV^BPf;6?6!Xu67nA|}MSFEblv`tbf5m -p;&=FQ4?BH5n_Mi`JrA~!|ay#sx(ZSl4(M(lLIMd>45Z|GGE)#BG^2S38wo5c7H{6l=|-jU?1Aizh2B -UcWbhE~{yn-=g3ng_S{cLlc)u%OYjNOz%2;OMMY8;?T;2a#DQI-FK$?YQh`)i>>;z1J(hM-zX-eh&Bw -U;b(6IuxqMWMe>me*YK#RW2OV$j8F|>`aEuI3={qh%kM`mW>zfC^Ru{2>QZ^gmH*>ewdJ%KGJ)r%oT7RTuAK&HBIsy%c;)A{25o1yqDR3P)h>@6aWAK2mlUeH&Rlu1P$*2004;u0012T003}la4 -%nJZggdGZeeUMZEs{{Y;!MZZe(S6E^v8;Q%!H9Fc7`-D@N%7kWzAwl)d+|idMZ?W#(V6fl3`Fd`nKSD5}QYUncj}@77b@V5ss*l#11DIp*ks;_v2%2EpR^xw`Wwq5ru-Emce#aNr -;JNUJ53IS|W*}>|TK&Qhk6O7tvB+Y*AhI!w}45kG_kQw?=@(K1xQa@kec3{(B12U@L))GptlWXxnwFd<}P8E|sSB1Uv-XLO~ -qYAg>ahf51=gaE4GHFc!BB6QJ;y)f}$;0?R=fgj6c;<@QwZbTUsQfhkzSg&5@pv-JDwkNA!|$yTk8Lc -v{eX<+_O7S~2Ta7xGGa?^>|&Jf5Wc`^7_X3vMu}B0|XQR000O84rez~uOarlRR{n8FC72?8~^|SaA|NaUukZ1WpZv|Y%gtZWMy -n~FKlUUYc6nky;*y2+%^*be?JA!0lHEu>td%qTo>Km^#b3;sN))rgI?j=s|Oeh@^M~pFXgL>_uVg-zeI1|p1%1 -py83W&adz>aaZa#bHNb-LS{R=YTzocBnxxACp)=!~k=)k*Q?641DgttiPLt~*&sab{a9Eu*Ol@;gp0I -~77Fot(Eo3F@?e)9!OS)oXY}Si4RqH0cZ_T&KWD;joDRQ3jJ8uY2-+FLxaB#(P$rR&S5o+@*AsMh)jg -(x{_zsL9XK3V95e1quMm}7fR}!pWQKT}VRTPmqxiKr|wN23kfjtPE<<9q5Y?w0HaGDTBxlP}FA2zQiQ=LH2Gc8-;yz8#M~(KXwJ5R#V~X(6Cvl4!$(ZhdJ@HaqUpCX7oP)v=mRll54hh;0K9I -dA0!^Io21$)I7ZH4|>6GHX@We8PCYPC)E+ME6lK2xV`;s>S8-2uac|Nf-adP1j702D9hGZ` -Cf~%^dS>9?OUez6pBPsE&v)}+rMMGx#{sR445JxnQ>`;ZhBD1z21&PH+zfjZ~^- -tlo*`@9n`c>cZ2}XhcIeqk<3Bulz5%aF#Gh`pN6)IctcW}j6pPqWKMgAI9<0*&vYRGaw8=A3L -TL`^H|t5Hzno|Ad4oNoGAXyuG)aRT-vE$&&vOpMs6%W=JzeBmJ5n4xY`^bP$|!21c+Q*1X~1AKXBvR| -9ITCgX|*0Heit`ah^$p?#rKbi=SnlhFJwGIBw(PB^CjBt7qg@!FmR~wj7p03U&S5Vgm^eP}93nq6k50 ->Jpdgx%jKTt9&xE;E@y$WzRsc?(fYE?S`O~=eQ*xhp2uAZFUy!dJXBy;cP*RK{Y{pmQ|j-35K4Brbt> -c@2p=voyjMrFKqdS$oR8}`A*+Zx5nHA5Y)q$qOls6s*&w+YN3c$u|(3=)_2acl-9|8bDU4E|Hl!W+CE -I1T62gJZ|h@9^XJ_#6E7`tRn~@yXxt*U8cG@0;Yr2khwK^3~zDi?4k<(v506wx)qsNQQsJ?om_jQ%-7z*%QY)hvCV*eg8q^vFo_ -KzfszH)a+yt0Pi-FS6`G54)&bJK!aOgg6K&aE_Ic-%~vr1~R`vbUl_8h0uujT?gn#@uT;p8QZAJ_J8B -f|MYeUA`lC++0t!K|}NEB|@RYKs{+pEDth!kRGG#hr==1x*84zr%?l8Vh>OdR!r%6{mP&GA5cpJ1QY- -O00;mMXE#zyc!JX>N37a&BR4FKusRWo&aVb7N>_ZDlTSd3BLbO9L?w#qa -qPLwl$~-5$IZJcv{T5rm#ZWSJ(jO*C$n%-HI;cXpeqRhvs*_Lo2Jy&a84<~n7NkB%6SIoW_h4z@u&gq -8(kLEEGSW`i-#p#z~iJ-9K&idg-Q38sYp-gD045_=FrI? -9STmK^b#92J1hs&Cu#LeR!-*zbm$|O1%OY{F?1-NVe5nSfSKTpwJ+p8CajPNT*!Jp<)HbSl!t3DOK8x -_-;xpThx~f4eZe(V`)AD{>Y8H`u4@hVBkB%1YIH+rgVgoO@TDJ2v6+6YN*_~z@$j4Hz>>e|uA(Efw04 -A+B9G9%+ka50b?>t(_B35lzwpjqk9X=27lVq6I>g1H;-U_5Z&6u4nNLtl0|XQR000O84rez~KuW3qk_ -G?(j}ia?Bme*aaA|NaUukZ1WpZv|Y%gtZWMyn~FLPyKa${&;b7OCCWiD`ey;yB;+cpsX?q9*V7;IxMy -LBiA1jw+i=(b{65F{;zq6<`7qAfO*sFIWuZ&-i(o};XHx%)6+LSHQU?s$Ce?zy8?Rv7D<^3r-^w414F -L7Ux9<-7XTG+z|PsfR-NbT->sld(b-Jle}VF_sr1z7wRzORuzJN0nIQCRef0>Q5QvB9miH*yNenOUFy -Awc6CGg|JRC;aIgCh4=2xDu?H}(9lk#c3kC&e5kdr4p*?2Y7G$I2L+&yi{9|~Yp+xqS8)!XRBFE3yG8ePA+ynJ=}^K7QJ6U%2ah9_9K(mw*dqc*o&`|eId5+pv39GIVym-8x)xY+&R6X5_g%yqp&BcCUIZ7J=nAq5S|+wgfF^4 -wbOh-8*75gz(&i)fW2tn~IU#4SwoK$q*j<^)+%xBe^^V;upR!MD6f(=ifo){Rh6th4u%abW6%kc?Nzo -E4HJN0IvT)Ma17|med3)%3+OY%MB2O5S6QAS*kOPt>>XQ!BltjYz(mLb`@2I{`kt+Cu8dV!<0hB&a>N -sill{=4v>uQ&JI8O(b>_h21-0Yay0E0xg{sHd%;8OxL;6NV&5`uj~+#1adQ1nrYA|>MO=W=ChEF(!IO -$YooJ3>Bfg9xu8K-(@CpBAgW5IwoP5Bk`(PaI2HU5(^n*f>rCyh3?dTbM9TPi_1t)sq<>or|IX=N`B2 -V2ixEM=qFrL1c)CyuP?$G8Y>ylQo4nXTLwcz9jDedZ9%up|G$-4Cbz%DM&H})-X94X~O{3+%#0X9Gs? -$dDD-0oC=jMyR|z!(F7==O(cM%+cv1Rgb$}-uk^T!Q;E7bKWB^7`@$_wz#hnz-wT`L_{&KddKP1<3`s -g5R4YH0s6@6nZ3t*Sxw*Mmqi*jd$}Ci#bDE+1l_+i?cZGTY?%0l?{){cL7fMrf`Lxg&AbK`nxw|%Ptn -{VLiH`fnZ=-WQ4A;6}L``7NJ27rVju}cVAVM2eK8o6noYdR@y9->JT=pE`JyvO7`aA;;$?YOWze*`Q>=?$sJ&qN@yo@G%Jmcqw+m?J2bx|I}lR2^avG -6VmfqP4(tRhl_+X~zYr26z1{Mub+PR&AR -&d?X$0+@p^;ANC!rrFeUW8IJo14T^|p=5Kmbe2yp7qlwE2{%pg`MCnxO4hgcRBjZqq)y-^;^%GMOg5- -(AVco)cetwQua^6l$XRz(()a{i^8BQ0g->SL}y$BW2t0YnOG_9~%yu5yzv))SdKkvtPsSNGh1)el8nO -D`^}z8d-=DM)w5{`z~tE1npiA096F2ZMGw;lpax*{d%6Q=?7KkMTYo$13HnTdfz97@sWk5s7p{)ru6Hu`S5PEH6`+Suf&iETl8O~GQO+y@I~0 -1MkRXBFzm49R#{BGs#?<6dv#1_luBcz8oZTjZD69ufszt~891x;sdu$#UI?D-j+6`BCYvzy6Jdlzx8; -OP0sWn~KMI@(JPfa=7F&Y;SQ^~#M!ys+dl4Gs!6WulAe;x4l^Lt9^J=3&^M{ILQOE~`9|OA9Ys|6^vs -b`0{C?3lg-j=YK)rh~oeozDTtrjO*mDgkEq7@Jw<12RgX0Pr4-74d&!}C}?;e?6M4NPq$MtWr|@2wxn7%}8@{OStxWas6;bq(jJDyq=~lMG>xHc)l^kgWRg -qqFt%qqZTa^*+eyGFaKW7=QPaMxOpr`gx(+EGb*+7LgYlMR*CK?2%V8^ypi^d=zD>qahA=*HeQ+a>H{jX*cIfCB13)bS~XM+$Y+8=%XYJ? -*WHV65!L4=m@+5_P!CXotERklRVEa;PNAQ@BWsAzMy)OAlS+2gE)P8)_cq}Gi;ZXdIo=54TTXR1sJa+ -W;;zyS`}E77L!>}HLR{z@czTQiy%0SX2+c)pD3n&tm6c?)0z+2q#c^Ur*y%zSpY@w+2?R;BSPztP>Mv -m9YO@HYD`JgSh;17MC2{R9v)7DZ2d&h1a`~iI2@N1zJzr{L$I~4=qJ)RRFeqC8$azzkfhg5m~ifY2IB -;(;+ArJ^7bI{xg+k6UqPOhR)QT({Kio`%^Y8gw0EPQt@Gt7IFI7;v3}-bo^TbnlJ((&;`3wW9durw;R -CdFe8*-9@EO~AgvgTRkSAMmp6K?J;b1ZJ9)t7Lb?_fIALubPPMS@&$$M&gHqp};*?&+=0|XQR000O84 -rez~#A`lL2n7HD<_`b>B>(^baA|NaUukZ1WpZv|Y%gtZWMyn~FLYsYXJvF>aCvlSZ*DGddA(OrkJ~m3 -e)q57?jGU*u7F*)mjD?s6t}I|c0F{rhaw1E#ZeOV9LbR6J9tI^`$#FVE!(+vFY`lU%j8Fj{7B03SZU+ -HHa1CiMjxS)70ab^!YE#{+R4(gLLV#coRy(IW*173? -AyL6iFxTeRvXTs|~Ao@yPe6%=)o-;QJ&=ijrH4_Xb0A-?)QTsos1Ng_|z|+SS#S|G!lQuWVg%CoH&wf -Xe7f7$@;j?|?(l2EXsh2>b=D1W1(j=x9H|f2 -zs~m(cbHdAl!L3Rli(X^`_H)bQXGYHoZ{AhQ{l$YvtuOQAy2Q4?B!3$iLIyHX?Y!XuoXMpg;dhzdD_Z -bQSLhJ)`jIA1}+1*rksmKo8=WHePx|luREpKnTx8PA1h2w28^*D0EOtk7>q-BQInLs&V13To`q8MU=F -W-0#fdRcOn{Hi;5e5>>{#&pP@uwh-rw7R6^1jug~D^4uTg}a8n$RkEqi^`5*QJoBL+KAsJ%PD_Zi$|l;zj(d=QHI&6C7>k6m^orzsB%MjImAJY0mhP~tzGOB+=n?W!G`Y{2jgCunrL&e+vuwb*c{UL3+d}EVUPj`?{WB=tj|5` -opGD)EuzCmzmVDs;2YUzVT0Ghb#bkSWFOXMwXJlHD`KvkOjyf(br}bg66w<{e?%5_plUE!8Kv_C9 -QfDBB%F?r-nmhnpY4*AP|VK@^YFqD4uQaVxj};LZ1(PRy*!_5&3wDbcYeM9LpEaPDmB2#$T&h@HU0O@ -TA{sBuPy1w%&*X{?)1mqg3?UU5&h@N2lIZ-^5w!eNrMl^!+cXB=8#AX$n23}9je>_--CB?^fr6O28t{ -jp{*i}>&`F+skuX1;Ys(RHCQ&^4Y(vBKn6<_qJ9u2U{9|7l`2&|fkv?4expFHlPZ1QY-O00;mMXE#zMbJ?Cb1ONck3IG5d0001RX>c!JX>N37a&BR4FKus -RWo&aVcW7m0Y%XwlomOpc+cpsXu3tf@11xVg-3~1<7)ye#NVi~X7Gzt8qDci>I@@ezQ6TBJcKz?WJKB -2j)C`*e0}}6r&pr3>s5p*qp|aqh^iC+TT>=zht_u*V%td9*M(2Q*ECc6+H^MJLY?Rez?L?(4MwvM+Mx -|N-J}57iY6D^gs?_B|MsXZRdQ}%2Y6*~WukiSIWgrhHV?RDX#-&eTRG4|D)n>Xo;pDthgoZkL%eSLNPV-)Fm&+;@9_~WeI48LgS -qbSM>h4e6n#LV79=7%8!tAE~NmB`?AUP@^xwII%r8kw0@h3^U5>1WaVU2<{rJ(aWpdwzUAm)~3r$Mi< -4^6QJ?untNRHq6$#$j|Tcx9`UHWWV6mYR>`3Xf@N#OI0Y(Z*{6Wxm^~2-N_tl9P4s!hF>9~QG*ZU>&x -38e*Nu|mxiIT9OfcL+O<#9#6dA1api>jzzO{x5sxqxiSu?S#^>VNlu%oVrsMO}D(z5$eSMx1k0opJxQ -EcFjNmHf#vV1@n>sXsD#H#CRM}~ZTq&O|lNx;;hY~4`Z-qB?F)swT7jM$>V>q8a6JkoIL_poBg+gR3u -?$4ggCnqheBuIX8qVqrU5A6Q!7dlptgB=|hQUx;Kp|w14AQ|!490_Dt7Tgl6oo*guQ5lQ#(c<~h{v(W -*Fe)DV8>K+L|nFn*7lD?vh==k)5&C^{c=4c#ZRhzr6zb%CmPd&n>=~)?D0uWs9A?6z85vx9t6z^_%Nh -6UV2lo^)!S}isL!c7sF=U*j0u0$v~cl#>p=Vr$&Fbw!r}H -Y|r-irPQSJ$CCUg7G8E_goF$P+zE{Fk3*toHksoI3y4EZC&IMP^a^CLX|Bw-W@a(IclNt+HH6Uz>yh( -DjQ9`#HwMZR#gEb8h03q*ObElcPByoozQ~C-wtGGrX^vtTt}!1Hy_bcdF1?YYv(C`RHzkan6mrL<&Aj -y?X$2Mju;#&*@uP!p%zM)lo8V#n}h8rbBmKktPJjsUpaHI7GX1*_Lhem=Cvx;aA~cvQ*lKjzMt%Xgzt -t!;hi1H{gl^Mdr$R7YGEht^1o<~TM-QX5+vpR2kFg>DSEVr)l$P-Bx4Wh^902;Ljsu87CS*yCldOc!JX>N37a&BR4F -K%UYcW-iQFJE72ZfSI1UoLQYQ&LiL&d)1J%*-oRC@3vT&8bw#OD!qSFUr;hauQ2YQxr-|GIKIZGEHG(pMu*1a@(d2+NMF8pePm#MV4rv+sdbE^|NUn8PKmN}>79XWY>F -HX=k=MPvMhT=<&p6R@_dx{w3lsN$(Hrxd)f_@i`D9e^|ESvLE2tYzN>0V)<2D%Y`Z^TmO1&c74Y -}x0S&C`a`JW@I*^N7nAFGtEXb?mjULY7ix^lhX3O1a9&1rNf(64~XkMIkp;f%>cT6w63C!_YvveyY&x -!qWw_2guQ4Wud{S{ytKdP~HS@zX|mgQ!(lKiBlVD@>SCys(3Pe{)`R4e+irh_Ce)zfb|XIxLW^RCG&) ->Av}TlF8hA{Y{k>A9Md;#lz>mS|(aPxgZ$(h4FT+F<|(Y{35{1Ggm9(t1YzDl&DdHH>Yvp=?rItX2)( -DGx9YlqIdvddMhH#0R?3JUu~;(`RIDCAJ|?|LN3xYsG!1CWAM>p>pKf@g<6zD3^sGK`OFuLI3DCTBT< -10%HKK-gj(Ub#_<_8)62NY6(!lujc79CmgOf)aSwhr>WTwwFw;B2PqJU^myuG*E`pP@+iH*;A0{28akk3Yu5d1p#k)g7=+Qh9rAl -O%YvT8MsMLL7zUQLY8;c5r6U!GLPHe#=LYLEAUkuqA&)Q?kTE -G#g;#^@sK_;;s_S6BxMyS6s9(Xl_wSL_Ab^PX@52KKTEsFBr$U4^aoq$*in}?I-1Wmj6Qn033h71f=A{=hkX32ywkz#Kv -6GRtP$Z~04W^AVJd(H>PC+Ywfltpf;G)76e2j_a2w7*q^B@3*BhE4dStX^c3~Yh@+pq4HO)hEQ3xsBo^7AcyNpKTuj}3Ft=J8|feu?!!?oi68eT> -zqkc-CwWGEyi(}wj|Qs;BTg`vQMC>067;MA4ZU<|24AP -w>b8!hJ2nbrAv7sO3opFr!txXUWFMqM6oL0!d+8<1VggGhv*2W~~Zo*i}88wq^e6`GJSE-!SMDOsM*G --;UnEH%yw=?jW9dwDHhsD~XCLC*l4UVtO#(0$N~i-7**=MwObz${Z%WD$l#)iLCMX$*@txiR<9C=uju -74}p`A=_eCJgT^A#yPEJxN`yzV+Jb`9yhd};oyR%d>%E$eE@6&IS*T7hR9 -W(*ld!$DGV6N{4&oiPhc#;ITYjdhq2`tVUE#}jMfwV4dVc|wjpa;?2906B8ohbM6yz!}>?cr905fq>TNZu0Tp!B^ZT4<1>jko$LA&YTzRo2W+!twJOoG;1a26bzmUX7 -HYC$LhQxJvF@H+20=ce0yC0s#CUcfAsng)iVc`vU{h{FPHnGt)~y<4u)yw~sony!(V|G|2hqL#3R2DD -@-Wby`>JP6Q7)RFa-m8aU2KZc?AR}EwOH>kw3UnLM(<6U? -K_tDeFg3L}GX@CAd4}%6rBh@Z^9Zn~svdfAuxc)K`)5aXH<$LPBYPE7qBvgpGVuf?i+3`nfg1ay>d=keGp2y5=jdY!$)1~)SM`ybDU -b0xEXRK}~WUGjP;=yv7i?+Y+34~l|X=o3*jRuH&Iy|4gZCWWgX|N2ZpYtfTlpW6jf?gHlvFYnjcYkTE -Hvdt`<%q%h|*n0c(R-t>yszdL1!Ir&|oU)LVWhk>il~0wHEW*q&Vo6wm3Gjwr5Y$Z&x&_*|r!QaKfmC -vGo1Nfq)@OGca(zwUmk+4ke_TivLr%W<;^A2Fy+}t_?SeS#d4Dod*1SgGXa5Qbx$hv3RhU_~DB{S=bB -uCQ$ro>O)kRO$D?MN{KcJ+w55b7Daj)Bfptuq637>8Y(!?=r2+L8F>b04_T;s+`$>Q8q%yVVZBNolbi -}rti&jg4@w1=T{xL=3zIUlZT?qKRCu%KRXF)d5?$_s{k^<}NjHcc(BCmiZG01z~vztu>2hq-dn`7IUt -G=qgLccX?aLMYu4SlBu&Aa^4i-zCAx?cVogn}E3JSeLO}EO>vV7o9YGyCPs(%|#~lNiRi`#7)L -I5yc8h7Q>;^pu!O2!Mr)vOLM2tLHMI_VGI*`s%u^sDA~wS*O8|NpoY`YP!S59_dzA04B2cN5Ay0*7!F -F@bRFY|rm@>Dn^*v@LMX8aSaeB{PfCQ1_BKN(%qqWMkZ+eJA|@5d*Ix -%axBsuSyPq^2$owJ90%ETGJ65O)SiY__ZbQ9!sl71c24>0+4UM?2eR%RsSzDqTi_O!eFJ9Q6vpwyG60 -#?4IPZ2MGGY;t2eOMKUf#CPsJ8vI;gj#h78Ggbq?fS9$o^c)3j#{r?x9m?9(Qd@qu -lsmg#G-4+v&FPRK38-e*jQR0|XQR000O84rez~q4 -8>la{~YX83_OY9smFUaA|NaUukZ1WpZv|Y%gwQba!uZYcFGAV`ybAaCx;=O>f*b5WVYH4Ag_AROYQ01 -1_2xabpyOU^vbd-Hafrs@07pFcp&>kdKmgTx+{<4$PB -k~B?|gch}Npl#9`-9xRF!>>+?3gS*&>AB*MXp$*x5CbcBs2Xip0QXTwOSYWkQ-9|cul&OIB-uIZTF6s -b2LBn+I?H<9pjp35l9Sx -R^FsI|)VG!zZ&iL!ghcD&T`*&A=mLLDVy}h~pgXC}jWBDQhdIIV(!VRHwr%eHOgYO}iNs=_!g0Q6zFN -2bqiF)J{&`%x(FCd$B%HjN1sI-=0+n^hbf=47@II|=dkgkwv0oPnoCY|@&3rG0#?KljSXt9~%OEg9so -4u?coIJC*ztsvKLI7FuriDF{Q`H&urmhJLT!+!R^rhl9JdM_YeHKI5^XhQbz+kk`iHs(j04IyIOW2-U -4~~jg5*s!j9Nx|xrc(WL5Gb4Q3%}MlILPikz4L?$xVZ}-`5HWMIyFgZNpJYXTU`8`E&h+;^I>nn`wc4 -EZX&^bC+d#c2$m4QX&5a6?mTNx-7Dd^p&kJl4r@~H06jkhIHes_7)2Ar4YYy15zg~mX@(EqtdeXhTv= -uoWm~L(8&XTdtTUl!zE#UEF-5bjgzEN1_#m=PpuDZqH!K$ELs+^Xk#EpsN2(Rz%gWhOWxht!23v72*E -2TcNTcY%fx9kpRJ_M;(WCcf^Eynz*ApsCkqMkF^|G>61yn|lkDUV=02=hTMVp+_Qco&gKkvC|?0Kzws -!miw3U>(pr8K_NqM^nIOOs&gd>AV!>J3(puG7)F{^_{w$U~Rw&}67;8je|DyfLYvzr!U+VO=&Q-Cz9j -ki*Y#KmB}IV&go}mU#i$lNKsFR=$8Y0We=>C)K0W&-hIv&4cT{Iykfsn+jb=1%`uO_RvEvfqOxL|1)o -nV)cM3^Ed^Znd&U}Q=vVM+t6<5lHpCZp=P(#3fOTup7Ij;z_WV&kNF|&)*C3Bn?>Kg@qun0IUGU1y7i -{e6PmQlj}go!&c|@^vdmiMPb>n(jcRm1BV~SsT~?;_pgUrc!JX>N37a&BR4FK%UYcW-iQFJy0bZftL1WG--d!OxRt{D#bYbb8`I4+v86c38^WUEL -(^=lZvX1gcT+$Fok9LYExdzK9-tQy5=&s{D8rls!Z~~8FHA@TxE2lRz|l?T_i+S1y}4&?PmzVhVWaKz -kNCX0^vJ8`jCD4JeizM-bWE%^ei7n1Rl+`&EXWd(^&x;ebnKhpv81k6)f@;k4U9YjYGOr-53_UytXuF -@V@W34Tyxa0reCDpiQ&2Q|%6$ESIybVzP0FP_ -)R5p%9FFU2U=h5)@U!7#AWZmp+)Ad1I}1>*7zJ7YJjh)3j&tF+U}yN_Oo4v1@EWAcs`P3E!UA?qHXErr? ->fG***-UM{5qt{^$H2D37(Lxj)RzI4$55JIB?A_Z>Xpo0G|8csw(=N(w;0l7iAGaygNQG -<+cIk-%6gjZrH`)^ulw9{jeFJ-0wi=(cq4mkOUOP0&r#MhtxE_k=b>fDr -qPC2ZW?c39YTo9ToSgf)VA%J3{_3gaJt6igW)hWUNDmS3^&-|#EctiEc1A1mxm*pop!}14Rl0W1e`b|HT4 -5!2Sur@if(pU1i^_km#n`&6)R1LC^_QC@s7WW(EV(mjJCLIhjt+9ezN!phbcBJfrzFc+_-QIIQQUFij -9ZDpUXSc76nY(w)%#2ECCzvTn>cf#5*a7D8MTsP9|@T7#^j -HL`0@dB%o#_yYX+dUSbk<>q0GwPC28?x~X|qvhCL@gUfYuE#h7G||Ng-LWNP=ID)y@~eHOC%mclOq_uCpeD>dw@zZx5m9G_%(#=b_Gi>uNA=36BE1a)1 --COPkYNGhm{py5saHbf!<(?y7H@m$u>htQ!R1NNkH}z;d=VKnNEu;UuLN_;iYd*RvoIdXq8mM3a(1nd -qxp|2GOkp)t3`Kn^gtpR&|KIW}*s%9iu-X$I`P28aUxwUI*GuUi7sf?i5;yVCXp>bkkzOG!;~0wB(rF -`>n7)OH1?bkv8ckL-ReQr)6Gl6)1sjBQ9l;B`c9THd|FdKpPi0(!anW0|N}8CwkiJ8x&h5k@4O1v;1o -p48Iy=%Lj(+;MwIp58)qm>HD4bbA7`xwpgF-Z|Yx^#CG`+95NCBEM3Vulk_m|A-~>elT(0A`n%sJgm6 -&0AD&#b9F!1$Tr%@d*B8$t3f1lww+fyXk=31S%`$sQ&9<@$0HLy52BNH+CvD{OLZS=?NW?({nmyreEt -Q5S@I{t7(V|2l;QJCIMb>>2GX>u55ih_>N(Jc&z7^oPo4>h`+;s0{R2=-0|XQR000O84rez~XU>eo2? -_uJxgP)kBLDyZaA|NaUukZ1WpZv|Y%gwQba!uZYcFhJdU;=WXk}$=E^v9JS>03PI1+!)U!h_j;>GbaC=x8tqL!KmI$R=zy#E17>t;D_fPbqZqP3bbr(!3Dy&}YL~>LOg`=_Y($3z39no($)M0X|_1sYO& -UxxwT1TbPJt;a6XBxmp+IaFnV-ycCICR0Q_PhAX}jxj9vcO}3PYsLtH*jfkfLzwmr}1#ir`SJ^uDFCK -q4PkaU+=$tv2$t(z;go@KV$c=?M*rc&YbVYoAdo#VfnTF?IzTNyDK3spl+$GiW1*o1xO_Za{Tp1FK$r -VomC5q=Xe+q`e%nt;p{oe9$5jY2(=v~Q4l%yDT)??hky>j^01dr_3RV!R#Dz&&b1wH9n8!DG -zi!MFRbf$_|AEj24a88Xx4G^>2dij<`)*|Mc5qBU{JQsSB}>6^(EVgTCma -8>`#3GV(@dFV9I4=ZJfvRN$t_+CH^^)llMAaJbTriautaiD7C?3QE45AXVED`ST@3Sn{4ABtK;TEtE* -?6r`Fs_Y7CMG5>SD<$;cswRYAdn))=o(~RK)D1Yqh-dADLlWv -Wm%pUX_O{GO${&?63$I3i5}@VYLZ5-RGJG%-q{k8yaHEd(Upl83B^dn0VbkD050QD0_uq;GA0ArV#}~ -r6o$LeCN~-P9suzw&B07c`$qDpuB~o7Om^6!fXJb}<3v8zd9&eJCSpt7|WSNZO_OWTO%6Pg>$q=O%g-MQM?Py0#6xnapvS6UZuANC?g=Z{k6HoX!B+gdrXYLr -;rj*@hUOQCkVMd=-=3PB(J1-9@1WfP72^LZO>fHF>j!G>5dbVgmeX3JO1oTu*Gv8#U?EX?-4^Y+ge~2 -*6-`7?=ZL1gOp?6ZZ4*aeWL;48qzv^VM369~*NU?W{|hR~>GNP%FTP30g{81=fh!@Z2QD_$wV5&PN?m -Tb;Xeiq|;_NT(uR2+tMS<%Yu(PG$2Z9N0x?px3-}lt!yJ&q5m?F1CfxLxLNrm}_3J5`{NBi?EH2DG@c -!do-smx0x_q2nh -YAhI#VLw}8xxpy~$>oDK8EaGwH*S07T~jzb;+K47hv3VfVwQ6J2bKG{tU8BneTSMB1k@I{&?u5>#R0M ->&19HB3U{?8%4fVLHunLb+kW}271s^RlSpC|zgJgiI$9f09ElGOOx65*I_81KyhdL4hv3;(v}SEA8M! -{?0_0WUCiC7#JaTs1LiRNU|_wz}#(ibWohW*aEmIB?C -ZKga2_N>UzI;Je{39)8?KW(Nuip2J*H1F(Tg7>~S>-vVccBF*5SrKmje3p-|T0T65>l}AiJx74XbbR= -6Xk9}f0Zjp5Hs(R^Jor&UPbReHh{t&BHPW|77?Phkx@WUmI5M#4DT`sjS<00hPJsX3Ta)yc -%x=z5RNC=yvWF_;VCHlpbKkf>YD}}PKdgzVLPxecz*s~?%g66W$?& -Jk?Vc{%q_RHYp85rV5ZL7Zn8?Ph6Rj>n8~pt^1hwGRCXxsy#a09)&_#-To(T`5L|JO~?*>otfLbFkpZm7fBk~t3O-t$bcKn?GnuG$xb(%2qCR*SidRqZF@4`N|D6%lO-}wI -!A~PAq((za?qKODqQT3)vo5LPVE_8IBTjHibTMKh@>O3j%|Ci*4RJVzt;w;*UHWgpta>-^g -<$B)_BcW+ZSMh7biIlz%w?p3;C!V!NIARTW~Gx#|FY=qCoC#TLK1oj_3dqiBvj?>n(gS~LC`@vvp+(jO0cTD>1$M~d80xCSR&rT -}=CX)R!LG^lCCh~wconhzQj>6TOaf#2!YNuqH&eN%yH!oJ*PJ2=HS7&+P;ujD`NvUCIPPQ#9d!x76MW -gdSThFo6syyn+(@E=JyI$k8p8i_5a^I?I6|#u(CYIEaD@32v7Iiw!o(As{2RrNM-LuV{)MI~T5se*YI -BEUk)~mkv%qRT~)ERE^HXuBr7!CdlP)h>@6aWAK2mlUeH&S^x8B;?P003D$001BW003}la4%nJZggdG -ZeeUMZe?_LZ*prdb7gaLX>V>WaCyZ${cqbivcLPU;5m4R+;x<+yNi7nzz1a0wCB5QTEuA=hrkdRiMF| -sC7me6@fQ8x-^`GdNJ(zHckkXy0axP3%y7OqoT0|!@q1Y;gi>Y~WYN@i;o=ZToYZ&q=cVFO -Q7R>Yw3WEE4Jyi -Rd6fZFCyB4HdF^Q~Y-E}>s$tip+PRhJ?JFx!2xKWB+l96_DbS+y@ja*~LZn!Vwv5~Gpa;zF3%a+!v8B -~xXaep7j7pVNH321@MfR&E7?YR2ZxQ<3s&m6u!luJ%pWj+e+FH5#qTe2Y8^qbHFidCANO!yz?gNK*dB+Sn<-)M+JO=b%&>a8||_(D$XeBv3nf!B^sqOa)04tzm9dNu -`WnfISqX`K0b(b(Q3e9^^5sNue#|S-OWGfjSw3Jq+L{g%1rp17O2dRHdMUvfxPq(o%8##QZ=K45re;nTBb<^GKz3g1pG+zcuHMsQNeswf$fUKia>XfsGGr)!wA7h(Sca0{Nw#UqRYQtUH(0~ -{cv+Lzj=FjCXm!93X)glpkN@xkz5VHIVZ9Rn2&M}KzWseQC&+_P1!qAL7q<8U0tN$I6q|YK5D1?v}hX -(Q<*(lh}ZC}$1g~G-<1+v6Psy(_h4k;J@Ch(x+fI(0FyeF%jIY^LWd?wm}NX$2;9D=wjhc!z7LyoJII>BuHb}D|jW=dAXkr8zACcTwQ*+y^ -7x5&fm^&7C`1bt@wx)WnSfR4*WxGNa&OyTTJ&Ie+0sak(V3z6~_wH684;Y#WXIK6TcJ-7DAk}O;r`=r ->76H3e)}R%YT;p#osR{1T7e2rvie|{*Z!qF2Lxqg``~ -88A-m*5>OZ%l-CM?T+VTCtHf4?jJ<(9On|#;fK2ti+ztX)1umuryy&y+Fo1(($Sjel6$yaCtsexOikQ -NK9XR+HxD1q#zXKpEiwuOySypc!z~>y{Tag!a%1euLit#}zILaT~APhjbsWJrhY&_ep>7cehNUAZeE{8P}XVP4J~XjjigDq~>SkkqsZ9KWBxkLHVrW})+d@DAjWKdLB|k0Od?FgZ -8iv{?ibcJdbxR-RHb#+>;7t$^SpL#+pqlqe;F!Vrp%2UN!zF6W^K;fVbzSdwSQt)@euxXBY#6AalNaW -3jFXH~Ulfe6>3@uLu=LQ^oA7)TEy<_M%~M-Y30O1bkJ?oEt_k(n4U27i(Zg=ASZ1|Ct|@Px{Y@v7El* -hqw=)hDvl7N}QPYToc{AE48v@Ir+~D6}Hmd`Q=NL&DkfIeWf;xtw}^zsn*poN=5AJj!IeoEj7%Q5eySe5kdpJH~F@J>kNm)W1awKyXO` -BJ7du5KiDN4)JZrWex$2Nlf_QPIQNL0FcmiKTUOqeqE>uFLyE*gF(t+$5>?-st -l9|YDq+LjvHYlDf8Csd+>9gM@-9>Q)K0^mP=p0xJS2hj&^{NNveZf5uh8Zdnfu(}Ndaa|1e!+#yHc>%$yN+Z{(;XQo!{_1A2xQ;$v-7er@u -X3k{(KWSl%=~5g7p;X2wSBU2it}#JCzsAt1(n*`rWJaB^3&X|7EZ->;? -BlElK~YVewb3I4J%q-d3Gg_Rrf^0zU}P5OS)A5*6o7b0fpWl{i&W)Pw!?4>`s|_PiKn$sc9t73x(le@ -!uc3cf#ygYl@pQrScQwB7!`E@h}CDmaMUt0mc+cf5`f8Gj7_^R@lNxS0zDI&wXq^58iFx~>>n0ax6#F -03=-+_^~K#qE9Q3g7o^(^BD$KlksGp(KhfAGB3$01u`WNK_S%gmEI+ePnEU-a4s~E0cvxrn(>hZeIm4 -eYskem+s2B9B;FR}KvtT@>6F(fyK~7~AJ&L`WArFm9#=tmExl-&JGYW4OCiNOPIa#nqEeC-HkR<`cQL -CxV7gJtG@a+tFG-Z|CioCAO8>~vM_U0uPrD^vZHXaL}rBKx6SUzUFD6XHmIk3Q>#T=P&9Gc&%fPpp<9 -8A0(^zc=!A}klcs8?raemB5^W(RT$xGMMl{(_*C)+&4qESW7vo$O`r7FT77r!9poK9B*TemMJ~KcwV4 -=z{5Ah&H!*B3Du*IIt}w81(^-5CM@4=%Ou3XNtPI-d0)-JW!a`hd?R9lPZ8~Dh=Tp<0@)y*9*HB_zE_ -z#B+5DP91j5{sK0FCz$D<4W-)y|FnXC<4aA#$sOQ=P1B`ldU*7;$kx>c#y3k<^7o+$*IZR6zZj0ec*{ -J0=x0Z>InU(W~nXG!KLZ~01hBQp8`~cF3_&xWU~gr%t4|{UB>wF$2pC3mo-pD3I^K#cb7SU;6J?FwwxI>< -tfu(mu9>uXb^=1P4cKotIMofwp@rJ%%?<=VZjStt`+?E;&F#h&eCnt0{_l&m)J6sK#wq)tj?LP8#R%J -*vhtcNQX?y%VIBOjy$%Y#w@}?WT5aR_;^^5rYS7)A{d)i*rLu_Bhuw4e;~El#I)m^9nw29ygrzDznpY -Z(^!sZ!%PT@o+GNe_;A{e27O17T5(#vX~fYLL_76}-GKj41&?(g$18nA6AX_blr4(J?6+D`VL9eX=sd -81lV#;VDRRL4kP516r{GhS27oXha2BatD-$FzMBtV`wjwbD4s{sh)O0+(TQ1#oTvQdM!|M{m*OFaeiV -TTG5{!QP=*^yRKgRJVG`%~|Hi9}cu%@HV_zU*q+4oFPTtnFoEG?vPp#wBTlsxSKgGjxl10X92N`|*Iuo41qsFfN79Hn -;R8058vGZiW$p7lG>N-g9n9ALm1oMiS**{BB|D7@J6-(gXU@B6b~ong@QEPVB&lM!<5?Hw4J-I?91Aasw0YGt&^;Gt3`` -+!CVg1c_^;j&%*G3wg*3Q-oz7Zm%6%JYw@zGZj?Jpik)JYm6Nrwy<0?H-#~#_a(9hKn;iJEiWHYC4sG -2k9POZBX)Pa(4yD-Y~WV5)g*MbD$SnAT%!ShF%%bW`Ez8<*qXD)>0i;fw5N{nvPNV!-qIYQ6ax*`V8N -hPqJqw(DPWsGz=4OtM^cen=Ju6ds#!;<%Tq8;DqCN2rUP5SJsnq8vcl{iniyT_Y?hwxPeFe*TuYh*OA -|Sz6yDC(#AvbTQ!t={ML)o%iyJ3uaxPV_uWxA{xc=aXY(bVNy{rb0D?q==XXzUk%_IP{lFy#ckXna22 -ezL0hT`7d(S-obyz4muwN3iRoB`SUgC-qo&iQa -o_1)N92~Akcfor`d6kh);#~}MAQ+Aef-?gETqkWaaloM$(H5C?qWnHHc#?Sh2=Hf0P81W2k-4d3at6) -8qb|@?qc(UlCy-3+oW_Y;t1(sZCIqK)I3@1vn1Mrz5AU4ah@B4EiA897ni3sLdqJYNRvR#4j68f$X=2 -9EI}-Q=v<&F+O|Rc@55mS+nCw@Nm2^@ZVvQehBafzZU*MZKg_zHAOSG3foa-Z8s{?IFm}bQt952*>f5 -(ig$0=ACUP$Rc*DE?_7a7Y9fu_yW&8MVwW{J2(l%m-gIzbGD3^6A7(2)*H0~{zGHM_j)B*4@fByj<_X=l2z0*D|p4!zapi(Ukl*WR% -Sw9Ta$G4THlc4_If3qq4Xtr5reOnYU?CYOGQa?_r^Bn`so3kZqSg`>Zv9>YHxm;2F(WBs}0&$IgKw=5 -d6?RQT^&%9Mugt_rO^QFC$vSw8iNpkP^b)+-rKl69FFY{PLQj-k6L?htfr^Bxu^6IE|4xrU>lCL<{QN -J@Fk;<_Y5YI^N)f@mf~j={uivzZ)r{JD?#8=Aj5-+rnm@3T1qanMC(YMz;;|Mx^FSc#zMSX!l#fQWdG -Jg5&Q%313d`PhNUiC{H^uTVt(7wc25t9`;l`)Cblwuh*1Xa?fwzZm=km9JswZMON%YN(E`2?QyS^W;4 -v~^+m%z^R)?{oHDJo@8K-W*AO358P=we!Y^Aq+3ApPnGA--t-6{96OWi)t**m90{@VO9eMm|)`hJ<#p -$%cuGzm9wJk?AgpNx&g4mNR -=>r5Y1EMd^s^YbZ^X@gr8(snFPGrE?<`6Mf)OD==ey!e)jWWYlB}ScGGE?qC_t7nB0V{XtOekX#*WCXQ5(37Sl_5n -bVIM?<>go&W}Wh5dA6Te<>?i-kjl@t&mv{!Fc!JX> -N37a&BR4FK%UYcW-iQFLiWjY;!Jfd97D%Z`(Ey{;pqfXizu-Y{N~OCNY`;U6M6HF|TM+3|%o8lytH=% -c4e7aou76eRrf@EZJ_>Vfm2QqMqY(?@tn~mXOPQIDNz{R(h!M&jO7#!=;KbH6WL{(iX0MnLOM~9;R2f -A1Cjo_jkYD^x*@VTxAA>AgQg$%%aXjI>av#=2p^qWnzMMrS#%TWf?|%a-+4yxb;hIcbD|!^ey)BZ&g3Mqht+Pabj*p|$SH~}pFT|@CVR&}-;_P^Ia)B?;N9 -SiJNqBs65y$7z=wuiikfmP{3WM+_;0m=E)4nV`(7NC>Dmv3V0M+A{kc+ti;-oi5PRL1U8{En5z|7ijqP7h#CkSsVtGRLSsy{VF34PSshcL -WST;ztc;Lg!a8gsQzT^8vvglYONOaGAtT@-?yxC}M{H0cRT-A2c1|AvmpQSe8nP6XI!fQigv?R|;`L^ -X=nltZFN;2BoueYQZXd(!tIW%4*+E6I>m?VFt?k^Ip=i)mwdYnW=(Gt5lkPQCL&U7ZxBd!LYhos3)_0 -E$+R_3(N%hAyzwQdga%osqRTgERDxGcA1&E~)>W3bc;#}oE^aR3GE~z=Jj~bcML{AtT0^F(`lOpxT2o -@_e91XxP(r`)mIFX&zTt;*Hjod{vj>>Sfa!Ic4O`wYz*;%WC`SBgXESPYj^hWK`+di*#?D@(VH{wZFL -L?Mt(KkcYcr%ZuuiW2`k`XHLj0f@B>V!q}}n{+I)&UiKk0 -5BPK6*RnrwcMQSCWkVnab}ajIfYtNnyc`cjn3G>M{}i&3sI -^fk;<>Gkfa8GCHqP-p#gT6_<7{MZy50N#ogGa`h&G#J2!24mOJ6V{t_QQxEMaeF4zmkTI#q-v%=O^$PC9$B^_jaBX5xv?}Ut34; -hh(-=NVPqlGD!9bo0o<|}?7g?x>FUhk|fU)o@sdQQyBMd|joilRdMU4pWClm>mjj5|;-4 -b2W=xDuPnaNNOtuS)E|VOuqRTQP3o|Am75&y2S(+bvFZu-yS|^e&6TINmEax3HzA`?eoXNYO2$U1|D+ -EZrISEty)W)E&hMPbk*b+Z}9I%W@MoVnh^HEd@F5{)1a}FD5aIZ6QmulB#XFF+mJj%1T|^g72DG&2T$ -vx5HW@{ln;{pkIn!D7>*GX~M#GMFI_AQed&rUbGHUNy$**AGC%V64b1en+ILsczf2C0-+wtoVmkh3Lm -u)G%`4D?znA>f83&-t@7hU7L -TQ%=6YP7g&pr2W3Bz!gXS#?pv7mF!r74uQMC3&VIY`T`P%;R^FbHtZ9c5~@5^@y;XJq~plky&QJNaDqq*8Z9YM;fSX{CqXFkoS%KHkQu62f5)M*N?4LIKAHuK+u7G6jTTJns-E{4 -LXb)YZ>yH)zvL`ey;JGs_c=~Gx)M$)wv*#WM(Fu;~dGlNR5%_*P!fAL2`mZ2a)o6qGLS6?XyF8Q3>`2a -Rn-Hs#@-}oa4T{cf8d#cik*9Ew?)S4K}(teStynD$?zSSDhY@97wV-)Jlc2m58#p=8q*q7yzNuxW&aW -#DrjIXC1oZ~Q76Q;ve0t#II`;ZxYnSNOT+Iq7+bMSm9e;TnPh;~SBGq&lKp^eKrfW}pJIM-F8p49{qd -4?b=^_Bo@XQ+q`fvWpe83&Tgy^6pS=mTdf!lXPYOH%?e726!{52Z_6_G)NN+@X7IyXxcDDDo1JQuJl? -J?!En#Valp}94>@gpAbn9ez{i!I8t52^U@O(Vi>sHyG$MtBUtcb8c>@4YO9KQH0000801jt2QmX~lK3xU?0ALgV03iSX0B~t=FJEbHbY*gGVQe -pNaAk5~bZKvHb1!3PWn*hDaCx;@>u%dN6#nn0AY2TQ3e^vgAp?fA-HNtp(R2ffED&gkvN=nlMpDhZqV -K+Qco9j-?q$FX1c*tV@7zBgdc9u%PFr46%|%Z{Luxj#zGi*JnZoY_tqyd@)M~w6uU5Ppgw&)JyB+U$t -44~BRHAKJh4PBH{hoHL*5lB!l|3`?VN-qtU?Dda5yUs6=Ita?(O&et0%QJRB?6p~JnTxzlo(~jCb@U) -uaQgEv0lHWQn6=J3K^^Ay=Jnf?WX2ROTHZwQ#*QKWxP{1LV}Fav~5A#1bzz9II!ussyy6|X)ny`1XrC -0(8mG7;UQjsc>AHe{`J}Q%ktfCH#aYCep#(B;7pP$ANdXFd1cnJ(gdq4bI49}Liln;;A3>BdVcPY1-S --8>9%DBdCDtYkXK-FLEa2#F>MQS%i!yKo5=|$^#Njpf8K2m|H6Ka(qj=Gk=s4&?`dBvv+&kd7-$0j(2 -6?EqD>FS2LV;T=0*PUBP7P>d=Z8%-H -ty?KTrlc@x#Oz#;{N2OV3WT7>z_2lY`eEMu%z>i-gpVqAa_9;c*9@m%TIc*hm#abQs0AI8Gvn`z{Kq& -OtE=mDC)FF(Kv#lbe@el0!5-rT*iXTiQU@a&yL&*(j`x6M)tmKo7md5}vv-A#+-UDJ<6&B8wMPZEH_{ -zxg0L}ic*q}-F=GKsFahh{;LKR`D4UjS@I3RaP)gIF__E2XvG7f?8Y^6A`o^)Ui+(0xDwUoDk(Dab$Y -;AOaQ_>_pB4%YG{e!xMzja|^SCA+$vjn}Dqs@yqz!A=%Z9=-IqC -;$HBidgnR!4q4>hHOal{ps2y8uE8a&U+PUISbJQ-#oH@L*~F|bn$#jZGf<^iT@bF_9@#QLs+?cZ}L?Ro%AQn^mYLeyiFk_UGl`J+hPdfrM1K!929!3Vrc@~hn7~_6w%M|P^PvD)L&_ -r+yYHl^_(W%6^zED1#$r;!)x_Y6{CN53~aB$RVGbA*wqw)X)4OA#XV(Tn{60jh&VIOHb!ey1^r_im$c -{HE$4Xx`evupw2`4ViIs#&<;j*;vFTf^5=a?%ki7{8!mPr7MZ<`IX;pxbI-6>m6rjuuh4N3w~t2MH!X -S1P8iFy8sn@p-Msj!!r?0&$JUu}VSRPFkVZK`_?AoDd5ZgM@2gA;zc{CIGwdygTF2Yz@a7rvIkdLXWX5h&FoDvJWGCscCl8*M1D_Mxz;I3eu%nCBi4Z#uFQM -e_n+-^}n!@O9hkejhjZz{U0BANJUkXwpcYJm3%N@4!J-i5U*%)7LSvU`vrQ+S#BCK0Augg+2QFx2kl- -xfJ-oWrh@XGi64}MmL -2N!Vw6xpS)Nt!%!myK}6Ov7XAJ@M>#NSxXMKpe!(#DGr=aewTcf+XRI>rL?G#33(;A%Ij+F;Raba+Hw -GB&{E3Ze;wnMxiQjxatuaVwZ2GxxQ}c`a(*9C6B_Dpnn}ikaALuVpY4jUDdyf-sybRXz>2$@F?T<9PYNPOCt$uAuVdKR%X&UR9}M@G0wzwsFXl$oEZ>;L#z2n6qwWG))}NQs -*%q|}x2clYM3lzoMMxpaMTm9%MqQ>GePD$BofV&%=bb3xhvI0WK_dU61?gWuP!IT;<3ykw4D$ZR2Rha -|NNl-0jbO9KQH0000801jt2QUpEQ++Yg;0IMhf03rYY0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!CcW -o3G0E^v9R8f%Z+xbeGx1#cIDWYiY!ibFpv;6u?((gsa7L9%IZ*cv)oqSv~WMTMmHks$xQGbBZkde{z9 -;%;M;!{N+u-t<=RJxSATqZ+}|lob1#3q|Ng^0HAZHQ#45JD>5gWSJ^>CEKZz-`*D0ZTpqW*=&nQ>!ME -5dsgLKv{+^FI9N++n%z;vkTj|&Wec0pidRKO%i;@5E4pVRJMV5&!6a`)#@xR5>~m8Hwr7=kM}=fBgy6 -y_si+ha6)h9?n6X;3((e5S%`f?WPpf=EUR6@jvZM%LaEzc3>~oR<0wtPEap4ffGXkS9D1gS#DQ-?#UM -RXL*-H -t5;Y51U21`OkZgFHP#S=kpYfNUMULV7YjG_yvS7d?G+HxU7eeOOYdf00~g)5w_3Mo+0A@l-tu)*``A8 -K0BpX_XC1vq)&03AxrML%eI!nl8O?T1hd%8XD=%@zz#4V)Pqwq7sDhVycvWq` -};^=vjn*T4iIu|6V!TYs(R;#AvongX-4oNa+n#=bCfA)-UPy5e9Hgq-8eu?r{E8}A&=XHn&7KX>xf9V -G|flJcs2TD_#D^tT`<8m5s<9094R+MRr60Zx@FmQSO5!23w`6-^@T?#y5XKUOw5bH+7|UEUS-DxP;MP -VF_3v$?U9b~R3tWKNd9IaN1Mp}gUCy)WSFZ`M}z;4@BwpYtFtoW?&DtjtNY+>)=~q6DD#RK*B0_q`)E -4tfPZ9bssiMh9OC{)JV(CU%FTQ^CUzxSGxZ^i-nzxClV31jETrP28stz$l6SYb?Bzf)Y;`0W2s#a68~ -D(GdcPkMYmk?J-eoJnRuFaXmcXoO}ZFue8n>8NuD|z)aPSR(c|-1^*LWJenxku#5skoY10=L}juls+FBPgg^Zk%hs8)5zGjTzl$!Iaagis5lIarwo-ymlI5}Qt-5V!hfjAB9(l -6KK^R0dBmvKosAJ|p@Q-M(`=(R{1RW2XN2?^51IYyeC3#?^Vt^Isxnryb4S-yd@GZD -eAbbbfzhQ8aJ=~{`8{PncVGltF{6}xW9U^IkiX@S^TTgZ7W^kpgh*kike3uGAzH^i2v_5S`wlho+8t9 -l|-=hsK&_i=u+@n$unq`gFPpiyGZitB1H3KK$BuP{OmeUzTn@J-1UPhllAf~V-2lon|7`)7w%k9N99B -3RZ&J^7o@-eDkI35ZB;5Dn_V9y-ARXcMrFe@8Qm_e4Acqp;={vYtvPZC`@8t#}*mBD#R=Lr9J|EW{99qX#=2C^#h)G~jH4TsIR#biGFntJ)9&keQ9Mc~ -*eHspvH6h$2n2QWk*3nnkXvwsek1QkC`R;_IG#{c>G<_ -N(Nlh*`S;ikWbW_bAf^g+P`(YY1pf4k?aIhm;=0;^b -YgR!)%>>fDB&u0K8z*WqH_Mxp^knF6%uzj7_HrNM}|;#5H*bq!AA~`LR;RJn`(XxPm~q2%^#V>csa+g -OC{f4moGHx2t!$5y!4DAyZr@XCL3c*17gQFY+Uj0C>n>Y)Uep2L2IEPQ#2AvzLCC@VHGnZ93}K$Bwj~ -K1j9?d!=*23SD10U2(p|n`ss^sJ>8WfiRDlSUW;fJ88?0xx#h?(muN5a29Yp7UGz?=>+S8D(|J=KM;6LQUc -P5!y@#!MvYt9dVW0h!jZGGSN2XJJjwf>C?~HZ`vj&y=!Q2cEKzL%CtRZ?@6}=iBt@uSk%C2)Y*^@O4} -oo&t!~Dvky3cx6?Rx8A?XWSUt&2~JSK%=0{-7i$BOJFXXx=DV=_zRH}cEy!h6;q81^$c$tarpanm$JW -1W)x$%`tMTtLzgV{L6{g3$?H>s#o5qVscd4H0V#SevlI}M-C65>6QR`I#1Tqo(MF=(=JPgTr(81#q?g2N~M3tp69fNo3l;R3);~YC;z$p0 -Jj3<>br5xM?Wh*gZve44DwiPTj1Re+UCl=UUjyEqrG_`@}_66fmQ9XGHaE9Z#$(lZ=dK2A>j0!cnnjSIZ`_cqtgJYgLZUGWpV -hLpaar~LWlmvh`_lQ%lzP{1A}*%L!vk{TOM|h;DfqiD1#CV`|tht2sB;!Bq6ZtG&)S7&$d7UZbps}Ls -L098YMXkUn#6I2g#m!CTLUb(DnGz(Eh$Bj42+ymzM6f1*^F%6c!|ci1tb4YKamr$M -)rYlG){QBJj+TdLR^99G17mvLJ7W)w_2HCj0id#81`(|$BU|GO6Io~a$ro&36ppOw-$*)bUnQj@{eczdq -jK7UL87)yKpKxJ0+4lN_2kQDm<#ZMWNKDuk{Z`fz84Z?0I{^kcVN^PnS3>-3eWo)OQ24+@=Jv4f_!*q -=R(d53!8A*`sB@#$LJT#|@2G2EP$^_z_PV7cZ81;p;?s5E4@f^Y5y?96d_RG(X5Zqe}CgFeup$gm$_& -9VZn8&GLfA`ZM8|`{O80yhx>Fd^qRYw~*PxzVActgVbwbC$v4|WXeP2bh5C#2dJBBEZc+6X2_RMcl}E -GOv48!(M{K>f6v=>=uuroeuzmm0G#ZBqc!OIcb+;By{$fw5mNL`&xXs3S<(EJM+MD_iQ}Lt`BHjXC)X -K{uy2uJIc}&;AEcO9KQH0000801jt2QYKfMKRp-#0K8WK03!eZ0B~t=FJEbHbY*gGVQepNaAk5~bZKv -Hb1!gmWpH6~WiD`eE0q3Xla}Fs3S|ND9^+j-(bGiFLi-tEv&We3gx1A{K-3}J9KljC6b;m|&`=EB;^bKsfJUiRA^0&eX*xJNoU9-}s>6JgSA=W`SURkR%U#@xVn1#PF6eh4(O_MH^3(nG)KTZJ3qAL#PNtfvu#l-ebk-WJ65fm<2U)X_ -@p+|({2ER%F!AKsDb5Q(8K9TM!f8-qS^pg=J0fS%D&KRJ06bKl=7H2vb#yeO|emQI)T6QuFlQ-RJ8l9 -Rcab29JYbctp$7qza68Vn09Qu-M{|v?T`7h7vDeoYyR%Tn>R1t{AGIPp+dFbP38wVB7bbw-P)lRzJhw -%jx2Xc^rqS2&Yq#HtV#vE2D&a4F99n5eg({tioY4zMDyG^kpn&%m8k$5@Y50HEkAuu52pYa5iN`A*3Nqc-=~IK>C#H$0o_tX^PZnfO$059|F ->E-QjhOE9s2-)u7zXuhxBG%@tY|CV`69IjivyLfYo50z|S*~Vw8fv-ph8U#j+=2;>O@-9uAzR!Q0QlF -B)I$s=8J4OUGs(KLVwhxA5Ebb?|)%Kp*!=FAX48bzO!dzJx!!y0b>Qf3cu%KzH@Oa9q@e`Swteff=3} -51EQLb*09R`m1rp0P+oJe8AZ*KZ(2F3cF{hr-4V8)*s4ts(VGxlAN5EJcm(d8?_ZVyviH)=r(~D!gvR -sPlY%~4W%xp7>m%dFt`T?xr*QsQGKl*Qq~gRST -QhBIr3bB|4D&q)(k&F^DBA_Uzvf9e}G>AXJPLOSsut&ba|d=Rc_h)NWp0WMGejjp4B6hJ3NWK -HM}J5Ar|n1@G=Akc))+$3()O8d^{yiybOeyW(UKTeE^f~z**GvI6=^hkH5cmvqMcf1AHp -xNC21v+_9Z4wqCLK&hvx)5$KmK@pRtM0B3tlv+5r53tT>tb7gTaLdd6oo~FEL$ZvM>iZoEqK?eZ<(X{ZQj4l4L>+W0b -cM?S|$|9xsO>{|u1`ouc@Mkx3&OHT}TVmJ8l4H)nC4I+EEZ -W@EN^NfPBL?>BW_)^A)4rPI#WsF0)lc>9CnZzw&Pv#q<}ytx?KY~Ai9hB -*SZ{`?f~0^UJXV71`hF>w%V|d5Wxg=pf&+{uqp7~3stQZV)Fo+l!<+>guX2rp)g?96bvF@VA6diu5OU -C85}S*7*k|zi8+X)SOcj$B~-S{2$HTr?{;=8oQ`SQ8r7*_vx4MfdCTlUSSs7&rN<&J9Q6>xTtZ0)lZ( -mT^Vt#o6z$_d111^_z+GbkNfsL9aC0D3r~(C&c58N7w;m8&y{OpeqvYc_@0qxlEbVIvIK^)jqV%4URb -XEas6{+*YcShP76_o%Y5>k*2#E=?jsh|Q77N&YSNm`POSlj_i~?hnnl`sbGkMrkc-SEj+So>{j@}V72 -Z>$344mT%ri5x@_R_Fxz-G)TV*W(W1+Y_nz=#DFu$=P*83q2E%|hoB*f>#(@L3eeBfTFOLCg?1uf2Tb -e7GFl{e-`R@Ppg09w}HnHV5CxsIyv=&dAJ@!~pXLucTJ!B739lqa=hEOanScv&@shB?oI(u>$1 -L2BS0Y3L!9zsykJZJx(O}hIIui7u_O@hP_v~S-n1RP5`tS`ZW6T>C -+vkg2M_Nq5ae5*vO|4kw0zVoKOGbkAM7q$jkh;_2UcMuL1*U_X{_E$rKYaJ)DL6{ebi^R& -7t%8@1jq8^Y!VTXMD&<2hSH2>j=r^l`vzln=Itf_1CnWiT6Vj7CJlpm=c1s|3z8v##UpTKCB6Y)Km}G -&1OYxQRpT+4S7>z)h_Q(PCs2Td6TrJ!6eE|*?SS@dX -%#th)8Xgrecxo_?7myjF49kNO-6u8NJCNW1i=nq0h{wLRqW*!-DL9W`fo>Y*8_>&UMWT7oGGl9-4`QfpeJ#cm3Ov^hM41JSH{n0kxg9~ -!wX;N_Hv>-IlD>uiWFg^GLT(nNYdl7vYOReghem&zz>}Hqbf7mw9qE)V2(WlYUXl-=$`Fm|bSQ(QBJl -}T64rH#!bV$hs34!pzM-+8$+i%?Z|q^w8zYAS`7g*dg*GFKjQ>#=RTARB2^t0gi@-^@vqiI?_tueQh5W5Ckd)Ve2&zuz&j~r02ODN%pXhlSo^CN^=z}y>FF9kDe*_@OHgm9Va6*Wu(lPj%z -jf5Vh^haCupm~F?Oi73!|CtTg(s2Od{|Hnb{@Q41ixzRav%dSan_iS-tTY?TYmBCf2Io8_SG1}i(W5T -TvVj)F*<=?v+1)QSiEt+xHLxWI&h!@EQCXbf=Zy<^$Ac96eoLBeML=_4@CJ3zc3oMHQ=Xd>s^bLpp~5 -3-y`a)W`DSo+?a`pQyerHKdsta7oD0K)b~1#jTp;oS!XgVpB)OWTlm -^B2MloE!y$fa$I_==I4rk~CreAN=)DVbm!6ZJIMVv$TSQY=s6BiDQRmsCpqLh%rQw1z5A{D#NDbauSz -Z{sY)!Y0}k=zg_*>AFap{28dX%D5hy|zrdLWw&;vOG -;KA<^*z7amc0H>BatJ}i2xPArap_5`5BIg&*Tv6RMG37CXa=xBd)ZKf8iYIGuz~=y=Y{2I!G6}b7*JO -F^A|62E!G{k&`|4I--C1QZ^jx$F}qR7`ZKJURLEQCFiG-AOg>)<*} -X7G{j&WLl%)61;Pdnr^|*r7^*h1boE`aQCv;@)X_=M=k~S*f*+2YGe2A*!9zL37j;|gAg -U~B!@%&MDoq3FS^{^6UdbMm2QVR=AGftul;8n>V-}1;U#s0)Ny2iE-@uu;?YJ0h;Wvx{*Hed$kCDUxP5pTb@h{7VX+P30@er$wE;i=vk&`+;I;Q7Wk&VKEzUelJV&`}Vvkyd80)&3? -EENIGJa?WLUsd`5`iyph7SPzzp8K&^rp0dZGAF${TCy67LrT8Ds8D=QOPYcQS%G?M|ikj1b5HnT9CbQ+T -KVZ?q>_-piw{DEE=J#y&4?%x+UOqCHgJff2GHGnlQsUnCidL+?@t@8qGYc~vUr#MRw^KbFz&K{A4m!@ -(??;QG)BjwMshJRPcg%#Z=vZ>z2gF-UJqCAD>HaS{UR;6#)e$YvSq^@K -EINS@Fv_(~QNf2`g}$FlSIiyVv>VF~J7{FysKI&#Vky4Q61CyhOgx#m>8wm$HkFAFOLoK5nG8ineqh% -a#HOW=AS12)$UQr~E#3x7X|F6KqL*0smJ7H16al&!`BVJlIiAfc%HvX?wZ75+)?8@&5qcEJ#bcYuuc# -nk(UcdtAstu*~WFxez(&@N^{;~0fALpT3&L|YT74c)r-pu60boJ><;sHoS3VXlzEMl=>WTiuCo&=Umn -#P>9SRX5737DZ^pNDJ0&R7VpK_x)^EZ9%7!e|*I^xcfLLIAC{4qUaZofNt}ko^Q+x7a8ywI97@xb -zWao4rm_N$aHSFPTChcobmLP;q&@x#}ftac<^w3URSW5!h*ehyQOS8?8n&Lq6&fEHc`hyg`1QUNhW_Q -3wH5}@IT{2n@wJA6P*yK@kraaD6DmZG^Uc;WDvH+_LQ4YCmocy#Etmr0WKZj}-PoF+ThNs<=7KcOeWg -(DU_FOFGgk06kDf=jrH-QJ?V?e&ZN44Ha5PSe(c8Z1-;~h!ih&b?s_;NQ6C$sELvKax;089 -sqq)>=C78u_RcBH5z8lF*1)*^$!`dzExoc{hZKp=uAGL+OP!io~5rTgu5FVEX{pQNEwRm?~O<>@mxa1 -_q`s_9(0dmF(|nwzWLZHOcL3f0r^2wjOrqKV@QxtW0nN#7GZ(HzcSG$K*7s?jtdF9kf4Pqbs$Wl516B -=HCfm=P<6^Q%sq@M)4;QZxeqE~6X9&s>aa`ZuiTDovn(}7N>e~^c^$81VSYNLZT1la+CY*MWvRighH3 -igZI0yhpR|3G6WxW@>=)rZ=}s}2kwpKna5#NX_rfNH=vr(Ng@$&JX>1%^flg?477q3!&|v-f-&UP5AF -d2|3<7?-HTOhQ2`89}E2O;F%&6e_HW_}fNNw6<;A^Ivvgnfe`8*YW2<}S^>OQuNF}!-4@X~ZmHOK%DY -e3T%drvX&6Fux`YY`0bE5N~W7G7&PO-ob`_7YL=Ub?$U(;>XkI$s;e53X9_C%A6q=e4*TToe7#Q$spC -tL`fgF90rWYYgEGEzffJoJlg0v2&NPh{;dqP0mea*0f@_;P2nbsxPbBBBQ*6=p%5Ec($?6eutaa9AQ5 -$OXjz$*^gCxK|L*08*TJ{^&Ri#OInyBCc0tK!9Psa=1B)A^VNV4)385bCXr(%#*d416Zt5%&kJ+>qEwz%=iFMvG -rk{L@s_13z(hKIR;=xPHch|1D1(dq+t4m&LXCNV;ZxN^RXLmU;HdNmca|!7;-|S0r)UVDGor#w3$o7P -HC~x6y#&{AD_L~g8FOJpt*eiai|ZkPh>WGMQDCT6ck%tja|)BctKsZ$Fam^w{L#&jk_%9LWo5+J2W5(OsKdZO45K$Mzp$DYKYD@k=Xx*Jaua -7Z0qS@M&6(jfAW0>c*6>$8jrk!&xFq4QF1SX|&04KXC% -JvfqAnhP?cdEaTKpsq8#r7*mlJr}O!wQg4_s+HNyC+%SzmFf|8$9$E89eCepm`O^AJL&OGX~EGkQ{h3_5{+SeGM-4}Ts0QQOu=vvBD|KjXw0*pi^jS=UWx9$zq!J?4%?$ -r;$9)h3j3x+2E3CbcS;X6};kfs8#8OP8MIPvZo#=4)ZiOWyh)9P!4AB`k?gl*>56lgkXy0S^)@Zxzz@ -xTO5vYN{?MOXU@`yhebE+rs!PG)ETGsc6jwug2Cl#}`tSGnUT=d{l1^SX`*Uj%)&pQG7`fL`VFziivA -mi|uJSXAutK0~TRmU)c9)USB-GH)xB9Q7D6RreLx3viD0<%5{-^?Q|j91=wr7@JCP$pne^Rn-Vobo>C -*ppofez)gv4o44;TZf`-wM>+)_)5cTmiv{)mybO-13N;+HaF^I*d6Fi8a3NiXdR({GpVI%w?zX0r3TG -8Xg~gyVr@+5MbDyNA>Zy=VZJ(ojH48L)ore6dsh#!7Ke4Z0WAN3p0AOL=x-@(3U=A?+BW^c4Kv4HpvD -#AeMMacv;Nxl=P!OcK`^Q3^T#CFJ(_`HLK7{LCwdVj)V)KR2sU0di%Xr4PNzOrxt;b{=rHen$HVwnjy -c?gQYxcyEv^_Vs1PXIii4ZSB4}S3vbUDSRV`TSfJK;qLX}iSoy}N{m#k}5byu`?#W8)~^^2L5Nd-%{4 -h77^zbFC#vf;SVl>g`-bS0(w@E`s9A5cpJ1QY-O00;mMXE#y+00002000000000g0001RX>c!JX>N37 -a&BR4FK=*Va$$67Z*FrhVs&Y3WG`P|X>MtBUtcb8c>@4YO9KQH0000801jt2QVx^#3NQiy0Ote%04e| -g0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!0bX>4RKZDn*}WMOn+E^v8;R85Q9Fc7`#R}9`mZO9sWD1| -_JXc~4)*$|fPVNXW3#<3b(5|W%W|GpzDc0RV<>SCIN##GX -*_nO5Ymn$FZBOSTCBXb$9G^yO0XS4Pp_NTV)?jQ{wSV*uGin!57a~bm+d(NT4&ZhDxqy|(0uy%IX_r# -4BDxo&9MEb^=`@A7A?C$Pc@ajY(;@;KO(<|jg{I+U=RlyV$aEAS6>L@;2<^xAp3(PKIq(fm^@=l<7`@5Ibi; -Ry7rryW&Be8m>2N5lom66xbXt&d_aiEq!M4>Ub#p8_uIR#u#f$B6KxOPYL!`e+m>ce!cre^Qm~@>_ne -Sk&Nfh7kx6TINS`6|!;84?Ea3hS#1>9IP+@8%VC|txuhX%2o(MZ98CQ7Rh9vZ%= -VU2c>5s7_-$(}yRYZ7nfdPNhXyy|^94~79ojFUB%}`{pd#GvBDaj_HC{Vm@7h_yR-ZXx)vv6UBS3;^< -pVS}G|C1!WBDuBkDtNNl4%d&Kp25-lmzFBM#LTWr$=DxIO9KQH0000801jt2Qjg&pcK!kY0NV!u05Jd -n0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!0bX>4RKZDn*}WMOn+Uu>Lj2mB4kHn5_2Ubn{-#NRDla_+EzC=FXkMBNzcTLmu3LF>QaZ-T-!=2QM)V -h)dDYYRrRJ>Rdt2h{MiJNtTm_KjWtTr4gZ7f5D#z&uX~{tjdfEHF?{eacVXaIT)D(W(LElEgm -?7?StzLo0CKgDqoB@dg;1BuOHmB&?K5MDjAx_cPhlKOzVp<|IQ2Ovvn%;5S^L3cg?@;fhd-kd@Xw%ja`<0#-?@1O+ -2AmlKz+;IivH444Gm5QKJPx<_v+bh4`9u9pKOXpiB1Ovy;7-n4D-v{HS-lm&b`Vu8^{mcflFyMQU_vm -wZv5r?gZk&;oFPa7d54HU(^@dj!54T>8u~$fRwiD*^*ljn7`!63wjm!JkmC}7(h5$8NlaS6 -@hyiG|}>m^Ee%^I$-w8(Ev2bcoHj6s>hDD -Lh5-SP1Nr#qJ7S>z*G?%wGJ=@3kSE%K9g?N<1=8XvERK6;}qw4<$Tf@%(oIUUdE-o_piGD%(lP)h>@6 -aWAK2mlUeH&W=gL!V{>006oL001Wd003}la4%nJZggdGZeeUMZ*XODVRUJ4ZgVeUb!lv5FL!8VWo#~R -d3{vhZ__Xke)nH-8bV2=)e;W~snU3$6gDxsY7!386zu4ciH~Wmb#$(fD&-;s0se-e*=l#n* -@B1DjpXXJ6R;x5eUS@tF{@ITM}|@K0nNGu#U6F5yl)p?ncCq{ZUDQI^V3jr#4IcXVgC)@Tk5EMxdusm -B?wYczxeL(srg?+mTb-NsnXnB)yIRuDo;+`y_8b;)*H#F{1kJQfdGmjJJVPMm^uCWcph{piIUot#t;X -$?AFa>rRI46dCr`*U2ew2D33qx0a!cc1hlW;twh`3zkoANx>FDJ@{~{@~w$zPPyf5Xyj(2shF?ukjv# -wO&?((m`v(CAclZa=rxLNKysejL>uw_vl(9Eoknx;1oo=z~8WK*CB1w*7ZIj9fdp3W_H4Q`%H&h`0BL -R6W`og^jCN469@}Zxd@4wVly@>wVvAVHJ1t#%C!jghKy^86mXj-wr=%x19qwUL2{7sX854RKcW7m0Y+r0;XJKP`E^v9ZR$Fh -|HWYr>ui#t^mQY97UJa-ZO`I&4mkiljphyEkmMEDkMG7Pp*9iRIcX*K{`qFg3suxM*;kka_IiyW1q() -5CHRW|g-LFt-o9lHHRZ=vlrEQ8S*F^H1r3Is@YANSLD%8ujgk!&W>P)98Q>h}lYqbze;Z;Xj*`IFmF9 -eS_OR6;9tO;Q_m$mwa#%|S0Q4qEFB#sa~%ljLAb^G!5YVk0$3q{Tt9;Dr3C1jIpT!^O0d1+0}qU5|ay -@d$t-qIhR{``b5e_LGsjvqeU-QC{ZL=mk{EYF=Wqczm9gfM65zSUHKks11%eAQ88N^}2p>eR$z<&YqA6w1McJ_yrAwb% -T1q}mIhJHg4+iV+4nTt!SB7F9(GO`pkdh%K=s -4+qN_eR@RIlSH1fLAj#|5?aLFiSdKJ%B|%kC(XJuF6S@`;r|R>`eC4@F20W~9!Gt>d<*ujwKVkOsNuk -*G=2;*!ddKo2u>@Wk>D1bENLK@R}t?$k0ryoJ!=`^K7L@>um4ZTjgU~GbdFuoYax -_r))kdXC%)O7&eaT!iuD6iHs+om(dj>e@_3++b>#7vr+!3?$>{hQe~VRi3gdQbiF;~abh034m|8Qj${ -7}xKIcj4TzXB)gj60F`A>v>@9+S%?s%IQUjPE;mDjLf3u_oVaXFcI^!V#R>N4#pul9WRT(6Mo3L{o^j -5*xt6y1Y5xuFWOD*ZVF>9lvpzK1&v!1%Rm&j9nVD*NRy-`PR>_hLc5voQO6A()z)ayza?JdXIbL$UQWZMVtvxSN=<72Fl$vC;(P3i*xsArDHj>gsrUHMlu+*E#xGO=k`<-dT$ -v*a_(Er($+^8w~qNSf|<1Ua={&5e<&^eFT|*hXMn?$=8Ck8ZGP#!UN@TB3{XlQ#?f}6?-?_$s8y~V~!sT)Q%+6IRY^ -#~S01WN>aQqC8NB;s)O9KQH0000801jt2QsLbcdo=(605bpp04x9i0B~t=FJEbHbY*gGVQepNaAk5~b -ZKvHb1!Lbb97;BY%gD5X>MtBUtcb8c~eqSa?3AL$jwhF%}Fg*C`!#qEJ;mKD9KmI%quQQ%*n~jOIIjJ -OwLYBPc7EtQc_al0sv4;0|XQR000O84rez~Sev*iIsyOy&;V?GFKKRbbYX04FJ)wDbYWs_WnXM%XJKP`E^v8$RNHFYFc5v$R|uC9FKqMy0r#OHw4s}AN$EomvF#><#F|* -k?qUuFREa?XE8=#>ri+bc8Rv+M}AJ{`B(Wh2DRCxc^3T32XWw9ipDh(A>tIrMvCJZX7IPAHbYK|zgdbq=)P8geW3adF_P(?Wz&LdXi=e!^QRAXwZkJ$C)a4Eva@^7 -}aMW+Mx?hELL1>~!Ax42=5&M>gix?zL>IeF$YG9+!i}=;7OGgm6*H^yax0!i#db*|?M%e>6Ai(AiZdO -21o9Th~^vQ_*Sb2Y4==Y@wrpw$Nd=)a5`FvJ*xwMaipd80bLg1BkzH2UjJ`tu0Z>Z=1QY-O00;mMXE#zwqfJ$n1polK5C8xw0001 -RX>c!JX>N37a&BR4FK=*Va$$67Z*FrhX>N0LVQg$KY-ML*V|gxcd97F5j@vd6eb-kI4hl<%mmd&71=@ -7e22D3blA;LGK%u3P%&bHzBo(g_xtuc`?RL9YP_g_%xX^~xH8Wfa(khvQ)( -65VQ1VHG=~~*3LZ4`~+wG!=H?35L)Uv9$sD?+WhhO@lqf*I+6kMCm@LE&*pY+@LiHQm_C8deHT+3UUa -bZ9SR#SM$p|$?#LE~lMfFLBtoVVvcI9LBfxLw;9f%yFNn!4W%U}lL>tNw$yKpPMawSEBwR= -plkpat(ApC>j8@QlO>x%rXYNde=Qm830G7zuiV%&_oAGo_5J1J-Jfli2ADppl*dhsn52?FVhtM<-X+^ -2oNthKx_5mS};%P@GBNBpbLY&?+eT!&Q+^Lxz7U)7*r{jz|S>qN`)dnht3JC(cM;90d{)Sg#>&J}kFT1fPW8PP&1b%1g1`bq# -RFo%}MX`dA8*R&U~O<~UM_#S&)y2B@_id{mOCPOcn0BY1_dhm`~@vOvp*!I#yP~krSMI8Hop*0g+FlmR!Ge@hk#FC36 -u%p0;(@lw!iVt5F=4vi^0Y|k$?9EsZDOau)l66pys=V0mXj -PnJfC2UjGn+04aOGzp^_g(>Dk+my$93RQJu=e_+R3S4({V1L`svN#%=^Z1B$xR2K1_8k|k%sbrf+jmP -VmsM<)Jjd?u`NmBEeFV&It~WXzghXBoME=;i@ulT6?&zgz1=wiuO%0K}w!#rlI13{OTRX2qK_~4b?Eb -+JHKoAQe)TdK_u=<7#ilVL_ru5kSmt05vO5%E%G-EW+zFN#P5emD9_>7x;G&@&Wk%;HYi+sb^%^u3)b -=}`VPZV-FoVwIV=@n)YRqsS!t`1juXQaDTszQi09($2p~5r@LUH3%f?05CF$;^Rb>1)gOzE3iy#Gh+{ -XwJW33*EFa$nG%$nR7K(Z5hj0|XQR000O84rez~2P6sDXe0mt4|)IqDF6TfaA|NaUukZ1WpZv|Y%gzc -WpZJ3X>V?GFKKRbbYX04FL!8VWo#~RdDT5@bK6Fe-}Ngd)ZGzuD9CoQ-jpuNo@2{d)yB5Yk~hgJE(9c -p5+V>lFo0y*<^1;R$2{?n<;`tfovIR(z)Vk1cTZ2hW;mHlPTQ&~>qe~0T4aT4(mcvSZ0n^|y;kumQ#kEdE$ggm?8v9|^?7+wD~bJO8MHi>+T9}`(L^|s$jWp7R6lb;^Wg)9^ -@S2eZ$jQp7s8Lrd3m1+)zuG37(xxiORv#sPH;CNGBON%_v2SBXT96KW6ygnHSL0zPIEZ;6=MIvLm9kb -A;`0%K%%X+9=UM|z17fyVW{#w?_CM)3o*RoddeyHyTIGrmXUk$>VfDjlMPmf<6JvmEWzxqCTesuQu>E -pA<$&1I&kLKbjwS8UZx4=`&OS!QEar)%1N6(Lvza9N_I@AYwrec&Jkkv+R?9y8Onl6EJNwcXEe2uiPa -(FflWs|9;71gxDwYma+uFAHtEQQI=#bv54HP9-po2(fj5Q7CSqpr|^pZ|37Qv!2(^0(yG>lZJMUwk*- -vn^1Yc%7pi0e{Q3u5oJZCRJB+dX%Z;CTlLUB4KWn^_E{KlH;aMmkmq?aZZ{tS;=+U=D=v6cv9u9f;Mv -5Ht7Q9MEzh{CLp+*Bn#io#<3+mXqRbPE1A%vdAMd1TyAx?Xpw3Os7Y?Mv$HE+D@iJK*{TKxS*8kvzb! -};iWJmTTQnJnMpMEvxRTu9rmTSoyQG-);7swDUth{XRIq$NA0s8JTJC`|-DC~*pe48qnn^CNK-aBBQ4 -aCwfQWKO7UQ@(Aj#6}B{yjX5-yd(&B4e5e|4=wILvMQJAOI0pC1=n_vHyLaLY9Odzvj9_w5+a4Byiek -Pr9dd*Fxr_CnsA0ZrV4m!wtF+&wv|%cg`q$~`%izqO$GrT@f(dDd1w3a<+Q=)NMk_}k1;qQ5O17wdAT -!v?J}1NpK_$P=?}zmKRK`gS|V`x@s(x{<3hiC@4Dz)kFxRItc+>{oJG)~gfPbH$;daWr*Lr{0#pWYFq -cuAZF!{Z)Ab-H43mt`F{{ppA%}=YSu5fAfY1T;{1#0?~*Jzh(!P=Bi!-#Sl|lZJ))V|`-Y$duPd0`&dv^6HL`|bw0RT5?)5!Ai; -|=Oh9t=hn&CjTM6DfFM7ITOdsixZCl4QpufG-#@9WX+sCG)QeHRVkz|<#-Bbli^7=T8E*zj3_c -Dn#V%|$MYi{^4h<|9$9Rk*Yf39?Tv(}#b06wS~)L`avW2TaCpFI{X|Fn9!LH)SA)Q}KD<1ar#cGUgr; -cb~;8Ne!lG8Wazvv$)2UQbp6l=}eQMEi!Dg4=+TuZ7$2=A?z^q(o*LbFIuc;={>U4Q{0HT}U -jO|mk%0z2|TMY!&|GzTC=Xw+a#XHa!rI$y~xDEyTGDD4I|L4}(^RhOXQ^R0k?V51PQV$f(}k;w|$Q!X --476QkO4M={yM)S=HpPt(LDK?!Ri0S(ei)qZ(Jfr=A+B*F{)C>Qai)kTmz-b^bu)wFp8IS_}-ZtyKuc -jX~b=KM2giTiB`KUM&foK(3vXD_Dc0Xe_2{Z%X+dhKXZ_0gstaT6}c~-X)r%n3xCRJv&hIH8#KmPcm0 -6XsGtEVK9pjmISJQsz8g$+bsNYPfS6wC^04+~N{$0E*@72p}KctQ*rq@{XVFQzl-CV1YCmg}rWdmQw} -p?(+FGF{;lEy9{_xK-Q6F?tn^!cn5d)R1G^Q7f8H&(M~(FTlP*U4g@GRqU*tSg#~}3W~+4e8b0RHXFn -m$Hzr!0Dq2T!FNhl2IwSJ%PgDBJQ1Qr?af%vwnw;|5yI)NH#Hb;k;P{={2qs!`HLCFLQ5kVWJz6?4Vr -%y*u9{#qK#});CI>;PHn}6qN#zJK1jc4@(LjC9jm<)hB%pnw9UW;xdDAW6NiUl(f|?@jRm=2=zCQq=w -KE3c4HR@f3x?rwNoXivgacF{zk)qfk;KrV1h?u;}C5}e8ZFz$V^s%(9qExJaO>jk?}r?vBe+!DNwGum -0sp*>iBZeW*_MbEjs_jI{U&M?EQT+g!CaGTgygzy=Cl96$l2$!!(oS~yU14@LB#g{n| -DA}a|u0UcnI^P#)NLCB*!r*IX*hNfU+WbGPFgqBrm6-^FqJMO{=F8OzsV;R1nj&*a{QWNoz^UAJ~b*5QBM#hRt6Gs -$y@;Q|_^_F4$V2X$te+fRQo=nkA|PcGWkqa>x+v*$>!W_wQK*WV!0ue^-}nWk*_UNeaj|gb!N*T2Puu -BdptunSFtsz^+_u(X|KWdBMS0`|-q2@bo>~%V|3B#Lk_zLq?+|&(2lR#~UOTV+%Z%+0Ee_>b}VI?CvR -v-ak!y)I1{{!ug!L;oijQY883#W`=G*NYF&6hi+0>E3iV4mpl_4?8rc;HJ8YKAfaX*vk9dUo8t($u+J -?b23N3AH{gQGD6@tzyn>yYS4CzRq5H_OU{=)m!^f9}Ud3h>w=UynM$>G(@XbbDBxK>C -jJc)e&lLWbc(XNQnR$A4Tv=nV&a^$$4<)IY_W*W>&&7lk`~*IA8o>Ji+RVikEI*7~2Ms4@un= -&fp0-6#ZwjVww!8!a_?tjH2|8QS*xAlKK0EqoZ1Pk!gi5mBAYB|LlP9oDvz4p`Xg*w?fDvdn+R{o87~ -tc!Y%yZFhBgj~2^tA)g?13C06cfaL0Fk$1J+1JUa+qmwGy5DT -`k<5DLB|zmav7$yKn|h}$n3*KBjb0!GV?>;V+S28<=8M?ErwWoW#9vDe^~gpL4UI0j~g5kXRo%Mt`fR -b{cFa9Aohv%_^fxrL*|E_kH3OHMs@dun-S`tTD&NuoXrhBPlf$Hne2b%?^^OFpBnMdMw5ie(Ad?6 ->X+R370rO;!J_EYQTypG?4XtH~v43PEczavU7$Ns8PP^i-<&6Y>(-;U{nXuvwED-Dg_@!*iZ?cQa23U -j(2#HlLVO@*nCNt@gUEjnjv~x>I`3h4r=+z>P>x^RCXf~3o9)SxFl)?}kcGI9%+DFRN2AOu6fm=logP -De$@pu8KSkF{~W6nZudXX$?zZ*Yaml>*I%w6d4LBX>qBef8)oUw>#b$ZD&|rQ9PgnSr@lj?W$HDC&6S*0lqY -=~)4sc^0WOD;VcYg&g+KQU$$^gEwEX^|*{YLTraSZ*ruJ;dYpt7de8`S0tGSr&Ps7LwSUa6mpAL&NpE -*_T^I3lePru#tLY*c}(&1qRIC*6!A&h|~@i7c%UKAE{H@F7K!m&0pFT^rm+4u8~S7Kcg?PQsr^NvI2r -!?JX?xd3wUKjM-x~(o`fx0tj7dl3HwqQ5RzK2&kUE;=Z?97O+ff4La2f(&;l3&@G+#rIa&(Lrv0^S_>OAIZ4csLW^h%dsmz!}w8TYMlCJOeW6Kryo -6(g083e>E5qW-C1q|E@r65U7im!0=&`c}UjFo4~6q->q&+|r?g!a0!o#624gVAd&0u>cTO5o!&cXn~6_(Fz8KC37turV#yno8Vjs?oAabfZC>fNneu{I7#YyeQgP23UH1%u(Z -$s`_VS&S+XolnrUsiWMw(lK)fj2P5(V~B(csUBfwBN)s{IX%G?xaDQ;U|LL_t|tSF8p1!m-=OU@jI!t -rSc8P&SPVg@`>j&>zP4VQ@3aYj9R6Q*XlTdIia}V3JuG;p&^=k$LViLpKvfy*9{#FQw-`hB14wTU{8z -K^Hr7lXo@XCT)=+pfsN_^FVU5SjKZ71{PPOnz!iLYIbP^W^u4EzLm=qBYxhpLK&e2fFjnSbySWn4qY$mDD+hLAo0snr4ewS&h*2#IM -Atlu3T9NEJ|F!WI#_1kZ2}9bsfWPICY^!&KE18>41Q^jird(4~M8td>jgUagm_IPHedmsH<_CRUB{TO -E+a8h(c5h}~F>iNSeUUePiF3+k6&j$WL;esy$me3HC8IXiy&;`EnagbqV)r1kNy(>f!m;^+p!!SG;R= -K7IY-zMaaIdf+=1+(l8d6?#nZmXLJPA!~$jlQs!0~g?$K}SdH55=R99{q9t -$pgjUr`jckf22W(>Lq!!@5Pz4o|q2;1 -Hn;&Oqrf4SYPt_Z9h}_IW=%|ejZ&OC2cnWX8f}v=D@#tOS!1SN=COjRy|JfoV5~$GpL^ -qZX&83rgUEV+dW`CLe<=;Sbu4XQkW -_vTpj!z?V1NHoh`}o2-BA0xz?@O&J(PZX(u0E4m>49P+k -4Ea%s^8rMAKd)HySnw>Q0SW93e5)vG75bfLLs)DAvqQTJob|N^$e33X%eM`3Q=eLkrXAkRt)%NjzR6m -esC6GC_>x?n|BtNt7Ay?8qB?!90@EHOg$7~jS(7AGAV2RG?ay6F{+!P1P@&C0<((g1^Mb?rs9nFn9!H -D&Cj>fA!sh<`hMy}yvOMg -EYgBWVCUC#WRVm~GkTY0zR##XpWuz^68$SL5JF4;Y)i)_)~?CDIAG83N9;W!8YzvH`0ABuD$d9B1c*m -T&uf%V*`xT}yid@vY`dD&aSR4vs|;^_zFXJ9 -Ci$x?~=LG~rVo01o7$+8hiVc)z=SLB(hOPHaL4J$1Xf$YTkxYQP>sZ@?3;F~+R!`eCbc% -W>)yFyEomLpa-XurE3AB~0qrsu)G>2JiM+t;&a$H=edA2fvbkB-Bz+$~U@z_S=yTw?F;G+tw!)cd -J-DS=+J)z9s@IO!%NuT-F!+T@b!mp!R9>J+@)@cR{o4!9K9(*VR&Tt^)+u5Spn}|7Y9{pNgKhV2T^?k -ciIp()_(+I8lJqSZ>;qpDA|OyH244#=3&k+^av}U;JCCFNIMbV)Gp9AO;D`rzNE(79)}kw}MAF|y3K4`OXuY+Nd`KUwI}#OY+m@iCtTdxz00`_5d -_;okFx(Cf_Ss{P!(J6c_B^_?b%c=F6^W6zLLQKe3@nHtv7#_kphVvX0t7QxudC*ElP?6(#)lw2J?Y2}Y`>pwc$yh3HCe9!(#TdtK<5zFhr)lQfkl!na{nMZ!QK12mvrrbr@LwP$gD%3#JZdmSLwtqT;0gJr?F-(_LHUE31?CbG1{@yu-g?hhZQWgX8n8`t>#fh5+W -YQtl{-{Nkv-T%-l>pVi=>8XiD+xG`=2&JU9A_`rF`LyIng!8qlpwnWA*t7fhSb2eJc&b_jy_kl}@RV+ -9`e+`=>a81LJio4)tF7ik;}Wp6D9@p@I3nikWlhl$Znbc!2Geas7x1ZoY(mG-`y~Lia8oX`*-(8E~{~ -ImRb>X0Lf*czEtitn>6jXSn9NBOVf1NOR2ts&*6Bit)IeJ*MjWwREn>3rVR`*EXPzWjh(SD$H=U6@p| -gIhU93omeFXcZ{Y6H)YX_urim5UI13mH>CbHljvPz4dcX-Y7!_nBzcBc57n-c_I8O4kF(>SHobHxY{g -d%O!g-}SLqUjq$p{W1l&~4p_2&M(P1&9HCn`DSa@qCy!jzmFgmgkE))Aac_K^)SJ5wm>aqbCjChH;ReXN6 --O900m@J(B6U9K6Yqxqz4^)*^Rk7bMW}*0%d3w1p?hA`2VFq2lsZEzr^qyDW! -!>wF?d08!9{s$kqN2!vXZY9Dm2c)XvQu=I=J0i+_{X1?;jC1DwJf(|`ZrfV5={9swHkUj9Ufr~As6V3 -|`>u-W5wxB}DX3J5&?TDylZ<8SuA#_4=Bjr%ZWLn?KYy7)Jyv-PY!0U70oC&bom&?4>l^k#_c{p(Q7A -IDc*cU*?ugU69S)T}?XJ2395C~pekXlp%ZV&Df6QN^{{LT8$tW4!Bg*<&Zxu(k{T1_Wa87%Xx_Q(@wn -7QyKKhuJNBAB5%$gTHbDUEQO2e~>>YJfpjl$H#Cv-*K1f_y5;!R$UDl+N|Eo{}tO+-(j;4;{SjSMLA= -ZrBP#Pb}P?Sq35(|nwQ?)w2^0E^ARU)%lmsVJ)Vp1q!foJ_$pQJsCIw)b8q||mLmFRaM!0}6obZ`9l` -}e>?41pw8w_-vK7vPYb+@wz+TQEa`Qf6LT|;KFZhGJH+LF!ng6gCRSs8sPB)I#cy$CGJV}dH@Y-B;)E -A$TrVseky^gH-$Is~_RV8)Aq)&lyLFu<05VM}dbeA5MuM8WAUerumh<&tsJnzDq4@@%@7rG-mqHps7; -4@d|)aWo5X7^Y9x-I`cF(ld@?%*9-6*@2ARK6$T{+&=J$uo9gTOir4RiXo7(MMCPflTj;qmw!Ohd0qs -j_Bw_XTtDEN9tYZ5Ii*inpaV -K*b_*nb1N7BVU&OnhU4G*>_=u^iR2YPDivk&J&CQJ=n(0i7e*tGd)!z#U4^=D7J1a$h*Wpo51ytK*!m -227yZJ{Vp)}6n<7HSSIO2RWiC62 -gq)E>tP3=&-%WbDX1C(H~_)duzh7X3XsFd1Motz<;uO -=t+6ot*S{XyU1#jy0EpoArM%?h;Yl(g&<&eEFSBZ;{tECq#>VBSuv0so@lUGYSxgfU@eQsac5c|#Rig&nct30r)*Di;Y_vW8g^4sX#_)Y -7lmZ(AH2$V%QFQQh!#WuHb_&`cBVN2HJG6O4GtaNXdV@}(7gq)8A_Q|OqR}``4u{jj)r_&E+2ByN?)HqrM-Ici-sy<||>{RT1t+0)2X -x`Q9{}jd#eT=bE80&#MG#@-3gjUyguaE!8F(K{$-g-9#!kfMg&q -hpy$Tuok*M?kogkjysJ)?v89a*hM-t?#P_yAWZOTdO$4tF!RGR=2pdS!Iv9{Zd3gDCDgaf#DK!e4s|h -n@s+1{%&j=?9z+M5BSkE4_sd6*9*O@DzX!k6WD4>B%l&d&tUqqj0_IR#L(>w-{~3^b_xQ&%MypQm-Fs -YYLx*YXM`@h@#Cd`4uVrU%+V#p2!SW)1nj&Nd|8?)_cpGWN@EvrwKogzAjJXGYw!kW?L{JbJmOG3bzA6&{D} -A4)SYdi3mKF+k8)NB{l$==AL9srU0SYgZ`jUkj}t-AR}%*lCAObgU+Xg~w{T5jXm^qtSVV{q5mXzPO6 --V($I6gsJH?7kt_K;Ha0rZ;ZC1rMjjcBa!xwMTE(D1iHf2JMhZgK6YbVXP|j+k*p5wC+}CnIEZv;?t| -;oD-@;x0t!H?t_;D4_z2cw*})7hg)`7E^hrTA>TLAFQZP~``ED- -x2=K-^cxl|T&t*`qog)WC6$QCfmK^YpKZhAv%i?D;K;^|}5 -Tf@Q)-2G1Wl3&9*3`P4HbEajhcCZspnUhn_+r$$IE=t8ofs)i1h!iz^=61JoX-gSalca>c8H+0U&|3m -&A5)=DjEt3H}d^h$I@jmpX&}+u5KGYoVy>`5`p9Y2+V&~AqepipV?qk21c!JX>N37a&BR4FLGsZFJE72ZfSI1UoLQYtyXP|+c*&Z?q8uxI -o1ZRf53tdj$XMgZMVm^_n|C7DE2r}t4OXSXB$fYdq?t{yw-+toMA~KJu~yn%roO{v^o+>o6dF`C?)*Z -Ds2hd86`RkwEvwX!+E8IfXZ?u&3Gi#e$VATNgC&> -*_dbhmh#Y?H*b1T;n(dQa46;7!8XA-km)ugC8W2rRo -QvVsJuh5Q;D)5e>Wp0fLGF}<>DHMP&I0+kk0kJ_q1A)em_P3folZ9zP{?vBRLI%6F2Db#e`K4YQToVi -Iz@KL`hX`Uc+Kpxl4;Vro=@_bgKO)<*Q_BZ7FkEsZFo=xt~97G*>!*4@r)>8U!WpOs6FXe|}Wrii`aeJY5ECw5AXNG -E}YycR?Yz7>Z%jW{1)zI*77a@;KOKK|3TerU|udcvgr5QJ-vKRG+{XdQT -Mbqn~nb*?g^YgpY6eKAxZ23h;JGZ=%nbUE47O3fKnsl;d)ffEX{J5`d4 -<=j0wQAa}W%!CH-s>7P)PM2Hrq7I4_#?}Da=2kYG@1GJS>VF4;78?KM#N8Ldbx#S4Kz?xE=j(@ -EzuvVYf#v$vAoS*KgDCo(OielV$D*cLzUc22?`UMre?l)68ET||XwwcQ4x{7x4t4EqUcXkjc6)FP#3zO;Y14Oe#xES5*KtN*E`5hcoTUapI~ovj|q6&`(SuZl5`y5dqL44%EM_| -6*j6uBS>fZr~Sme1YiyL=wAmLZ*p@kaCzlhZI9fx5&pivg4H#Zlv^u -ykfOi^nTN%1GGgKux}-jLvm&~^UMr42!g-x?5e -1?tk@q)u@_a#+oG=6rf%4?O18W#Uy5J4qM^1>vTNQHbthR?Lu=DzZQaPl;?+*DA{U(PL<8R>Yj?bb|A -Z7sYAoSwLdXc$G8R9S(KV!o0a)xyXx*w?MV6RhPPJB`g5x( -$rbWrCjVpd4Q!h0{TkY(^|BxXjoU}qJinFoUe4BoNK{43Db*G -iW}PVP0{X(iXDmrwyP;wfm^IHn7iIA#`{ecK@cn!zg^0zp>1OvIZ^98hVU%@C(alZn>UussO3lt}@a@Wu>$aeVP?$zFj9;I~^wl?CXq9` -rqYzojdvhbT?of8oPa=fm;P)UQR>nx1=pB~tq~J@9rnH4eCg|I$KjdBA~b3EIJ3TfhQyacD%Qj=dgkU -Wt5u*rq5&dpz_~EM&@?Y*$>16x-%U?hBbYgY?q*x)f<%Ov*})gW0sDB0c}<#ZT$u@18vVTl(_H=g*%# -|Lgq7t|{#@k&|g#r|@oSz;)(s2s$kpyn;iznV9ix!Qeww{Kb7!9hdCeB7;-(57JEzbbb)<_^JatyJSC -B@N&@)pOz}}(ds6i2KRt27K=0m#-%A+v2!97XkMl?80e;8C|l%gu$*WFErtd)QXMwieQ~*1pg{s#xiX -e1*^2gidKaZ>#rGmj<3)WC4M!&c{p`6^YfoCE-z0nF5};aOA>TUz14IuKUQGvtuR4&oIk7Co4)RduWB -_AArVOVLKLyBSOzi3soMXUFHI1aKZ$RX6oOo;X6(%xYP`hrIskiqc -Cki0yXuw652@IbZW%FaIFBHCQ!)KH^1xjte0)ZO2++AqqKHI>y$wHt`A? -PxmI43m1jEd2j0|cT#jTWjQKGsE;&OfHmD_$7gs%3)HC540yL>_^-XO31v(^6xc9(}3uwko4bUzD)2lhoGG5{PwFYBl3ET)2acAZY~i}ra@Mc;t2H$;-Q-j{*Wq8lz1`<86owLLq -=+#*WIC6;wf1IMB~nnMCdmKlk#HAjrR?us%`;xQS2s|_yzWsjg+1pCq2ho2Mn3ZXT*+Lm#t;sJvEJ9y -$HwB|6g5EVokBD;bGKx|;gd%V{6S)+lW9E`?$uZ=NGV3|!T@tj2=vhOU6T{nQ>Sdf#1Nf03ps3%}1zz -Op$d2&bGL%U6^QKot_8PfN -&dfmcV^G(fXvXCD02!UPMz~T7(*-dm2(Yhb!9aoJPpa%z!IUS<6~!3*dqmVqpimAoKes<>Ee>XxeK4Q -Oz!Hggzm6ufuSrAAhQAiCkK$0@sgP+0vO8KKOg^qo^MDgS_^=46`mpT6X?m7Y+JPO|85KaVVwMHa~da ->L!NiH)U@=jvlJaY@D&9l4-ijBz@jC46rVr5G!nDi!<~a<5lyCRP!I?VBTd2)mTti_ir7{8jPo_VO6X -Xff*4?Pp$_Y@t5TW7483$T6y=cag_NLx&j*qlEW-OZ}fChLgayA)G -P&Bg~P?A-C=yE{&=g`jGQqs6NW{z+#T?qDjPf|y+bOwXi>d}Xp4jZnvJl#6kzr>7CACN+$`{^kb -&qTX9c-JmJl@BaH>MLqmC8fQ}55(+-HjbwDoD(RaRH&F6h&r{zOd=uk@IeFCtm -IpqPovejkuAxX4!{uigRT~BG9DP4v*jHrl|7qI!TADI>3}2`>ux*da`0Gbyb^Hui40K*Mw|g#PFe!fr -bV@>SFf5*c*Lf{YAxG<5#&cZGdOoiFxs595-=1D0;Pioo5X-*jm}aZA<9p{qKY<6{ryQ%ZhY+1xOq}* -O>AWAOmyk<5X|(_K8?nq754||9_KR{9*1*Nw8CE82wLU{cU4vtGa -1qV0(U!YEU9uS~*FlGMv_1ZtwR24vS@SzvW*x}t|B=*l!W!(7qXyw!toK-I<2ICylf#(DJtnHm2Z=z* -><&PemErqg^=r$sG|a$O6fbS^~j@=>ERLB~_+DUulR68-B5V5bKU$kFhu?ErVW_Q{QcD^i1j?tLkJH|i{m^M8u(Rnw9RB#|PqSp!bzSN-nygDqfUlnNQo4Pyi}La+S -2Rlt)4wW#`Av1yOHgd$Mb*yJg=ID=BFnOvn|^pKk|d#HF_HGyU=bv155XNr&Qp&u#oja$Ro8a(Hqwz; -|Fv)Sx9C0foh&#<7ty~))m*8mNlTqMEpPj;-ke7I{nx(P%G-Q#nzZs7f$P5*z(m2I5&YZvWlT^_*QD@ -l!n>Z_wyf8DhMM1Y4`MqmchjV>MIZ?TGD8v&?>LqU&$ni&8|d4leOcF6GA#>CU17qCEYFN(wrUIz_A$ -ar$!>On0#?KQzuJLCw(ed*RhMK7xK6a%5J6C;u;!aqu1SZRYnC{y_X@OJ_^ -zExgB=8_5ss -{c*`m4V3t(@cUVL;(gDr~|7KcVAQD&dgB?s?^xdG5c!8J||h?qDP{3`<_3%bk=jCVq&d>m}&+8EE&v4 -)Kp7@DHGtBKt;4RA186>;B4CJE)kg1C7|21m*gpUp3HJn$F?`T!L(?vC!qs;*e4C^-IhLMD(1j?2}SV -zz=`Bg*!x^tp&VqihO(NBlrV1+sfqDxs&3Ovn#FOgcrtQQCl9A}3@m4b+m0JJ1@L^mRTyDqq4WFPAe?msN2h)>-5=wUe(WTqUx_V%s>vGZhjK -3rcP=AM922&Ju$;IUkyL#HYS-T~62akOi!z5}B~6&ds&#vy|}k?wkMP$IzxqYPK-(1+Sb0{%jK9yQ@b -a*=!%s-POLBE|FT9;MY>lW?cVX#!%en;<=5>IxcN${H>nL`|)Olr9Zesq1QrtTA>m63hTP7#~Y%3hMY -&cNykMJY5Lh5^<{Gyj!jGldizMyVYHePvHroFMVzE7kw9$iS3q|0!Tu8sgw?&+Mp)~1!y6r7*HY*v=$ -hyA~FiQ3YVCNlj*Rjoe`V7>WfxD|8k1GE;*gK85zTcb7bMwQHy|8VJ3$Z-`px=lSB9@`qLpa= -N{1nM7Yma_CR7wi!{d1wp4R9%4`5Rar~pZ}>wqZyuHRPQi^sCXe2@iox?d)wPyqtq%!^$~g6IMx3r@% -2HFySLy+)i^5enS{7QF(L79*m8)Y^k2gX!I`!V(&Ks7;2isc>E7fKo-muB3j)GUB(f0j07%Y5vR(;Z; -Uz1iZU5y=$4JR|AZvnN3PVRq>k)vxhdMUH_XTpo>yMkuu>FY7?ac^aw9VhHtbIH~mZoa{*>HT%;Gl(p -}0DQH2lsr6FeJ+Cm5lW8q1?ii*0cBht8P76^Xe)%%8OH*X?}KB7DTg)?Gaq^}g$nQl25lQRb)&#~t#8 -CjehqPRQ4I)9qD=EaJ;YsV4ec+GkA;CvxN=Yq_&>tOape!BY5FBtP*;~iF2f1kHUb9Se&RA+`yWcM_c -5EHI-ZgQFX++?(&~S#VA!Xl7(=%g>U2S`zi^Fuvoy4ke=Gfc$+ln@Av|6MpMydK_sRUQHmMaP+L8Jm|2 -^!W%smB?`7uFf+>Sm!MVB*WraR?R97H|(0kCHRHB9G6|L697Q8U*$s3SnRv>iC3rRij&Un$^?V(#l01pU=R -d^)mCqkIIkax1(TV?RV(Clx*(-x6K=E7P(lU>2^_8vJC#C{YQl(J@k2Jv?iFo>9aQ4NMbRH*1m>;q3$ -=nm(UnVz~|dJjX5fX1;Z%N;j -B%*P=%d9lEk@5<>uCG~rVR}r*s$RjxRNO!2xz4XP=>?!nq3-bPtGU<+O8zA6JreA#wuU(k!ba!5V5c3 -tc$*SNFs{Rd7O9KQH0000801jt2Qufe{(RvgB0HR0$0384T0B~t=FJEbHbY*gGVQepQWpOWZWpQ6-X> -4UKaCzN4YjfN-lHcc7prTX_XEUNKJGVa1M!8CCc~^I~rL&am=43BT&0sW)D3V8zlBXR1_w8=H2~f7Yo -BMDqmn9NF1KsF%1N!Q#uO_eg|Mo@8uX)u8wk}G}n!FW7bvgM8S|{tazGhjr?z_I_S;mU%rfxfyUx>Qw -JD$n+$wYmxn+}I_^Dgvnt@$Q4C4X;Twn9zP6iu4l@M=}JsVLs3*Yyn-Y2TJ*aiOOr*en-Je$M1v&iJD -0cw6OVx-1JlXnDPYWfgTLVjcPWC6}$b|4}8nyexD4c-XdeJ7+GDo&$|ea9(PQfxNC)ycDV6dAr}b#;9d3mTB}YFV#f>&!0oU7f8se2mT}2X))V8S?U%lV -7r@e>r^mU)k%QUcEYc_2==CunA_7m%Pj19kAU1ndZ1b8BE^f-3FLr9f7-;Fn9>K<{Ay`=e+E>u1GqVTAx%! -wc_v7CSP9Vm#~ZY+Gw0ST~1+#Umj+!51~)X(`9|#z?zbF`uAkhb6%xp28W0#}ZDM1#{*wLt!|S6TetdD5?SGuI+oIdBZo>hT9>%KtnzJRyKX3zbS-oa;Rc=||G`wBrz?CKMf -SO{?R>frjTC#2t2AgJ6fRpsNc_8F1pQY?ty3H^&YJFvaB!i@n$5<7hyqiv*Mzgf -=sk1Zc<+3E6<)Co}S_Ip>I+rvlK_pK)za5qXZRObRq`vr-FT0sEJs^wV*%VdLWtp`p -f|qNn;vMSF4Ysfv)1eTV;aW?Mi@GjN7m!;nGSuu&4;O}&moX5E?gy{x%AH0VsB^S*QeA^d1WN01ATm4 -?b>A-e=vWvg2Pm@OqdO(AlQXvaJ;T8siCjS@^<>`sZVr8*oAc&(vowNU_Qmg{Mc_cwV+cc&kznW-zmr -1|=;gc(xCZUx{n-UA8!F?GjmGJ!+G%u`m$#QEr{#2~8hf!V+-d#t8k(78CT@VSnXpRaa98f56K?Z|=G;y8?VJw -#&i$fPb6_{3#Ut1)o27>)<2!=O7>{HJKoHhd!O;^EIJrqVVU -o;o0mhLWJ9Admp#CI_}c!i5<4M8=$+p_PF$_;hSr@NyMe8b$`TT0#UXnS23j&aVwA7x?W2f+KV$!MQ@ -OGngQCM=DCwK!?a?qST)T=_&ilcour#92i>2h{U73H&|_e9F1|bw)$=-OK|9Sv}WM{0MS+I0I20iJkb -iMyy56K=T*$Ox(H+50e_NmZgh--0jBdMktoinr|A@p)7!*wsRKYqY(RhdK>j61uR^w`^dqsnZ!vOIsu -~KI!0dqAs^kPG@kGy=VD2?&UibVg{V36qKjs5jCWH=zBWd`|T!rea4T6%Y?nvMJN}R!GitiknI6O#9=cs4n-F%s{9aE%%2ArsVz)B!ZH=HC5w+?&1{16P2RD*Y07O7nmZej*+AyQM;ki;7h!xm8rV`a>{9{|*F($#(=1y-IGAOmXT#6 -uIO44jXRt8YMLGGg(Ut~&JT+C)ifa19M^1*`glBehpR -pseEuJ~=-Ou)oyYjJft49VtXd}r%3%l9>#{Dv*c*}To7=oy4Rp#d#kYuU;GmBVxBRaGV3p%T1C6Y*o`50<`^}O>r;eR&_ -FF(X(=^a=E|hb>=i2~?PD-Q8i-GrDu)@)Ul(!fgt+y*WXcqE>q0P{cJwN)}%R>;wj@{NhSgH%~j|xzw -U_GulZy>A!>C;ZHN>up}RGTw}@ilV#x+^!Tte1Id9WD!?|s=$b ->7Aek|!W-(PM8D@30)LwLYBn1Hkc+|^A^-z*Tu?4W4@W0FQM1hDs(b)QdexV|F9i7CQINCH4r&ym{eu -8a;-7-eM}ANXaT!3z?O_I};xdEZH!DpR%{sD;iJB#a*V@tiOYXZ^35qhAGp=$WCW9gVX -4KSV&EUxUx)sih6RE?nA&}v1OfsKGO5m -U^fdcpmYlKF1|OYaBX4!>!I&tIVA;p%Rmt;6VNuI1ImA^k->#A9vxOu>8jGJMhO6b$=n`L5E=qs*D9q -g6Q!lS*2a(6|{-I#GRE%#1`x%jNPNG23*H -ujs|Y}lkEf==$eN~=krgIzz~3Hh3k6_UvG<~|O@4zJTE^FFSd9$xTP_b+M8hkYmjYm0>PVW3^fR6pz~ -OH6&5kLZsb`EsW!L#uZa5cIK)mQXge~1FN)N5#h^}gK;l2Q08AcP%ci@{Uc^X?em5pKb1TBJrSv_)(; -A-iJu3oY!Xt=Iql9%14?k_hCv=$(_q~k+~385nyMR_lLHIq96nxDEWL4r?mGbN6$94b8!Xu|Kd}sPH1O1U@QBq`D9QLrRYFIy>G!URezHiUu~Vs -er=vZlB=dFmDrRO{tsMlulx+7a49?rc;3lg8gb({fEx@dZ3h`KWij|lUBkL?X^`%SjH7lB9&Wr(atcO -V5QC`|eS1u%0vW$o69Z2_s~ -ay3sDe>lBxeJJcy@wBJpSW^+?2l{IsmBU7IozVr;_%+KeWs$`@LJP9;*27NEkXzTs4Abh%X!>Ak|JcN -@Ge(La0V3|oV`{E?3$j_coXV<4eX5##F|JPV~D>JjP<(_1i3-Jm7(JnsY?v3N8v={Hy-R@EU*N -gWy=DtRW3_j^ZMJ)b5J1Yk{r$(^#=;$imGdU=#PDR=ck6$jI)^-D1nU-azhG)vh|BD@E2{+b^ktZcCJ -&w@&g#G*>MgxvY5J^;rz$5Cr^$+t64bGM9XrM2$Q4}y(XsT82#58Jlgg>EP9Rr9K8wym$n)GO!_+p#^ -S3z|A?Pgcdm+F?Wmqb6IDF=o&*$XSP#zqBr;=+aPiL|Ud3yznM8Ix01xPk}Nz1xz`$lE0B&AI*0DpG% -6{l)DIjV9KrffQ!Xvwg}AX}N2gU%N!=}960U(mqGChwdAeM;#lkw9@srn|swdXV1$Ek4)NW|=RcLqXI -~6$XMgi}8Ni)J^ihJ1GQ6N>2?T0I!*MozVz+PKExVX-y9GMY&kyFZ~&`Y;pHxBtn-q7yj35>#5fPvl5 -KKtpdlC=-qy;PnJ1GK%Ywt(wW{!qvfNMB$$Zb@Ul@7B@db^ORmy9>wF20SwY3(Fdg_!Jke$t%mcEu1z -Zbu;c6b4+3*KBMn-8QT(#_@cHPu_f81*2V=v&Ls^;(Ml2c`<#&Q2a9zn3ROy9P7qjv|hkGR$zFu1Llx -loz<7QW38@ZFq(7y6iG7rB*I50YmUVNK(Q?XXwJXNL=h3Y)D8k;{u%z|p|pl(xtC=bD37U#S7|`8?hK -@Y{!v9Zn%i8Qo9l#g(|LrCY`7@neJomUmAgj-IysPk@;61@%K`{XlmmT>s#xA -u!wbI%PajvDrLr=B%QWSS{E8D}AVgVZH`V7>s8owDQEdS#dz(2a;iG*G;!| -6V`gny~J4Yk0XepzeuL)NbhXe&)G5W^i9YeW6UOL^{HdnUqZ0gyeVm8$})OyS=Tnf&Ap%^C>Z)1&=@y -G&fe7mBS{$cP8ABzbn%Z&8|Dfr;*+6n6uNWeI8w8ydw)fZRq!?^{%#NB9Wt!6y4I?QVbJkss355yEQ|QO2r%Tx~w?V3lvA&8t0u6_MdqthBsVtV(vd-u1Xyt$emm<{6$%jBOCS%B_do~bII)s?z3r*lz&!4rL^te8NpqcnR>tK1gv*HMUsHEpr2y;){QmPnad@5W=zyDLIyZaz -C|>)W{hkp=P~VrKgg2cfS{C)A5-EI`mKXamn)_6jYbHZKP2PSE>LCzoxh*rAnB#h$+<^GA$f7yUVxLE -gP!rl!@6aWAK2mlUeH&Rx6@0U6v004}F001BW003}la4%nJZggdGZeeUMa%FKZa%FK}X>N0LVQg$JaCy -Z&Ym?i?k>B@M;HYvDw6L(`vy;@uaANBbt4_9bdL)739Sai`fO?O?l>!|FuTh>m|xaoFH6`iwaVB7ABRZ#(j-IhgtSHttVjV5fkn|1?BPwqwAe -ZN18#%ZX_>9p&ox@(Ijds;LjJ2|-+x^0x_ymp>P^|tSZDJss#uGvj2=f6)*M0wM#*Dx6Qvm52NakHE1 -M*Z5W2fJNe$?w0`{YBl#Ui-RF^DEX?-5|T|FW33N#%?#1Y)qoD{^(Ur`=Y!oa1iOh{&!ac5&$csgz!q -29cqe$Rc*?m?b^C5n)+9kx5btnYI((m5ils*{+a*0LyNu`Mivz#|B_$L0$}~O4}Y6p4@KWY9ohUP75~ -(Amye33VS|ZGSbjFZ;-=@jx~X#3UddL!bT9fJvG7TIRS#Y3;72uNA4^6QqWXK*juUiLVBwQt=!Q_UrY -j4p)tXKDSZ6T4JRZNBMsl^&Bmk;g)C2!ceDEAUrd=kOO1 -Bt8U6^f?G$?BFKYmUK`RrOSyH!RqvsFce}*ri)`=N|2jp3^U}o==OqfgS%@fJCV|L|)-YXxAIY8V6WT -g&_d_z8|{3v2uzO4=So$mF82oZIWnPTr#7uFQ!ch7_bcdm+x9R2?6x2EO-emU$fxmAf}O4tREOBciC7 -LvFboG;7TyC-O%J4)|flmc!I6-W@amJIGbYJFxB=a`ZZr$@N13i3O0TYrSna;^;p`pS&Wy2(42j&$7x -Kc@ErKtuFqlc{C8E4eN*hIqAHmHcs|y!YdAY(qy1<%BKMnEBKF;s9f^maX2v@5i);-LOw0d<;+XOF;I4m6`Uv(euxLefih?( -N9kv{YU=l?JvJP`{hsbErEegyP`3;`><<)eAhtL6&rH>JOtyaRKx>cL9ky0IzJ~nAAY8vw>27jR@N7_(eAY@!R;GvZK@Zt*<*v -^+@a13R8N?moZwz#LzGD+DFt$RPGxaUYDJ!}pjyQ)qFj=CtfWaLDQLx!e-AOw&Y~Dbw~9``x5tS!7K_ -Cz25MUy6}IA(npHuA97rJq)_4W`rJ}YzK^>x9a+CR5#uG4z*vxj{w(2l=g -5x}fm3)AO`QUnMrWYfUY-et0@@I=6V*8(4Mx!6R-HDm;4;;-el7_hlVA8F+-YS4=#UDmVHm` -GLB%Rbl7EFld?Z@}t*L2)Y;W3takVY>Xl^MX6oEDj8y%z&J=zpk_z?ElworH~&b!?dfl@Otr1%Rql^d -e4fi>)^06WdFUZSFfjnj-B&|fC{l~%mZt&fyz3fO3zeVjm#$@@uFy!(0EO6?t2=f!8WL@n^vb||O$!e|KQs=~krAhzl7{9scL#hAq_ -qk@$E1k*(DkdM0__WL2E8Qf6`xin2l$l+96W(K4ROF@q!bQO$*anLVfB4UHuV2Ds;Q9Nq*((woH+@U4h$1Qila5TZ|x7GCm=H)oR>&28K9G<_hOX+aIm%MoVtVW$+1X5N5FkXk) --4JDpVt;&IoaGR3MCwrx}b-xVdK?Tt~(ScNr981IB-z@rREeb?_A{=gn!g|j-}({PNXc{#AY7}$`)v? -m;_H7@M0o1jmSJ!3J{4R7yGQQ3DX8htp45d=vOCSq`!(JANOI3nnwJ4ex38X?L}=9_m>D^IVgY95Y#3gHzIQ_nx->9JQD|Y#uaN@+!LB4{LS7c --2DhbfbsEDIdT7z^fnKj$^e6yb06i5AkbAX1B}*5HTiC4*RnQL16&mkI8Z;HeqWTqH_nEGAD^+SO8fV -x6Q2YV%Df*&0d;_guDGoKc@hHVs7{}s*K`_GyfSC0j7FO}Z5 -Xl=2>@Yd+AFDRh;JsHya6s1ZMvr7eD{EnB}@bu7jm{B?Gu+1^c59XMcvr!f$wl&sUz61RSqn4ma5FI- -y0qLWdmv}%M$Rf@2NQ5qAb;%yE80j>yaCSi#ef0~3(9Ow)Sju!IjJu|nCwJuL<7GJjp+hL -L-utf-N-heoE$FP0zb%yEk}%rm)C5<`Mw!;KqnWdyN|mP5puC>EJWEIONmXDQ5w#7Z7Yt@qtJpPp`(Q -Xi-!Q#EdfGui*ScT@7~*xYz-0sIRya6DG7ox)ky$i{R9x!Zvt@h=~(pkB=|WQb_ccxje}PvM7y-|b|k -n0t(NfwWXV24d09`OIN&2TqWDJ+6kOeVQb9qDmDGVp&z}LD^^V7qpq&+4LOwet=WDQh@~&Xl&#+<4#@~x1ZhQlwJT^3RThl)#4AmxnT?%L-^6 -}m+%CObzKAR1r(K+v{RJi@ysOEG@rVhH^_if=rO3S-N_4jk?V%N3P}SbtrpoN7ia!tmFKeg?A+bhr!| -ltIBo7mludF(-1%vxCWgjgFL%7Y@MX_t9g+Z9aS%vMTI2`X?iemxZodNWNe54!D*fZJQZW0_?HYDU+G{xG;E -11ya!@L4STT#)}ebyy>DV%SKAD;4L@@d@uW3fkHqFhZmTJ$vUO=9C9%G}B -n}K``P{mWpeeD-@&S{9{Q`=H9HTi(87TwRHC3kt>d|Ia5GZ=^BQ?XX&(GJqRkWN0+2iIqB1$Icc1_;a -Ve0SaVOAj-aMk?%dq-7T%O&K(OW5Q-gF!q3{q=D7S>r^{r&Ro13?jNTr<%^`KvbO6S7kpg#Yh(F+Tu; -y~_FEX2w?R#5c?bs{5zWohKxr(g&UfqM2fJ7-erUmhIi0w!$7AZm@7IE9qDW>56%lZX$(aDOqjBPP4 -$0lCVi@^2)N`B-F$7|$v94}-OQ<)fVjjt -L!Oe;h%&cW_KG5)Y>`BZ^lx3=#`JrY7^6Ai3-ku#BtqLjiOA&}O$YQ23WB5FZ|WCZ0RIsr7A)D -cSCoL`I7|VD{VIl|*xpV8VU}}Q?igShT(Lya5eJ+aYE+awLQyR-d4C2fD1CSuUZmO_knBmpn(M3{^S* -9dpp=81SSx>kSy822aBavAc-7K?gnMCk6TYj2dQ7`l4a|l!nK -bXnFNsGuz^F%Uga^aDp8q%W7m3d2HpU^I`F1zP&Y`N+T0y*h&nfR)K;r9!xA_CdajqedRA*6Ef@y(KYU!L(%eDb~GmM_yC>LEo --42H~v843eyBR3r^f7fnCeTD0JdMX(9sQ`f~o4= -RvELfn8Psri*dZPEg>iCWiZh3(foJ;KapNwt5yA$+34LeF2!;Bm@Wr)%cmJldmN~Fg5xGD(lDX38tk> -a8Yy);1NKv>(oK+h?eb1<1x%u3KaMj!#rT4o^InCnj>N3X@!Ijhi#C=#?i4^u(}jdc|uB -RD~7AZ$TQ;rj@LJOKYVJtd32*>>X;^$bUk+l^pERyY$ayfMX9-bY*s-}`GEODY0e?7E-?Dd|)*TquUC -O_EEsBFmDmxhA4|N~3M{Ee~~Uim$)^hA0v0Xw3_=+c{2XhzU?~U2dc?+U}|~Sc|L!nF9#FE`};1!Y-P -1H=7Kv_hoAghXcTm)C*v -y{wvFT%gp(*2j3w5Q)Mqx+$p3*U$pnmP9oOMiio2Pz;08)`SlhwYOwmov80*be^+d0<-A$YMHVH=d -dG8`(o$MFGDV%$MhXx;9%{eFc)Wruv5c@Fx46;0$#jpCqueymEZM>F9*E3W4&b!cN|R@Qa;>dAlRKfZ -nT{Ba_}U(Fu0=@!h9DzjX+_%T@TQK&ZvihP_RD~BA!AkT}M9J_r}luUk@sZ)t0y@$?lPw68>)8WPzn_%H75hou2tJdt~LeNTI`^LeO6(9@7uS}9 -+ODiFyYu&gEXK~e(2amTM!L3if;i>C&s$oJG$Fsi=5?0yt6pfYusNLdjB0V+M)l4^h0K?5XJdS2GZ$qG8q -yNCgx*JN&pstROi|p68pV+;O&iB=fX%0PBl!X|PF~Q$rtkWCqI34m1la@d$yn3+1TD9b_K$ntUy_U4U`@X=vxtX3 -K@wLa7be+fj{g{H6)!Omx9mralU|zH7nX#hN`MDqem2I-<7EF88Ho+o1+wQd6KX4W7f9TWgXCrt>L~~ -h=ZSt_p3x60(JIh*CVINGL0Bt(~@o -J;U?(=y(|>ggJ*QoekmY9#->UM}AN8fO}@QPKkdiN4MLPALvNs>6h3AonXcQo}4MbI&ocp8ohq~=4lIIEOAmoIl^F-b66cvpF$lu5OT -%uEqgK{$diWH;(SYUW9#?LS86H^`^= -d!^dCq2JIRK(;je)5b^>w~(!m5O3zllS{09I*i>nmf#B@k=L8458&nxHR^?op&L-cCAmIf;NZbBwEU2K}*Yie+i0R*M5!H-QdBATtyj -xTF&wKQ(b~RXi47sWBT&1UlSHBcPt+l_rv0`SMtJoGD(eIeocYlK^HNyK@iN8S4@sMDo5RKWsF!+C2u -^pK=xG_|AJ)_;|yHEamz{>>R#YdkGt8d&jA2;soANJh-1Ue#S=bD>j(p=<29b3LoDL|`%S{BQ3^O6RK`s@>Hp^*pGWbE?>6&R#vCIz#x>3_RwFn3&jb*j2))^0v^Xf@}#teT`byUhIIrHhHXFPxi{?v(ZSti9? -kF(E{A^fZ;i1@vfK6zwNO -LNZdqI3Fp@{%t-~mOJ#o4sQ;q;+KMRqvcLhLQtjQW&LNv4@THxq4ON7ES_J~HcUOzJ=pvO$Y70Z*N*mbaSR?(5ZLq=!lyQ -C~Y1hwS#?*&7~z^B2_8=zb_MVTR_{vg>9a@a-lMPuP&vkS0-`Q~8aG#0?JMdj|P%T(A1U9D8gr>lR%( -QibDD?nH5@N%@{6TMjyrh!jDVb -5AObXG?9ju=J$}2+5W9S={b07EdMO?(gDK0}|7FspaJvL*1%rS=*D-#UuT)0m7pR!*Cew=`JHtp}(4z -NCtqa)X=g>Z|!j%5_UUMU(#zD}@D?KKa45r+&rg9w|bKuB{TBp^KlL^mVCA?!A^mzwdO_@iUNJm;i<( -p9iDDqe^)l-jW?rI)n+3jQ-^*U53?o}~sn;~!W@v*rtheT50T)6*>Z3kL_~e8I{rA>PO_~Y0R9_xx>1m43oMyo~RrOJ#IUK!{aF!H6Djjwa{r46scEnZ|&>RP|i3D -I-6w#A^*LN#unkVxk+Xo_Q4N%P;9}lQA|90A -7{kNlUP;b=3*{78l7u_eu27Y%&@qE&L*dM3lq=pcUsbT6kW2i@eYc43&Lnx4OeA9H>|jU&Lu5yZiH_* -UpVh(K(|`9d&Ii9<)n+LR%dShgit*+XemhnYSfc_e@*)>V|2qBCZ=-!;FA-QPel;97p&n9tG;<&~5u^l*jDpodMVcw!^loYTlj#5 -ioK1t9^zaKA1EA@BtYYifaS-E5`GM$vaJnbPBA1+3hAgSA%@;!v~7~4(y`-2+&RylxedYHP*S{MV3?J -Ssf7>2NhafS3-_)%!5@BM3e -Q%etrQn88-U13HuRhN-NUbYW!SgcJ^&@rw@7zY{N?c006QWC+<@k29W3O6dg}6>7~G_xEBJOy*ss&QA --Fsm|LUXrA(STEr&hsomy9oB{wWKl79qL%FH1j8w3M6rV&W%*3^ZuAA)aTH9KZf0Q>`FEe&iHmqp#U+ -bQC!qX5qm9Jdg%K_{8w+)&?IHvgJ5TpD0#$DF0LhN%vW)>X{2W<;9JVs^}f#U8s0qTbTk1Cl5A)v-fi~Qz0m0V?s%^{AwAbT1qN2j9!YPSV3W9MeVB%MW60MaXOHTA9P$%%lkMc -_^U@iE+tM_?pc(B=W$0m=^x6sEw1R4CV}LRTYgu!25fqNN0ItJ7R1So!)A`EIhyA)KcJl~>wdVCH&;F -eK4l$rnN3DhW!xPxzxBX{sKY!hWb|qW51qt&6W+?5=h% -bJfTMQaju6mi=si9l4e2%ws+58bvs$+uCXB|{s~RnyrQa|pPbB%Nl*a_Z2T|Jp -O)-f6nnwv0QmNrk*D(PrdZjLT`cnD5|(#(g1WF0OW|ek~Sd0|fcVWf?tu#RjYOvI+B;L -^T*ZqwDf^4=Uc-A^Ud;SL(RDWUAl9WG=$4p-_zS!P`g{WC)b1Y){%t6+qUdOVl{*c2RE2IU -;ZYS!o$unl!9Q)3sBHw*eK{dvm|tOQ58K>+xsg4i7CeP55T+vCNu^k$EoF5StZ2Ol3kc^rNBUG(rbD7 -qhXV585q7nG1*4>jICG{hWcLRoYnY|F)=WA1XH!uY1lw9iMlg#M4jxEj49QWacTVHV*Q!eTu}bFv0&u -#6JajjG#)fKtq)?XIBN!4>CLRpWkoeY>Hod*t=}@^v@P75#|q*)~=`n{LaFtH~AX_jr2-tR4aUd+zv`-fH8Gae*u(`;{MJutR2z*nUnp#Xoj2Eeigzi;qcf5xD37d5Iu -Cy&Q8HuaV2*UCetpg?#4Sa6V^n3Erz<4=E5A3eWo%MB~RMr~`|IAAL2Mzu5S>d%DxHIZMZP(aMdA6ATn2dK3UDVL*CV3#M|d)j?54Q>#mT1qHF>Qz0dA|f7SvWmP-etYV*MSmjT?S1z -Rs8oVh+~jy!!l2Wk<6%lLo(V|+6qsM^G{ky~3=hXi(};=<~iUnwXCLWQAZ3b~M({u&&$xRFd|PwHE&| -2dR@FM9Lh@e914XD=d{*9rA1BDF!k} -jxy#{&Z)j;D0t74dBN`s(TToMi@z+vZV`b+HVo)SpEjL!E4pqc^4st&!Q$#3^qJIjzzQc?;6$mnXbpO -kdBPsA!_n_ikyGH_boh<==X%VZkV6#4b}4%PcxsqcJg0<7AWpG@;*{&9oQA!VM8WT!H!jpaQY>b76qD -I)QgcSpz|R4Rd5f&QlR!O+JKVyM{&_+dS>0_S|NmPs%W)maf{pkly)`-bf?f2$!s9@$Pl)sR&NDn9YGH)2DZy)k}PgM@ -muQDfo^{FJ8?Un)V$PejaOREBnT|N=sCWx$$dSke~GvqC%YF -tqQff}^vW@HD?K5KON4&tKvd&3V@6aWAK2mlUeH&QqKp9and007S -(000~S003}la4%nJZggdGZeeUMa%FKZa%FK}b7gccaCx;^ZI9cy5&pivg6H61>8h&N5B=iShaPfiySV -G7NOCwF77Kxv#x}FGsEE>T-0lAN&X9T`CCW*PtAR}{ku#jvXJ+Vqtxhb<_HEPFkY!AqDpfa(@3fL_1D -Soky6WCbbvTIfaJ470TuBLeBUGt-y4Q69H55OH9BIs^N>pj~0A-=-wBq?aC;GH)gdB)+UaC^$T#A1~R -`L_Lq@rw~F1bwMV-A&f*mbEJE+wazuj*RWA+nPyK}CxGUElkeOI>-TixmNf|Q31i*`!MnEn1ccB4udmRGCQ%NlqCj86ne-91;s1D -#F!_d7Le=LBXHk4Mt;t#0ZhV4OSJR;mwt!(RRA+dum3!G7GwxE$Y26U+!+L&UdfX*lo`Lhh7`q0lq57>Yv}}>zMD^h-s(0cIxtL&K%hrE+GC4>T&&+1 -tpV?Ec+Om0e1&?&RVNdu%KYzELn$qK%+9zMX;gGG-G|SA3EK7Sd@YOWuZzYtG=LCNf3A0@%U*yJ_QOK -jbD6&BAbZFDT9j%1CJx``N)}X3@NJ)Y1a5HZDbOxuqs<6;St{lGX|9{D6QV$!dT2agx83?Cl@i--omj -U(GWp;<$99myvS67eU=wF968I=wct3eZ9<0I`i=Wodl4rN~@3D@riBKX+UTpM{nV^$lg08w9a4Yef?x -g$1W(dZhTE8wiv}3HS3kWQ4Lt$CQ`76k^; -KZ$WUYqPUfin`hb-mH+oh`*aPk@(PMk4u?u0yFr9jB8lW3P(M2P9&Tg;{KnnuZ9d2XMwqan=~q4EtPvZ?>8L2`2!dQfy@}X+=S(9B_Y!V$(m%ItD`NYt6UM}1ChmmANRIj!? -1&n_M`xj9Fx0GTysmG|%xfFmoyx3GMjR|~`4JKJP^ucNU!u8jBjbfJTPD*xGZSA^mmCQIzK{}a8Y&iR5@xq -V5`z+G)=C}1w?~t^ruDTZ=6eiWwigorBegLx*^X-y`k?^DuygpKI_i<>3UaYO6L}%_m^rk+>$3-5B(T -Hp53k>nMHqLuY2+Zmk8+d@Jm0%kBv>)QH+`83ZTorO_10ipJ61+BB09^jr}UwDlFIOG$fN;moF5{e3M -Gv$%^xH+xy?MLBNt*EPa@VtgYoHXke)}diQ=c{A<4(U=+rm9z|{)bP+ys@g6-wZZVTq2PwWQgJ7Qj96 -0)5zK!JEI<(VYmIC7qC^o>4U=;R2mvjL+KpC-kUINN^0mwRQQ-h+3hP25xd9{B@}r1{S;xE`s^P -CAF*#j2~A1f+LI~zgH7Y0#I#KfHF1Htc|4Tvk=T!LHlcn|B42*2MOm)OJ=Ujw&)}i$BwiN6ioCmg;B= -9kow;6+l!R+XMtB>2z})<@D>B}I>y%p8~K+0Y~)$}pxT{}-|QeB0DBn3qo -{A(Fms-s6Vpy^pT4S}*VG)$b|ED-q -7z)8q@LxnEB-F2p>=&f-WQFe5iB3r(Vz&KGq1U(@-e=@m_HX?e1dr}gCe>3O|j^ZZ>2hkbYNO&TIeTT8mpAg-7=0n* -_N8)%$8VAqLkRsm25W`6(8w8X6Sw?FB@n(rtcR%qXv!S}vrMrfbXS{y(f{U$|I9_bO5N0=9_)G%@>+S(+C-C$z_}-MCi3u -02dTy|>Ubc2w&}?nZ6!X)=xZg(DzQ=tlbmdt>3mGq;Pa6coIh&HIZI+e~;l|6;&9TOLLq^?2n<6vQsN -qC0jIt$!V9;y-Zdg%M~jz36wE&%al+*))}J(k{77Lcco%f$|ggl1|cuE|aI7=I7~t>0a^+ErHqeNxg% -$=o5N7wl=8Tx4O~lM)fD!d$p#&*n6UXv1=OO@SAU>LeX^;$DPD~Mal|Cs`GfiYtw9y;_~k-i$7?Elne -eq_B$q#N3{G4OnmiUP)h>@6aWAK2mlUeH&QODMI;mk002`G001BW003}la4%nJZggdGZeeUMa%FKZa% -FK}baG*1Yh`jSaCxm)ZExE)5dQ98!8s@_7cM^(`&1yqy42{5c4?QU9||K7XzOfqkx7-L5_`k``|e0lF -P5AZ+XMu$NZ#?e=U%ljde72yQ@YYXnliaBv~f(Vtj>vR!tPpox!!K2 -+QwIHN23khSIB~=51=w_SWofG_92O@Mv0u4PUe<7*cWLgYpGj&eNh`gMN -wF1`7DeZ9DTi{@~}V8GOYO>&%qB_^Bpld94-P`7=%!gn^*6< -)~AdNX-TNBp!f0h`dB61g>`w&kL2Ya2c)cxffAdrErkep}7dk+JJQ+Wa^Jt)S0D~(o6Q&-wjIg --4c;j4q67e8N;Q!fOUhBOFYe(g2$kQNmb#nTwFrC>bcYy%Md7tR4Tm)pj=h89+!$@ -XL(PEk4UpCqbTpz5Om|=&CFEJKR$_eRt*r}o0~WmpOdGkS-RK=8q45o`1scAhKto#FhCXxjV0NC0*&! ->tQuJT~4YTT*%`NmrgtdTaBdyOPwT7g7w-19UaX?1xkHxX4;)LX`{I~N8WmD6nYwEDxpmoV9N%*;>o>K+2sVye^HrTA&bwH7sBm2OZ_{Zs7xnzUlPt~_li&*c?PR;n~WDqIw^AbCuD3@ -$~l`C-NKL3l7!0Ej;T!DV5<#YEVj+tTOf41h -Ul`wjqg`~pry%5QZ*9X!z;l4k8%ojTvyYnZX`FR9}%e-ReuzM$jcU8l%Xbr_QCigd494c*h8PQv*i_B -iKff?=J5P-T&{ok3A>OeyoK7^9(NNG%O0UM~h)y-Q;uQhyoeLvDBC<;x!vQo>7P>vko8LYRh_Rw6^ILT*g%-+gx@yb@Ay1-HPh`K~ -Z)vO+@2mxn{4U;(DQ-`%-$U@6k;E(&WGbVz~Eqw@0VldX*$xq%P)B4MY025N68*&~D4y3nu*4yi4MS3vm41@0BjuM-|ZrQczr> -t{7f-G=88wB3_bcXnb01L6^|Gc)7^d?qoAS&K1`aBw{IoM3?XnDFf};N%0r@6Srr?J@1kaOS|1b*DWa -^g}^1W0S|pV5DGZ_`ITCNEy-U{2eHqDhBO0m^$rbf|UR(+B18S_!ueA%*2y(rmrD>{Q&<>_1RT0|XQR000O84r -ez~uj(hL?->99+gtzuA^-pYaA|NaUukZ1WpZv|Y%g+UaW8UZabIN0LVQg$JaCyZ%Yjfi^lHdI+5 -KW~dP9!>ys=Ym5`7Wt>+)nLglA1|&F6D7?C=rqvQzS!BmUXl9->d+Qg!-ZOCZo_H2RGO*Ilz? -S+?Hy`;KQBD|caXj4z3Q8$61t&kHk-2E=%0;wAdc?WRa39a&Dq%+XKu? -j&2D*JG@YKhz1d_P7tOv~ap86=>z;RYUZwnQ#oNAYYN5ycT$i=z^Qy|R`9;??U2I_0ta5MMvaGZAIH& -)6!J~ureOZZg)$H25*W=#3dj0%|cW>uxm9Mru!%>;Uc+LQh0HE|_9G)VU23Xbwulo#I$A|1nvC{o#XA -C|s^BexMtoWRM<>E$uDN502YDJ>#x!Wo-Btj*d_-2z;Wqp&u(zde6?@%}0F0ab}h*sEr>-N- -7lbWA^&vj%W&JW44|JCe9bbk>dLmKRxv~7m@}toj-0UBmx-j@6C@ -kIU^90<7|?ehJfH*;w)jt4@D(&&(~!wz@~q=|&so3ape?HE$bQ=cH?2!vFr0%mYxxXVSg;j!F4*!&!# -{$a03F2VfW#+-tYB-<6F6j30#Vq94~X}N4=Ig!!$F6EY~%9^+7Ud0rn!X1NpksmAS6TrwOah3N*Ie|@P(VQPgPs3Ghzq&ev^^dics>~)4N5`kXvf2$n!)#V`P-h))^*6kTDY&$G@Tp -4y#fVreNBvfUk3v9tucP-q03u=lSm~C6RUZj=G{ij+0&;t2ZyZ;5~yxa=g@@S6sE7>z~h(jub(A$B&Z -F)8_EPQ@D7X!Th}A=>P^Icb%O?n!22Eaq-kChGwhlS9v@3y6$HlJ0l8!#{I`ngXNnMxRVEW6TrrC(6` -vliHlhE&(EI?C#N3}jG6K;9XJN}+fIfltH!q(3@aFmAQ1;tq-!FiHu2#+UnFCOc>>C4F>ZDSSP1#F;% -E6{H7%kO`c{pc4F9L=m;rWW?b%9?R?1YU1S-8;VEtOLnujNOW9k!Lop0FOQI;g|EGYT@({scH^3i;Hd -3Thy5%~DXI1?YP17Z9=024p+l=SAMNwPll|p{A= -kXgEl-z#W)PNq~LMD*)EIb|w>TRrWLd>hmD(DRf)cR~L(Kt_K=qfG)tLA*kDch*KY01l-}#6MR|Vbiu*0)GO}ux*A -(Be#<+hnnCA-qPp>wDN!loy?$iP$n`&V4DR={0zPbS-6M#cm6<{EW`-H~$Be=YbblB58=7~UW+G6-`9x4_ZP{>n>0 -8Ym$WIv=^VQ6vTvN8(c02&TSTuD3(91es`cF8O`upCb$CmGwywmEQRg_iILTn9X~1wpQm@7!U?v1N@u -i*5n+m`SUDzar9o#eNBsp3+-7B%KVa)UdhrFn}zFyttJ>1H^Z)HjLG7sw1~LC!oy4* -Uh$!04Pb%fP2YA3V$E4n_(4mjxPA`QZGv`#!_q82X>8`YAPWrMY@;_&Z_?dhCi@_BA3c@Y`Wqg41mLY -f#H=m6KmWF}1P<$PZvZU1K6#Gjc#9h(@H~6$kYS{y1$2On@HJ>L%Yv=L7i&Hw{P%+8B2pH@9!vMFsYu -a`c4qt<_+uHrVv(R1THEdg=n6E9^XAEXoZ;#z%<~GIH5Z1>wtUSS`*idC?j0A|-XE_WC){umcB@Yp6si!pfb?45KzzHx67f2M< -s0`>y{4eeg*jIz|`fK5^iL>6VeZYJ7N`%pExP`0$;Q5sCTN>&)9*0Vm8B2wEmOO -OQIZZI$n5Nq4_t++Tp-vCnkCFX?B+atu3_4)4D9?wf5z*?Vw^Y330giPDH!m}$V$)P1w)*x}L2(Vhy@ -v~q%bX1{Q46bAY(Td3Q7bayvzEFoM>w@fya8NchhTtn63kIc9$H`|_VxRRgLY_sf3I$e&k#8%dg -62vScGcho2a!?ZP5WuC}PFb5#!-NEI1NC}-PiA94D?=Yp`$wB8QZ -dRd)nNhU3YC5Vuf1Bwd}K0&uR#YmkG{|4rjW}a)A9;MH06NRl|JgY_768K2%;om4L%U>q!30t5kxD^1 -Q>}-`J5j=S?us=;)+u7-aOaNM6*U^C*}~59q3ykt+mXTQD#edQMruCFmiJVK`|Vl2}B4H!-0s@)wM;6 -4g;j?K&VNN!BQNvQf8$YZ6Hy9E|EJiPJvC7Y=p);%&+0+xf4;6C`qOR{U*0Y2~gSDFjHr@K=y4atP!H -b^By!ln7k%p73Zs_Ey-9bIYgfZTmn4vLUe5UgZQyK1|huKP#|6OR7~0UJ=!&^G{9G$_3d{f -rN<-|zEBpKtit6`LkNL`~fQ+@0TwZp0&q%t4o?K!ESKV`c~58An3p|>t&4}Cduroe>XmSD){WWG@aAr -tG9rh)5kJ&-!Kn~J%#;vl~8Glf2lOs_2jqkuwHWcbbL?>QuMU%@zANA2bTDL8`3KD#tf{e2&>S^zQJW -P~uxO)P;>H(smawZHRYgxMrPgzy?4TstA~?3_^f3?_H$igI9DGbiY(a)iRUHm=^CkzIp)qn7g8Ced>Szfr=5iQ^876F}5Wz|^q(wgEoaH4tSVb-Gb?WPRR&h7qZYk0+^E{vdbTx^(bcsaZr08O% -OIr~%ig*hE3{Hv(3ZsojnWxFMrQfjCOj2~jL7k^$C7rZZ#bvmnqxXV#?yuGpu99TbWmsMiCZc4 -YXF@Q%5iV;V;#dV^6mH3N)=SqEuZWw5VJDY&spH3y@~#^SDn7=jv?!T6obUc}raISQQSU-tlBt9e6Fa -M6HVKq>G>8a-<;c&S2oR4hJVAXK;WXyizftfB}AA4;2kUm!t0bLLpzim@BEW3j}mW6n<*bh -#{I{9yI -1T{GeAuT$2~q?lHiO}>{vf&D%g?`!Gie=a6-_Ox{b5P|BAo!b+tu^FON>4Q6P-V5)Js=+vB%0Q9chNZTyHS#I>@%CZ%z+-HNj -lI%4QMgi$ZAdGSD16_u}ntd#6B%1Tzh#kc#2=;@qw$wWVW6C)a^OSysd_lx<_Uz4>ECNCUq^d-1u|pL(SRC9Bps -|aJoY&+=$AZRdJ#&4|UxTTplKuPFt6^|1vn}K{`iDKO8vdW9V{JS~Yq3QluNO>M(PM0loD)wF5b4z<= -o4xmaPA6y^nESmKfLK@~9^a+wpb=EXum=TPPfl&3is29gWz*UsuNXAmhO5{a`=b?Bt~k-H-m;^4#ycf -=hhS<^CFWRMlOpk@F+Lub?#xiCR4>FAawsXES_N)HZf-?Ds-XK+(RN?t6aOVZ!&${K;k;UL521VQYK)_|^tnEz*1RgUY4vHVt#BqeXDaAEpaXlE=Bj5=A -B)NAFb*Diop8;&j`J}#!mGsFcS9%D>suArM!6-hQs3>XiDCRNXts6+XNYOdp_f1CE1G?QMsiir)<=wI -oT>gwv9`&SCgB*H{Z)5->HFb$4!&U@7d|-Hyu=q2dLjoqjCX*B$cj68N*$LDlx=N&tZ)Qehkx0-w_k4@` -~x)1)q#|N5U!;X7XSkxOkV>`y9oL4)_xT3^6zj6cC(}aae>2#=X2FAg;0Z9Gd9XI`A>^2OK1k((8Lbj -V6N=r(E33rawvrz-GtuI{7aKaAwmZ{GHa*Bq1;HIQ^p;s5fd9@yKeM*Bjsx!1cCl_5xRs18HxN3|4dIIz)WgzBnt`%Az>XE;1N>c@yTLIL`@O1J5HI --$tH+Qj|E_}Fux<+svJl>18h31sK<;Z8qEvCK{9(?H$ajauit@~>GNW5`y>1Ar;RA5v*Z1?DGbgOrXc -BNt4cf~&k`mhdqX`YR;Gy~@Q*xF3;M{}W>uGtV3C!#N^aydzcs6;<85TG1;4d&B07z_hH{ -YjgU4EhXT-gHn*w6!ACO%dsx`;+P*Y?wjiYjjshQb5fK!PrqKUPgFI5s;p4b73wC&Y}ssk$}K-&Ge~fqF2R7pl<0HZ3#y8CK%MLKmddc%oYnQ=B@Zb3BZEi -$=4!O#|60bAW6mfVgZ3Xh^98DA-FZln%78EN4CEQ4x@7Uv5k)pqq92@Z1g5bxqZvXp`Qg(mzd6f4zVS-s+NUWV2 -2f6<*RkaTwmnbwYl{qQ3D9PEhg^tX1UQG4Vjli>cVh&$>@3dqo~o9=FBPCt#ByG5GCP#-)oS8y!pA -b{q%IA*FP=>N_T4OReaZfa|8DG$5kt9&mDi|90}!t4i7;x>0`JSD6$0b~ayA{FX&U=2E?H$HcL@H;A$fAQYP=D;zSJ&gi+oAA><&QqJ6N3}=nc`#%%{?$#Afu6$(*atDBRHA -q`4l8JTzkktk8GTzZ=-lbIW4;(@uP=~&$VC%?9o{Vi8dM8 -q>?0CJUS3sb3nc>A+ypW#wJCzH;@x4brs7n@b2ODaJ=?n0k$?5#~iBTPv6+tVyrg|Ry4d^!=f|)_U`S -DW{kF#PcoktWByGO1bWX%E9?~%(>1S^F0|0P=iP3}p6duKw!Ey6T`*hBb%=lE`1h6PY;!Jgp_?+eQ9M -I-+Jl`se31cOw~ZLOzz&(o#;5+-2+k5l!M!JO=1-gF`>(rlNZW{{7J+vdC@MfCTLb?~|G4N~rBB4OEPPccW*UuGzPj)1dF -vPb2GFhe0n)Weq~kAyz2{Uv)8yy+TbYCt0nKgbUy7%fX_ZwtE-k^cz`>)8kKD2vs@+)vlE683KFYbzW -E?Haxcpx<%?5ZFP!Q+88N8jFigUUwuaTcvYLD2m24XociSAL_8ZPW^#T_x;%Yi9AduGx6 -}{v=MvgqP`N_aSMh+Bf|xmi$Cr@g9lhPeUWRh%=HEb~I(|D() -QMB@#*-GxmU=4yjwYn=sEtsi!ge#$gNHVz$%Zm!Fvc*;co6dh`jZNxI!!ix-@UJ=5=MLc=0*y>dSoAb -o!^Odr#Km)7`FqNTzCIJuH9#OUM~)ezR{fW4&0mkRlNoNTwN)A5OVBN4refvQTnyrjd -pnjdh0i=xC`3laUgT6}eFqhB=%G_0C}&nEkRz4+@SJd-d3H5usp7i?s-XYZvv>Qi^cMZe=#ixMURCu0 -W|*eDNMT|6eG+TxlFmg*B-UJv;v76zPhM>WpBhY|h-jyrTrvtvrKF$c-AE~YW%FnEOAb6-*Z8Dt+2Y;e;K-PW`J15ir?1QY-O0 -0;mMXE#y+00002000000000a0001RX>c!JX>N37a&BR4FLGsbZ)|mRX>V>XUtei%X>?y-E^v7R08mQ< -1QY-O00;mMXE#!?RYHv?0RRB20ssIY0001RX>c!JX>N37a&BR4FLGsbZ)|mRX>V>XVqtS-E^v8`k-<* -GFbsz8c?wHhI;rddCc%Mef(fXmAr8|tMOo`^fwbvtZ-}?2Y1hG^2rT6gC;#s+e{%8#RJIywTMANX+;A -_}@lf6?TW-J>l_!D6#cZL+ca!nGoP5-n#)@UVo3Evmj#`A@MRT -D%YH1HX-s94b+KngVKG65$j9ssg9`wZlmtQI-l8K{6_jOpbt<>0|XQR000O84rez~000000ssI20000 -0D*ylhaA|NaUukZ1WpZv|Y%g+Ub8l>QbZKvHFKlIJVPknOUtei%X>?y-E^v7R08mQ<1QY-O00;mMXE# -!-qg8f|6aWA^M*sjT0001RX>c!JX>N37a&BR4FLGsbZ)|mRX>V>XY-ML*V|g!fWpi(Ac4cxdaCxm<|B -u_avH#tF1?wQsHel=U+P)v&qHdAqOB*z|w@8zBC~^xOEzve_Wl1MWyK#g3?{8*EN+d;jH-|28xvWGE$ -@%)3;VAR@{FSIhnTs+zv-d((Mc2xzoXtKQ1HvKoN>kWRZ&zA>S{KFXRNL2 -O(E_@0W*K?WFt2@3M#KXQ5I+Hg*3S|#7-^) -g|z<{pI*X%)-YR;Aquq}Zrz=m@;7c9PO1kc+eqv5OBd_JGeo-t&!=AA4LaLyC1$kegwik$86Felg|uo -xazC&B7U!g~+`(%yG%*N6njoX++6imA2%CT%J@FfX=mc%el9HkXQ6z3IyKT#Fn|vsY%!OrGkhX<1Pn4 -zLmXt2(RMzNt>Iv7!LE09nP%JDAP8qRnANJw~>oX{)N}M`TAXL6_(y=uDE{1M{jTsd;wCaTz-h)j;m0 -Xp}n|4k{WrM$*f$r@SQQ|5d2=|6mflc~KyD&u>fB!Wl)rrU9=ca%4w}dtJ3}NJRAJ?_3>UH%-+9zbgI -v$5M4Qt|aoCb9<~xv&?$7ifs^-1^>k=?<=dtS&q1s#Un07u#s*?)6(FD*X%=A7hs0{e9vC)4k=2xYckQx$JOm{UVoa512^o9ACE#5 -FY(FLaFpI>!%>m$@z=)AzR^$L(8DPLrz#hy6tcXt^WMSVr-oPH@;MoHQa7UJjfklIjeaw^=7jMXSKtt -uCJ;5CF@c+=x|eu*>s&I79wL9`Lhk7pvc-C=A>8b8S0+6@)ZQ%yY}RaBhC8++*mXF$1RPQ2e3sEuB8KpGk*szf40)9Z=WrbBw4Y|pV ->7;d3uB44*&lW55XWjV&JAAc95XvOuJdTM~s)&H9_Pk+7n8* -iuO9sBig~J`|^8&att{s%XEs{m@3n0biiPuZ=K`wt*tDb0FRYNx9V%G&sSiHrlXfS&&0d -R#!*Ait2oa>%lS8U-Ed9D!6BbdBTWu7 -qt@h^)zMOy6lqmdx>dH1v2OcX?><7jf0MR&+X$nN(j|Ml+;4!|zp9jQDDZwabti^7h21s@5M2kCN!3b -KGGw%YVu(JUO6Btf48up{C9c0Yb%|;&?+DreDaU&-i9}UWr;b22{YFJkv8lDTQ0B2_$JQ_rI_OSjIK| -_q&4pISpajRLr8obps`XF`bK(UwBj@G0;tE5+}!F7P`K_WZaJQ_RBNg{eZ8~C^nkAqkSH*)1Uhj7pqb -M3@^^y%skgHi#iew08wb6N%iS2NFml5|WccoIyohK2(}tD*rWZ`c|e^Itj!1tXl_f>lP`-;M+ltm>;I -F7H3_heu2ZrbM1brwz_@JF>9ogfUo(zX+J%Is@c@`+Fe9(CxtR@KGrFyw6}lKK$edvZ2zmED+CmNk$| -I8oYL+&234(nl)8L2ob!M27G-)PDv9~%$TRLr#1N+vh$!wVo3}^5)_TMLuB)UWR6avpYsCay#klK5fJ -mU7DHTn1QR|1c(1^HVhrqK?UI){K9LP`Iq3M31{ZiJiwZOsW_Kmd#d;o0H0F~NN-}by{Uz)JEE$A0Zm -XEMVYWN7pMSW2S@@Dp`4@H_+n00c*J$-; -=CgeI~hAFz7;7>?gCBfGbXa)QWZz9kV6RkGD;dFOih2nvxV{WJt3>_Nh)%+5Ad0OYolR-#yJSrZB-E){9xn -mJAWU4I6!J<(MdXo#FI%jwu=bC}Q|<_ABiav98}jRE2?D!D`5ehvS*BELT>s*Qk -If>9|L-K0i$9qK^LB%Nu-^Nem9$r{XinT`k8xXBE1ofP$;5Pgvh>JxF@}nHp|H147_!p0r@^Ok*K^(t -WwReM$rz;~KM{1=pAUgITW!tu~Ywv4e~!E?kiPvaeiIjzftL-H+>XrzM>*_6EivXx$Kmbx3$c(g&fvk -7q885UvrB1q}M{`g#~`3;WODfEB3pLIK4xM?-qxXQDHTa)CPGHlKh~odOR1FU&?9l55L|EylbkM7_|U -F;@cAaoA6Y#CmQX2l`uA -JlWDirYLtwxuMyaqMdcm~}+eBSSA+qHXg>I)^P~l#0M;_QG^#rH;jJ>N6pPFkz>R`KheZ&6ee}7LjMF -zIaLCPi*)1PPtkvBe{+<9Q&b+)Eha(DjTRljRNXcOu|`V;Nr3d~bwQZ5)i$_x$>Gys$ChC}pk<`H7DznlKO -HXMzC=xl)cTS#>f@|PQ;KhRQR`{@?gYBwkfsEGz0=;&>Ujtzx4^gBGbuf(5)=CE~7SL{nq^XpG#Wc>R -9kn9Aq&j^uy(FghJ&so{K#GdTdSB|w|z*hgycf7&9HAr|h%FIc*28;F!Isb{o@O7!W#sE@KUaplKYd| -}pJ*kPVQmxG>!iMxJ3TrWuA|fXUcd9j@njrhe0quSMiL%oHVX&eeUSq^XbJzGHfc8T*O4B5cX)Isudt -x!Kv~qU-cHiHPBxYYJ7E7>wOHq!vHm)4-Agx4YNoFn@!*Uxv&h;3q^c4{G729>Pz>ZB!fX-`;F@~FJv -mCIm^wMRj7CJR))2>FLCl{Z=E}DC6h@jk|Ljq0p!1h=j@hgZYsX$F(V=7^9x(1V;6F9lGzguivHQhCO -hah4B7J8B;#8;UOX9RO5xRiGUm2jWzRKbB{W-83`B-A8u?^Psv-PXUgVI>~N{CcZJsqUSXp^lEiyA2D -(919-4I8#`(Iotg>OJECF>J0JyGj4NhPvdt?*uFh%HJ~BXbKoZceHk2EJ-1$u=W-S6qW~Vb+cg!IF@w -EMk;O+v-OP?6(8jSJX0dh&(lLA&7RVC+UN!O{0VP9JT1-59sv=en)*L<7sqwtxo!)syu+1yx3s^m9 -)8&nPxdGn9?>`ePDfQ?!XuBf9Fi9?+(te81rh~}I0-CHEfAIjfPGZia?d$YVwp_EgF4FS{s@0etflUr -(M$YUco8EkcCjUb&W+U-(jk)(Uybt@qNn3F`k&GJQNaKmf)ga&%T3R#teuI$ooB3r&u#1o3sDyu>}bx -V9W0{j{fzTPJK#kBbBD0OdeD+bKMZkC8 -??Z<33IptdoKtj4}B -@H-d60IFrFJv>^5ZozO>7oU1F;GN2Nneqb|$(jxfk2D=U{bHxk_#i$D#)k>ExD9?EPY8Lw4If-$2=>J -WJVE31jyV-8C;AjW1q5$x8%s2Xc`IFrV))bRs_oP9gySeR+3N7k<1$b~0^+c6c%f{{!4j(-UJtjb>m?>5Ub5`J -Q9DVKjd+L=Ee^r|B0Ia`96Ez%*O|@KZ~{b<|w+Yh&R<-2%nrJA(6qWp!3!Rswf2z)5MBwLoeww9P{WA -yT>0yQf3dB&yBWok-yRJ#oV9ybF94zT}3l`tS=IY-3!3k7g($VxY^PKKgV`p8+*Trr7qXle_i166IrT -bDsq%4Tg0%8>@MPa=p2tgfNhM_=<=g??L&%!xXr?RrNm<;dN -fc2Iyv_x&nohh}1W}JEc#kM_(eCcr)CRn0~49kYI$O@4Hxb&hTb{V?6}u>?E+aIqQFLVo*s8+SJKgR; -JPE(D8za=3b;5ok+AE!DZ9ZOuTn2A;vLi1cm*BdAnO1hl^bJ7P=l5T9=K3(o{<|2OQv|%%_ -U0cWrbEp8;DPFf6o3S83aO(k&yG@1+s43cBO^;juY-8je>8L}qun^4OMsp{j&-rxkavY{7ms$Jdlk%~ -f7xAos%s`j?ova0WR|-OM#yp5Lf7i*;ftv$1ZQt4ZX?joasei+#_LRWo&6;FJE72ZfSI1UoLQY0{~D<0|XQR000O84rez~msZ5{xC8(I#S;JkD*ylhaA|NaUu -kZ1WpZv|Y%g+Ub8l>QbZKvHFLGsbZ)|pDY-wUIVqtS-E^v9(SmAElHW2>rryvwykO55(5FkUbpjm@;Y -0+dG3d4{Y=@he}Nrj}6IYr-nM~b58$nlcYNHGIJB$9Xc-FL@3QnivR(y%5kZb4L1Mg^E6M{ddbyLHMlJ_8xn2emFA$r -LnBOe;WB-+f#McZ)nJP2t60XK6mSnsi;^*4ZN4~x^2i&2V -~|Z?XO2TOTyA*o{gu+f$*#5lgXrln$%LQsBr;K8zsL$iA=yhMo~TONIS5M!68YtQQ5%P3}5F{^7AhQA -KXGDUP$AG4+9njrd5J?BVOg -Dd#J_v*I7y9awegz@%+U$u8hX546fyYsprjAvqXb<_$sb~{W9eqJrUY|w8270V+q07|G3NBea5uE#CJ -(77%@Top7s-CBGVSWNC?R!9vn_=?G8Cabljd}V70IrEYRKC-t2fj9rw(^MPWF)Jan|?Ccg1-}&WyL~z -$Vj$riN*pu8PaGXSM9>=r(3UksXKcfcyvj=vLyTiIq->tO- -Rwg6(_~1TK~g$ALh{VI>!fjwhUtq)G3)??gkx#pZOkWaScxMz({FE=FF;(Y{#B@;sm8Tt -gK$36$dC3`Mlp_V8w;6R?`B8(kte-}2b$L5wmqy}2>pDkW8#oVS-<6!g*ok{B?>DoFauK8nGMxOY%dt -uU-!+cVaPKTm=JEjeO%N;KkZ_>ZUrWj;DcuHADZ9bHsx+CLtdy>q<(%Hy}EtA&G&D=ra;WuK*|Yw9yYtF*#^%sa5}#jZg6#jb%6#y#urRfc)2mdNfw}$FmvJijnWywyG9FuX_mP%&fg^FPA8maQtW{Njy%xA|~Wx0nC<_X2UA<594vpaDEwijv{sxob -0b%q$DvHn(0BEfWq?{~=@+z{TGW_5#v&DW4xj)XJa8)t0Xs`vCRY9qV6EO9KQH0000801jt2QXzA%h1 -?JT07Fgy05Jdn0B~t=FJEbHbY*gGVQepQWpi(Ab#!TOZZC3Wb8l>RWo&6;FJobDWNBn!bY*icaCz+O3z+@!Sj~%zk~ -&yM3^>ohU7sWnR^lSOTbDc~<2czHj9@;1_je*8W%h^a&SL$J;6|Q~qYjn+`@TrtfmO{-$kfp!9p*Hd9i!p{1|I>3z8+9O>;jnyFPeZc@WI&$s4tIid$gJ6QY -dECI)!nY~mVW=!v!Aku-+lA&KiLm2pFDZ=l6ZT@;;DeVH37Q3TCHc(00+Nl8jxRks1xCqw+b+2kn6KeLTCv!6BPjc -#31V_));)&r-u!@JzErpws~jbDXC{5CekvG9yJa(*D-OJ(A^b!S%9iKFPD>px?A$1ElfKb1H9Cm&_6J -T54i3;X@fJ{O8z(B*CiFvR>pPi^AvOnl<@Sp>Oc#%-2{;b -(=GP?dc6vDy6=<+T5l3l)yQWbi{KJFx3j1s)Znggi$d=iq{Sl&urm_W?gkiYEyA4hx4nWZxCgoF&K$Q -C;|Ks?|Pd%i5exUy`h4_`r`=>=M`{igLTilPUoAUbAS&~yf<@`}BFJ%soAb*f^$7i)-FTHZh?3Xdhrn -TlyS!ziB1j$Mdu&AK&bUEV@CMy7qiF_z9%9H_Gxn!~Ge(bg5BNC0=iD$WbZx*C?S74Md7APb)h6FjCs -f+84mQUoqGO_v9C3rbuP{p{7(3X|o=sf{$l^e4h-ifafD@w#Md6vx)F(_O4q1;rg5ty=(m_ -SXWkhj*s?J+DNiD=`#akdoe -vJEiY{D*D;aHwb%|SgLfivOYXs;^sN_s0yLT09+Uzk6s!LA3>Ot$(8#N@(ySkqx)F~_=xN=r-aM0k&J6>48Z8t^*o+l^x%8k=k>%TojXmH;P6PYw(!Q1!}*?OmaJF}<*N9Cr@)s{2$Buh;y9Xd -9IHpkG&9r4V~2*@X&_YU%fC*zuYTo%V6F^MNpvj7Q%HVQ?;YA_D%7^Vl+j*uptU? -pG6qc=Rrbbqa{0@=J7mkhJYAK2J0EpQAMzXy;D)NC!$kh0l*~uP*ms+|jq`swBEz(thpoHB9>MoLh0UxZ7cnZ3Zd0z+FSw+pg!kxv3dUdyv=quU>u?S3qG+UOu{W90ah4C4V%vW -Ezn?4Jh|b=2r5=@bV2Mr>e=M8?<9>n8bu$QrFi8;Il)HgD*TiWhoTpSU^J5Q<$4lCTI@MkXg8rNgPiK -1~=?un~gI=p7rzydT+mv7vk<3^6g#^#!qOcOg+@u~jJTj$5if=bCaXha@cocgUW#^*M^On}t>$(gNO= -J8I-$fY_~b>?3Z`Gl))QH$6a&0whs5JN~94LDdN#IA8=tmWOS)l$iHIE+W_UMUapvP&K4V;ALP16>)T -GgLRZNm`Oz?%Z(s}wFlS>UH51w>1E&SQT@Q3oD|iFcS_OZ%gZHu%-_Hk7VOJx#oO29xv%hxKq38 -_-Mr9yg*n!8-k~TSD{-b*W_29Dk}eGs{)x~zDEtL& -(fHkEKuw3&!M~l#hbeX@{aJsax<*j92m(2(T4k^|zg&Tx>5QscnK!PxZG$Mq2jO}B<1sr@@Wu8tj$TT -1G_;w5q1%VPVpMpXl;V`xZkn`X6l;&9_;GTIXPdsKQ@|=GGE0ey7XmOc&l&`Q -V#p?DJ3m0nWX}u=(W=kHcU_*z|5%h#X^FP^!^tjs*Rr5ysec^AOM&d-kx%FNuw=!;b~s!xR+vra7vf_ -_7yIXc|i3V5zSk4WgzfdUR^g+C#wOefwTrY1r}4s7&n}4mh6|?UuV;$Su$k2d+T*wOKl}<@lk(9Vu)W -GdYVk_e<9U3g?tC1dp|mn;Rn@43fznCey|^5Ax~TNQB3NB@MeZUue6Khxy)nB*|Cl5_VO}5)Ngt6=fm -kcqYLXw2K~GYkFTd?GF7fFMV|{O}a5SgWs$l6N+)Yt2KW{6*7Arguo`qHhM96CvecJ?ltO24|?YTkLl -R2tRCtPirw~j&BCe2wG?AaC$85n)5Q_n^S1-p-au^Zc1>^nu#4u=rCYu1=dHAtzJbdS_UIH=8eA3(Tf>UJ%5O~le?^tjbLR5RUAJFmi>!-);I -bK-V0YSNh7zOXS77V^Xps_?DH5a2X;M_K+ZC-Hf>H+Icy-mq8(PSC~M+{sxKF1Wp6I9i30jcv*AmpIuHK-V!2Yq -e;e1SE-Gm8*UU0b|>DamT-vb%7G&k0&voXT#8h0i>TxAn<8|63vJf_ReN0>_HSRwSrtD2T0w_c!BA(+ -W~-hdaCSH6HqjTtPYA8}fElmLSY&{t}>hcT^+i_l|+AKLU9ckHtNlsse -ofu*RKfsNy;dSQKW!Ltd1bdU#-mD0S)$V#`db)jn=~}j#Evhgn$sdnc0ipCqz(q&2e&D>_-T>@TDD^P -T;`&uJd!^MaA;A6DzS4u&&2u4ZqDBNt8wy@I;Q!_7W!_tW+2Kq<;B{ZX`->?(ePYvaBx<{YAb5=_V-m -QqU3A{b1Wl{IcatsieMcfw~$n^@X}^xW(I*{uN3iNZ25Q0I0*jlAubAoz&|Ag{8%n-x0e%mZPkb-~=~4j$|kU25mk=hO5^WclLxX@=BdHQ6H>C;x2eu+5mAu5a2jj?vqznj*;FGIQ4$cVUz -=Bbs21@d@a_Y$V02SpOHX#N@iPp9zv_@EfE~*5qN%u}{&GBCPDba1m?klTg#_y+}rtCYVI1uOfg -c)H_*+4z_K+R#Hu@>AFqI4U3l&ED%mM=&`TtP*X!&gWt{wc -)4ZMNsw>w^JL%x&fw-svZ3pKX=Wj?(lznKqYW|xP1u@Q23DVWY5sMObZ_vMnSm4#=+Y`S?tYAe+l>S@ -`-BMNr&J>E9&w7y1`6d1fDNmx=F~3y*-&__%Xe?*KF^$vP?X6`;N(_CzehkTwl2ViH&@Y<|89_CpT3& -l#{@+s}%f>5ZCco1KOiioz%62?XcPOE^n_m&~+qsj7)@{#SM8Z5k)GHx_w?#gT^dS@Cx1Uh)?_2n>8MQNET)caVI9_{ -`wccT$e4X<4&HS(r>h+54d%Du|*v|$73SA`Ii_r&YMu)M@<-&^W3reUII638P+EAh2Y|2piUDUJlkqA -Lx#*R>g|B$@k^Dm=S#pHM}4bdXnR6e?@o?1H~zGsbGmW%_e3ukd|i207Kq$uO$|0q6mozK0Xcnos;)o -w!e*%LapY#zz3kolN~luZ}-+LeYOo!(0H0QWH;rE-Yv2&ORz+K*Y?%(pIvlx&^th3!HUSJ0l^{(ejKz -7O*4}(^8$llea?Pc38U0rPv#^MLQ$arj0_U|TY&n98c;*%DXS-*Q>QbZKvHFLGsbZ)|pDY-wUIW?^G=Z*qAqaCz-KYmeNB@M^o@`cCmB)a0QqnW%;g+eiUm8eV9D_rY -k}f$dUojLkYhe}HPPw6r>go@{ow2hh;d(zuq98kySlpGRb6y_IClLgn(q3#Zm%ycc71mc$NHETx3b-K -eSR#fn-bsU(^xlysMUh1Y`eCu%BKE@EZXuQ`O>-_W#5)fEWIi*9P -SD|+*?9mcY0N__LY@4G%8elu;3eOJk0U=#i($8uYa<;%8$-2l97NA>21c9@R1x7@xyjr*?syX*%56TS -U$FJ-g3Sf&ng=(e&M@;jVjjzaTOlY99q{tE+yw3)BZ@V)$Xs(X0=1XGKN%6Zitj&Rsb-PGf$7|Ux*z- -u`c7Ug*W`*PSzyXb5BH9z}M50%fMEszjq6+=DBLdk#}R^F>=KthgEjUrz9z;at`8H0xznyRhG(-DNrZ -2q^OUjI})`}+B_Z;J1Kc=hV#tG~{#ysi6jDjV6}n$`W(wg9XEX_9^6-fP*+H{~GB+-HE;*q628LJktW -twDrjAgf<6ccE08j-2TdvBK)7xgZ|%S&2EnEGs2C@RZPY4G^G=(~T&_Kj -piFF^)y!(e1IhCtDIU@N{O3sg34*Mlxo`EYGE -Qb`@fQ$TZLnsR-dq>Jy>99&Cmh_qrkCN8=2kZK#;o}sM`*=M7#M~ch#Vf)YG74Xd#6hH<9R#wr8mN=dfiB0soaC>)gae)y -5FlKE+gB%R}w=|X&|@*EQ~}9jGXvqY;~%R$ -sSWFP$&FXP&nBLvbYgJvaM!Dzs?<$h&U+s%w*{BinZca=#LJp1)H^)C|SPEXd&PQat%Dfq*>b=0>O2n -!Em6!%BF44Ed&(Gy20M_A8jD4(wbbOrG(kS#bJg04bE00#&gLBSskfMkxgyzD`1UNgF!6jP -<9&t4v%)N8OgV3ez#z+sH4x})_fOqirH&2u)WjGh~phH_pBg;z)s-vYK9rQxf?Ya0mYdQd5bZv85zbK -nQE@RSe@`1wB}q0zFTo#2c -ZugoT70y%LbMx7EZoKc{nzuXTlR%8_qmu5}mWQaQl-_cM1vC_sR1WNy?2py<;cAj9PpnPo%C%sIx+zD -O$Nx?v&qN6BEx0#w=#AA8yOFM^W2HO*218i!xlg(hHWMq!8Tmf`R5~PB0n@fh>D$jQHCK1U{(CDW~dz -yfxugJdcNC_j_KuEMX`giMQW<^&ME$y{v9TsRTk;c8bb{q3~bmv_w53??$kq6j{SCgJul4*fr%fxWuv -A=bpt>(RiEmJia765C9$D8>}Nqj=RH_v%MSGXr?R^$q^Bs6@Kw5L^jHM4C988wQ4S(OGdc_<8u?w>V?8HZfKji?ev7>Q-H^k-i5H()IOkHq;r+_JrYWRd#ZHk0?WX+2 -7ltJOUM2QR`tmPI;`G#k&zoc^om7oMJLeG1wqSNF -MGB%rG^=?Geia&#cUee^+SI#&*=3tFKDTMD;Tp`-!eOumC8>R9>a={$GwbK`@HPIPh0F5;0u_X2U=bJ -P-*YIST*OHelmuGL{h-41@hvynph9@~0;@e|o>dLP?9lb62)%FH=g!K$+_Vp|O=82pNdN9BUKdKCs2J -URq7k^$ZNyNCd1a3o^^V`FSrB=@6~CLWuADg*(UK9IXEc;ogw>>vBtAP?KIZ63pJPe%nuS8T*Iy!C7( -WY(B~#e6#j3NqapdBx{|BB&QgqSz8YrO=Cia)|`wvF_##IHDT-Hd7cUv{%_AMghtk~g!Y_5Df<+T08t$sK>E?Ud?p=FwQN`kBYN*MDKEE5bPSeE=5=Tn+@<@}Puf)fqzU)oPlz -K|`+DhOaWbm+2jTpVKNX87gYe3>JFq3J2Vx%6e_@O*bq@k>XGj``RD6y>9?ZUCSvKDDpG`f`jOZYdQ_ -Yt*L}sOe$u&;Hn@*;bP1oH_$1LzPN{Uf{(e$K+IB{GOM*JCpQ^D*xa72L|T$yaQ6li)8=1Vk!t<>Sac -U%<`f-yA+@$w(oZ?v=JaKm{@Ne8(ABq75;3KHJvDi{^Sf#V4Zt8_>Z|l -Bm5v@fm7q!VwR|ZFdbuQ#gRe1O@(NiZCBGp%=wVJ`PFi;@qD%=OA8WPv4?Iv@xcXcCGn(duWAx4XG+e -Daok^NZqX#doWGMPf`K7_D2Hb{rz8n#}1{ABD_DJ)QpS=XvC7vl_&-$TC0@vm|wds3Jg -f+1*H8+rU1k8tG0xmEv5M3`)|F9lfE0G*2)HNSps-2sKeSQmAlk^jrg*KRd|vu0X10_RyUp?+aR;pVk!{;yi<@ -M_qfI#bM$bC0m49eLx6Zk1i)DzBF8z#knE!NkJSIxgNabT>+3xgz}oATkTu;VZ6Fr{&Q>=fM1flKNF%B#`s%Ml1nR6x|00u4CHYZ(Ab_1+0cds=K@g|nx$*a}Fjm}-+`z1j+PnB|jEnrrFI&P -i)jVWy4K9>`S-R1kEJ!*bJ=yRyGi9?Axd -ukvvayNW$fPRmQR$=gceNh=Zp*zgyNCJ;VW}=WZ2TZpU2dTxwB9%J7JvYC5cwp3WwjB$!+LfD=);1L+ -=&{-EYfj;GzZ;_ux@p!ZS4eEe)kINuTB^+`ri$tl^*R;8<^t2)>nO5VEWU-TNK8l9FQ9J=l-nmPSc3q -V?)UFayPs)NFI0H`{yh>63$rU7uTA>egTZpDwUJec6KGh68IT5-4R|qSZ1HQB3eDz9?8{pzw)GC8eYD -7X|2_!}w7%kifMbBo@7ks-w^%2m7Ij-F2Tz5r0=?p-cYIKlZ2MHV+Krlu>3|l= -M9+}glY+@0Z -0$(iK4(hs&=!J6rXWQ5DXA9}v4G5CdIi}o?>w(LvMNk_aMCuiF6W9U{gm{(&-o51Z0X;IIiDPr--!Kxo%UwercW0{Bi;~!K}o8IzYfeDaq3NIe()_h#naB6B5L^ -*P7P^bBkasxEXhIbU(ss^pQZfdrok(|xAVJq(x9v*W5xy7(A!PG8*<+=C^pr?K#@^@tZ@4BAXqOj_&z -U1QB`(Q2~BzA*{ZW=w3&V31%EeYx5*KJ9%QzRXANhgXBKh{8&)+rty)#tyF;u?;KlNT|N29u59G~~da -J(pqthG}*Sf1b~vqu%0`8bX&iKA=P&g>cRqP`e1Y3oyG;EGB)b%oeQU4>;n;$NA^D`O@#HIv3{7efDW -rfZrVG3nZc@*j}HY3w;wNK5F^+xBips=O|fJp}=1T{9Jt03Hm3~-1X5$bO6dtUWORqHwPYWNrr2z>?K -YfyG>IeNQaNCX4Auh?4h%y^GjdPEW)&+@!tiZ<;YK;?eKy=x+TF-CQnQvKoms)}!m-0 -swwdAOQmohFi_o`2_N%CaorHQO@2k>)^qkpSQ%upp+8;5HRN5PKEJgjN!K%mLWHL&AK7Lw0Hg<>Mm&Z -kAU7N4^dc*=z!Zkjl5CN?qmCH)o4ngEH)EvTlD{9G{#r6S3`PBbqAV%-;t4`ezUqb9%R53qR^0mdq??Y;AUTsbhD2=ba)mJ>gkV<>BhuB -63VonY(64TW+zy84ph<7M@M%W3t>tGM3v4g5@nAxnxp7@49EnXP&Ni|dx9}X;v(f4(rB0Nt4lh5*N_| -s&9w%KbTe)dCKGHq4Y?wYzH^Rt!MlmM9um~nT-=YMJ&`U&rfPNVj7OO*r-S02JqwFs|q4Cfo)oiFqC(nI3*`O`_@eznG=Oj51s#A^+U|+@f_3B;YO9 -B0s1S*QuM(DS?Y0`x9iUm&p}hDzQZCAyWpa2LF4kj{<8 -;haLid$Pg@`(A{yOZ^8Vw_)CMf2grYWiOW`%jmqtEg1YU%pv#VcpNUDKE?kT#qo43^SX -N~+ozcC4dYWPT3t`|Rz3~ZJp$%{UOr(u`h@E!&p!VNP)h>@6aWAK2mlUeH&Wt5b2mN(006xX001`t00 -3}la4%nJZggdGZeeUMa%FRGY;|;LZ*DJgWpi(Ac4cg7VlQTIb#7!|V_|M&X=Gt^WpgfYdF5A4Z`?Kzz -3W%7+e3GQjez!Oz(G?ZX^o<8kS0I^!;rbs$V-?aRg$v3`SpE6>T5ro2$x&?`A<3>pa3tgeVBw>YrX()IJyDwxBM%Hqun*T}Cjf>+h)1~-m3=g8U=WWatO3YiyK+0PRo -Kdax0&2{tGht3F+^1YY-|tr>sYsnoPWeW -9ntb}EWLZ{GEr8LZTKo|Zj;iJOZ7nR5#IF*7p)SiY#B}cU`0QpSUcNf@JjOtmhF6hpx3_OuMWdC!z0D -Ky4_k0l4Yv5+dGtRrf*In-vtmG4kQf-5tX+HOWW{QY5u}DNtKG{nAJNM4UfxkY6`_}pG8H`u={RoaoP -n*1=O`CL8J2_=)>Y6}QfEnRfOV^7Imb1SlO>UDWrLzzV*u@r%7b;~AWc7~8cv?(+tbHjF^=z4; -4wX~Oj66ifB-6ioqfNro;am3pH(P|<=9G3x?YdJ?kE&VHtT6n59{Ij`sU=MzL^vftm{q(K2=-BP<(^AXeUHt;eouxU-srqD3 -7aUR&}F}r=ei}ZQ@+l2r}%lm;4K1wl>L~NqbEYiT=bpP>N+v#)-+ECha$zza|6QrWzmvuj>Q<(W>4OH -@w>uMT%PAaVZD;s9G-#BO85|=IWQ^2(?N^P;4SBjO?m+4e}zPjCKL+GHF`}4Ec`5`NotI=wt$#T!JJn -9Pn9W9Wr1nwao4S4ax`61@v)#$sLC;1E!PbNCvNAq$km04aNoOCnZw6X)w*P7>AvXB8S_q#1f -0+I2csE}*^2w_&bpG>dRxch|-zwNR*1q2Vl=gR!fA3DvKa*ycKqS~jVXXN=&K3ofFu-JBpFVv$6Yuap -8HoE!p8W?RWo&6;FK}{ic4=f~axQRrjaY4uNQ1yVo|49Y?Eej$#rqPLl7($GA+?IyRx -Vwsr5O(zR!?)A!U27`yugB!+D=)hO^b`z#7?P`HQGar86yzs$N7TH(8_Ai!6mUOdcAgExX+qt9fA`x( -~D2cDOEUD|F4PthKT-nLRbK-t`xM{r%zh{O;!;@80JhKY#de|KVTV)ojC!=&9~hP5i-WHj~>6mu_YZf -9_(;|F%A*?4Po*DZ7Und{c>({kySJL8FxYM|^2TT?qOGl22_z-#^#*JR4cYy70P`CAXmah}%+&gMeNm -@fLni`qb0^d)cs!uty>Mhu*oV`&Y*;We`gTU{mxOxHCN}!HS9-BTP1 -X1F}y6FD4D+tOQ+QNwLb&JNZm)JAL}_dNvsxW|&qLiNtlQSc$JMU`FJ(5BK;#x8XhUwE_Q5{6`KlqUA -L^D*eok((YNINVpZ%iSaIH*gP;{?rfS5CeF!Tg$OlJhMQ1Ysf0->#n>Jnh)9ER?}O1w$_A){2->3}TS -~!U-KWk7m>}4=_-kP; -T4JN0|ZV7VfU&ezt^nc+RCD>II>_3v1NYXwtx|9r{G$e+#q^pD@B=aPHR#SEW%vq*!jd+?}W`u(V&u% -?vnVpj2KhNlaHA*WU+B7yCTM!ARFNGw}$m~jjIKMEX~2?4BaqDEm6T6DY%h*oFO_mEZOE1rki%3_o6B -(x}5yc2yIV&R`&ksI6E6ngQ}6JWVTh>^Q9PnGm7379Y( -jVbVrH&m^b&f{cZPCq)AFd9_sqV5CG+v=k?X+qeph|$4yOzWO4o$%RuEm|2x;o(p<+GoN-O#2gNCrYv -mt;!g!_9c}JNDp2GK{jk9$MXVt&Wj>=oQM93&06O6sD_67SgiMAAiXLX7^hfC}^5(BDN7H=x0%FKd`cqj4Kbg$U0?wi}r-u>WC{^!INFnlyq0fW8D{IMpKTi%5&hjGUJlubMr_G)> -*0@_FMzgMvnJu>_MwV^CR}cDLgjSxI|ZWMT4+VRDF1^@r-R8W0Uda_we~BvdEJ>?phY_eNM39sp$bUI -@f~q&a1;jw}#H1>hT86a#edAPv2z0}&aiJk)nyDfQeo$pVq^B|uZw_e)C^OYVsnd15~sZ>2VvX#I#n1 -KfIj0a3aD)59cWWCXlkhF9)=cMW|(DG}Xr;q=8i7CFtSLGq*V_}cAHs?)L~FC%6F$Po{3yl`Wtotl^Z -Uuq0+!`Z`+5A3h+{x*z0-D7Qo(F5r*(POnx)+n=XghdWoVd_RH5TQ=VS!{$+W(Q-hw)-|raxm?Elfb(C*0 -tsPr^%`t<@2oE=%Uwjrxn_*#*m%GTb(_$8&tpK8YkA80FIPCx?6P9D_-Yf0c94v7*J9x&J#yiAh>}Ky -hfU}W`}y|ny_?M2#$whtY|mY5fR|3FJiG!a<1zoq(&5jM>(Z@Rpo(vB;oyar=`+kP&@FxCLp5?S^-6K -<--3o6Ra^Pp61)g$HP>1l(|{FqXfPt{hk)@K?=JK!;IzT0ApGmg^V;B@{tQl)qW2ihMp?iu`BfP^iud -V#Vh-^A;-uGw9M9|iwMGSs_kXKJsM~Qbi@jSAxq#97$uDR~pSOgI$^)fpWPussQ=_Uvca@^zCw -gdy?spRex($t}8<0NKE@8&wc*WJC<0&oLjRb -3)Zo>%>IS{)_(#+LAWc(tyz+)%k)yqUWn!PLdUN^b*0}0g~ppYJ9Jz($`E-Q-YWYkG$Q{I7xKpod_Ep -F1BG_2)F!S!<430bpk#doN2QE(U&F#}jk-9#8Qw`%EksHY`i%$ywrve-)vILB6Uk0^t$7Ozi6u>IP00 -@Wt?4%K?KaemTmYzfluReof~Qf`;zDp6i%ocPXDU)+N%E>+D>9F6G=5TeCT=1P6+WyyrkSY&DRWqd-e -&K5;9Ogd%5%~%G|w5MdTi23-3q{;inP_7b+)GIX`FbEK9vRXd}t#oYIm*DI27UUcSIv)m%v#ID&PP`B -bw_u%quc{PlaS>mKOEie(ol?{qT()0Z%uS7n2j6(c9UcIKsu_($u`!YKv!P#y6WH+aY4$%*O9KQH000 -0801jt2Qkk(4{d)rd04WOq051Rl0B~t=FJEbHbY*gGVQepQWpi(Ab#!TOZZC3Wb8l>RWo&6;FLGsYZ* -p{HaxQRr8$DIqX(TuBSO(#klcV~Ok&U~aX`U$ -^wY0KGvK~t7O%R&=~gajKr)fkjtiT(qn?occm44?-MoFZd6!;&-fl0qZx#z)1cuiOpr=8dBfOBu7%tk -FE__Vm!emF1`gI#7bDlGYF%x;~b51a0esiq%nkECZ(s1+qK8j&X9-dJa1py@A*Ici#=wF -G2S=F)+JV80FP{BuUSW&{3NQsIDG>I`-3Q_UPy#K*NjI8e!(c2Wg=>%=zc`VLOP@;+9Ml&6YIgu9YwW -e?!-GgWEk_>N%jxGO=qk}46vFk{7R0-wreZ!L0g>=uD}WP!_yJIt#*?S~^} -~0+$6GNyiC%JUxfA(J836D9`7Q02sECOSikFa^ye1GM)7-83tW#ijRd -0(`o~WGDG5FHJ@y|^O9KQH0000801jt2QV7W7V*v#K08tkJ05bpp0B~t=FJEbHbY*gGVQepQWpi(Ab# -!TOZZC3Wb8l>RWo&6;FLGsZb!l>CZDnqBb1ras-B)dI+cpsX?q9*GUo1=!+OGjztP7ep*cJqR!BAv@K -uc$vHAN~UmBbD5-*=>BijwVYY3&Z1fy6S!d+vpI&mCtJX2q-Is2{95w&&ljJwlXq`Ue$C#0IzK-tOT>pfi8OhF04BxEL -4NlmMU&9*=sj|hHdyN%Zs0&IVsi9~oJ#?IkCjfnFq -w2fqd=85s@1d&-l5_a|3-nSm9R_WK7Jg6DyY5%HM)19avAV2zW3PA)I%JlO?r&Iko|P~C(fKKYgRIRv -a4B^^!KkJCw=R?U9BHKS4vi(%*uO(3tu2_((|8t_8iZI2!MhZ8B`Ny&Ji&S=nNwGg)2;Ngt}*F8k(`o -)PLE;&NORGTh;iLfl^XEJ=gl^8+bwH&B0`TXU1ItKCW+At&i$Xnga9cn9ejcOe4J%*>v^vdYwwihbn` -LoecDQF7c%HWHP}G*W2vcq`FN)LCu(E4kG1DEYW|rAtBL6%nJLH68j<{LK=MbY#jATDYFnrNcL;+2JV -ca8s8zueg&byjGew_J>Da8IU_9VAAq@37smZ@R{%QM;>E!ztjo*(C@?Ui?FMX-RI973H#!(W*S6&haG!A0y0AkBkFOCQ4+Ehjt7T_B)FSp9 -L_m?lOMjK^@RFi&@tcAEdK6-f-lb=ZBP9VakW*wIg*c2Mh>$3k)4WZ@Req;4rp{apCd-03T+KCn|(KW -(*bW6^blt@uXi|y?%7atI6Y?C>u71$W9 -||@%eY*c=W$*6ydRL$%ZGjf={A7K|38ju@jgDb;o55onj2vsqnYt?^^nnFhS#ZhNCvDrW{V{g4(_hh?%|C{y4@ArVB{KeDq}VDtrCh`4FHlPZ1QY-O00;mMXE#zSV -)L%O4FCXgEdT&70001RX>c!JX>N37a&BR4FLGsbZ)|mRX>V>Xa%FRGY<6XAX<{#OWpi(Ac4cxdaCx;_ -ZI9fx5&pivf?1=r7S*YCzO*o^0Ey$chq#X6mj=Q0AnPRVE^%6MEmC*4G5p^C}JU&)oRBwY*n -_h6;;`Y-+9rN2R@hVxRT8cZ^V@odW%m$jcm{1fl}hCdAQsS?^vnW+gI){e<7mPylcxQ<98K5;tYeO=d -IFZ)0Ft|Mc2tLCf4y!_#Zr=!NV%|yt;;mH?YpSs6eakN)Rga>B#TXqqrW8|I~|)A9$Vh -P^-GJqV7HzR;IJ>ZB?Mx3a_@gKf38+y8`1cT+(?4qW0+_q9 -`AH1&=CsvNAQuk;}GvMZ1K>1>1FsuDuQ4gGb`dGj2fEDaZJ&F?I=;1;$%V9nE?=;4wAdE_0zNCDvavF -vyx+}@Zsi%J%P-V%nVXjwrtaOVn!2wbg@k72R7Bj#+!^(%Uo6hx#&v4LS#Qz|tOU*dDY#(<@ODda7$3 -xu8KI|1R5v(IY|&g<4GTg$dNor&#P%X!Ufe4^!<0MeDFuPY8|!d>F#_pw5IL0B-0fHayXVQ><98?BD_+2VU7>{br@VrcISdl -JR(8AqW`dyLZ3UkF%1~<$ufH;`Gp4EHc+z{>E{)#GuEN1q?b5LRxa-QAI{=)#aqwu|x>JGS4=x2ew=# -b%+o-pRPc8u5Da*3#(zx7$jR4U@&?OFqDFI}Y4Zzt90|B`l!eDA16D`SP5#+7{*bUs7JK7v!Iif4KAP -ZhOoaO^ygV$5^>MLt7HC;--D!h&&#+z4<@Lc1Kv%x1BKD2#PdYV-gEv8m?($W*J;1?{QwFz$3Gm~k)WgmRfu -2yWQfchkad&@q;YM95!8t(eR&;9crf3zt4Ob+l7lfo&iPMP#xWrC|~j9tFD50G#RK(kBpnixD@h{#l3 -@^wOtnv^9KfeDR`HJ!IBf&M;lDvclS$Q8DbVawZ8iDAZR6u<70cIspqdGhwjI%Fj)rRhI%%?X0R#tWZ ->8D>W_mQ0i)59Lnw*0G@2(6M&Ukv^}4_#O#b~njU>{9T|R!&y7;B5uU>q=XC=vQ0S8VF-NOsg8{Pqp( -=6@Y8jR=1t8|r-1Bjr7A1zyAZi)`z%1LExfRFF2$7tXb)DSfw7J(h0{@r?GGb{D?uA*&NZUyqDp(#2b -`<;${Gjq=lg>s*cMeKYMbJUsSpcIKf?0V)&P%$@$OXe`EcXv$lWb-dnfogaE%dfE_r6CnfKR;n5>HPO -*o1!bC{NFlp0~w$_-8C-fIru7&fgSoU%dO})jwanEq;9Q!-tn^j0~wV-rk5#wxN@UQ)nJNdU_Sd9KE4 -zM8qA7V8GZ?NZfvp~A^aH>)8-InO=8y~Lr;gZdPGr`hYY`5U^R%4hrh5t*_N6W -mv8v|fYdvQs)$Vg@8R#3?U?mv#|#8vN>;uNJu`?#)%A~*J|<%+^$3bOyh`jzYvR*h({(HGdY{EydYID -ka|{O4G~vN#=aWW0iTM6AOa3ALFy@1h54=^}0J0{oaRR)*)pcZ$ww+|}PrmU#`09UO082ID*#ygf}2O1 -ye=AY#N@Qld4@5=%^$o5b|4>nETwv$|Mf3VpDu+~gf3^`0`f=v2PFRAaCq!c91mxVqo8#3;% -izH(O86zAz1i>YML9)en8Ic+4t|BpP#d8Uv^Nr00vX`0Z!Pmo;NPYQMP=osW5y)eL(i@o -ZSyD+huAy$?m9{EtdD}L!tZ@&9DiinT@q#Y1Xcs=u*k_EWZ@Mqu1c{5S&-TlgMQx>KpV6IP -Hvekh8i%1(CjPB|*=OU*FLNautosh7jxQW7%g3!n0mpy|YuO?6ARNJHKXhtiKzcHL0Jw)bbsK*X#95jvPZ}*a-8Xga{h45T)TH+2}eG)wm*#Bm -l%^0~_PT(*p2?c`(gLJRw5zDe1hM{OGtwGVyl{&E<-Y}<7gFzL; -u0YE*jxXC2t4>wJ$)mU$8pmL1Wp^cXS9YW2M~Qv0jQz^#rUy@wyB_$l)f_FllD)fmyk_B0)s`M4Oq+qO(Y3pt~xWDhC5;cXJ@mu%Rd*i*l)H%7PV!azlJKx53GNt9KBW+@3wTd~*tln=jP!j -rBRWs?+E0ZmdU^D`6YfZYB&(bRDyUY=u4kF_H$pIlJi24lHMZ4ajnmUOvVtsKw9oNPfG@ug**fpK1%k -pNI)8@dY`uCVZ4hu#^s0YrVTl-RYyHp8KYm(`x3euh6bz`$f!N3XHbw>A(3LbX9kY%qz;LwUk-p@m`= -qXzE?)w%2sq1BWw=lVc~OxkLu=ipnX5(9#%MC;@2ML9vDIqdz6625?ga1_t8{WH0@60xzOc)1|g -?P5N-KGF0V?o02IQ(QqTIZ((wlh>T~J2sW1Nu!DgaQ13h0?@VaWsY371D54;K@YLi6jO^i9<{Df_MLm ->I*X|H#%_nvEH(FsA|2#rOHpmS-xQK7QH8S_V5Q^6*~-~Cx+yz+Vm5e#o`!tA`w`-KFSPSj3c(L%J_dHC3B_JN5`q -nr6Z3v}wi;K63I=uW%2w!;xl%UOrA@ZZOdJhn=In|87VUC50$)a`+RR{6f*oslKbCt;cEbm0fJE~H8o -J+KDkH7(^a1Ff=8r7P2;AP!bcSC8Ks5dg^iQdiZVQz0w4xtN+QV2-oleVFOAeG8!s^G53&r>5BO9KQH0000801jt2QUCw|00IC20000 -003QGV0B~t=FJEbHbY*gGVQepTbZKmJFJE72ZfSI1UoLQY0{~D<0|XQR000O84rez~xnhK`aRLAUMFj -u=9smFUaA|NaUukZ1WpZv|Y%g_mX>4;ZVQ_F{X>xNeaCwDPO>f&U488kT5bhxfmf6^P7*H&|6#K%qVi ->wZ5d?-})3#Pw5=5z4F8l4HZ08f%=8He{`1r_2I!)8$p_K%ssSq|!SOVW7Jfp6R!wQ78m2?E1se(fA2 -FUaXhdwwB&q4(x5Dt^lbXIt|W>{@p4=RIms6AL|hYV{$m?fMNL2A!O(rDoH%g=-Sw-#90e{?)u}mmip&P8SB<0$Z+L;cDq7GaQ76r)88s|Z -*$*AD57~Yd){BCFr;fk_i=+ZuBY?UA=#^+;jtk-Fwvf!nn%y0Wz#@Mfq-yVy*kMHh27vF!}-+#LQz$x -nspKlW2t7koB_#%mACKc9PEV`l;Ws3!in6efvI-CumS1}H6U`pQ2;N>mwy+0TY-AT_bv&>_eBKX$0#e -1O$XD3OGu4QwIcSdxqbMfH9B@J^}8>3E?@D#PMI9GCk`b^3p*La`xblk^16>Z652a5%ym2exWQ;5@}O -|&+Pi8DztM|>RB9!c6^@R#MVsB1d;oo9o#d@|ePIp?VIz;S`+r;)l(HQ&K!$6mw}ZtvB8pDIaZAc{-l -uo13`13=r%Z^N3^cDdbJk@HyQl8E;=fA!}2`nLD+jE(*`K5_1r{Icq -gIfDNP$L5{!{lmO2C@*8l!>IhtyXckFuuR##>(}Xg@8s&x>MLIQjo1?R!aPNEj=qfIu=MJ;R!Kh{Eh4ltcmc~vWSFdu-B}L!Rq_W=O9KQH0000801jt2QoO_FJQNN901+hs0384T0B~t=FJ -EbHbY*gGVQepTbZKmJFJo_QaA9;VaCzNYZFAeW5&o`Ufhuz&a)zc~a=E1LxYJw`U)B07Pwdo9eI5oPL -5XLIU;)swdcFJY-CY2Dk?iF1wVX^W;bpPA*nRc^sPTAwX_`D|X2}i9iaZxev!ZezMP=B<#w=yU?xCZQ -m1exkSY2|HOSKwhg*K{~HwL@n@pwEMJ!4l(!E#xaa$Qslmde!%<>;ks%8bngQ(`6WMaE!7EmwlovVeY -A)ZoO%G)lxEX0@p|$DoMjC~B{%%%&FEUM6yVa>`3BMx$KG6-yF3CrMbbs--fF&$TQYBNF>P0wMPWYCj -se5vj~Xs{OaTsZt|l**26i<)!GpEf!#j|0>&IdI^S??YE6~8r4M|C-6R%;MKbLcoZ=s9!!Fk^v -8nzLRGwsQJ#*W8$IWy{rK_XWAf&&@80}9dH>=3e0u%^n2|ryd^}?Ckkp}sH{d}&FGa*=HSQEIBX*&rk -*S1FSD+F6-_$tZ3N-r%R}uSAk-t#lGxkBlcDW7uOR1V9<>?YPuH58BS;jQ%l%4qL!Q^xj+R16jwPt6k -d4p2|zieog#RoPN_7EIiCP|=0nMZ8JA9V2_adIvz(Hm)%LFXN_z?*Ud&btlS-k)1DZ*ER+BX)W_n5TH -51v{5!x&lKnB1QI2DXB&yqc(O8=dPmWS*C>6Bk_=m+OR3L(`Y-eozXhHx8*xxI;D$6C6%C=Pl?{qgK_ --@Q8dMmh>JS$gHL+R(~H+%Bcc*!E!EwYh;!GvEn+lE652l)e?tPt?X+>k#*G#_sW%ig_&o)*kflhBOa -MQ|k)5&-CaJkuCQXsyC~dN`m?!n!f`nX8&)?3jFR6#G1Oy(*!dZ|#s{&#n!KeXox1bSbtx%wlOWzm5znBozoql8_P!(sH={t9rD%%cOgPd!1<6s8pb9R&~7F{+Zo=Z7f=ftqp(1GAT5xq+#GH$Oh-DB>C+6 -m>yQuzJsA-cW_~)(+mOFdHmS4E7gb&L##Vs2MCqCcXmXNhE9COrj@T5NAb&u&3SsK0R)yxK-mCQ!~+x -!?FNH0I@@(q(;DalC@+8vfYZ2jZt%50Eo}BOSe(gq#k|-h6s8h394DG(;TO<_X*eQ91jWXdxwQZ*Duz -J_nt-fwgG+jiyuMyCt%gz|!rL-vRYK_6wl5*A!9`UdlE1)LKuN=lWL2{gsz@2F`nVoaWx+fo1?E-(*V!$o1XS0GH -REyoGgRte#p|FM|Mb(tFUJqRj$`Bj95n4_hOOGR0#L1ul~|y+RU$CzvMbGr4B+L`K~fiF`5IP*hLYSM2XfVPN?L+`7t~F_TUh|S-fCP1;LnYyT8rN&lQd -uYVD}Y;64v&R0*m4e2~l2%jDwY?Bd<|<>lF^x7MKD+6pj@Xbo%(T(Ai;ZaB~?q0@eiZaqNc;fA8Y@{8 -M!dfb30Td%RhB0um({CkQyZ&zUO(E&HB8&ykU@@yjjpb79A>uO! -M3#jBHHZnArO4xP~-ZkyXd+b;YF9nAJy#q6!fc~csV2|ND2XV%!Mbp>E%DJp2=X>=vP5sXp^jUZMI_=dP<_?FGCkuJfpx{ZMkSEqZgEMEC_PTUGe#9C#1ZxDJ<2DqSa4iN`j0V$=tYwDowijl;z698zg)1nx6 -e(o(fZcM)SYV6&8F4qXixZ5s*+F;$o#ld$uFW^u#j5uC-uen(m7JYsY??SyDnI$Crgw}{{TW3Na&_7t -9dP_sLaNTm**r7*PJMo!(qdNu#NiMi@X-&)EIa{-D^duV0LM%hyPWp(mHO8yiwT53~UF34*aCeOJ^2{%S-G1O^T>;Y8&Dje=#_=pc=|k1Em;{e+PR%&j#$)aZA>_M8loHnz<}EZGvZ1qU{pAECovgomLf9w@d}a~Am`*^}Tn=< -wEn>g+c0v!=`xh(*%z)11_#YTW1w$%oyq%^?ZU -{R+yPJyt6*^c47^>}ZuSs}?*Wl`PfZts`I)cSaTe*r1e%;Qw9_Ulc}_aU11>!vLC|M>jHGq56UG@fS@ -_2T)#%Y%dGR{jOmB<2yOHE*`6=X{Z__&aauUqD -LOm}md%`R=(W7mMlWVEG2&N`w396^Haka@O4!r(wgIVK^+CbQ&xb~-ydn_W+O6fDO)kU9o(S*!r`^f%lzxkP6K;vx_Zl9f<1JyG@o`rBs$JQ?8besa47T9NtJ037`r=544XL_gk>(}q;@|Kwb=n -MoRK@z)f%1S71f!D%UkLdzlvh}`XUeWG=nNwVV9%x)#X!Kk^=DLMt2?*5P>%+=cH&>hpi9dN`KMf`iy -+O{PCAQts9k07(?M1BHYf3^mc42X$iZgIO<8yg02J;8Ahu}rQ@XN1*nE4aCF3OTz;;%74Yh2W)jK9Fx -m4y#kHRuWZXyEWdl%y$4IH}xI$7+w)kY -9Hw)Nz+Qe9@#eM;FK^%Vj^1D}q^{kr0?HgVm!XkvO&E$dU^Z_N;xc%7j(5u0I!4aW@6Qz+*%O=Zw{{iWo#n? -@5RZ863@mhlp)LJkcp2{gv_eZ|fohs -~$psh+|7pES4tNbS4tPZ|}zKxq*3AUChUiD&d?%8aOw^kJuURyzS|B_5am1XjdUqQzkzE2weUPxz4c2 -5AH$Q1>L*$v@+#WownvZ)l1q*z0;lITRuBAZYr!I^nU8`iauE`Cy$@CNVAwM1Ct`ZTzoa1y|I=;A{-t -)|MtaqFJDc<9T~$GcdPS`{s5ltI>dz-y^WB03rU0?JqG>S!`@b@Ab$)EPigY$wmb4ZZ}bxI -J%4L@ciGbZpa+Of+YhW~Xig8j{qIvo{{v7<0|XQR000O84rez~zf1{0%?1DfIu-x`DF6TfaA|NaUukZ -1WpZv|Y%g_mX>4;ZV{dJ6VRUI?X>4h9d0%v4XLBxad9_$=Z`(Ey{_bCKQ$9#W9VJfNv^C%kTQPLOwlw -Iv0flF%j6~aNBvBBlI7X2FzB^KHwB@|CTRu1vMLxQF?z!Vpj^n)N884XPz_JL|qPT)}tX6RG%LTkRc? -s`Cnllw&#!0L;@QE#@KX4ppFjy2Kg&MSj3s`l;zastlcUkKy?=bZ_#C|Z^_O?Q1t0%9KR-Kvk6tf&h9~+x8r4SlJ(g+&A997puw(? -E$~-~7n%NI?cA@F`+xRmW1VY{ftO!>DQU_CH-zOU5gnNbS`Ok)d_fORR;(&|(4kEsQiW78sAp#|WOhi -I?-O-`(4s2BLlLX^4mhRs4Uv~mL{dB~NgQHCSX*90|erxO^LICItv8L$3~vyj7@!-`#F#wKgFksyd+ -To7LI2>Hc;6Uj9%7z$P>xdo(i+(EOD0cQj_5iU_!YgR<^Ftl9{B8~=zRODhs_Gl66!sS~C?(JQ0d*}MZ8&jSMHw9ys@XT|KRe?L4%!k%GqE8C|v29Iu0&hvBU2 -hc06Ukeh9T+qW0+k(z;wW=frCRUDANqtsSMzQfnMZY|R8*!c+az&T-h5Nq^u5hwj}E_~Dv&&{ugV3fV -yf@3a1|=13g@{?m8>x6IJ6Kx&qyl~u -a$R;oENUQB3zk|EBMxU_Sx7E@y&=AQ^M=w%arp$hG`5q9!326DCfDPpTlD`?C4-m0w0pIhn8uF<~7Y*>Nr#ZLlxh;@#*VRcLeUu>(k)$g?l%#6mO*9vz( -~%tf(Ek@T^fnbE%PskHQ!~1i+IAgmb({I1fqXxRy#IkPgffrSfWgpH%J>2lUD4>5_Ogeyk+M+j{us$n -@5pC0BL*`PQoQy%okcn;^MemvMJE*)5}e9Yw$7Fh^!v#cH%I!g=2t9;(DW+rgu&Jip1Yiw{_mh&7Ko$ -j#L@<#o?FYdAOkThDmSXC_qBTy$hv8FVhPs&kc`Q?nzv@@jF&GNEpCHm`bH+%|J!vIh=dq#qHAU3xH4 -6cX2_CW|5+bVu)~gzRx) -E`t4S};)42*dL6ul@ec3QMphGM$MdSMtOv$*!(!{ITIy}D9rk2y=h)=onIqxUT`_WhN+EB$bbYs1WhA -8bprdcC;{tkWg9A2ngxC>={d~G}%=4PeuRHD?jJ6f;ISqPNDRXY`ZttABBeY-MI9(G)e91DW6B&=pF} -6#~sHMcBKu>HGx_9b!Dxxh9!?MfRAl?tS9Wgw}wWS!3;sy*4{vWHlgN-_Fp12b>{(?S_Quc9%eQM3I% -y}3uVtgJOHGip|$S=Ohn+eu!mevabSUp4v3d_!`}^({aXm{@kIS-g$oFjGBnz06FQyC!ANmdL1VT -ZLLg7JPhb#LuD<9vVfm{KJ&W<)Df6eHg7s!Hqn8NC}GVq1=lQz+eWT-e$<+Bwg3~J(wu%E5h0$HOpDP -VS|(6T+t-^0l@4B8qW^9iImIRrSMQTS_4!MGOF&#AeYXq_sV{cI+-XW{v#|BIVZ7ee?7g=0na -zH(%hlAr9qmllrHFoZAGO7=^98Ouq1}V~HnRJj=zba8b)v)Dv~&Icn!n%Rt*@Q7y-y(gQEuI9x3SdjZ -5q1={{m1;0|XQR000O84rez~s4$j)v;Y7ACjkHe9{>OVaA|NaUukZ1WpZv|Y%g_mX>4;ZWMOn=bZKp6 -E^v8ek3kNCFc3xebBdq3fdn~#i7vfHQ)IA>(2_D}xV@#I3!TMe=I71-8Ku-UM7%6}jBdosc$pvpH_Nv -N#4=hVjKqi=xF)3(Q5VAit-D#~$XdeUF5IT9lc%yJvduhxm`A3`b5+`Q7!h-O?LSO9KQH00 -00801jt2Qi)w8=QafZ0QL+303rYY0B~t=FJEbHbY*gGVQepTbZKmJFJxtKa%E#-bZKvHE^v9BR$Xt~H -WYo=ueeYjW@C;5>@k=N1Zmm^Yttgj&=o}>&=PHPrA3XT>>5S?`_3ix+1fxcBZw_hy!Y_jb3f8FO|EHY -%0^4_Tj5FVYAtuN@{YVQT2&i-ldQxFZ%E;ebP%?}vLmrFji*x9Ru;l5Q@JcjVK8|{k6TG=qqRA(fx_( -ABDt+;bV(~oR_@GRmIQ~+>?GAjVP93ifP;;1tju6$cdUzQm)+fDCrP`m&1M5g-D7u`)=sVJEZ@tjG&ZY6@mcV@*bRhHHOE8fB -uQS}zJIvAxqiHRcb~ug^Hq+gmv?{DlG4%66(MX%p@nnwUezy#n0|;1&D!sI^jqUa9LSATph)N(p*^%@ -!t}kVB+)ZQCa)M#!lL-l3Fr5V=kz89g6_b^#s*gj;!0ynvz>HKY~+G~MQ)76&DKgoj61ABo3b)-Wyv1 -nQux`z1arJg%28!}fE72|&C~c#zRjPLug@m0@aLyd$EU@_z&t!j4Rp%6W))&G8!VlS&V0ZLnk6+(k|0 -;hLLqaG#IDPreQD{iRmGMLN^9DRssufFhs>IDZ)9ea*WHaAa@qzF_wThfmtA6I8|mMKwOKk<`?yY|^Y -08~-$lG*!HpvD6YT$Q=I0P7t4~$VgN?kko=0@Emfud$vpGS*tdDm2HkL=zSQ-VV7kqfDD>a!5B^D?=l -LW7#(LOyB*#(KZMnPIW+6JryOB-!gLZ9X%>2!Zq+EZDd%isa+$aZ(=)F#eMaRffQpv!V*(L7AGK2kwwt@Bz1ePowq|h`-G>b^N$eQ(=;~dN3W%>AyIU(9u3Ja%6Ue;ZmJ?4R{oep_9D`OqeuD -0Hy}K&a~C^QY>s;sGR?M)@UT5%2@FqcBF9{BX(eSf;v{R`^@RNB(=`yF3u-#=7hP27kY--(ha8^bz^N -nhqT-{`aZCQlDGYbb4)uVWTWOH>CvMfYa%6ko%T+a$g$JP=4oYi{bu35N`lWA*y%U(-fK|`oK`kOw7x -^z=+ne4LJCBBgMh3KZ{76-^Tj98gql35T+R++_2@pZlUUEkkeDigqDbUTOtT)AM^1OrEP?fll=IHR;Q -8X?9MV+MDn!PGm4C1pq9*o7{V>eBlvbdz8$Xl=)>;X96q~N0Lly74d -=Bk(%Hz=UqHU)xCmBLNhs+YC<97hm~KZ#X~@(&j~;rU8HaFEDf9=1GRm;)G!T-ZaPcpMuF8-*+^qXGa -|+1?$hosTXZHe^*G-b?z_bJ{2TnE~WiO22+f=R*yi^~HcY2Yvk(dsLJc5}^*`4b%0b9=OqY -lv7wFLj^YiuF^jwJ2f~Gws{b-tyH$fXCO<1`RwhRL@<3Zfg>A|h{wY$2!+$g_oRvD(?%lcT0OWf`Qa0pC74w!)K -qRPNERZ=1QY-O00;mMXE##WvcW%81pojt5C8xv0001RX>c!JX>N37a&BR4FLiWjY;!MUX>w&_bYFFHY+q< -)Y;a|Ab1rastygVNHR*HgIq2!6yN_Vrp=5218kI61CYb(G>`@MoNy -o2X=AMfbVUnfWZ(5st^i_?ogcWJJ3;}zgFimd*A;1+bUUyYJ}`tMJd7sosYJe-da|CaO0l2bS9h8o2^ -^6~C>_cqcX8G$(K_54MucHn7`XGQm{=e<9t_l- -Q*J)J$t_Rxg}tXf<;#lYJ7C_att?WDA@#F!}l34WUgVq_J!ma4ImDeNwl9kC)ibNc{M;|M>L&@hMK{O -0SqrI>}KiXb_Wm8V)*W$3nSUt%Rkb=uA!A8!un+HmK(3Jsz&!Ns0NEA4_JI2ZL}r08>^~kjG;eoQikW -@Lri2gQ@V6^DUW7-r)DpXH(CbFXb6xr^|6Dm&K4E&)AswH98Z|XTcuYiGPmMuS&?IQ<$__X=^P*o$V^ -bI;U9D3I2n6a>RfonO!K!rv!(oFhB!zv*f&_Im?$k`@jI_ab2D{6P|!RLw(&($xNxzm1tLuK0Y*^f@w -(3K0^4QGnPL9WKb>eg>2$SDC9adu>OiWf79lDGT!gNNH^tD9HjZwDU8>qrkNjj*It@G@fYoo0KDmIQ4mX@g&I=@^xqvXi00Gm46$R;PFbykY_a+Q$WRINAf -u49DW49())xi0cl7(rg(CHT=eP?<~ge5D^q!}6WfRPOY`jaDFv0BxZ%}U-zK(HdGM1c*x5r(7HjjGFn -NQIMYJ~A-lT()kda`NHv2 -!a8Np=FkI0_7GMiO?EqoPTvmABn^PF0fx%fV06ol;R`*3HmLgxGV9uaTk*0#m8{`{0+3r-BYXL^j*bc -E7*NI0c>2*U|b!^nJz_8??n6lb;fBr#&&f24JD2@-To`oLZu{+(8>io^Rw{4;AP0n^O#XxN`{2Y*bLr -uX*#}CsHKe(gS^C15QZ5VVUh+8r^NMA$lSw7lU{xf#|AU2j_<@6_Vf@9kaZ{MH0v$Q*7yD0B{`+GUF3F5_(2gN-vGb=?j+<4|^-_4;CMqBobiKAB#=qT(~U<@FOcQs8KKXLMNs)JuW_Xzo?%hG_ -|`FihjPxhqyo8@&7dWC+v-{2ahvJj~9QZ{q%OfK*z2#XZ}mQa&#HG59|KP)h>@6aWAK2mlUeH&TS`@) -$k>002e>001Qb003}la4%nJZggdGZeeUMb#!TLb1!6Rb98ldX>4;}VRC14E^v8;R8ec&Kn#BOuMp0|5 -^%kTjll{Tl(y@}wot~#C?S}OEyuSxcZW`HFl^kx{%((`7G&^KYh}-Y!}aB-?Cba0?Bnb -vigbCzd>(k4oeZc@6-fSMOs$tE{jOI0Y)nJ=T#V02J3h|kgi2&BA9XYy>CnEAK8!+>&{tSMVbPlx3=V0n8N -M~H#<^!2FmhbTjtH*h%9@u0a`fu;o409{Jr3P4Zqxlq8xJj?0Q6ry2fZ?uP-qlbf>Y#iFNva+ABSzyk -JJDfhY)gBK^=%q~?Czl$>omOckQstawldbrn(c8f2A5cpJ1QY-O00 -;mMXE##3(r;%+0ssI61poja0001RX>c!JX>N37a&BR4FLiWjY;!MVZewp`X>MmOaCwcCU2mH(6o&8pD -~{R=U`tS&NL3XnyJ(hf)6z8R$3;aEGQ>1i9UIw3S^oWw4WW$|r1=7Y{rH^sygrz3E2S+IYRw8mc=IJx -K?OT}>F&+!4I!mgTc~&yXIxsQB^7aPxiGQaS6se9%ig`LUb5NG`RsT0@Vs39TK*t}mnWtt1aSDM#}O9 -X*a1ATKkivqD2UwL-#x+<62B#EM8`OpJwM%E4Ls$9c?S)1*3T_IaiWhKk6L -Iv>Lorhjz|3&kz0J?nv5yHxwDK-yj6+!D9QJhnZ~v>C1k#w-G4`yvxhkvr&(O6ZN&u(a~)s~v^$wh(^ -vB)Oop$!IQ<$05g}yFN}#n>8LB`f;hI_+H79k*8Tw2S48Qqge(mh+Y_?&=J5cbeV61j0S}KiGSPWQ&y -{0uQtk}bvS$qMzVZdaghWI$QREV5n9K@SujNh28G%FeIT_4~OIm03l{GEZSm<%IO5>|V=QF4r8n%2VP -x!Ml89Kfa1^4Qel1~#UvFgBKIYj)gjLfjF30B&ezYb`yP2+ZY)G;SR_1dm#i7R(wbycw>(l52yN?yw# -%(HLr+iq(8Ix*B&X-IAMbv{ZuIFb`g35G9jQdZgBo$;IR{h3ORX;5+~-*YN4EW5cK}HlYLmsl(L5VmI -{RM>I8t`AfiW;s&I$uvC&AQJuBZmW -RFdFHlPZ1QY-O00;mMXE#zfWzIHh0ssJj1ONac0001RX>c!JX>N37a&BR4FLiWjY;!MVZgg^aaBpdDb -aO6nd2LkNYTG~%eb-kE?n7d5&wyZ3bogoJ_)urFB)%B6AlyMB?cE{SUkL$$A+iW|0I#0pXYG#4wP*!oXuvp=pq -{n2P|kjgRvI8ts(t22Cvmp7P;Y0aXeF{6=M<(tr30KAUI%xIcWjqNDk`~-eYBYLGTTbNRN`S43i{@S? ->Dg;ck)4FN2Bg0=nKt3Kn5K#@0JoKx~m1vd^YUvh>Wj8agkN7)95bPU#E@)?|LDUpn -ThTQkvde66V|Z9IMM6;pxh_f4?cN<1DS|Agam@dKg|#92dWhYI;>jbNV;s|-mptNrm^k7Ye8K6ZQ7O+Qfet+p^rVx)aOL$1u>`6(^{(&`ytoEuwO&@zkQ0qnWOM#`k^V6LauPq -wg6hVYG#vs?r<&I+8Z_CPe%Pw(lZ1w9>1zYj)3?^LH9vx?OEa%hTo@Khh7Wx -utW&FFimROlr8u!yQIws3Zlul-qGFVyu{DJOW`yBvLTZwlOwe<#lKC!<>7@>3*V-+A!|P)h>@6aWAK2 -mlUeH&Qlw^?CXU0018w001EX003}la4%nJZggdGZeeUMb#!TLb1!CTY-MwKb97~GE^v9BS#5LMxDo!Y -Ux7LwMEPV!cAE1wGwLMgb9$cK*&f@OB$LVTAQF@iQveG|1qv -O*tTQ6j~fJGq4|JI8QTf>%frHx>2A!s!&a|@8|Rf)ZVr7Yv*LBQcn+$a!ig71tyqvfxHy#6vPAFCDDp -H2p?2@(uq6fa`5rj1j*1d~^D=fWlEfn+7K{cD!erqzmE8*pY~<)32z0?@T}gx^11e@f1NJwJPw+`PZM -ytw?wn5Eph!9eCaKE4{D{k-Qoa^9%TnEfmjIPKzU%r0O{?z9=R-=uY8_FhS?2DCUWxV1a{d?W0ta8V^ -=(b~_7`LfMGLbVxO=Lxpw`St6@P#s?gTY{cQqqM;@4cDzS_u>3V~|)&vd)mOnbt --4a*-o~GOdP=E%<|AoUQqWIqfA9s6?KN)JgaV9%MTA=z_zf!rC!TQ9;^T42yz&U0DFNwW}q95`X|ZfK -ntYlLlmIvx#X5I0phPE(`9^>1;Y>2WzQboE$K1C^#0}a_3B>VW$Itk^mhJTBZW*u8d-LW+l8|U}MpQe -Jm}XS#J&hy)@!M>Xl_vcBz#Z_&~zY#YyZh(|Sg;38-1gE5sup!M5$&cN7-?;!<1>&w+pu(H -j8KlPK)<-N(2Ea;1Al`RCSB29{B0>x$qTTF$_fN6*o+yiy-ds=+GOwm-lHjkdBhc)9l{_w1Sq%=kUDU -=#lOt1GR@Y~E%eH`nzw}OPwI&NEiw0a1OI_9dlpb`~AS(lrWB$ -tmOi>yh+#x?W^a{XRA4!e*>6Nu{QJP63!@IoSsf5ai!IuhnkLx%`pcpTtopFkcO}5p%rh4 -{2USgxnBFF>#Cg?l{WFGPN-N>xVAvjX5s*1MdkjE-~`GL$(1B?OcMtgFpV2|K|@p6c123h<)Xb4i5{R0!E -_IC}iDwp8)d4?%!3YLKq=Ii*J*Q+uN(NcTf`I0!O@v*t%q?GXWb8UT;w}+>vKrc?$VAam$j75u*O^@P -5tB-0qC9!$Tkhq)NpEKJTmeUn;EMcwIRK)=?qvq593fLIkl=1Bb!Lg9ObP=s{DM0!?vsd1 ->ce|$9RgTk!F}P#c3|FY2fe~iGyv;e#;gCI$VMfD!h!~DpE2;GI(MF0Q3$mKL20X7Qwr2V{F?k{{R(2 -6}a}}I1w;Pp4or&;A=?DXGkQf0JD;0@n`cu#N0phw$mi#dRBlFGlcruwlm%*j;)n|J0axx+U4RqgY^t -vl);60SHFxsnE{fO$-tev)j6B+NWtKW!zx+l@cO~`i-}RbYl=g$j4~mE2x}i2x)X~gjga)#QcC2*6Rb4mTaYv*+C-&6AKB6%!-)u -T5s3y%cu~5HCyEkEpL<7kR9G5Pi(l-2>Z+HtJ{l@K>dvrAwdxxB_;u%KS*d8*R~t#)NFKm0N_BvA`2o -;Jx1_nK3x?WHid-Ai7`_Xfpg;)TgT?0A^BV9#$Q-GeS)3gkJ!4O>FHb-P%}8(J&|vq#1OAaJb)j7+)_ -y&6StBIG?z}WLhI6!$7eiiDH5n6?lP$Q9?%N4!Ci-?hTeMEYijlq)OJnW4ZEu2A&5LR<=ZV{twrswwK -n%HH@_k#xQ_^)ygd0SNNUKM#qyDyn-IJNB+vXZtgR7BA(UJtH@|$iVgL5eXE*0>?y8sbk7vJ -)TDkd}jLlAJ=h{_CHzC9Tsn-pS066bjm?gMGYDHu5o|H^Y!**}%r@+!}$=j{4i0NVv1A`vo^Yf1vw|9 -N+iu6OOmDsz{mb%~G==%KTcf5G$e|d9uc7D673%J9(kd#sbP@I`aIRP7!1E%y=va1umMYy0}`^5ek`x -*0zgQW{OUjW%#DP)kvW~WHt*ab2*$dBV4vY>+a8=25`lH8VxRpP@67VaXO-2dcJ!NF_cS>4m}uq#4&y -VT28#3GeeN2QSufQmUBhORPvaQBtidmG?;i|Vc44gvP5s6=_zBL!$;bx+aL{noo%3O2CqQUE6KtlB4h --%OpW2WhmzV!qWy4d1J(pGE*@l8}mNth&&t?~H0c`(#vQbF7loz*J=c{^HH(lUD?Iefb$)wz?FAQvsj -wR*%oDE>_OpMOYm1^?U}b9V?jM%wQK{b(;b^OoYt5(6dVAxZ( -yiqyGG*IYC$F>aJ_dl5x;XQi)vi;(ojK)BXbQ_`?4SARUGs$;q}c*%qabp+|zYDC*>4ziB>d?i_;j&J -9oC@s*39%;NR+lQotulRraC2+|A9LkCGTi6Rx+>dg|NIj%OD)VHP$^C9eR9lx61RHXB{Quenmw_)Q@njncAliN#4&=E2QJhBew+bn$9+=uL_lMQp1VMWJFm3s}7SjO- -{ZB^6)c=D?p0M{WDWk!E0Z>Z=1QY-O00;mMXE##(x~qzS0RR9`0{{RZ0001RX>c!JX>N37a&BR4FLiW -jY;!MWX>4V5d2nTOE^v8$Qe98NFcf|7ueg~HV*#7UBZ($Rh7ffUn94`UD9}NZu3fsKxLVCbSvl(|gTIM6Md-8Rx-Wq{^j&Yzee>WRZ2Z0EHhLV_kKuudS8S|_! -t=Cl*9=I{Q`-T!$!KY#pqnIG)c|8WMZ@vM>}^^k?{{wYT;a(ouzZKfj}f_6ZQSjhl}lM{@=N_);qaUN -i;`D68LNYwYf75^R;T;nmYDJuOCqaK8gUg$5~^@AMdToamNW#G1Vk;??287Wv0X)wh&shb?`2htA_s0 -CU@j%kUyK#|RBx03Uu}#{LzrcGGs6Z17E&Z^NfliJF?RvG0+1EJnT<0JV^Gu0-m693$=wul`At>D$uW -jFgE0Z;qi7tyS{^x-0L4XFF=!;m@4NYDBxv{5`abJ-X!Ybq{&r9!jGq*StkH1*bL3cPBhGC(seMQd2<-zSr>E_MH;I~{g6ydf!`%oO6 -1)^MST=^E>Eu>IrX+mGqxZ&#PUr#J7n+w1LX1T06E&nJLC4)qw}O>lb#@7hM7-;;usuoFDX(|e{geoS -qI^)604$caT@=MX0_|M{^06B_;LzDG9Zu_VUX)fy$AM -t2}8Mm;`={WgDAde{D8PHqBE2=u1GQliWs5JpO4j)32nuK#gTqlDi;2J)++%TY!aRVjQc*{sHT7!>(y -xMFCT$`x|9T6gb?!8Y=!p_)HgK}bo8AP!J;QJn&165jRdMklc!f1% -9FPkX7t*9aETjdMQ}J^U!sm;yPiN_Nks=a{?cG -3szI?3#cu-d1g0xd3i@rZm8r!I18k*{d7P>AvQ|x6s@A5)d$+a14E~3l(}&@g4cIg5DMwu9;CXndN27 -7n+eF)1hj`e&-dV{D_do8b6Y16ljf#%p}I_aMug9)^<6hKXUOU&X?l7UyShzx%%sD6#GOyj$e7{q>W; -NAWc_VdWl~_cOxII`_FNmwGz?xbOdy-t1W}CLa^EGVz=RACdjagOIyHm77vhT*55%9IX-moMhce8g -2fTlIptEcPUHuhy*A9F^to0wDsVCU8ZtFClBH&h0@8px1{w -ZY83Ood6o4H~#?=Uc7?qlFtPZtc{Hkmq12h^ -w}=`zqe&Y-YE+I%HYqkM7G5qS+#*iR(Cz$sKDiZV>&{6FW4RD0+tz7}mf7`KBt2+a=&=#`Ju?Imp;pA -nT{svxXS04=p_jvPXw7gT`XBsxe(}?S+T)7}fqPA?01$;H+ln@ZKw58NMiu1A;g -VYi9GG=cw8j954%G&@2}CjS6XO9KQH0000801jt2Qr+?B2qOmo0I?JR0384T0B~t=FJEbHbY*gGVQep -TbZKmJFKA(NXk~LQaCyC0ZExE)5dQ98LAW0*0g8aN>o9o8uq@3Qqia&6X@|lHWLlpmz%SOl-Nr+U7CuH%SaqSk3M$g# -oMgUu}$}&J9R?JGIYsFN;47|(~yfGm=-|&1b;E~j9yAio~5G4sffQ$fXP=>c0?8GFie}PnBTa`~Bn<{ -v`^rqb-f(I00YuWx3z7t!U}`%8ApCVIo4zx-)J0Izr^G=iypL2!_Cn@q!Hs*kS<;)5^sHbe&ga3C^Uu0OXZMu!2^q9BgpIQo*%Bf?}1XQiGb4QfP=C&*`xR7LMNE- -dtb3CcGE#0r9+s91!>yKmX{iUjFcWatD6IDc71(TWC)$Ka1G-Hdf>D_>65!UKGS9fLK;CU1^q8sgXr0 -2)>1<@>q~x@kYe=8lh*5uepROA!YZu+U6%~rB3{f(jV6EhclfAf$%o`CVbl%3FR92@n0#(Mt)$(=7)D8Y&D>c; -F6XkznFW#WBBKu>77nhkFhf?f|@9?;)7IECwlz_8!*!w89Db&_q)~MwCNww3$bdvzKk6kRC{OY_*VJ9 -w`Z&+yMyHn_?~Ebt*4t?nnmvR? -tEP-Ec1;9wTcv=nD*a6ow%=wNxr?w>3K>;1)}njXA!SFe0?tAXZWBQo9j4PWDjx46KFmTE5KhT2xS_a6v-W!d*o*@1vA99)s>|}?=r{Mb}1gC+eW03IYk2(xdJdhn5nEqZ$1{`~?(vXe;2T(Gs3W%rhNZW -y_R)(%^6We#b0hJJScp5_9+q8#n(d$n8m<;e~$MX8tE+mqzwbpKHpW320Kr%2h(U@J=#7);q*~{K;wm -JRB$}^E^jRP--aMb6K@2p8q3QtlAqmJFN{&mToZomk=ElTBvu%o-z6ODdG!#hm(yY>|CM$!Q?QQbj*YJx!@fO?s`8#w`J)jxzgHR<#&bX0iV4iGnNc!JX>N37a&BR4FLiWjY;!MZZfa# -?bYF92V|8+6baG*Cb8v5RbS`jtjgi4_+b|4y91v-1EvtA9wqGzqL%a;SXs=5agn9~c--7s&*a6FUkeYIc9k5VK_BE+fZV-P}U -Y#04H%tY}-lx9}~cwIm|4tND=2A4Nb@O+l-azZ4uxK}Qo(dMFQCwVzo6@jLyogSVy+(3 -k&LbWF6i$G_&Rh80;1J<%-rW#+dSBxLzI50;1z^kbJk~Oo>oZfZvi!CwxKKZC9;&;tsEhAkZ#NHca}D -|PI?r?d+y7u}$@egrLDqY8+LIi~TC@8k8}A~S-MNXshx)pq^i@YID62Wh-uHeZBbO&LF8X?LPBVVae? -6u64Nyx11QY-O00;mMXE#z{D;slX4*&oqGXMY{0001RX>c!JX>N37a&BR4FLiWjY;!McZ)ay|Zf7oVd -CgjTZ`?K#|9?LPAtSKl$a3P`qg~X+xrvi5;MjrfUal|#mAm44*+`-)O1AfkeD|B-OO#e?yAK??0b)JK -;c(_RPilu;tr%H~JQsJoydeuw6s&BBT!}W%$efXy72=jN_ss`5ja1(^7Lpa{ieOxUoCZBAw@A@!2j4UMv!)(5>YOg5; -dV&hARV0Xx4Tyu_U|!E~RYY%^h!6Xond`gwotVL?+~WRx=odvT2KX&GMY;NpAP6rm5ug;NS*mv~x6!g -KFKZM0tSAALtbhULJn^Pc>s`a>RK7gB{p=YHz^boC;tQxXt)-3A~hzMa=?OTA-s+6q^;7F$jH;w+g?P -YuT_ufgbS%ggi4ytZAI6Kd@!J8^^|ERo&XQ-alZ{31`}4Vk3!=LL{2JNH+<3N6wH -#MwcBt)OGl`b4aGHq{=lek2@=9q2t*D6K16ffM;ZhU2u#s$1l+5?zj!eUxTNz^olqu2{dW+YOi~CWDe -M7cdephd1bhI^!)PMgc~uKkJr0Dp0;61v33qYnZiuLNBOnP*QA+Y%Ek3jIvdKiNh67cF&(Pu0>^cavk -}oLutBmlanfifOOk-Ru7A+VBx<{0tR5alaFk6tj6$kX#$l0S<0UyB6&IZ9uFa#Tz+dY>m5BQ*jOb*eW -V&&g54T_i)wB$=B0X#dMp@Mb5ppP7cey5#$Daw6wpG;sACTuzrbE9KI$y_mnnq$h=Ayc^{ZG~2KGCTY -C@oCTYPCm>&oLE8@A@lY|CK?-wsBbhhUViWeSaPx -~)={Ckt5p`3H%r6bXGqC{OpbenLJh@mYztTP=v3jzyL`+F=%<4IXdcb-wTvbXOx&xQA`|k)-=ihhKuA6?A2XgXuj`OOt}Nh;;j2rnM)6{OvisW`MAE3 -KH}Vp(>@{fEa?v%46$)88Rc?Rx*Hhm18_3=S63V*<`R4@#o`5}1~LUli(w}$+v4bO5H5~wZAHu^j0B4 -n#PmD|`Kz>ir2+$iXi-7HfK*}53|R;?OQm_8uH&czA{fw-gcZEO0kCJD!GxwCRdz6_nozkf>5?^?Mi) -sFy@sxcRJ=^RCt>u^@aIPacB@9Xq6B|y&T?&sOUQuo+g&n1s?0Um@WA -dVl>@)QO3=rf{z&uC&Z3H); -^q2r>Xb~ipsKTK4E{KV0I7Hq2wgN$K%05<L>rfno3z`aIa>Z&6)e+(CWtox0UDM{cr8r}Q5*_6b|#l -`u>xE$O{yPZYYcY2zAg9y=rGO*Cd-U5Z!;De+^LYdJzb5aIKV%4J@v9?i=S#Gi7A;b~WHaA~`4MM5a) -~XcteVN+wI5ax!9X)CzW_xC1jzrHUkPMpYrm=WtqA4WST1J`aQ+?jOn+)yXXrSOtSFr&~RSsjT%Iz@$ -{n0jW)TC4|M(7g#W>$-;LK}n(Ea_2lyVc{bV5*T$OoC@W?msK`pJi9izMnpOKYex?M7_x!_rEq@;$Mw -S3dt67`r=jcV)=#aT9NPVsftpDQ8e5=M7#k0?QMyZL$L-y^0VM&cs<6;a|NZ|o2BY`l`3EJ{6LlSM!_ -z;s$0*^eu{=>;^|F=Qe8c#cQviTJ#}qk7{0~F70W_iR-WY;QkM4|s?N|%1)i^AaNM<1E}M1El8ckeld -JUj^we-KJdLyW_+lORWEp_(ZK;hptoD|*WubGBscw -<+=W`uz0#;t~{ez2QJ18N^`lQNeSJL{r)t@E_lb3C{kGbT`-A4CI -SHv&8^L#+JN^iLomr(DAkrG6zcyN1~W?=BQOOl#(^Pg)v&}?3Op3xv8F1&)%?bhqsN$GxgF-D&VnBu) -2|bjEp7(<`}DcO7qmAA>4`-vly4Q5cEM3kHV-QEYxwyh``;TXyS=!wlt}QQz~hiH44cj=Gq8&<4Xe)G -F8QRdx9v&@!>j%6pp-CiGC4Aqhi9KFktA8Y1JUU&Ms#JB5UyoM?xm7yydkhF`Wp5tCNfOz{wFrF(eT@ -b!jM56;iYmyEUEu{dG4L{di_q$Qw}qxL+EZ+4DJCt3K=pGF2fM-Fj@fHI}43YJadH+Rw1aw?~@7=Gcy -Xy*6A&ql4zKsm~i04a03vyjrqxb0A&4zn*@yxIZ`bGX2W}B`zv+Y77q}37$jh -Y&qwDG6r-ABw9Uj#Qufa{}t~X>OH+bMYGkPCxrUX1HB<-;~v|JH=Pk02jF=$O>>K(8O{f8p5B&>-V}N#q@k>7Lz)!rNkVVg~~lkvH+9Kpt6m+cH$HFqFocJ$gXRw0M8mFm^z ---KD4$+X~2aiDhwtX#Ulc76|`owL$6ACfIyWR(S*0Go(svFb(a9gc!Xc8?jjIiT_^XoD3|;OkZDaCHOGcA#u@WwiG{(L{vte#Liu=5vav!6zHKLEPi+o-?Yl)rV=wwCuPrC0dKn2gen(aEU_=OiE=-2wX)(NJu -V$1A8Ibz5O7LE4Fp(izPH285BZ1|-ogG^&JRo_rx5~iJigkh@o=!>h-Z#t^#g$bSM9j)=ppv@6#R2V% -b>wcaQ#G5n}jDgIs8Pps3rGFbhTxx0%N!kcs><=*M4z0E_f*BT!-1x92!50s+W2N;pRvwbqNQD3Mc>U -sQ-nOSll&^ce4{Twik-s@ouYenV7MhlOB!hoK&)BOYUvj8zkA!@%reL=4>RgK~7?@ -vk9E41m8wmVb)ecAzA(yw&E8m6*LldpIHp(m=9ecpYXpYw3%fxuC2!$;a?E>Ptn$v -u=D32-Q@@mV_au-zeQ#$C)%<#W+KT*jyy6UV>w-qI>v2#9=h@;xl>iTY`9V@fi6iO2+;Gw_Hvwlmk$k -=@IKgmSPPrkd4FHSWxtrL&bDp5a&GcJP)h>@6aWAK2mlUeH&X35dqkEZ0056|000{R003}la4%nJZgg -dGZeeUMb#!TLb1!Xab7L-WdCfg*bK5wQ-~B7F&ee&`$c*jGQ@hGdCX>v%ZZ=6J&gSNPE{2jIiDQan2- -319mH&SI06>7Gl+5hz)umFlL;{UQccWiu!1u)ET8d?nWyLnlS7KglHZre;S{F^W5Hl$%xhZbtLL~68* -hos=`qCkwe$y3NtDDmEgH -8DboZbW;{pEs~ikvZj_Xe?L0X&*w#6%ey*DXXc5ls=P2?R;DX7*d1)b{gEG4^vHqnzW^l|g?Y-#3!qrnRiX&J@0GG7#xd0F19;!3Kbspe -AkT190tzey1D2(hvt=Sg1V={(8O-(;L88yMi8c>dz@=>+&#S36{JszhD@VRQJI)WBKfC9p%Sk;_UHxi -~*P`{v~Io0GF|#$vlp=WFN$fcW2by%Sq0(p6qmlB588W4C&p8cd=-$}IwnD}5K@9(A8+c>Qj`2Gir^F -Xv-{T#vEKVABYN)skbGW`jR9h%K&s-{83k6MtYD2r@@_6mPw1Y&B2Mzf)2b?}p&nT=PrMGWTH;OeYf;6 -U6u4l<8w&+O8?&rQH5QGMRgBMuppqa)pg>^N7{G5Yp8xpb?d!3Su$J-#_6MN#g2;BWQuw8c>mml#P-e -+)KV0CrBRhZl<>fE&lfOQF@}KdmH_xA6JpXA7vhOjm)BiTD>L$r#ersR^M<~rzlji^!sK0=@wXMeVw* -4OGMZC(2S(1&9LeN4>l*S1);?-RkxIgS_sV-h1XJ3Ol%vTpLjwDFlU}M_?A@*nG^zjM6$m74q`EKlf0 -f_DQC!lYWStgw)pf{5=mrkP#Ae7&Tp45fY=I2z^?Y9?Nzqd~=VO2Wcn$iV#39I$*i39CTj?zV6ftGfP -o`Q4rpPBWKDH@nrgQIi5zq6!X5ZrHy3-AbzH2K} -<#_j**~X%t?^|7Y*1TWC1ohJ_yChBV6+I6dNL&0Y?B{s0imC{R;j?V7|aB900}v6^`SK#c>oJ^Uv@A6 -mT2xci_C$k_Kj{sd8rljZoEo_{bs%zk_mDufdvq_!y2NW@O+}(ACFdclhx>JsN~93qm9HM6Z_b24o77 -3>bLdyHs?~ojCfI#ZV^dKqv5f+Hl(5dg=R@t1h?hKhJ-nz3FznPAl;8@yAp}* -gVYNg|&Iwqx1eUIk@#Oan(~<`qpyxOsjH^mHPnSEOk!co@v&wM6(*dvU77S><)3_Oon8O|l+<*}mplR -QA@O{T#QGSAhN3EU%@21+O=rw4u>33}M`8oj)Vj+Swk`bXFMjq)?LZHW0@fY!MV#n&d6<C^wZczqce`hlO=&I3A`_B<97ft(=m;x#!vXnSSb<(_z(f>GHjlA0<3hJti8Ra!JkJVp2TZ!a%@ -!2qJDR3u)5jNJSB%k!^WK>!NNhyo1przuAo5hDrmw-|V5fKEKkK|{N$5>)wN9qCOSn>#vgmMF3e0R$j -XQmt;UPOn23Woi%JeK3kaEv2BZqH>3-{$xH1JD4%ck3s*PkRd)cst&KGPB6r=s{ylnXJr$8+a8gK^4IY1<^o%d+wSJSV=E(vkJx>x`RPgC>@cy%|%jSq@OHKiagtaS6)DvCv!uT -5ack0)^(xzf}R3G*^EK{g^fT^i-L|VwxFuTTU65Z9JMY41fWPsi<+JqkRDMaMn=Z8pw>kxmrVvQFwRf -&Mq1qf;stWJQN!8+0{s|a#R!@pPbu0(j{;+MRvGXy-V_Td{+$B(=yiPY_SMDZQ%{!!7caDwYONBw8YQ -hqpkv-Q=`Dr_H5p31F6AA#smiuxDLyimpogIgb*_yxK*QG$wiO0jRxTjCS_9qz^LPMth5}(0vAC#G@Y -j+|pk&nAoP!~jzz=#~qMMJtwCRft9j)r1-(T{sGQ%!T7&mAHOwe#e-v5=t)q`QfH9Ii&H9gzoy38=P0 -%lf}1_)_foD_Z&L6fI*@>sBYLc2#~)>JkC@x -=3Iwu3!hQJg1F^UF64q^8t7s0fJi!@yO=#h6;JppT6{@{4BydAdfo#~6UIOtGwE=qRXorzRpi>kP+CT -8wj}KJqvRHI$nkT`P=?mU>{mGl+9I|tU8DZmb7LoTFUWzH$PqFkVDL!i>{Kl`GKc5D0&tBXh@!0F$Xk -7Hn3q3Ne_DR-I=RT_S+kHj2bpCWS&#(u4FIj80VM$(EXd!KiApi^0Ib9;Rne^0-cp8MJ5m!fDcHC)8} -t-_BWUzIKfs3lEdV2*h>b-gvE7N&*8imi2TK&Qjy@P{g7iQMtx@~V9k>VsplT71I$ed9$}I@ef_j6Vl -wje+@$8ru$XaUnhW((oK&#G*dfkC#i3nY+_=4n@4W>(r8YH?{HgkAgEdkXqi_%eHMJmss!5a82l{JGjE+QAD|AS3M$i>#0bKvWPFTq@>|s5MM$iPmTw%24^b9B0F1H;nx9KN#B -!Q9B5jg%gqb|FN(Mktd4x68)D~QZ+g%YnxxFH};fa?_~_5ze0FcZfi4;q><>oJ|8-Ms)*3JL&@JEouK -fJr?M4ZCxg-I-S2KtDr(Cyo@Oxd>uc2a(VIMIfhvya5OPL7&y}d8FH -X7CWB!Vw{oWm6Y5VwPd1*f<@^Sd)U>@}+6~OH7lpr~co^My(s3zfrFfHs^cZf~$wlONBSUk4{vy73{_ -@SG8&`6m{nP{peiCi;+zhhCVEwKHVZl^6;XgBFC)H*J;U8r_%>J>uq -2-|=3EE#kCf!Pmm{1!y%g3lh;GHUAJgE!;c{!Z5WZK6%$6sR*umV2a!hDR-sVajoLiT~#cLmTkN0(=x -7?u^xuutXDFGW+e5CXKkA@LA_>0BYw!Lrm+U?N6+a1KXJLs&WRUnhb!yF#z$XJjD^Fh?1D*2?H`99O+ -w3ogIyayZC5jY{W@tDThE7S-Yp;FJi{`5!<`Z<0s)cNaxx6C)rOt&86>E0Ws75QK}Jxkuvc^z>BRr(e -C$WAtGXoh?6#zx`mD&)ptS`{-1Ea1xv?*!@61iklW7O0Nqv90Ya%xto2+89=HZiy;owxQ|9?$XX|}2H -YqaRK>POQmcaOhsXKu+D-A}P8=zyF>T6W%KzGi%dfPh03Th|xDpu)T85ba#L%LBIWMwi1A#6u*o45(K -(^#vvVoB%6MppQ(W4gUtE~?lK7GLTPMrsMkskoxVeXvPNR?P4?>Hxmg7-yzCz$fhBZ1e~BD@uZa%b1b -NI|W0{z$nFuz>dW+>mQ9ml>OSMnh+WDkYN~ATEz|{rX_+v>ONWk`n!RH4!l|Ym|-+Tx=>Dl-g9;M&%B7Qp#Of6&Supb+O6*qnlMAg{|GPRCUmBroaU{L~H~em%HwE9mfeHGj{7Px8Tu14^0357? -)MULs*<+#Cgv^{>1hU=fgTMs5eoaUl@htM41H`LEmXH8KVD|{o3J?>|pd%-#nQsbb(E7$c -*%4~gthf7UqcKd;sv^6UvD$626lOm~YzEyWoBDR_Qzu_%@^fje+S(*4)sQE4^u^d#dD)%5BM+dCpxPo -5Cr8QtjE8bB^fGb*^vK%4b3l!E+Iw-TD=EFmmRm4cO-;bTRn5xWL~T}q|4iax!blAWNR8neCS{7{QbZ -7b0#OS?9oz?^&=BKVQ??fQSXk=}ZH-F^Ui^Zi*b#zsU3UhCjjv9=oLqBsW#8g+^LldfrKj&KGIkwN@j -_5!z~)?T55}!-SYjw)0EA2h-t15em-dq975Lg>A#YPyb9N=&6BlU2Ha6onD74DI>GY>U8A7|TSr|dv`S=+G(Ca -`j68Jns`p0iJmJVvX5m5cu}ig=_*b53;Qh|v)00~jA*v#q=AP0K6L{J)wTYpU(AQ;Va(k9d7;x!=|w#!IE->=$AbLB|v9 -IP$!_j(2OI4_9&=@@@SRz=bn&)h2vsWyQEbO&;L5C9x$aiNQ@;PQ8j=+s>AnURe)^X2N@SmW%2jeA|j -qdB!!|!)s^*@oBGM_tK^qKE{Fnz-_EJtSUjnB6X&0TrrR!}ji7OY?VBkwzjK=#2 -?*fT*CsW|cUEB(@z{j+uS7zRo2ZJFHjVy+by_m`Sy2===w-fK(?TsDuuk#uIdQg_c*^Ot3{ET-EYtp| -PbsP)9DDS@r~gC#!k3DDn~RH1U}Z)5N8cFA@%=EP?j-wIZ^&n@3l3&IP;abVDuMz}tmPQpHdq%=KaFU -AA_a3BA=RxDtawQ@vw~hExlVt^Oc8kSa0CmnrJ -ONAgjCuCqi)Ix2CU~xc)nK64(<3lr#KMimgo6qWxo=M*bg%(F&GKUA?cL#?V8sae4p8?b(rd+Phspf0Xh6a -^dj`V?TVU^`P$Cn$gY_kX{*8E -MoF(Udg03w9+o5hOkH}&`WsF8}Owz14dbkEK?cQL+@B!%VV9NVow#C{$AgTt)A~rx#tD;cuR-T>8Nr-PYIZbsFkIJyQUT$xkT8UP>Q^C@DFP^XouTZmkHE%|H<( -5fs-+Icgx>HuN%Rly~7h}%t08+|jZ_(^M1OlViChC@h}>HG#3MZ=Up`ETYRnTji~ElQFh=vwJ}>HLD3pVqhs`AG@1I%$e2PU!)SQF(tmJ~#PHqz44Fj3>^_nC -Xzu4fOHgw3dg;<61#vrY2AugXp(z;1ja-^_kcrL+wrG<8W&%&W(nW2Zf+E7R^7xm^fZCPDD9dn7PmuR -7m=OM$(ixWQY`gxFjAP+T=om77eii2K@v*{Rcj7Y_(&`}RyqNT9i$-Z|+l6~(XfuoeLzSW>uENB->;Q -@Ea=h%tHnD;RZ0@&v^vetoEYb-XhUKb0oO+gLd?yzfdcu`}9f%K;D2H~V=%lg_Zq0dPWQ?H1$;G&Zsb -CX0U4@0Mx1M+U$6Wso)@qoA4#sR -$6rbn;6iERKI$qHZgA%o6J-bc#5Dc21c1ekjvTGNR)FjpW24<{wheZVBUsiQG2Lo8?3OlpKYYc2B+3a -Lo2b8%D)Ag&~?n@^NZ8NM#``dWbGKPeX?ZjLaA8gcW48CNw>J|Io(S1C!@9%x`aqEZ<0y}*H^gK%x=E --j4GZbF-U)$P)w^dR)X-B}E4|pYZyM{=JB?R~mPjzvrKLL0`$^4giM@2>6R$EI(kuF3vX&uLblG$?1z -+LSGPosDxu}l}Uh5SAMaj1m;6~mMfYIp4MIPE}9_O<5PA#I4(_ZVf{I>JGH{wE)W|2+QM^YOlTkM!*uLsSA;b*MzY@tApU{+~S%033yb`+4Tl335=Fg-*mpIiD62?b{C9UFL%Q8>qYw2Y7F!d%o*%(@#TRF-ycG$V18VfT>GBD((Td^XObnERvylSEG9ZK -!g+SI$dh0!}Hc@GaG8xMu%g7GycPf|UNg^9dTozej(@b~MgnPVMWF1HRaHvpFjre`1~ZjX6==5CBt?0 -p`1X&A0oYN~z79XFiDSPH{h3;PLHfs+Z4y23)N=<=_9qXBmygwXXk@XDkxwk-k81|*(cE?j{cM$PRPeZyX;B~s8v*$(JbekG#04osJl@Kc=&J;=duRZG*}l{yNr5nu=>vCFtC -(-Fi`mcq0urxc&45e!JgN5rPe_&y{}P5uSi0+hx^PDksyF4bqB$Mfh(N -0;Bc`q@yFLHBFO`0>1G&j!+DWm_@q+`KhJ34pa-Qjos!11S}8Y+Gcib`zhvqhNZ5nuvujAO*jZ=(hgy*8MglT!L<7L{Rc+7wQty9N(Az9QlI{3U{ -1}4-wS{-nfit`uEA?nh#OioG)-gCKI+<+OY=sX78YnNxFo~?K+9UUCiQGkXk1pIUOGe)~F|j^=Hgzt!q^`d6#p7Jz5l(u -`$G_+!gg4bre_mF}3VEW{DE?H#vuScWAB}?N2Pu+1cWfi1n7+;=F_T6Y1;jwLu%JKTlT3Y4GCXsgPpp8CY!j`q`z#*CSrD(D1nCx-sx~^`gZ{T8pI( --ri%0goZ5YqGGBaSrM|Xb -+FQ4k~5A_E1@n)ysFD-2Z-iGn04R$e~ju1n4D7?Jt4~^u_!-Q6sdIK0FeA#4NWrDY*QD>|r*(^NiD72Vi@L` -4=9iX_`{Yn2&z)TLJ7$;6cBt-ssA^lh8&Evw=dlhSmbC76PFiZ}1)`cF}~CrRCV{cNS$iyvQ1+Gsr0x -hYJcRz-=I#tFUE;Iajw{~@+G_2}5$&QB|qHB2PtEf9{^_9&B9a$VKntaa)=wku}JZg=Po^9g;`8=|ue -2Q=RvTu4P(Ow0$HLaM-rD~7q+Z@h4&mK -F@GoHK8&+Ao+#6T%mTG(5rm#3r#h&xGRvJ8o>KsRBDdQV?@vd**sf4NW5uB;GvVD#(J?Qzt?GUuJ7--ZtGR0poHk;!Gjgpo(4CDHxJ5PnLGfX4^pKXsUDo2fA<}&BT8K?QZ;XsGD -V6Py5zdGSPJ9ud_l`aUm2NLK&Yfj)8_)TVZg{+)*?9LSkHzuH2 -Jf%OE0%3LJYa9}Ih(X+<@gFM_wRXhZqd3dG#wCsaQ8BawLU0Eb?@)`0Eo%|y*BRb-df~eOk#{3ZyBe#`Fk~#^g#mKH&LpRy50p=9VKcV^Ti(&%FMu -txuIJ-&ct8-BF;~H_vq8z3V?~@$x}^^dwIV0Jp+V3))&c#_VlMto$0?X6sdJ`{?*q(>ul2pyi#JYg}# -=4Do*JuIcuOL>^&#dY(zWa%U0BIV44`+HsfAWqHid%v+meuJ=Pafx+|Vq`Da?z5tnYe@62|MnRqJ%VB -Tcb?mBljw>8zE6`Cb3TgD!?O4>bA?5j1emO=mF5ANGukoo1Qxo?oFfi9?3=K_PiL*kuE(i;ycmD>hpr -*ZFnOn40wiHZ5!C|8cW&>c-f^GEn#>~vb=V2)2A@Iajc8_z}iXqj?O%dy+dC*&Inm=PZ|vs@ByaK-E -o-AhifH2rxe`-qPlH1+`-H@tnPbxzw!gFqLHh1ughI}HI(K=f3ci!a63;#uB0384T0B~t=FJEbHbY -*gGVQepTbZKmJFKusRWo&aUaCxPa!A`?442JJ{3acD8q;3y@#04ZIgg_kNgiw?c_l4L;N9%oyj? -YOn4D)#^ROPjVRisxjkNd_ZqDS*bU@y6HSNTZFSC<<`~PYrU_TKdYRikw5AAU3qK8a4<49ett(#f#(+ -S~6TW9#RhO(k|edF|KR73(zL2j9Tq{>RQw*o*6H1l#M8aaV>=e)M8MHf)JvzDn_`&?n*_}*W_9i@ZNk -Izog9@R_Xjg0AFnS80gbz-buCZGLbw~s#TkQhpAyh6Je84z*PnB*!6L-zmYOpN>NI>spKXpMhFTy$>T#Pv_BTa$@6aWAK2mlUeH&QfQ)gMp<007(z001BW -003}la4%nJZggdGZeeUMb#!TLb1!gVV{2h&X>MmOaCxOx-%sN>5Pt7pG3x5nL@IvSw@RE;v9Mb$6a>A -86+($gCaoc{bG8e|f4^hrN1e2sPP#snCY~SPd^7WzLaPdrq}bcN#v}nz)k<67&qkGdi%Ii5nY8aqwcQ -H2ofOUuD=tb_b8S#}j#r5JoqscFjA~J{pztmdkQ*L`JO2aB)vd%3RrY`wMQggfe+{1p<0mz$QcfXR0AD0(Dl -l#Bc>(%-@kye~|y_f)f0s<>EhHtSC)I1)nhIwv%g}j`@W?z>$IoJ(23@PqhzX@Ztc-~u2;KcQk8h73` -m2J^p`*%^2NM6x6#AKFZ0oe|-R|@#|UQpDe{;)eGqtSEU93rYvaZ~3P2Ok#@b+{i1!&3|XkrxKG7jls>D3^xv6QJrt`Nnjk{9WssT=!@^vTi?2^<++op33nv$lZuB10f34AQD- -6|Pyh%%XMF3fk>XuIQyD&J1CNQK|yfm2h={Ox4SjjhDiu|EtW&x`L(or8%*l}W15*^+e3Z;o>HfRk29 -=U-qe%}^7sxPo1z|A_-U#;FmP9UTL$A^n40%lv_j*m(6JP4ok?WBo4C<5zic|bd!$hfJ#4bbs<-Z9%q -S2SZY_M(K0Dqcr4oufI9<4FK-6idj@akjfdTa{F;21TSScDxzkTKYW*6`)?^1ExOssgD`H0Y2yu -~)XGElIPKYXGy@q!I=~mFZJ|x3Vb41&FAhZG?B;T_{I=XIXWd9d!U$V$uGAHgIxLyXyvO -A}&XWy*4>HH`VZ^!vLgT###SFc?50-@TIR5PJ=l8SK`s#LeB6eSHZ}dOXn_xd00cP)9OVXNXx>kpPh1 -$#9jn^M$Iv-p}o>*3@%&$*7og*-_*`#Yp|MqA-{X`uPRNJ@_`sSLU%ROoD`}5$ckK)N;-wRci>fMQFD -I@~Amn(aj=WyTkOcX+SoKjCR95}j3jb@BFQRgLx$tfL9~qSoM)s+Kal4%V(R$?v*4CHu8C59qWS -G8jFTP4!0S|5qW*81OphHmC*)(be%LIpuP^UI{cv6OD?nR(qz;KYF`sz0iJS>@IO=G07*rSOVaA|NaUukZ1WpZv|Y%g_mX>4;ZaA9&`Y;0w0E^v9>S -8Y!tHxT~5zhV?VB&ou-N2RJoqUwo;HagyPgh~{lm9slxeR%CX+Y97=eP`@VvRNp)4^>r_50H%K&Ckp{ -V+Mo4vC)sHC29|~utF(R@{91&XfR7C<$Z}3j4kN*ve7voxHL)TrF2l4qEQI7HIK4D2mZ-GiK_1EPT)! -U5=2c}wUxpnEGf!D7ZLEi-v2>>M(i*)^u)@3)TDr;|Cdo -cjqRy&Dc}byibgnD%rA1M2-srGR(!rCl51`}&LYv0-L&r94(tMvnE|+Lglfw{%9IT))dg$T4A;7dp1Y -cr{5nYfpCZlD}vbZIe(WPtym~bqeo~o8LJiBwC3N&jG;D0Imk;>?-+vA-jH(vx~Ud1a9%e0f -dF@gR7HgB5$y_;A-`)&2My;IY?ZM02#-QF7__4Y`2`^t1h06ASNmiZkejMjNY$&FyrdFRm29{iDF%l@ -v%sYwxLcQ$)4Mbo3d_Ukm9z_3@S;a!p}t*Iz10sQQhT!5@XBearAXmL*|1g)+&PNh} -7BE@pWu0a;EQPVD#m@~o?^02S+H)_p*1t|q-d~^2v&)N%)2rE^)0d -`BK5s(Z9K3p-R^|~mE(x1%22^>pTBx+~Qn}Qx>duwVZZ2=KWD_s>#hXfmz#D?I&;S1m>$6{}A-yTGN;&!AU^%C`xYGb;^=Sh>~uhz6;7%q}e(d4X=jdAe?uFa -}p+daG{}A!c*@OW$?_J#)HEuGd1c-|7N$b(03sjvZf~2#>0Zzo#J~e(!|?UL}rbBuT!=ZgaCV>&1aF| -bB?u#S+JN|Yix9J`kvsvnx17Bm(z1j-Zq$^a`^i3iJ&9C)J#)4gu1fQ;;)eY9ivz^=RG3ZNlOCvM7kP+bu+%ItwVy7O(U5&IbC-s5$01?WItg -l?_NU#@lAwal!tHgxDz$ZAf&yBWbSk(6}FPwJ^dKGiEQ_)IQizs${A+Bg>&1EgpqbF}wDH;cu)W(_s( -Q9pt+c`|qHC%*%OaF}HC-ce-X#NzZ^*jDuJ&_}D%X{*$*h^;hlbI8krx>aW?-`EOUG;{3om2dA|K`i@aUiqyDq!pR75(Uv_sTZ- -SeH=(s=fwD)@LL6RLx?yTTfj9+lbuHvrC?!Oj)0Z>Z=1QY-O00;mMXE#zE2g^X=0RRBz1ONae0001RX ->c!JX>N37a&BR4FLiWjY;!MgYiD0_Wpi(Ja${w4E^v9Jlu>KjKn%y<{V7EH;;_sgpwPXv-4?clGU!7I -;kfwZRNLjwNas>B_T6{q#7-Pi=$IdDY)Sv0q?25+-$6}vp^$LTi*Ihmuw -25kjxMA3A9ml?2XC{Ky4lr)|*$vQmV$Cb#WF7EcdP>h|mX?Kkz~ak-o?zhoIz7d~HS5U);ktZ+wVn87 -?U^v2>0zLSJ3%Sx+7I^zO^Hah6sZ+>DKrhBEyWHRq95A0vaAVYZ80T{Ir*d1(8k&T_`z#2@{Bkwe~MX -%C54OXCHr4*FP1#LAO1P;7(U8U6V8uFCZDz<3`n>L`Vr||I;EWN|QHE9%TNaALY%Ld-Fmcik`bb5!Ec -oEehHs0I8$`~4UT?~*rBOWnZ4F8Hr1JD}-w@1$t>~U7|F?p5L*V7>eUrVe5JUS}9!8=U%duGp|1#ql= -1q(_hiOq4wrYSM8tEs%vU>D2A+Wypwkpvd;{KY%?a08PR`1?;c0+XWhywf4?iXT^`N$_&R_Dl25w)Hc -dCS!emOeZ_IZ`kNuI_c>#hk;LGi2q|cK5Khg+euv#-mjc?@?ur1^--G}r=(=6!$EcbqLTO?A+;{w;>@ -6jjrORHe}U{TP)h>@6aWAK2mlUeH&RO?EA}-7006=h001Wd003}la4%nJZggdGZeeUMb#!TLb1!pcba -ilaZ*OdKUt)D>Y-BEQdCgc+Z`(Eye%G(KDG#4;YH9E!HMQonk1GK%k|QO@t;jl5*k=`|mr7k -}Sz?;%({HJVc84-5u}l`;Johrcl~~*_j~7wc0?zi#XxZqLxg=rRBoJc2{t@0`9TzKY#d~yn1u~>X+o> -r;CfX7q5eW=SLpT0-&GDYv02=ZtN5;3(FM+nZg2pD^aEx1ZS{VbAl_l*Q@}8wk+ae2V8Dd${ZfPZoC~s5f9`QkCI6k2SJvJfTY=Sc>D(&5gdfab_cTY0-I{ -3T1HIKEMY|$En&B*UCSfoMf*`{jT(y#Ynu%*jLdh9ljcO$+c8P276yVHJ7F~69wZ0N -+$wZ9+5(>onRdEO6zv#yF#P!Fu3>FSbk5YVN`~UvI1i -g+8{uNUF$TqBLLCJJqxWEi2F$RJL@3G@+r0;vb9cQJpPIF0zx58O=;CD`q4a*MqR9DeMd`F0amKaK0r -TluU@-6z*}9(VQk;5LrmO3Zg}GLga!`{npg^X>~FrNfAYkoBqu`_jf*NkImSN6G@kD)6yUP6u)SMH7FE!IUASxQ3VN39{PMo+)>nBF%VM -p7?gQ+>_YYRIZf=-y#@?;>14xvaJVU*GDL1+6a>Jj8b)}{iPe15*3#<6d(=v6(ca!17Zlf|Fm7KJLlj -_|o8LW|R|{poh>7%nvC{GqebyqxZxtknh|1yBed#>sFPv8IO_^e<>mBA?{(6UeWTTYuA@d9F1yPOG}PH?!l`4n?-^a@&UMRr$D`TlT5=u=6I -Brxk#!6@5$P>TgJ(HR+#Ghje?K)L(bjJkE;aq-YWg_r>q#dc5|8h?dN_zIDMTH=tqJ|2~2=rb=hk_la -b^LDB@)O4&yne#(rZZz*cSQ`Gr)qwK_qx~spHP8GE@4;Zb9G{Ha&Kd0b8{|md951#Z{xQ0_xu%{4~6B;5w-!tfM6bQyGz?(?IpQ@Ym&VLW=XE5)bm_f|I|1edB2wc=%(mohb#R7%v{p7-|q6~b(IE| -yGJLS+tY3XAxZi>i@YbvUk+X?R(3TzubAd|B6e5<%O@(xkcGSG@5kazLj`ku^FqO}%9B4?h>uR3(2pj -m1fhjpUW#lW7L*&b>6b-}b#M3Zd@Ar)J53sNGi`-8@yn$v^&b^Go*T`^z`~&2B%udw2EjJJ9ZCV)^2X -!HclQ7+$NVC3}N%T$iARD>%%4`av3?>qlN8^pahZ@Oimpmf#NxzMc`*H+sM4s(4**4O`K^dwP0LGVQs -1csM&d`{DY#?CsT0S8p$G0eF7?m9IH$EyRZH`J>2kdtmZs4o5C5Yp;+malw+wqn9C(4-0nw?{I+-%w{ -voO)YpM7?0S}>)%A)q!FN_BIB0t`-h&0A?}T?8GtdV@Xc6?E!A&!B7Y=+5(EbjrV+egdJ~;*q{>CKB2 -9oqtMZ9GDt%O}Xlv9i(s7<6ZupjVpkN!);29k7B|yuPj$QN=4LJkHYrydlcF_Te(ujD=D|X%NM17P7O -ov!C=uHgx>a~!bJ_XFIJB6TX0YOYfK+Xg}R(sxL;gjUFA&@x&B@YuO0Lzg^za`B6Ok|_o3)L7>kMqpf -243NwfWv;z(r;iO7vQGgc_RuUo~@r)4jzYk0uqu%>Tta-jb5^&V1-t5z*SYCR)S!S4#;VC98VGm6r4> -);$^S{1>{_@rj{6yz@9-Kxh}+8f&VE?qCMU`H9M`?-_bOXQh$oWv*U*3$y&RcpIob=4_t+rlm?cYY -H+@g5p9eT1?q`FRa*>BMi8E=&=O7a0Xb5gW%==!vMQykx|`RK0|F7Bm@>@&1!yJf;J+HijC6A>AqtTu -%t%hu>OKjtT2%8DgGbA7#!q0-8NO*WCBgfDka}ru`F3AkZ0v#_Z^F67*p&%pL%*pf$Ipf9KsQ1N;Cu{ -KFJ2sI&WG8^+1qL&xVRh)0EVKdna=N*nHh9g&1XfV4ZITdS+|r4RSwtL@yW%NQjQI*>!Qn$}6>T?xF& ->*;|e-*lU{wAo@EN1Ps~ib$}!kx**VAawEyJ<4z#a -R@(s|ZW^RXr1PuiOjvd7$PmF`QE(!W~b -*04-H1!0MbXlFz6E@U>PoU#!b6;PlV-@t4nqJjg=SUo476YDLqlDWG~4hN})>K=EquJpeogK*tGyp3q -e(yzTUlEyXMQ)-O8-RzcOibh!}!yPycx=TZZfH9>0Vvcd9?WC63&N03AT#H_yMC03N(?zPsXcem9$t- -@#HJfT%)Nkr3K&1(+j={(rs3qXi>HP7^80BufU_bt*rq>_h+IDTMsc#$f5notK>YjqObbzZiUfiBG*) -hZ*J7dLk_;-OBewzodHW!RFtOsluqhRaeE8K`k}SGSX!Q7!Hm(p!cd$w+wv@UKq8uY;Z`FpdkVS&1Ud -z*q0Sz4mDsLu+q_bL>UHjB8ADebq=v&;|tG8>m`?4hHePz5LII?_l|@*zmT*vRgCa$VaCstGR$9m~_& -|JdW)<*56$}gLShn;QI11Q|Zdbi?*zz8VeVRK72np1+l1~;MSztYZcAe}9-a;&GrR -pB6b+b#^&zOE_Lm%|qoCdf@7_V|nC(a;rp0~BJsVg=b%uXF55aV7ds09mma);UOheQ_ablCyw8(1mY- -1Fz{8H2ZG6Rk)KFzYg2)9`8kMZb-K4cPY0l3r5{K#> ->lrAr6n1SW!h9#oV%|vsYo|38IlT`$McB61;bGXnZowphn9jnFsAFEF;aS$dWp@DJ@R%Fxw5)^LY7&RS%m$?aAcfHwb8xfLQKr8ZdP8N -DI&H7L^OVTk){?Mt4n9L?<&D6?Gz@QBT5ty$ZIWJkoJl|pPv$=B+oZNXL00dU|qX;2PFgoyqLBRSMbjP4 -G8nwu~^^-T<-=pw=dJ=_k!~^^`2)1n6s(KI5rF+ExW*+9ZOo`*13S6$>glE_NaWm97#5TN2xLYg0ef1cD*%B^ZeBAL40-)ksy9#Q1s*`O6~O@)tJ$Rn1+f>bZWua|1R4lKZ_VBm|Z6X~13_+Yop$!1RHlQ5fyhA -)i6S9<%Dq!C!3;AA6km9&j9mD}0g2k6bnZ&<0wPvK#;cJ%M`0^n|(_TH$EK*b99zS$TY=(H0U?YmJR3 -TCGU~3{cSTThmZRMVCdx#OS|p9e^~pE~MU%Zv>T(5Pi|?Y~vSFpV35iiKVdph@)6!I6@s9kA)4H2$X; -H4yY?AibQ=N7b5@(QC?w~36C0kMR$InA&6GEY^_k?XV7#h8=Ai*gL~J3HTsP`y0H)FHoVHJ>oHZGC}O -H`*;56dzn&_;@j0phX2Pg2NS=8U%yzu6S4Pp`nv~UdyJSnlH4H0A^+a5qn%rh-29o+@VSJGFV`~+DpWTLqpB2}GwJ}NMqmPw@6n#b; -C>%p_Fm%U3&Y{dUs$bhc03I+RigM8+3~8k%W0@^`aZC+@rK1{Wn8#ehJfc7nAG>&&y|wl=@aEN5nN81 -$C1}+{!&qeKwv0iad#IiGpLa@4?#BWxMu80H4n7uT?&>&k@54DbxS{=plKWNGeVV -4WmFa#ba8ql%n2D~NGkcUBE@NCU!4S$F#m&PLar4rRY{`SwgVK?;Qd#xXl4E$Bc-3 -~9(>DMgwAU`1GioL$Mvgd-}@}0o?oHui91S&zlQh@Y2!Z;$mpOVstUVObS;=82y_Y=;nUcP`KTNz!#e -El8FA}oOhmlxE9`==z<@RyC9%4uReRWeTAphW;v5%FX+jM@6aWAK -2mlUeH&W^J*u6Om005050018V003}la4%nJZggdGZeeUMb#!TLb1!sdZE#;?X>u-bdBs|7bK5o&{;pq -vD$}tvNAWJX_spqNpY0}|CU!1%n|9I+2O=Q}F-5QdWLuX>e*5h%01^}_H*@XWaWaWS0QIMj>$?Orz>8jTPsTgQG;`H*()#2?MY4VoAc9Sr@v08}3C+w~U>x45ee|+_0cJln}bDOYpV8pG`3A?PVRKPP~*SlJL&*9Z~6}%Y{mF$|$!@}e!yFNG5H7gw5&KqFg<)z*9#)#`9VPt8&LGAqr8jrP54Q!Z5oATXQYo{Hj -z7UY5I=bA6GHkPwi_Ziw=n>^mU^{`uYci_`4v;`{k{v6W>p6V>fFp{27|&(B_FZ=Ro>y~s|E!G!a%sM -lgMyITuU&T^iwh2Q%6>|YsCnvb>kc}A3A3DwC0Zy$%i{Q?AL>=9aDJZ%j8wu!xWaO~^7=q<$3>$OjCG -Ib6O^d?g_`>Ju^TV(c*Hn`(#|2(bTNxN=?A4qV+41RR9@lj>5e>CY41MT{oh)_ev>Rn3|pPdwC(Y#s8 -3VqkzGQeg)957p6a${I0_AokMivaMF+hVfePR>{@TduvS{YjaCgQhd4HIj=|%dq}M+14rl$rSUrRS`=oy%{ -~w_5ReYt@tt=o3I5WAb!Hga$JSWyDK^U9!3gUrn4Q#Xuk|wthQw~LZTt#TzMiA=+O)%{~CtP4RkEMdHa_?x%;ro(X7gRtkKtik4PD|txWRp3m>-nDXE=7f=S8){s=uvFL -fBaz_w?3(+Xo0^+L}A{(VIhE|8n8y|~Eq6PL|G-AwFOu)^Dg=S1(LMuH}cuP#3MlXShDk62rC3Ii@=^RM=Yd3dm7PoK1Kz`(Me#?>ZQZ;EfMv3z~Eb71)AS!3~wNq)&H)v()*L-N7|1bhvCe#$a8_T-w$<&;bZ&n{FGQD>Cf>y-MAsz1K~ -tL8j;|3wSXk*CnRRokYW-d>o|NR?usNuqIS70xJk^2hR6E(eRylKr*UOqTBu&!c<{(Z{-H)joC1A|H3u -v`5!X9|hA{AeAiu+Fd?T2|+WPot!p!?Nw6pas-)v3S+GxMO~N?gbO>smu)pzW>!2UPdrA~;S@FBwYFF --^iI9f`(pMSx7!)fPO@g=r9qSU!cqd7MHFY`7E9*}sL`_EV=~Bkx4WhL_hbRq?R`p4j*wP`7{hLVx^f -Pl${z&@4+sE9-zHb;3oAorw=~&aR1fc0Hs=htPe~ha>_p{3{A!{$+TCm -rC6MWrKnDo)_N9B>KDHl?g?d@g}MC6?8T6rW#@1#d4SnFZN)|CKp|#T3H&NY=Nd -QDdbt|>1HlRW?oIssL1xA1mSjOZ^qtDA-ryB7?;yvHc7f1d#q@d`*U)^0;`kt#;rXbBwJ1(puIKXel*~NE2Z-_*E|Q^yw^5-7msc*^BP_Dx@x+IczFl)JA-tr;gSHJpF*N -kOe+K?_^j1-wZ?ap=g=(p^BnkKjqcb$;x6%rfz+?oH>(W0o2`Ztk7*7)2P##_ -Ws3ci+wpIAR~Gi$(LOeuCWJ0jU+1yztN*hW}haO)-#FV2on&o7>3C(n;xUjb5%XP?sfmw$NtuJU=*jZCYO%;~tmpdU~3_I$|_D6g2Sb{BA=$(zZ6ksO04e6u0XQB7MnoKNks}jDi-b -C0s!w4F&Rg=NBL5JdX8&tBxWP2~;y~6WoRk4R@gC`3*L{FLB3P`Se}yI2IUz!WVPe*XMzc8>@!BakuZLAXGp|98n=g;O -~n#dXQ!5Yg}Jqa46v_Y-T&ruxDp9a?b?+dyD@nYyY;E{&gLWR?0ebh)Q%*m(rIY0l=mmhjfhVijO_e* -~1%r_WA&_jbq4;Zba`-TZf7oVd3{t(Ya1~Tz3W#D?jbGMYnnh0h8{|2(oh;gNDnzV9U7&c`f(VaU;)X{vm63+*p1OfNZxmFA -jpw8jeldweX2-L(0iRbn!~}^)~F%)z15u4`arPFu1(f6lue_&X%s%#F)B#qvv|s3Fy?bjjskYwIR9JW -;B%*8L(-5Bi8Nq>kh!m3cxoY~rKMyzu*GN?4i?HLz&1rd{(|!hKfFGuJu`Jafx*4}GfH$(!hTP|5OUp -7aX)tFnBA8M44QIq5qwV1INFM{C#QYDO($A$YLP3_fB_Th>vL%NkF5{tZcK(*o-e0|iv}J{j&p9pih7 -zh$cne<3NZa1s7Q;eb&V+871#8Tf84~V-yk`WIT64t%0g#Y@ZnoE!)tt*9z-E*cvdzmMz4w3dyx^%A(9g%xOIq -lbC@z6fag$dCKN!(?UmFDw8flSSbbkDN@Sbt+_e{*1E~bcCmRmpC6BRkL$~CUoXF}?|aWri!A@S#W4twk}eOOI|X*DIE(^*0 -001RX>c!JX>N37a&BR4FLiWjY;!MlZg62^YiVw0E^vA6T5WIJI1>KuU%^YzwRClrrd_l^?$SlCoA!d; -rbUwg-F5?&wrHDMS<;GBQg?6fx8KZ=lu1d>xwm&fKb(NX7R4D3=k*!NdwYAATINzqp;#?)u0_UpJzL6 -ap_0+w-ri_5ugeun(|MztTBIqHtE#Lu<5N}UjTWi7AC2sIUM?20Sh(9#xo>LOz*6m<=GuMNyq?QkxZB -UNqFb|aC95Qrg%)+e^F(}_iAu||P)?510$AlBISiiEby*LQ;mRsOu6kXGmNptOxc>I;L3;A`;^gf7^w -rtq#>z~qRe?NKlL;B|O?CkXH1t@$zF -nmOE5!aBzDRAf0Tuj)HQt1hMMQY^vgk6YFaDQ3A?S|MI!BM}H)oC#=N23wiSJdp-89G@A{UePc&cKOw6qA_WBIhU*b2e --0S`<2MR$P6IVkbEI`w@#`cJB!T52H~C>lXsTZYdlUBPw>Yl(QvFyDoExf41b;=s>z;3Z_e-5GW|GWx -h@@Hy|@2Jcc+=%*yv;8gB3LpBbtJWRQXgtjwx{)RX3dXRr>2LsW6S?8;7_`CjSTxat+{1)cbP_sJCzA -`g%VKaw0C$|@QkjN|tE&p(fiKoCGC1KJQ)wF@sd(vmg#=JIkeg -XoRu5_7p`7NkzECgdLiRA_uvBac(7qc^;(_y~*!!_JobcSJo&?u6ia>U7NUU(l-HFXIhrIbG0|Lj$*o -Q1gad8HMt(~MIRG%s~~kSyROkPCKF;3$wVX*Cay&d(MLH=;pWQ%$eJk#DQ3E?*Eq%tSHEKCp|f(eDvP -wL#aw;@$2bEzljtCxX(g*jwNZ|lJOL#s4J2C}wVe*zLdzPeqrmJ|&CfX~zkNV94CR6?pWGz&L(x_7b<#E%*LhyV=ob;|ty_qh~W5y${x%czmydwCA`Shl09HD0B*{s`(5MSc;W5 -)ny7#c$4cCa=%EcyiqVm%o>f6w|lB={oQHmCI2WGRd*0dVfyFVXq=+atRW~o8YSw3MO`-4!A)7`nTf~ -Q5+q`GKgFgT-771IMX*qjl{bo201qltCbM#;f~7%)L>!r{6WuQ#KYq-vnxNE0!^*J9D+yf%u$0bZ)SPoB%?Y5#*h)IbdHcien7rt}4hA= -pU{=>BIXDZO3hZf+m)%wZiqyggf`MY4e-e1fY{`oSsH0I>w4CpIn}f(P@j?Z06EjI*p-sCGIhC8#f*` -%Z#8ipG^Nn#mwFsw0uy!`gwZJ}sD0z-9MLZ^0mCG9#d-Sbwq?XE+T`GL{g+Y}kr!V@9LxnK-ekB#j!}1(M -Fc}dHDKMBdnJ_O3)Du`dxqEe0(=E+X~Oll-_ds=V!V4Wy9MsjbjNHw%&Kg(l8|w1A>5QtWYedKdm}ZM -O7wg1$ZjG5`>(k6d~;rGa#!3_*}OL(~VmD)5+EJqy=@R}`~;v-@mNMWdY3>lY=#|l7Q0Rg4^?rnoPq2MR4?#& -6p-@hnJnydl#7~ep?VBkZT-RIRX30~$12k=j|M(N7wFA?SrL)Kp&njuif77^xEGRsRPqCOp7a+i`nDC -3tSDd!bEc_}xxV!CP!!LqFyZ>zuCDlf45gO!&ULGk@B6L~WIRI>PNb -Js0%G)~(1ngyui`Uu81jsA8H;fdEEr|IVhJFyB5r3N{D+D#_d6|V<(<;eYfYfrgucwK;%!fH2u#tZbp -Olb5W==7oMLWe|WqVOW)lMCKa<4G&jq;swk?&Hr!4vf2FckY~Y;1i+oK785^gx&{|n}8r>L?W7d1VFG -Jo|f8(@e<$F=IiYgVcH|q;w`r`G}>oNtt)kOaIgTYHB;frG3@wdC;DoCP$sy4 -Y#E{d`aMY0ETJL0UJ5R}&hhc?&&Lur@7zETV|xZGA?Wg6-*OKo3Q&Yj~(h1MI;p_lu@!!CN5`yAAIHN -;^n{J72k=mpJEWX=a4JbL_akO{_ytMsW6B{Cn@EpGKi+JvcTC+?jRLLeC1Ci8i@!YowRO{H7sQ2;ogw -t|~fb(u9YEKE{u;Si}x%;a3o5N1Gq&Y(1}a#?&-!yxFk1nFPnQ*$uZdh{Jd_coEh9UYin^IT>}lrFcj -^3vcYu~7LRrWqC-L8~kp(earfu)Wnu2;icTt&ItC8KL@%T2n?ph&2Vzggw=|mQ%n2bRYlUw*OPx;^if -bZg))a*k{KTKthd{wy(8Xi0ogRX2rg$*ri?h(pF`AH?q$ztBh;&mO@KNz?!crg0u4`r-D5*_z@8btd$ -w(8RGN@(;h}cgCcxkqT6@gLRkBjbIdI#nEtiN`~F$w79;$Jr`p5a81BB?i&cE~(KKTl1l4+Zs}|_MJk -aT|!{B4vZm0O<7~RpE=U$oP0sGac+v_Ds61I6x5D)Uyg6H&t!95#z5$Q{SuM5W15E-Elpd%goFBZ2$@ -$gN1@HWyN0RptLUpw-6wcI;=4zXtsZU@Q@=h_o$jPO=quV=Vf=HpGYcyBp(RLZA&i>_WAw3qZUCfwp~ -`U`dt{z`$}?fl#T2EzCH;a&oD-gbI0&?D`$=cjL9o*Y5w7FjO7>pxiWg`6=3q0jLbI_f*m)v3hHpmD~ -sG~8gB7-~yP1if^TmpsEXhCc+k1D& -4;Zb#iQTE^v8`RBcb&FcAKpUvVoRl0dLn_k~qr(p0exZFCc&lMq9ZX|KeSV+Y%5siyt+ot+mNRB8B2? -k;!Fy*;)lD{UNT8;M4;TN_0yqf4kn#qu?(r8dlpCsyh;T2>n=#XYp%6*m@vTWHLA&|e>J@Ucegb^uz- -ZV5s;G>S`BJ0UG|+e)a14&n0V$4x%{az6cJZ_3<%A~q46gCXWiVHyMp3l -H6+EEJsj%EG3M?@pF>P=TJP1x83EsEXnI`-$h2sxB4l^-5NOatFKGy&)+l0^U7kX}wNObMs --)2jsS}_SFLB(DC4Dj1c6@%bG`)~=&uVE<{~1_6reU?X$DD8g3*nxVZjw> -CASa?ZO|#!5@jfX*L`0W5>KN)^yiKFn~r)6wxWS@mmD5Sz2MR&DRmzH<{2n-WX(d6nK$Hn=GySh&m!t -r>r*wcpiL*8ok1LO6xzD@naT(7ak0>5>8}@6eD!GxrzfZHGq6;*zvWm~ZVSA2g*L)%Ss&Q}LmUSiO3F -=d5vwG3zORsTBhZ=1QY-O00;mMXE#!pna(A41pokg4gdfl0001RX>c!JX>N37a&BR4FLiWjY;!MmX>xRRVQgh? -b}n#vomXvd+cpsXu3vF;KUf}YwHr3H2<8q!=C(oGG{_6KqAOThqHL}-DUg(1W7~h<9cfvzt7L5h7?Ei -5;oUvYy|}by1&o!oudQGV$jJ0+1ZQP*-LhHdvS4o@f`0jdzMcUz`uZci111}KZZAzmj*9M5;9g;m^M~t3* -lddwUjZF*1o<5&lv#Z(j*&m2tMV6aYC6!3S?RFq_uIfTe& -_yp+6Y_de@%$rS2=}M^eu|&;*UMklT-D;Kx3&1Ee|Qiu|mt+ht8Sgi|T*;?pzI*QIcAkV}J -q$8L-g}E^*EDr{Qv!%#CI>5l-#o3%Y!73|C`3bl#!rJb2#eKfal5p;3DIF|vgAxudXP5BPqo0BNQIcy -9YiWJW6`%pq8od(QyR5k|x+_p9x(ol^6fm0Hdz<3w7zQ0v2IJ1oJG`}GQ7evK$GgA5cPqGRd`I`3@O| -F)`35C=6(8<5;=V)IAA}7L+pi%)~py+5Zl1{W4tRKW5cc2gpObOxM$oti9>xI!`Owp1akJPFFZKy!;;vvs-;T&Lapu}803{J-z`VzC= -pjq56v%iegX=^01+**kw(_wG7(f8>8sq#xxFP8gkD-4Q}>~NLHWw{*(Bj&YKej+sx8mvrF+=Xp7aGoUl*xlD?P@|!%#NDSwA!Dj3)E72Av}VI?tQ93h@zYDAe>_Zm_#g}R$&A={Bzf3}fbCWp -v#y%~zlTyqAwwrQ3>?>D5Oj{+!JzP5y%J;z?vj)mySR5Cju?o!o1zD~2y_ki%?zJVRJ>M55H=+-%Jwj -E2*`GENDs6=INO(p9eOvh5z)aW%a|9N2fx9~QW$l*Hab8 -h-h!PM9+EnFou@bPB^D&tY$g308OBpG -772mxphj7s%#;Hj{{Um_C{R|COnNwho2LcLuA#k)s#))&RBBblCp -g%7rP1V?yfF6Y%<|QF8>=3Mww$qyMjV9T&dB+i+{-?nW7V17uxsky(rU9%mr?=bf3G3dAjqjdF4#!EW -&K;)>W{h!qp9Rfi(FV2^!Iut77}~HZxE}9mXvd}4W4;ZcW -7m0Y%XwlrCIB5+cpsY?!SU_Fhl|zwaKR;Lke_V+68OUqU!@)5D2tH+iYY>5UIFckpF#m$A?7Oj?>L(5 -sTtIc=x*(Jsyw$YU{dcG@G?$re#$sHme%8s+wC_&e=-p1zRnIDA-IELM5Z|csv@-nrg|?bk^#&5oyZg -l6df`s)|;N)I5(ycD<gwX^4R~g@W% -+c(;M4QcQYgje-WQkVvD+2OLER?oV_T!U{GKNn-Wwbh1H<+-8Q|eJp8suExUx?K5K$;-@p8L@!Q*TcE+OP340#HTSO~B^UT3EnG5}v)}oXEm8Q5YE4WgOeCQk!^}Q1tWguSM3agvy -PUgT{FSuq)UMseA?{bkUPW&_i(o^}E&VfXd?bH42sKDBL -PjUn$Z(tGYPfjQi+Z95Cwb4*+vVG7mpy!+xHKr@PC}Z_a)bx#M`_9No-?ZJPMyiBXm#@zG>cz+Y|&Em -XTo$;b*)zfiTKA?y-LKKD6;jNbBGhWCJ?yc>G2{Z3(5bzH~O1kYHd7$xaNSPRXEZ!=k4Q2za?R{!u{y -Nyz_jE>I^0j8cu-eyZ5WaJEmWI0DJFw_8pAsDUN(ve01~!I+E%};F1#3+(AiMW#y#PC&Bt1 -r71j{M`-a&*fF?*HZ_&b5VB{gvgj+dE$z!k+>C30klE8tz-<7Yz!MJDXy0jeV#uIjIL4lu*Tom~3I -^cH$3>(378@Xh#umUbkb6+~=oprSk3h_6QX)^yA6(OshNpp|H{UbSy(ie3cf|AA}^&uk&G+c -c||5Rq~!AuX&Ut94K_ER4HSE{J#w&4pydqzEm)pAy`e{0sl744 -YiEYa@CgkguOU+-zwX?YL-_*m4~{Q{XO7OuMl?!IP_76WU7}E09Fo~K_P0PDnWXGW&)v|g3?%bp=?EU -n2fKV-*hF|7_e7=tuvg3sdk&uSJ8gU8BV4Wm|aYbKJ2V@7~7(3&+ZxRh23~-SbF=7W6!q`rSAk(%wDk -LAH?($+E5AkXq%U@tdqdU8%8kYIQdq|z9u`$&A_B!QBMNC2w%EFx-qOrVJh(NcN28!X5b2X-EXl%X7L -XibF16#e`+2G+$5P~nMMO&?6ztb{Gm>dTXql^)DHFAG6b*2$)E-gtQRGrgh6+*=L%t0p%CGqk096q1)m^Z3z3`4R2I=>HC@}w)wo -MjMjnm8{;mlJEMddXj!g&5UH{?ux8QeJN5l+*LV=6xw&0*D%$u#I$eHr&c7xIz|Cz~qa!aQhKs&H~$A(hIp;m~_2$UrK`GR2^*ty)y}#F -{xdIHgZKT4yPiAHcK~)PFLp@S-*68gF@V9AD^5&!rt3AALs(J)(6P^1gYb6DPKOmLzh{R|*tG8yD -1wV<5dh#6j0=nANyNhn}K2}$Ti_z=bqh_!E6#|1WM#D*`h7*vRS4p6{dJ;9_+B$7EhNuFbim>kEyQfW -iI5ox7uyhtu$f_nf|B?RMALNNLzBaIjyCnuI+65!?(IGh|27~o)aBNRlnVH}<*y2P`5{#0M>takUUgFL)<^ar~oG4q3<-_Y -dPzWLsnoS0MTIlgg`S5IR+wKH2A>iw*(Z3MR&lhr|XVpe)LEXG~mkcNQW04c<91{vr?>}#0*aPvx*NV -A?0peCp}&N1yD-^1QY-O00;mMXE#z`?!i$_0RRAL0ssIV0001RX>c!JX>N37a&BR4FLq;dFJE72ZfSI -1UoLQYbx}=E0x=N1@2{AIgP7n(6Hi_VC^2pfsEMbgbO)%kon<;D;;(mHFeVauYWhCry-p8CpDiT>1Kt -HE*g!%7T7vZ^B}`yq1Irw(IEo1pfi>PEC!j3JHK^R82eL-k*#xbz8?!=aC|(FeR6ikbp(Pe*5L;yBnh -5jOwPo$1AV=d%)y_-x>A$FvU{bPUv_ib^5*!@VpGovtZ5MlZdVhYehYzFSV?BMXs!4SZ!R*x~iSz#d^ -d(c!nm;L1UR)iMmY2$(92i=xg9A0$YjxE!u3XZLfX1%jZ8!rLyRvUK&2rnxXz`(u%HlZZq*%EyU&iox -eC6ak7?5pdXZ(4J*4gPsbU^?;h_p3#FuuLMDZ0w1{3F>?6ej=sKmC7V&@;uL|6P%cDaU5SOg!iSm+H* -^a1UmKwffeK+pJp)808ODU{G8Z-%v{f1QY-O00;mMXE##Z;z^}p1polB4*&og0001RX>c!JX>N37a&B -R4FLq;dFJfVOVPSGEaCx;?ZExE)5dQ98K{O~NH;#%87zPB(&@SlKVqG=_>3|{#2wFN>L@81wDLd}3-y -JE*l3$u)K>fuMd9TkMAD+(GT?MQ(N|}w+E0&wO2JM-vOsfjE1ZJT&Ybcn&MNSHBD8U^XkQsTt={hjS+D##qn9(izoy;PHJn>(-T7tuUni)ws?=Bb$t` -K^MkmPCjN7p37RRlw9^U8(|$V;aFVe;eD)+Ie^tdWv!RWWwms9uZuY}N^DWbR|{rqZvjqgx^~%ElY?` -;el0!$Cme+?PU|5&gmA8u~m-TZM{6H{`#JblHz;kb58VV%2d4c1AcbECaAs#p -9su3pF01w%;$zC04h<&5Dk7@x-ccjM85K;^r(QHbs!_Y}f!Wl?~>gGYZ#=XBt&TVK7?rCG3BSjP}B@) -xswTx6HDi+Uztb9@rdE6l3IGsQwOSCuouFv9R9udw4tXiwGdz1 -AS4lh1taNsHYo3_4O(Z&5)zxvF{9O%X@CM5p){5?TVEN?e)%!`Is0iOe+w(=u$W9WY}w+WGE5uK;IT3 -BV2TbZ<_!fEY8$i51~b@?SVrN!O~>aLp=ljBURtptvO=tGjD}H`^c!nr6Zs4q59uSlPY}w74#igv9m% -`~%%>P|MfZFu9B>P3PMDVz4i#Lo)OoDO?qJN>#j -hc&LGszNXT$TGU^*~xEM;g&C%v&-B5K+|KZGqk7T~` -A=xX?#BYZD8cIK(FD91oj@)qP3)A{|#qG97N3#TjWysp_6ZDi813Hwg=hjZY~6BFZ^yJ-C-2 -@GLy)pQ+Sf=3i3}x^OzQU?w&iU|8tit_D|PzVdQ_hF}_YyN`5|usej7rB7i(0&ckwbRErF7@i{qBr4H -QS>WHUq@78iH(_LU{PTL5|8Y4XvoBx1# -9dJoNP`E=g%LWi*!eDy*W~KO1m@Y%)FxbpJc{obUQX6iOH|ky!E17O-F0KjdBV==b^nq&64eu^Q`$I} -qhiGS2!)4X^op`M&A9go(M*E4A2KG3Z=B|et2^65?1_V0YKI6-9ZG7TPZ08+A-zaXE7){XOoG@|_(KG -(Y(@mwn|dTWX_6D`5#yPXMUuH>dz82PB{)>jN75j;=eH|d=Xa>w;}Nk~pT-PfQZguc|HH#kSu{&nbLl -u?M6J_b{3$)2a1q^vHW+;}M2!kQzL -FOrP9fr;EDH{wThSeg$h`C|Fv<^ys@G~Gwm9cH*Vb{M>ON>34#PU3??fc{@$}UN*L^L|=o`p(V{}Iw^ -Vxq;O9KQH0000801jt2QZK~%nn4l(0Pj2i02lxO0B~t=FJEbHbY*gGVQepUV{=}ddCgn@bKAI; -|J{EDD&G#Ni$urW-py4v>NJ};ai)9OjN@+Gaa;x>A&E6bY5`D+y0icLz4ri+;1|hGFFSLZi6eo)1Mt3 -n-UE2fZr6e>%RDdlS+QbCx!H(9GqoXNjx{@L~J7=52_Ap~<1YpFUiQpDLlWN5HoDdjPfyS -@1j(pA)gwus-F+f5+38AQ)bx6ZW=H8hFgH!8UZa{OjcvtGzWmTlas|h{$(F}TN2AQ^HR;0w7SeLO9y4uD#B?xL;#~I7&c> -jl%YjAC3?*D?dp|#rIC(x{x79WW&8_=ACbsJ=O+|4lKI>y+j&tEfrPptZWjO&(?939>+1VM09aJIHY~ -Ir5$hBjKsyNogJ^?ytpF%73-?O#WTmQRqKa^U#uU_{hup%(3HKxDk?7b8 -_biwFfDuI%q%6Ee|B*J6RoQSa{gj_*zybLa*-(o4(Q -_Y^4sUs8{{fzKPo9MKUW-aWss$Bw&dk2 -=wv@vLP#V8{-;knVd*@#EFahqphxi{HQgt95S7VW6Py|55rHd^TA_0ay;XJ;x>=h2c9)By-TywK&=a<}h|)VoDF{5h0RBOcmw>{)1uamS -vHEgJa`)L~704S3jR20*at~ODtn71ii2fPbwg}{mnhV-w@udQw=MDc}tax&;vB=sV&-eTQhPMGI2SL< -Yob3}02rP(#=pUfGVa-+I1vHQEX5ZfTl&J-D-Jr2`&J-aBe6#f@R`mfV?38+sqrvIUQB+fP*euFCOQsSQEdqB@Z5aqCB# -?Wh6pQ}Vcch>ddLhSWT~oUn1bU*A=loIbN>04x@8Gs$g_g*X4{jQc#h9h*s)SA53>O!<`e4@agc*X9k-2zB=#fED?#OtKAC -d}aYLG*X>q&3Xg&%cqs1Q9R}lKc>x#-7)AT!xHsd5^Gm&6|ft^JBv#MMkV1gCxvQgzvpD+`ka?htvv^>*7%wp3iF80%>BiPii#)lvy(w< -Q-cYk44X{cI1O#&WL3QDm0(Y;+F8>$ezsTaPd+;<5)G4Y%)7U-)vnwt^a@YJ?&@6Cr|gPIL^xy*N>4#&Q7Q;o>W#-9Mx{IV&5Hm{00B>o#SJ=ukggP@b3Z -DQ{YW#!@@;OC4SkQ*PaUtHQWwBxxZHeyRMG+^Qq>)0nkwzt0-Ox&AvSZz)5&aYJ1lAgyQJS1|3zO5{` -Lh3_6Cj+^_s-%IA7~N3mM4>84DUw02ts>FRNppwppA6Di1E8F#!6dFbh*;3+$b;%N*DM*?8r%C9f2*1zr)vfQzo(H0+uOudi-jUdL2O@R9A)?4#?!dwd>rJCnuG`2~@4P{3n0pVJDO$_A; -25g!#dzFzQbRXmWEJ&^9G514>`;N>#bzhuR-41<>d&XBj?sBaYNIr)!zg?8|yb>3}u+tBM38roKBPWx -I`Y6*0p-tl7}Cq58y-9M!`#MEa0z4kE(;T0%-SF(wEbHujNVdX?)_0;smJE0TWuyA(aK!y(!Zw7pm=rs%;8 -cSlm1gJ!0sQF_FZ(4Zo&4K3#b2ILESBW-H{d$y*~MMZ6kfoaGl_mt&^)L<>9N&`-+eX^b}=eqF|&v)6 -PYX>evjK+fLlFqM9~Vqq%;t>nd-zJDS-W`CG>&i#VR==ag{ZrQ&Ewpe<}njWX0`KQb1Ns#F;LIwrpp%`{r>spdzWOG^L1O$5=By0csoh>HH#Z8{i>n6dCfsagRucFP;8;v5$_rT -9*P-%R7oF8wGSNrB3L0zfpCjw50{iP4;^VTl@&=-qr!WR4H@s4*@0?%u1m|7!WJ;GJa3J37dv2zyUTlzt)z3%zkT*SXv -|)Pwq?ktiu^Az=C;cFen~&`YwGs06cunia~(Foo}^EzKYs3j-@7RVGC#6FV9J&U_&!o={`V1kHgMcW^ -amBxeIS>Nu@ElO7+ma-`j7h>*ST^1ge!jiVE42db}LEm%Wh7IT0^)I*I*5^xs+Km$EFJA;Uk{N7ek-d -zp@uGF1A_j6Vx7=2O+Pn%zWtuCae|Ep(kGdjCY7y5rqVCpQ*l;x0k<2el&xYQ%@HYJy$qEBUrl&Bj8zFuTnbm@EEjBr~FKj@5&KD}Q8|k>sW_zwT-EnJl-VO5(aiY*^LT$>+s# -E{`#6FTgzN$pGdV2>G@na5t5x7YmMWcs>Vj3f44MMuR1&baFXF}kLN`iw6Yuxo+1Z0}x1!dsYpg=sZk -0>0b>&NgSsR<;?vX~T&zM^PcH63?A6@?xEpZ(%kpR^f5TqFQ-fAqN!oU3vfoS(3v>zz7i$tS-zqe67K -~hcUG;Vj#yaE`Rr*|MC2}hxBQm6WF!}4Vy4?A?l|J(yj@letbo@{OQFDg9KXlq|n0<0qpzu<&m>9fSq!}^0Z{%mW)f3_P) -FD-X)@Lq!6Q*km&z^gdU}t`}f$bn5toes;lz8u(;3VVj7z*VRdb1>^d}xlBO@$0W@h2E%#?hcF>s{9y -nBUF`D+o^I{r}fh41nS;y%UbQpBo>837tR&8KBZCJQAts-62a6Olk=HH7M+n8*OfB$VszY6V=iB%r`( -d75JK+sB0xpf>)0LPY2~q1U$wUXgVUVE`@rq&r@g|gvQW*JZpFq0vXnIU=ZCU(^@#~I~5kH9 -7BauPD(r*mJB^3>p~Bqq&kp@Zk~sem{Zj?9ZMsK}`R2e!!!Q2jA -1BvD1dr6nd)Ri2VHCz=;($5X;!P!*h%O2E93#G+tjE6wBC1t|{Y;gY1nFjTdyq&<{8U8a0vRzI`c@Y! -smRY55AGL#ZgluBE|)<)%(<M39J1$eDVE0kwz9G*XtscK*i0CI=`}qCoR=a^xxD2 -M_LR(NCvN!ejn9_ZY=#NRHCZ*88E?7$&5ebWN>)HlgSoRLXMpf)u9Hd&mWRU-EWG8o95e;lHgN9%Z!; -7(V=f-eXp$?*{kTaoUO>vP>KNmLiX!~`%|_(B{+U@@_I{fBw=r4s%R;6nOTW(P0tfKlb3apXo2k?r$T -tN1rE6w5Ahn}RZ%qh4YKOeRP}!2)!RY<0mEsQ=%Fyt96G7+_S6mT+gzAZ25af$X5*n+c9%Ku${GMEc> -+Q<%wFN)&g=A4uWc8mHU};V}*2EwtItyR@+|KY*_g5N1eIfStJx25=~@ -WXY0`VY4E}w06F&(7)MOKv%M<_;4_b&t1TDl8GGx*jRfXAsO$fv8k%8=hBEI`*bzfbf9a|MSsI>l2OU -`H2@e8XJAASMdh>m2}ne}Vi==>x@s1LyzFU?p~mZpaM3RJr4$RfQNt(%SCHpOTiKR8GtUg-_{`MF**s -|dV4%1AaH3DlA-cZk<~wUf!1Q@JtV<6nX1SEADpO|t+ozxoq*MHex`9bU-AC$<0_SRMu^9S<&^r`+p0 -scqNa!T{+E@cG`GXd)R>tLD{3rAUq2JL3pk_2jG&%{o@U)WsvpT+E`z!bU*1h*~#p=Vb@Vs2CIZMNyE -sLo|aJ+;8+ULj*BE+iPdfZ?x0md4NIX+M&mwnA3xepu@_;-pNdpWA!dds~QmWRES-44F_AmN*LuDOVY -A-GoWfP$LN!|ewG!+q+)*)xq*GG>tA%Jpqh**X=vgQ!oGuBt9wW%>MojiMt8X^jTLIRc!c-9#4w8i&l(B}pS!>RD7 -=c(o!1%KZ+XcAU@YP?S;P3wg#yaxHj+_nurwY2WqA&8fP;`+OzyelmgqI{4GntP*`R>~#EYmE3YeB0c -;}0z5i6{U*bO$b^XRx8D@{6&ND&_wdaGWQPfCJTt&IwCJN&zHRvyNwGJpG5j{E+Y20U~Wo1(zCxrM`6 -;k}4VCeHc!xepqXp>JJEyW(nM`)3%5I%>--wP8hZ}VQbS7-}Y^7Bw)R3x(DrHcl+y9jS}$e=Y -dHzXE~&yVz1&cAg0vxppG!upg<7LpI(hY;YH>J?POl>!6h`Ud4lihC0*VQ(hCv9t+a-ir!_`-urB9vSuQ?BvW*nGj6 -j|^*{`I;xJG8~tKC~9Oou$ZlLKJTT)6o!Ldu{MA7)o>F1qdSxvYpO#kUAS`5vG%1He9#|cu)q&W_<2h -6tuVHql#AIvP)h>@6aWAK2mlUeH&SVJrRX#d000g#0018V003}la4%nJZggdGZeeUMc4Kodb9G{NWpZ -DSxZItco#$_6dB`r-f-UnT$+vN~Vqu=9BCD8O=XDaXYr#s9<{J?)4ug3rSdqu@KF(N$3+t*bg -+DoD>8{u-M)jl?nt^9&djYBdk5cq7! -iGObFXf5W=C3V2bmHybUe?z|nTJA3!$it&M1Y#$S+sv02-rI4_rLu4m*CB}Z{PeW`0( -TV_vi2bIJR;VN`E6t8Rr=srz-Qrtp7=kzEPu71~Vsq;KO0Ebl_xR(G!%YX6N={OfWh_buJ8#@AqZ=OC3S`ye)od(h(q -y+V{AAMGCgN>ty`m>UEcPr)5gIAOwpkB{}WChm5v!c%g>`9R764LI6eN;Bp+gQY0)zzm0L5#Ho=rCv# -ROofCOE)kg$tw&O>&ChjJ74~o0%z^2iQp4B8Z7QmD9w|1&Qpc@;M^OMmBD*L`v5arsFp*OVW)Nv$Sf5 -343IQo&7iFy#{I#rj6^A|2AhO_^OF?GJK|3z|7?QbkW~GBWZLaR%6NwqCR;)po;HWN(;=#c|^ZSFMjz -Kr&w{cph%&dp-T`~x}YzbyBSq&i%p4kclRMwCkC3?u-gE$tff`F4LLzA#iQRO+9rj9_qSgpv@tdr`E& -)9s@j3O5(pDEe{94NpfkxPHelN)#BbQD&X3=Z!b1IlvBEV#ZqPg|M1TwKAXmsf+A=mv3C3w5e2hjV07 -Fx(s6xi)^1Kqdp1Lt2wQabKl6*W$?QOoB{O#zF>5JUN^U(}Vwa$cL^vx3v(=RnK<3{)zFFX0^DDWhLE -~vNt^VA$xcJ*YDphOj6$BxytOTy+WAuj|TRx3@icF0q@9YfF_7RRK?B>oxz**nZ;3dcGlR@kUcd+Z^I -rj=dnXfOTH0guVoGghId_ACR!4D9T-phfALvNSe3v3L^+6!$C*?9);E -&;D>*P>L3LgsZD3aGWvd%4cjBCPUqH>D`flRR5Vh<_Fx0xW*9!?d`jl#|1T`3L>7a%~^MoF`)6 -Ya8QCJM^}ar3^D|9Hc4D3P{NrzNDnDPuLWE`LJCDpk)}@t}Z7WsR~CY&O -Qh9!TaQfQkqPAB>X%2!NdpvkKsrcQ75D+EM#(iZ>Y14)Q+F#K3Dtu~wt4%lTbZ!eHG#cN(b?#ce1|Dp -$4PIb?K@53PM$mXKZB_@wbCnp7X#w$^(ez6ERBgKKfDXYgn_koZN`oy53g%MrN8D-Mh;eauO2yQN4ZL -{aqJCjGEiXY9y-&Y~QG3tGBoV;tS^;%?FV{vyy-S-IN!Y -^?kw^Nt_8#zoLNyuJbATbUP0}K~3y+tuhh`O$7Ube<&a@B?i#Z_%NJgB*mH~Pr8^IOpg*57?&GezJNS -O{ztVMa*JUG6d8H!6?;M84rg6Ksz&>6bp`VV5_tL5ZJP8GK7hCo4YAjN@}=NqxF)rXmQ}QFXgwv5p+@ -@$`mh}J*j(rbaV%Nlb2ieuRUnVBTqMtFaO*v|r79P5Qls5%Ew3vA7=As->YqvTTqw6Ges -EX|`a#u_eaT{9IBP>YHbU;q)gp5eb48X*N)hUFR9Q2}BCya96B5sRv#(Jd&*WaWkc_^-8qNI5(pSiP> -)K{BQrJZ`v`4$2Z+WV0DMQ=1~L#uJ=e=i5M55lBik=l4vb83CT=47+1rk_wd%jCE&?^TLSN*!V~)Rjx -3~(B1yg>m#?0f;$fAbt9b0mctY|^c+)ZAeWf%r`Uk7lLo$9^xeB{BuMWLUsW^b0}x?0y#p)I4Fz`DgE -$Jns<;N<5t!GMdbZuh!s}$qcM{UAtW%X9bvTgPttgJ!Rlep$-{zQo1CTpx8n{vlP(dpkEI>jqXyT|&tzlgv -(zGaj#(?+vGk9|hFMR9G$3lb$UDN-b}V^cz|WWzh@vT1k!ihLC|U5g5VBg`k`JOR$ -IQs7y=f#V1P(;hhV|Zm(60GZ<|w&cjXS*+gqOExr}FbjS6T@8!nIhqq+Ztx#iL6$?=QhQ?E0XVNaE=) -gtyzT(je+?0A0kV#B?dIqS;rHwL=%ZL=ha>#y!{AuWEHP%sYoykW+*c9hyH-r!mVVsO%- -X4J*~1ri#t7@{6?qaTxNb#rGOQ1W1e&x@ucW79=PO4Gs$Hdy>%dyce6q!8_=*M~+LVVL~Hnmx#ZcEE!Uk=1)y -tL>*GLM`1!r8^eFFyN7k|7&~7XSdT`wQeY`Hhh5<4^A)!ekZ=@}KrwBiEbKg0z;E((P;p78{BVE1++Y -VGG4}wKcg-iFdUWVX0A~dmFszj7(J}{A(STb`(Wi1o<`zJ2@ -M<2PWUKYV1*r+68o3<#RK$Dk(mUJ -YHMYH5f0f8CsP4RT*Bs$>&5i4CNTXjKhb#{~G+syMjDaNukuo?Gg%1+0@7@F-siq7x?&onA9wyL?vK|JXem&6kcClPXV|mEk2@I0d)64G -vl^k(UU_MaGr-nDQr?)dYap@(2uJNl9EsApRMk>I1JOsTvyv)qYnFzjxr=?+A3%)WqZT -kp`}B=%GFK0*V9LLRhPv`yF*4uQ1vXTvN1V%Z~#fr5XNSQPyGUl5Dpc!JX>N37a&BR4FLq;dFLq^eb7^mGV{dMBa&K%daCyBvYjfPTwcqtCPc1b+X`vn{x9)6dWdBG)1i-P@ -n_J&0_ypf_RSyq*8Qx!`lySlEL_VDoV;9%2KJC-DyuI(D0Buwn^6-(E$D!P^@>i5Bce$Jbwtjv$1y1E -kOmHAmo^G$BMRuuiOz0~v6qK=arUglL}CaSNml7`EwYceiJtzs$O$Ghr=%eZTbLah64X(KsHB~y{TgS091+%UN%kDgoeP)$T+KZb=sOiWV+)UQSj;ZJ0UaEI -yzwRN#!*xwB08By^yV3(Zh9`U3Yboi$?vusiV~lNBPCFlh<=X?FKU{eFdQHfhGE`i@ELJCWzS#5KuBuGyQv_D_mWO9MeP&n`g9%(5N1KPi*XHk-rz&%Lo0wr#ywG5Rm@3knSS56>^y69%w~i4&=l)ZidqgjXO -J-*uvaHzlnvYIt3dAb`nkRt(ViU!JuD%oParHOP=tT;&jm1U~!6LmvSYz69Y3a0IBa4T$TMbcwT~Skn -qnje&|;-wE}EW>w3n8?E_Pv|E;zdscFu^PFDP4G7WqEaLH1%nq+a`{ZyL>(SipsS%^Da+7r8r>e65iGcvUftuX{xG?iYg-&wqpIWDIy?*dnDjN?^~FQfQ|F9wqlnw -VO;Mo*?P|;Pn&Fu;<&4+8A1{ie9L!AInnIY&|)rhOaESCh8`bsZvx3DpW16DG|mB&hHN9N~$D^WUdUznj6%cVtpk;-;*3Tj -~AnSp^2h&0WsW#1TpVB4SigWEaPcK^i}2-YS=>kqgM(N!tFtZ-ACA@-0xtF9dkgHS_kdw{cxM{yqCrc -DWLBJUjm|E%hYoPg*-p9D(J2kfzAQQHVuB$}*;<6*$K1A)``5L_+~SEFVgI{nv6?^k2#>Y(RXZO%nKO -|5!ZFGo_}cGV9I?tq^0e~=%6nKM9{1iD7S__}JpMLH#`GkR&PR6SV@4V?}*ieZ8J)+lYDkw@JxOOT4P -171SAA0_LNta&CjB11_f$ovQN3uW!D0MHd6wU@}yK>>$<8L3}Sp<2WV>N+i%z=%J-rS0TDPIzhyEyFfKTuVSY;Z0N)qFq%yRICT5iz2PJUh$-wyPc -14#YZV)(@7Tui$42Y!;=sdO?7g)={6?^Pcng31#|AL)&V2P7tQ(-ZtBXfld%sUPl&KS{Hgi)%<5=&(XlqV^!~Kweh$_^&6{@LF9@IkOS+j~Pncp+DjDzvQDZDlZ(T5H -+7)f0Cq5W%)C_511~vuaY<`KZj}W3HN6mZEN4t~=hYqdA2}11Y%g!5`QBe|Y!R*h0mIf56n=!Cxh9{> -3Xrbl5P9?{o6ch-V!A=f&4}oeQYJh4d{{CbL%g1#a>;w_LSd1oKfaa{Mc=+&f>65D^&EByn`7OO88#c -5yVPe#Sj5VkjIBdSiaLA1~rNg0Zk8r;xZ+(|Bhwpy@!5RSae -6$R=Em(Dmp?ZMJ4*|SsjW&F4JuPgRd{1wY9F3UyBwqUR_8f?>~S12-E9szz$+qQ|^sR2%2djOo{1Wzy -4w4YzD>_DJLmI{>2U&cKymL7fp(0Ad-M526Y?~-j#TX8?)q=LclA*}um@r|*r85@eGM!O*z%ujJf87( -KL*Urj)rVnlRTrb}^Jw%E68M=7N4$xb?m{hVhg!0gJI1K6No^iXmb@_y*M>JGrHaH?IFJ9zmk4E#W7S -dTEL)!@%#bfT*T4kF`;u;tWm<8dy7;wkHlUtlAU)rpNVl|I3gat#yHhkv}q4wiWjcp03IFuOD_5f<$y -K~d^0uTe=qh)BdIbV0MRwLkaNJ#_y#I9F`W_kd3@t+;L2FHb -x-bEt*AwtNM{DX$#wn%_7-u8@Ln$=eQc8ZR6y%SS=1p6g5)CQ}r&yb)B{h5{Zg^>(_^>X_yMe6asge0!gQCe=_9k7W|-?Pdu6@`hooM@q?OAlpUX;xo5O -9{1Mc!|^e_av^M0`x{obL7t+K@JKfuBe0Y+F^58@nCRfL|#GakQ&s>tL9@5n$6%jK)IR846*piG -^)}9oel34{$IxK#17TAcpJEodZe}t#rmvksgpzxC)F>aM`N3p$;~Xd4Mlzar6fBaxhqF5^8EB5%ZWD8 -VW1 -0w0YG(AR_c1JtDIQc~aL0fI>Cqk#fF7KP5YJyaQ`Pft6*$c9c0JPbiM#3q6HN%u;}=yb(=Rq76>o2R$ -ci660JL0mc7=RCT2DLtQBW<9djDOg)H;+$W&)oS?kp;H~66ohdn#qkn+bt)FiDC-zA4-!s;a6A;;0j=sI&@_u+CrL494rb)E>Twz>!yA_FSH;{pGsqztr;qg!Od@4iN0jC` -0(+hk3IBO*K!7u$gyrdOabsg#*b&BPlTgP*2yFvR$kIcg&69Jv{yXrZ&FWv;zA{!COQS+W@XeQ2;3yE -33eD-sxgw(%z?sA)bd517cULT(7oY=v~-uGIzWFF8zG=#GdCen6n`0C+(q7;m#R -F&+_WFEUGlODY1SK9nvcHzTN9s%Z>>=8QFSBD!cFYmKLtGASzXK;{Z#@VoZviDALAI@TMw&C1G192hO -aFeQ-=-;M4N>haP77BvX2=~-s{;Y_#L1`|5w -z;tEZyj-W(jvw0X7_OPYEoipC`e_?Nv3w{VF_3aPvFyj!q@a1a!$0hb0R1hEWrqTIo`fQDLlY$cN?+ChG!UUpzu+@^c!RVl5^Oz7xgxK(8 -wl&xozwt6A`NVp&_J-GyYtq8~tLo3!3fa?ct9BJ|b>@+nVT9er}MUT#LvDDVm4aS%ZlvkKWu0`$0UX* -;L64+U)$QXx^JyjRyW|HrdOXJSX9JT -Q6rlS#NIz+XfgPQb>R0-t0y!v{xt-q4~jiiG^g@hs+lP0QkB55W0PuSDvU_#i&E)nVu`;0Nu4(7jyWZS{YtP7k-#PT!WG9g`XpI -DX{V|*RstNHq#fXfh*LehBN}5xzvF}6qlPxDM}MN^+!zqx(wWty6xr(4Ehb0RD{bKRW4RSSuqPJ*Gcr -bvrI3O3ReUMJNs57Y(-^T?1xWOlJ)W&_LRyk~EEDy2u7?hf`qvz!b?k3a4R -c{uzq-~>}`{xBZU^gZGLc;y(=mi(~>#ei4$4MNgZ_dWoYil(iMptBq7UB{dKiea7^6oa3DZVFNm5&0! -OX>Hiz$)Zn}DK7H;9g=9jqC2SS21owE;hU<#S+RBr*(U`CDv+XddJN6PP>tnVawC!Ou-DhXlFy!e4Q$ -d@SyencIX?axdOll)x>8h1-jq+U&K+9r_K2!ucyj#1{zYArt4ZGujd$j48$WJ+0M5Jt+ze!dJKkjA*(3J^xZa|(DK!y2-p%eiY@>Y=7a0uk6K3_jQAceLP| -#y)=R6Xnkj`K2orD5F_sTP&6%Q_He+PYH9*aPJq8BODL{4{!vm^>y*kGCIc!%y=oQdlwFbk -pjOK;>`5@I~B)IW>dcQWbw}Azz1i5{Me)eb3G9d(3Ts@-YNy;kY3$%7xr(5`aYJMGJCPTmj4p5@kkD!7s?gX2TnfCk1AAtzxr7ls#SInU>(IFPDxFyx}bth4)pg=#Z}1i1+X -Ihh4!n?;C%MQ@R?E)S6o}voZ!cg{M^YjP_sPX+O|L0AAG&tZHsC*cTF5LI`FNilAbZT~ndyrKDQ@(o~od5QC0UQ)ie5+$jT%S)iw%gg!5+3y3AuFlhz|8XGsh2}$ZFD -)8yO7}-}NDcXtK%`?fDra?h=`7=qhfh#|37M$ya3b=Azw6RMi7^Gc*+k&@6zfB>>LMQ&t?T$ZEkZhA8 -)W6C88e&{v@KQgFEt5BdvNs=2u<5a148@FLBLn${8yt%8O0jUg-Q(Us+{YTdUl;&aa&Raz9pzflz9D6 -!8)0E6zZD?A5O0v6C2RBi;IVYeXh9SkY_`7p|NrN#G>};21iB*xgz|~cvh87$O_;0R|U471*XrLsN+? -pTkIS_@q!C9sgQ1=q|IFh7HNcu&an0{a1y}OYv|TeL(evGN1}ZiQ+n+BdWDuj4|DODsxTf)rti@pTMY -f)tZHyOg!JgKTuu~X>Z38b0xAZJrr_XA1lzjTaj4yf+x7QzxSz3?>z?xo2tP#!E-w8ot#MlUl(7Li<%-L+zoSfbGn-e7dQ6gB=| -FX{3cHc3>`g6_Q#_~(`mIJxneF~;tM=r``Eaf3Nm3~1jtRrDSQRz~#nxghVu?GdA^K2DC0uK>;68in9 --O~;*%cl&yOETrtXJbwE0Z-1Qx_#Bw6VkZZTPl9~_@xI+0fEO4?1R5&IZLta$HR@yOD%BC~PC(BiGdF -f1YhYoF;SR1uiWdJO->G7G^>@acdY%Bd&i`_;T$%4rFMKs@=Qw4HbTQDrdpw^b+UV%%Ot0I;EO9Qr;R -V;C6#zZvzk&Ludzu0Y^D~$N!X@{f)d>;B|u9waQY;|hNi9noMur1)cf*;-^)(`IvH5{f$C+#hvNP5fh59!cIG^oo?5? -RrgFG9!|z=>eUEx!1Thr_r)>a)KcjORyu-w@m38Dyc^DnrNp%Ui>u2F%tBtto8lHdN8V~Yij6KfArjnHw~1`?s%uZ*Hl2GjiWgAHZu9%yv{ -IFclD=7$^V0?G)U{k(IIE06b?x++zMsXM9XSW?b}D8xND}CpJ>)JJeRgEBi@p(1)hxUy_s*31*1pNE! -(04pPf#7nCIxEA6F}B1z!gpsET=lv1)SrCb63>#cL9zlx-0d4Zdj$FFMTvGP2G(YK$&}JciR9Uc*D|$ -j`j`C=~T9m6#z76xaCh)*2 -CUmH`Wv`pPKOcjyX+ioYKX}W5jZfG+s`@wJ+R+Jop9%uWiQ(Alx9>wdSJx8=5)FDym-AwiT>BZac{ -@(j}UwlEe!FcC{Z>)yHJ8F-3`j{W7@BMwh>Rh`?O48NESe=)V63^$862S;5SrTaNeU77jsT1XOGcAPzF=c8C5ugc+lVrQ3+Fu@HajGNWQe2LbKUkY;YG^$jjW -3Wcv$g|v-dmY8=?@_lOf6)}Invk942#L#gJS;=P)h>@6aWAK2mlUeH&RJA`g}YF006WS000*N003}la -4%nWWo~3|axY(BX>MtBUtcb8d97DXkJ~m7z3W#H%At1ZXp2h|i7ZL2 -;|BTfeM3tAh`m9y=pJ@$a%MPu^X3gV&-2VGTa>rd)y4_s#R`AYH`T30O%|W2s}y-*RszN%7-1d3CWwx -xX0x=MC2L_i;Y~}S;Vt?c$aPW|S@v3KL{XhrH4VXbC;P_qx)w_km5Bz9YN6V;4|1tVNQ50sOsBW7%X( -YO03)PxOU^5}iIp?0=&cWqWLso8t{0cea@B|4QCT9UH7*Fb^hWoA%JeD@7k!!@M#2GMW;d;pafw^H}S*8vE@^;C$zczL6=# -&@+|lY=3!sB0B)U8$2dP(~p5RkHUaBJ5shbweWe>T^DXl($mp1g4MBXO~y6{{G|g?bW4tDPAKV;_JQI -BHfkjbyx^(%nj<5(yNuD3isSbib#PAB6F0n*fd(KVr>%w8;VII7*gfaIqM~@Ro5{i-~uQkv{*$jWE29 -mHt;UY#}akhc$b6&qHz+YixBzVMw|Mu7>|ys5dpZQrIKBw&uaqDBvNG9H_A5=GPnlDjFc0ICEhngI(5 -NGa#Wzh7OwEid1^1BwG<3b2d+&c^S+u9Gdzz(e3vmh*WQsYEM<`$*wii6S?oEo!_1uw -37Go>r(9XOj8^glbLQ>y!=SiVJA;1Vw;WacO7D%YaC9CZG=i&Oj-&m*g_Ux^8elkT=xD?m?6$1nXa1T -&z`S`ejj>_5!;d`q_~R|6Vxyrzao$h3&Pzc>3(u=LI@{wL5l}GUN--Ut|J5<4(zIfGPj-_-pay$=AF9 -&aDiv7^XxFklIAjr<7W|#fnX=XR2@<7WKAuNs`dpC>;!X6va?ZGY&)>+6F^d>|?qbb>vYz7T(^u0prbPiUgF9earTWgn}zs4VBgjWG7wo?Xe$FA_}{8;-#jOl`am6a -nJvaEq@AEeiUrdoA6FQ*=j$)NzJ!EE -J%c#xgmv?yq9b4?3C>$if+_qgHs#?;G4n)>WbY8*EkUevbd)T>(-Fnha*yd1gj4>_w4+*b6!dht~MlV -7$12T&Rea*EHCnfcrxD~M*-Dxv%|<7kr>Q?gV}`myTCBm0m?pD -tm^?gTc=j-31`$6}C9RfD#-f5z8-kkQFV7D)UL{VjurllFI?XE%FiwKQVVC9@E8?h8m8r+cC_&Rl2G5 -PHRaGPd6w7QP-Re6>Gq*Re;pwMRBcykR5B!YTNVI$9jAs$$bFG$vrO6i=G<7#86A>PW-v%Cz19E)O>_ --7|g|yd)vys7!^RS_I5bq&e>dpbt9U$3AIR5tG1v89wuHaw0!SV?rGus`z5cxwsF`v)H&pY4j+pJUD5 -BMHc@o?M~N76mZrL`DiKA(THUdgHGI9G#N@jSmxCrgLb&U|jqcv#eEhpCgNN8uBAc!Jc4cm4Z*nhTaByU4a&sNR@=yu|DUJmYj%!pj*+PyGt^Z1HQrs+t;E30gMZJh -<8AI8HSmZgLBAMqFX{Xk5nNjMy(tPwQX*2c!;^{tJ~4YnVo;T7+se#%)#4AN^q;p{jLyox!S+w7>{pR -zNaCgK15w@6l2YPH(CG>pPD8-4EIA_mCX*$_yw -})Xm%6eWP#%)WSHcZFCdxowbMw0n)pJmb?au0cfkca$=orsjn9b7$o(>Xk0B4*bk4hu;Ilc|6YK#TSL -)MtY*QbQTj++{YIh$QvKVUP$3Dj-4neBftM>iKeV^A8z>{oTvn-+8>A$-i%JZfre!wECg*`ux@Q=Cen -eTbr9(+nb;t`~d%MC`tT)op#uV9mA;4uXrRTJn>L5T(J>BHs*0kN@~ND)6R$XfrtY>Ni#oczc_md0(Y -h|<>Pi3_xX)CO2-i~_;C0WL$#8A-oYeFTp!rbPmgOR#}IqDMoNQ3MB?nEyB55H3n -Z}0e0vkOU=0^u$lS_s1uPr|&z4TquJ~q9^aDj3?ccHn71$u`WdVv(cg85>2HbfA#)FRU;4mF$4UZO_AO7dBxVDUkHPvzs06e -Zaw -o56eR9rb2$mj_ugq160=hF#%28VY@g{fgCuBkebv&2*44U>?}0A@+n^M -gxNvDTBveia!wol9=wOUcMkI21(ldk_<0YOP)ym-Ot%OiWNbKQcyFrsNT)Os)8Fj7l-11{|ryAUJUCs -~H(`N5LV?rf`*hA4Ay;p(+?Y(jg^iWI_cQDD)sbpy2Q^$zp~T4ut@TqN#_5M~k(Hi9_aEWD$sJG>vp> -&&U2}k?eWT!HMDjn(IWTXn(R3xB#Go*ytD4Gl4V&JT2wvSOCZA2@!EWZZQoBl-8Rp0G$F`$y0WoWW3M -^H}2)|*94KPi4^6#XnP;j20YL|;3K*f#+F1^^((2xJiQjlC34RuG{MlHB!V!GQX0`wp?Mub`1V}G%4r -eGfA;Nb|2YEF>O;!{SN{y_w<^{sAcjS -2d5{K>X+I-^JlgnYCi?MFN)4mLm|?=BGJAIr%q0Zr#KE^Zo9t(>F)N4}2?x+?A6Dn*(}a4P>k>+eCH; -I~RuYqkL_LL63y_k`LJbqy~f2BSH6JtQ&zdmcNhSrRS`wvxFp? -*CC#P#R*juQnMl7RpdH?{*fj@djv{eQo{}SR)RNv$l&q{$OA+Y+o~C(5sm=2mox^aaga0cuL!}>3Il+ -Qj5fS0Qs#g&DSTlF#l(Suv{qpM&22fmgi#!EOsU38V4_|lp&(3fiHFRJ7)9cfN{o+DSgi6XT0xK#Rkc -JTujT+q{PrD#*7nIfqL`}?K6X1%D^0)$*mxO*o>DL`r!TPfZ;|6}RKu^msX*#p{-RTuX48+t%G01yoo -=O1Rf@abC8ui7gs(!nAmX^_8U@-}d!sDw(-Eq`)AQ5AhXSKuQw;fi}n<3LehptmAwXy)$TjhFGCQCI5V7L -olG5Op9z%GYbE5YY{*>P!fwe))l_$fm3!QMXPIt7~U2=0CXllofB#!Ekp{s!n_=i)38L+~6VpnQsr!a -jI9b$P&gYgRe~MnuJHIzm6yR9$M-;xNSBuZV+cSY0Pz8}d_?0NGQojP6t{!=YNi;*v`I3>~R(e(Zh-?Cs$L%xI4H*Zc)a?JPt9=$D!**^=r -tT2+IIMq*+RV&YzZE@`+l&$C*?LaI#(`q53DwZEz-~{ayC4Lcup -)f;eN+fNQ{@sZJJda05+4)nP&*LG#lx4mpD_&7Y})C6nl%OK5Y^5@^~@VMbSM9Q|p+=y08A0YSx1phuD_(Ln2{{G5Vbdgf-){K^vSEYLB-CEpB8tJ*D9!2i}Z!bk&fPfz&JPw);Q)gmiuG(+5$Ql4CeaOR7Tt5vkLH=k~A?-dQVFRb_vEw_hy|4{Fh^6tCk -Rus3d({$7MbBVSaPlNVNe`vScOpDDWvY^R!m(px%pK~-&-Bp_rjhW51CE3UDlQjTClKY_YD?b7d7RHt -P<}!`Sg1uPKuiIE#uJ>iHy6Aqntp%04@2erUBuuD02C~XgRROQAz!uTls_;@>8{5SjV<@MnaP*<^B%L -;`*|(PB{LZn}qRe-b?I#;gwjTYs^=!|g^+(%6meBR46UFsEt+9iG-aK@7+^Oa6&b$r`BqV-kI3^}xjN -foKdH4PcvV4GJ4{+@JfMYrqiuOz1Z<$d#+EnR|Qu)APTRXtGsF|3-o9~Oq5=^w%rO}yf?caJFHs+OG3 -KMv@BcbBf6Ou~aa>$4qUL0qkorYD@+|#++j}-st{bLs-bR{18!aK(_#TDfr`Muv1r06a(8xFZ7v0#Px -Gd*b17lBm44A7cRJrJeRQrJ)!2#CXftGI9KH@EYqa94;fPd3$#5{r0U_b`Z><1-D~+iPTD@*Z|xeskI -*zbQ!7^cXBy7STckCs}G-2gyn?=IZI0wG84fStBWi;S~f5vcyZ^pD>E?8-F~Z=V^>7JkPs$BYqE~$iH -|AiyMd=#HG{*ym+oZRoM_H?gwLj(a9z}0V&n>i%oAs8RhKw03_oAH`9bbOELO+k760K-jo0>kE{RXG -zK0`eOH%EHcOj+Y;A`HSs0zgW-i>&$fAH#PK?k;O3R3+WZ@}g_T;d~*_k0jaJRgAg0}%f{fcV2XDEvza?cTR%op*N5_s@@(I_|vl2`AX(koQ7x9cjGzc9qVYy@ii6T-nyY@`d%1x*T@TdW`O3Dls>lDFoG4f0;5T! -Y>rxQ>ts28T`4D#QHRWymy<djWUdd$6tf2I|;G|ZVf12p- -3w{$W(uQjuvEkj0K0G+DO>h4WE^p-ynIt39HRSf$ukqy!N3{j?05IE6+h_84Y@;HDPO3;Iqj}G-qXe< -n%-X3Kf4-r|n3oA{#-G=1RAcuj=V6v*MpmOthx1-@7vhj-3a#nfu$}(oUN$?&{Bdmea& -c{Sh%9wyFfU1(ESN#_OA;>vxj_{U~|M;SzU)e -X5O2Xw?br^4F+nDT{`6I;(dkPgb#6(IBf(n>__x+w4#8Rqf?*ud1{x3&9U%503iW7>*0&-2+GlIgjvF -|%;h(@>4K#g6kE?><|nZ2;vB&ofuTSoh!3GK%4=PtfFDy3ZH>sFU~&c?Z*@3&_E -9~m+4nI;!$MuqASpU7F#R#Z5=zTrh#^?RUT7%mJ@~^i18Te(cBsC8RHHj8id#G`2YG?m`C3Rb;+mtyb -f03odP=jnNJJ+XD+<@`RLc~!MnF_k510J?>a|s3jvavc`xO~8`J8%(3tn)AOn-c=`YH`E{<*{kw|!Q( -LqhIm!v7F?4W=Ncy$Z6x7?EI-!q;}e?dHbbkhKVTeFIGPz|*cD}5Dlb9XW&2s-PkbcZZm3&hwX9>&b{ -CBSS*pNyz@{~~_(Isann%o&;~S5FYty3Ne~bwHUS-jMz|8ud;LSYkG0rrEV+u`KuENMf7;!%!7yMW|BACwI2`rDlm#O{Dcw7>n)l0l*-&~uy9IN7&!}@$ts9XM07vV& -uy%Qtu+^8KjLFAiza})HCPIBI)C6Q}@``IQ2W!lo{eAIG56=2ND*_hHRRF{?Gs4?b!Mho)e -)|1;4+P*_nv; -Ff|Y>jPMj!go1zjG+cje1aT<@1{bT**mwv_l`Cbk6rr4vvZ;Gu2J`vng<9dUV?RTq<&EpgjO-y*%rl| -9W<0@PrNvWT)~SD&fROm-bT8p(;jZOob|Gjb_u_qF%e$sQn*^D5w71OGMpnef(2#le@srCX5^((7e>x -${IwZE&A?~{)kcS;xoUE=+ssfPm~_42PU*>{#kQRq&_|LuSD3#vngf<7|d3tff&Ws`x?|B -wBASa8axM>k$p!Fr=DguWJ~580RRl#a;_>nN8@+%pIUEZZuCiQ(pnQ4GiC7PgdU%GGjq{tj#gi -_1Z$dg;Y<8$phG%E#b-f(kZgUu#(uD0;Xi+LL&cmq3$N=b^=2(Ey{I>H2(aLUW4E^HZRlC(gs5_QzzS -7wZ6K5kKgb=B6vb@dfC4rk!xl|yHeInV;u*mOzRCW}W&bOM&4su{-20WWI7?hwK>NH#9lLy8iT@W+O9 -KQH0000801jt2Qu6k|e6JG#024w002%-Q0B~t=FJE?LZe(wAFJo_RbY*ySY-wULE^v9RJ8N^>IFjG>D -^Su0OFl)D#Mzr0SCSgXab{e#lcbXD%~hpbT#AG&tSN#^kd{?f``@>_@gM+_vghVf`;bYX(J%Cy)9Eym -Wy2quLabl1XKbBjca^Lg#nLioyxgW`#&^7g2aROSma}d>+sV8w_;fm*OvDa%v2>l;pX#9O&wW~#qP$g -;O)Yl-peT6O2w5s-7UcY&E!S^1ZJ9Mv7Vh1?PAfH;BuQEnNy6T+?-u1Dzn{OnVQ=5C`Pq`aT -AUNE39L_GJuuGhwf?#%f*uY?@5xVLN+Q%PR`kU@vlXQR92))iA?`L`|Zo8 -NzOMcF^`j7E$5d@23%;1#vlgxUougehv$y5HE-IwoamqUYL!+MFZ223f*x*U&EDb0%Tr0%>DT8X6AT6&5XTOqv?)tOa)MzmItGGpxv-k+ybRMXM53XK@*;cEXv*>OYG}msoFKY*h+Z^*k*-Vvda* -kOT0jAzlE*5W_AN=796ZZPH3gw3%LR8;4MfqKnWByD`?-a4h(8l|N2gye5d*k;`4OTCq2+dtADYlFy_ -+JJ73%I)`|z>ciMoer0asKp8lbe-OKupr3%<;07qI`^9`7=ZIbOq)l&JM+5%^-0`|fIz^@jZ&4FC2UI -~91|L%a9<6#TAWYC?}#J&6mn*f&-3@Q3)&6|`I>>sUa4CfR(MGQ~9ji10@)gsro1O#X-5}Yshz$8?RJ -t{3|+cQw5rpF-%sStOZCBN{J6O%#>Kw{AEqHS;S4*2Y3_ag0d39uKLK$J5uPZ6E(uReddy1e*y_5R%B -I|MX}l^jT6X`XAQA{$i$K@<3Pz-?Wp_2EPf8p~L5*v02-Uxx0tjhj~ZV?O=k2!!#9_wPN2kR&5&f7gf -fv>qk5N(@&xYTLrIjQ;ac)6=`Xi&&hZfh!mic;DF@yzr0+VvIVS>Wt+WkLK}Z=*;J@yr@8w$f}>ih`$qI? -5{=Xxk^NG$uyD?(M0PlFCpGKMhY#{VCbh_ML%(&+3lau -h9>rm)4Y+Cq_>Nq1Rh~3(OXNNHaZSh;1jrySs@evfe(6C1x+@H~O|WE*#3*}!=>m;MbqF!a+PVhM1HN -p1s6fxS_I%FRI9^gZ3kGGc7r5shEL1c?Mh7JTf~Wb)TY$HC+ceer4?nD1u*%f|d{?=W_3aOIxnKPB>i -H`jpUawe_xnj!a|T!B@;6T*()x%O1b&3xdd6V$4lUA}dsdgH*_Kggmku~|&=H@PU|YPPJ#Yg$9WgiS$ -cf0OHYp3Uj~c7?yIX`SjMB8)tj-8Tt^$A<(a)_jnI)FsN^1FNldW|0Riq -|005Yd0#AaKV9#{al7fDA84B{fw^1WzOxNOZ-dnb>nr$uj^AYL(-x~g@obC#4>QuJyrA4@U#Iq#0v`C(4yn{Q;ZX)7-cpT@H48|tv -T9PTjk=O$#h)R7aTB0)hfZBktBwA=Cl3?%ic>AM9rURfgy5+WKnh;8mepc^iJeIWpD$*&jxeU)7O&*jzU -Z`YqbCYQfnTz|a&_=~RfK4fU;Q;3(r_5TSLkw^w)J0wS0g6no-1QbcvPeDaaNvNT+Bf|!O^jNqAog_j -!Bfrqj5p}PRp9Yh9!eaXF`TIqKHid1#r-P0&_O5O0c>}<Da01?i8HJDxZrK7S1%OG_P%w^4rcT7gFR20&dlD*L+)zwnP9; -bQVAWlaJWhm4gR{2*_~0)O9{S`N>f8}wMW0!owK(qS@ALuFUfZkixm$rTm-#2D%uSSY!v(viJL=?N_4 -X#Uf4>ImFPh3O`M7oZq2?o`sEWc1wRGp@A0GeQ)`h1kL<9v)rc>qP4~5dL}}Nl0&PwdJq1L&qW1uaCE -q6v@Rm36p-J}&fOLO&$=2^&7p6d0z%79qNw6q-6*&&H4LZSwybc^BaHxhzJ30q8C3e#r_WkAwJne0?? -KN9n0Q+tdI>U#BUk@2sv+NN*Qcv`lF(yk8rE73tf}x+R0~#Jd!zZtj)qK&3KI+-dBUR{|1M7;YJixIh -4W^Nz7QK&xUxG!Jqof)pT%Uq_b;KF_Rqo02qt!rz1dbQ~q%Lu2Bw`HF;p%mfzalWOb}?|yz7`Gl4oV5 -5@F21dC%9(SJTxaucCtSivOj}ZZ3c>ibX+C(3uhgo`!qF;@bpu@OA)f;^>9x-dziAN~pD#R;CLCA#A3Ovo9SS|zV!6Xys^}L0Q -x`5=7Vg@oYIF_cv7uuzLWQSj&2UwC(juLo6s{4os4^rOJLkt#Wt8{M!6Pu_dXe*)Jl`(Z<6%nXtW9@O7TBtxQ-(j681Fr -ihLli?-L3(ibLz*>Y5#W%#&2;)zh@H^bn6@%^;v=jpl!Mo?nRyT&t^2-w{_>|@-8c4sM(1p{grP;GQF -Eu3vGVI_8_x!bsx4A$P7EDqq+yfMB>zo+Ug$ZE3!P1l)CSJGJA^SwViK(clTwJg>l88-K-9ZBv=&}>_ -}fi$^#1U4iP289OS8Ho@jzT!<0Yxluv3BzL22&C-gJq!sR)ZJd(!_GegA|(qOGLsxXcti3{6RIhb|bo -O~7n}`EZ`w5gWf;$J5Xb&A4AGX>LW>0i*Y1` -N$^b1vC56pO_(B7buJroL(Zm=Gq -=>RLsB{!3Ce{s*bnm`-__?8k{1<&W&tqmchbJTSO)B87jlGwqirf#T%6;S@U27(7_&6(IG_K0#i|a2L -|-Yaweo_{1ohLT6Fp+dJ}{*&_K@tIu$IfReJe{?S~O*k?z)c%3_mo?j>d5q=Ec1W)ob)5AX1$S+{QWA -OJ>N6c|$J_Ui#W)Pt@ycbm@soYo8uXwk!UC|GX?&*q*|jqJwe6~y-#VsPZfGu0dl)2;-q(_t8ndI6df -r@K_5M~H5q_S!@d-{9fID9JUw^5zj|oma8FUFuNx&eah$WLku_>Cl7Mq9_I1zlN{0-3mQXmkInF -xe7HDpv --auDDlOD@T1>&$8a0|RyUDhynwU$uu+=2m=hbVa}nb8Gu$9OKfYH7BOV3<5D+u?udNyrj28`MZIva0zl$copUn&W$ -$`PoTnpBr>6z1E$!dVV@=(>=^Bf{0qM+AR(sf>}XQ$fIVvkXuObJXr0k1HQD`YE1qYLnV0YE<`uY}bAy;1nQRTi4WiF -B0N-Xh|G0*t~HNR+e>fP&f7ofkyqK#QZ*TuarQ6XKB$8H&%17#}n)xy2rLe9MaGqAklk+dyN0H^r`Ea -0`g2VJp^iJb-f|Y?nYR2tZguV!ZjRe8if}HgkG;jgJZGXoxud$wMSOLwZQaq;ARYuYxXTk5XdcAP+Y= -)j+&9tLsI07vaQ_IM$F|ULAEq+pj&CSqyPukvZ@6*vn58n9xO;Zs5F`w{BpdFaItMWbbUbd_BDp&mJVo|lcwwDGDC?_|1WmjGxfP;6P}m9hdIO8VWGMw%+7fbg;3*=FVREB-CM -yjrEoeVSHg>jLr9)@!9}CJ4NiihcFFd3>%rKA{IU4%zU3%6C8ul$OcqrUt4HU -ZT*_?~6;z3%S-el?r3=HbXd=pcd8g;I{(Al46O(nW1GrA1JMZen^fRKYf0ez+({)n}RpD -3?dM?b`bqpWB)wRMQrx%&)^+*7$`-{Qa!I=^KW@&vaz8ocoK6)Ekd7Lu;pLZ&(8@MFV;=ySxQ;G2ah3 -eDWFvEI&r{rEP>cY(R!MP^ylJ_7TFDH97tYuWw>LV31ZIHVmnb9$Rl_7u@vg{8OkNT$4vnsmR^vRNcJk7+daaOIS5&(tWBcE1#|BijC1bpc} -At5ljcY@zF82mg3VAGBu!!-AJWa@dCRF57dQzW81te&`9~%WQ;8wbTba#C-C#(FC>pNwy`; -gB|mUo_;Hy)#_L(dOi#J$IOcCuhEcl4ROZjHwu2+Pu&v&~`d;>dUx46uRB7Fa46K5#x6srP8ifo8r?9 -_*T~eC064+s;Zx(eTIRaTzl3_bvRvKCSLQc@6p+=ulm4GW+h4f6;&hPqu<~5M9!{ShF1~YZ2JqjCeb~ -fZ#n_CATItqG2RyV2<`3o?X@c#URvr?m5%*NxrQuZf*!yWQJMvNA2g -GGmI=5|nLiuK)YZ2LOT~D9MSF+}%69*Ty7)!C+=Em>CR!2jW>VTa@YKvJy`pKly41|N9#M_l-DAOZa# -x^Nj}^55)6yEOR9jG0ziOit18|-B~<_fAp83_+6GNEpqWRdMx@_U{inE9Q+v|EQ-09#tV@bm6$6DAW| -hR(o70@JC?Ibq`4Ru(^;0r`B;jZw7R5bG>`~D{7r)>&Z`(o$54I-PZw@E5m$upWmV0#A3eIcxrt&zG% -Cu;ql^owN6!zQ?H``(ZvnDY{I@)lN{LebW1g1K&GUtbXMoE%J_ii5_(l|^h$p3lZ&iV~-jr#T=98gN# -YJ@!mlB{PsjABKd|ovOWiW&Ox&?q#aV|D@PsG8=rucF9$H%*erw98d;^$Ct)+k;7;;$#eVrEAPKC`D6N%y#0bLZ}Didl4C}3cSK*zDmXW|CAksA9K#r)5pt%R0jZx$@#M>=PsMkrJrt;q^Z7(YGx|>YgUVo$@6Sdk3LD6>rVQb5*Z?*aWhDw_{sPA8zt -qCMe5()}{rWPKx8@-$CLmW6^B9+tSzM|b#QYot2fMnlu`&AX@Zdi{J^ZwHa4dG9$w=ncX$hzR^ZGsKY -i}rek7PCO4K_wcC!^#2=li=S`yg5K4d4Fv821|D&+hKJBl+p8ggKp6!ci?y}<@bHY%I&3g+gR(N_*E{p#qV(j>;b8Az+?5 -g34#wIqH$(TofS8ru~1Hi2u$$Aat@mBN_j;|xv4R5RMl-$v)kfOcNt1v8H+}}fD9_# -`6-faMUAY#_rhX0rGIFmqg@jx8W->k$o{!J8Y{IxC;hEca3s(wOW!!^;A0x`*pM24z^X-D4=;rpE=($1nV4$Bl3^+j1s=@S`qIm|~0 -4XiR<)E%AoG5Wh&#U|rWqk7V=OXpL+)z;w21mnC^*A<040vb`VqaONnN -TOhBRQ28~h&m4CW_cnZ(I?;oE4LN9kuPxp@x0i9AtC>#KwPl%Ph{tw%){yuo~@b#b{JsiC54}K62;oZ -sUb20d#|LS!TeerrL-ufq$NCxytsu&O{#Y6ZWeKCL;#l!sEB57C?=s*i=GZihz_VvvdgI8OlH+>E3zq -Bnk_*cf`$41*^4uD;ePC%4_S2y6&2v80snuilYb{*6Xeg^K=7@h!Xj8HF;=isu8G!nfbzXd&Mr&9f@k -W=qfXd2dq!Az)H<$GZKsVnCt^cSqF3(+<<`xo;pYrGjDHFi$Rxg2a0G_+Lk-(ynoB5Zh%=Vgf^=o?gI -Y*%wYh+v$Z_0xn}7#h=h2;!Sad^G^`pT<}UT~b)}qR3zXs_hM`{1B?^+Gl4lR1Yr1!!Y^}(LBEZQ&A4 -Jm9FL)jt_z(+S()%M`$wMq^%lWS!z70@zI?id`_3tGv%DBrrRs)+Jd?=mQ7KEUx2s4eywA#W7lyg0Eb -XHTL;-XAw+_+C*vAo--3ll0<3l4LSAj50!Knf{8916``%HP(p7WuegL%Bpmh>HZi@( -uyEi&#Yg&94X8O=)<6|<~E^36h#9~pj~JTU2<@Jz`WP`g>fbD>|O$gEACWq5+q1G5!xA8DsKWt1aMX^ -9Jg1r++LcS2p*ymi+nyk2lPO?X2oot#idU$;Iyk9n8{+Kky~5S7}b;}{jk1ic1A~WjJk2b4N2KBN&Mb -14K(S0@;c~u%xC~@(bkOggbghp4vmkYD11WfN-08+6yrI1;Q+--Cwxf?sf7*1dBRlJ!lre$G97 -ghvqLLYHgqzLK@-4#T3kq9BDXE0J?xDx-D&*%=OsU?y=Q^)&yCUC1NhDP`8==Yn;N?KjUM?EPowtJ9z -F6Ww3qA$l%M1mptoYAn%jlPMjx_bp3p#}LeKD#u`ykdx1eIq3j<@HA6*y|q=PLWewO)Z(I}9f -Pe(H}g0HTpQ0(Bx7vd#8{`&h1E&%VLjD-O2NrPa)e~J?_Pk6v=5~@>>S1!z`zJO=`JOz19Yr4OnNAoF -9z@9fBU+6~{Pn?0WOlF!tFU_O=nl^a)GOc-9#%kt>)Ukfl{38d>)@%54eH_vquHrz;%Qyx4Vhoi)oY+ -Sfb8sWZR~Q-QW=_l_f4xPWf&#@~{{sZbldp4?7zB^t@yC-r{+7$i`6LcyWj|e%Qaay$f=BypnkG30`t -|o0`q6xU|B+4A!Dhn<|7CnFQ3vZd`9x|}UU1~sYOjMmQ0YlRVH_w&h7On>Z02GVo55YAM!SZ6MQa-wQ -zWhp0|HfRNo>BzrP03`+5%<{fSF;YLmDu%R1yR891i3OfK6Nti$8#$IKGnQ*~l1v51$vs)qEx{Q(5Bp -UhvF-?xeM=)%L@Oda6oGRq=cTxIyQ6O{3x1TAi;=lX^Ph_`OUtwZKP>$S}J=s3N|O(~PK$801C1C8x7 -$VP`qC!xC$HBS8M5DdR=+^jkm7)?IzAkd+@x()PQFD7nzNQ=kSa(?r9sbj*kVf=Cqw)*_m)Q=+e(?kj -WzXR%V!pJP3yu~44N3ySs9{NL;eykJ|+5|vAJMJM+a&ycm%A*%_L!@M -3E$vKyz#!xAWJun5BIYwase^1c>rwbefov1~X7h4ZsM;ZEmQBgQ#@VnmT(kq08>T3t9{2D!z -*6YJ428S~4ru!*%^lx{%_pV7X{m3SsbZJpg+{-%wQ=OOK^fbQJp@oZsi9Atw|`a+*q~`EmhTG=O=WQyA5!66m_`zY<`Q&Ids( -;-t4@&#y2|c+@|lOQycD}L26-q!K}eiq>Ei)?qXj?lSpi`@y1i?<{;QiRnB!Q1{mr*1C54FJe$!nUMF -brP4pys^3~%nMgJKLr-5mzt_LC{3Upl)26C% --H#U(?TNz)Lf(#?xFofQMy@<}n3UYtrtwQPqtR-#y5>W~^P*QcBVlIAwBR)06 -KG85Jhtg=Vol*TZ-)$2yCS#E=En8kCE-U2QzX`u{;Oc*QAL<%$lICv -nwjh@nEu9ZEg`GFI~e24<}u#RwoX@&_Eq+`*f!Nr%d$k-H^0p((_(M$@B5d#;2?V8~Xx+z4g;vJ>l-~ -mZNlLSQ_)09L@j6E8{)sh$mnysbGrIz0$iZ7Z#S!Nq(a;MeEk}2^ZCqR^u(Hu3VgKJHd(GnUW1food2 -_*`+s9)kP!L_i1qr=g99!?jOV=ncco{a;wNgqn_a7g26=f*6+vXlWWHTY$Y(E2Sdof=I`zO@W0 -Dy__lj%F$RHw??SttFcf-(F<29ZgGg))m;t9)}(njdEs{Z{=Wr20KY5cY*hXRH#{&PN -0vt-1yTxZ>lYOh?WqEe&4S{Jptx;mB$Rd=yn38hiE5%N!J5i#`hwfj&goeddYzvJZvoqDjE=?-HJ%Ns -OWi{(_~ZZ-@XEIg(`to3}ZQTCQPd79CyM6NC;DmNQ9%TlOU2$mafNs4MqNhBr49!!soxE3eNi7r({E;ZOsL+ILd?=u;I?J{{xxOB6Xb@awR*~U -x9kFcr2a1U`*Ue)xj9OXW{G6mRZCYXN8j40%uMWmRvS>r5LH3#AQMuLtg2`G*<+L&L^;M0)&|ogG?TT -P8mZ3b(Z=5jMG{j?spdcW6l@j+-Wo^R@`x6PKZl-Dm2c%*1U~ly -N;Maz&9Kg6SpY@0`sIxZ(q#uc~538Omli!Xr)~N*+PYM>U}6vYKY!Gp)TN#(KpVX2#d!xb|eMRc3f;-9f#;WSYe6knWMq@D7Vg)-h>oH#Yrg>u8n|+?a*aM1=e#Kw1WecD -dIsJ8j;6`}OGSKW#=VK6Y8kK|4<{U12`H5K6Bo9J=JSGIb -gOcN{>A%l#ndzJYsS_$~o2Tfny=?e?>8b$u_kU{l?r8u9%N7e8bOHe?p2KI-O!e(iWgKItpwsO$@N`e -lcWdl|RH2g@>@YF@y#6a|D$&T%gHqWuT4drVN(t2ICKo+|BW^8@%x)FghI`ld&aiPdTD4aIA(rv;l$a -~3aYzTqa`d)mX@7RX-Va{X=-g56!i^Xam6Jevwt;CE9-A5v5xBX}$$tbG6FGqq_+kTj{_3`@}?tq^sF#2OdK3Hd3jKH`pkfef&?_0&8ziD$EtB9`PyXC^yBZJfrO#O_xB@V0MfmQU64GQbaPZC|BEQLq?>M -6+Byg=%)T`SZZ0~NyznX--qe-?{4g0IWMi4N-~<2#Y~pfqFr*RH$P@)uJ~pW#52RUH9}ggDCe$ -qqvdfsNxVQ`XCI+-e(jLmj1LSG(SH4h0gRlv~(}PA*{dn)E=K9D!ky -0=&MG*~L&?=nmo!-$bJe3cBqG_>;CojYfU}{J7x&oX8p;P!0ZflgrWpjOog_9(4ZJge?z?Tn_sdleFvd|1qMvT6C=*wMus%6oN{mAn|?$NHmad4z(1Dblt<}q7HaXFM~c~0*WPOycMP -t^rYO$N$AIySqWYNLlFT!?HOY$eIJ4chsmhEUhCL0DV|2igZ)u&v9G4T?%|&@Dab*%Mb-0php5gYvB1 -;om=U}OE&OuS24N>aOwC>UBBUFy%=*I;#L9w9qPzv|c8Jddq*6NMB{WO9x-1T3I8{D=|Ik76O=K5%%8_IV#Nmura7J(-d@%kO^E^Wll2%K4v -B9;xinl{N@j4NmF(Fz!!gj7dl{k%qs#MlFqLaE{=5irfKiz}V(M(_frQ>{cgv`9;3V>Wv>Pvi)o(dO+ -y5yy%~taf^V7^`nTbr&=Z&i(!3?nvgLDSffkTUMK-pTxKj+Z^;}7OoYWjhDI{=FPvV!d(t}Z02_C+tF -^PAZN-u!L7{ynDcgDb1G2KndNQCY`OTLYxHarc;HvPn$*}jj8ce80lZXLK>etW#J8*j{80$EW-!_c=S -7jhZ2yc00*wnKUxQd;gny>-PtFXEE69x&d#vE6y^pi~tOEYo0Lt#qabA^y1A -225M{;D;<42Heo2Nr)vrgk|gqD3Cj`Bv+#u4Tz^Ah@k`o;G}mz^|6?4OjB -z?^7!ziUWksCW+>=#8*47LLa;o;KDHdOS)--j27=4vzNAvMA5Cc}K~?q -a(csnvLkz21;R%RO(PiQLvf%RKw^QZt+iE@{?)&w8MnBj1#9FRZvC`qSr4pO#nsSR7}Lm!)OfB~-?hJB$ -T>`L^uNb|mXV&pJ*2GyY1U_ezsqoKFZaIc34o6TqJDPvw>*@Wf{I)LIlg^SH~5T)_#x=*+nM7vK-N9E -YWDQ2bF=7OUlNLU@yXi{yn9oE?Ni}=3RyAX^1rTk+kT2(_H*}E=+he5c`;X9wY%d4<^_pVLraJ7-Q(5 --9wuRALH%eV6tR$F0xriWdV+CAFqV`h#H`f=Nja -eRGlk&3lKp0I*Y=IDxbJ)T(94>FZOC61759qCNfQ6tKRQ_!ON1oW~qAsj&H6tLQX|=| -Q10MATjk=m01eT5ucG|Lk4(blMZTWhS76&llux=u~sB3J88V+{SKWKMZ`>kcfp5;qXj_wy3K7w``Hld -ZRd!~pzXLK1J&T7pkXkJ(C_38mdLygsA;8+S@+&hk^xSv6$)9ga+YC|I|$dpn#@Xe}nU9sz^7?hBuO} -V_}f-X0ix=mIt?G{%U1)E&a!#X?B(<0=+Rn+cw3!sb5`n|s!As1cO6+Fa)yB@z*ghyv=I&GdAj++EDBItAgIYYR{-G$*MOm_d+vpTcFITwxQBN -NmGWHb7{l3>Q;SjnK6)`9+qFD_#rrVA<&El#ZYNvmmdZxBc-FtHl$Kf5T -88Ez$S^Eri9}>ap0AuEaT)d~7Uq1;b8YA@f;)&CCi6K3*f92KTn+K&=8s=Ny>78Ep>4_ol4-(%A;OgF -Fc(Mu+|9-u8GQHn57B@3Y -F6*kW@UTt>XmlkV-a8f>r++ktausSF?J;Z@1 -C=^zZ2#Hzsu@1CfhRUzYCeCO{#@cb5pzRhOIP_9zf97}55=fp0il?Z00C?3UNC24BA;&ep6@lU2F!O{ -HIWt8d*kv%fc6=Xbj&=F=p&#w?u6E;UfnzG%3LXqp1YC~~Bxrs$!n5NUhjl3@qU-O{TdhPsV2@O -7gi(6gT{belx0>=gxQ6QW)q*pP_P!N9x4?stZz`TFWSMg1}Av! -!2x2{9U4G=F22*Jar~6lS>D1_%7h -~21v1whd5&$F~vi+&M{AX&Y671x27FGzn%WH^(`mk(MGUJwqdoF*FKg^;dsGVE3nAC%H%BtM(Nt8-cANyVd^OK5}+{Tr!Smg43=ELL~m0pFK`(DaToecQ64RG_n)qD(NCQJvB8M8phUV*zNuoJ -Xr-=46vU5WQ3tTi<^B) -xU2&>6tqPWw=XeeaSQh`Wx(jVEC?6aAQv56gnStPui?dy}O{q)LMP-sJrC!z#MgKZh58i3XL%G{z-kU -k3IbBBE7|Q;Uc@%`=K0Y{V0mez4H1h8QeBNhpXdOJCc+ra)v7CDz#8HtVqG3$8T`)>8arKe3Ka8*8*g -SH6)rSPmOtnK)k#+Q9{(|yS#8RN2=mV()uzUM9EFoB24x>7NEgSCH=_TZpG2ES&`<|kVcrglv%b#@l2 -#P(hzfV&!xn}`9KZOc1RBn&arg3xXwq$eTDy+7qs&f$Z{T!uT&PROCi-bo?#XmZZsQ9f0@&%PIpaik> -b&J#NbZeDM%Y%pPgoiS}t#B5PNV?;AS%{DXVcb&^yqip%<@|-UylE%BN41hqYWolj$UXzDwH;D_udYlE+nd&kWPACO -yK+ER{?ZYPnp8Hzjok>*rQJAu+;B&XU4ggJOJ4T|9DUL|(-Gfw77M>JpJf;c@teJ1GH*$d)VGJyRiF8 -yqKk_u|FJ&WQrXKM3e^ZHd(e`iK1P!i4c(C((QeL#qc@bSDswh#UE4>0$C;&SRyhG?;FW&YBAXL@&XB -HrH{=>*J)xU@=*Wp{Ng6MvYZXvcC2^VP^C5}6v|j`lax+Xv;QJ=kx+wb?`52os6FV{GoQ6^#G1{WukY -@lo*VEXp{#r8rtgz5pEpKO|rP}`My)Rx52LCnezgDfAC)iv3?xmAd-^WMN1McZwo2*zdxBkbyWfc -aZbmzX|G^7^W(%$&F9{;->A?iqsGKD%mKTGY3QH+S{lUA4Cp7$XhrOQWv;XbJmT%CvhC;J$SXwM5#bR -G&hU^9=(f-Z0AZEZ_8aCCgl978XvmUUfDgXvlMhYY*3{dv!)&UMHA(Rnvqofv&G-w^x<=!0CKoTJ7wno{ul}Ays-G_l&a9z1h}mqJr*P)gIg_Knn-$nW&@l&C!pSJ8RF$tVEbs{q-O` -&{xu$F6+LK83P0?x0VWmAHBkx-HWNb;bYA39_u2L=$45-ZDK9?;uwmL^4vj@&cZ+Ph!gYyS4?=~GhTp -iHwXx?!?wJ1c`hi{hd1lCVsrWy>L!ECG-fuo`5WU$FLzH*_m2;CqO+lEJN9KG7%t0ONp2{Hy>V8|6WT -HBS1>Bv8dWWcXcX4df(y_KlZEHkEXL}CoZ^FeYPcfn8}g1`h`B%<9PsIr1F2 -&>c1K&C+!P4w@KmOYA@_I=V4k9BO@;g%#3cCmjq8&VrS(|93@@pxYHczPtOu{mYOCOl%qj5S^leX0N` -MMq=WT*!xwRW${)LG#yKz7BLMQ*!JAkO%=}R^w_|j*Be>2@$nYG_Sq)M?M3Sw5kH#;oEc)KGm~Zfey} -=5E-|z^-ks|`&%}?&~_T#Uk_E&+J&*5wF{4dhIO!bWpTdvWbNV;gkG#&d>T(=x;}J_3zYHI`kkc;>Gd -63fC{A2?o#V*T&~~kg2wsU#hW91WpS0=p=dn5!YjPCYzVhe14omc<6#6?i4Jb@a!dNN+QH9jh4<^Nul~FTbJ6Mk;VC@h-HQ8r-u%}<#EJF~UTtr0J#m(4o0F9j0_@s8i$XS$w=X?SH9}@%`Cmsi&(vQRk3?b{kLEYU9bOHX7@;eqFBx@_b1a*Pw{Y8b9vlPCXkNdSF4F -_Cay=t>9p)=)PpdWI|bc_y~FmMV+3O>tgne|Qiz5O45`?*mhP7>a4SlU7-73ip`d5cj -|y=c!4jed$!N}wX)iU1O+Ip)%p%0xmZ=I)0nau -#WK10^-%B!7J9*diGjd;um(P7}Ds+>!W2Q-eOQKQ2e58s)k0lX^}9wWr3=D(&NMMd#Tl+33y)#t0G@E -Cav=I{JzNa2PNUc$&JmE2}C$l=239b#sM_&3!X^07zmX*1p!H|Lo-CoL>HqNdTz@A{A$ZYcz=qp?6@M -ZcpBbC+wV5mOiCJjG)eS$-*0KN_Lbk4Ac3gNMMze*;iU0|XQR000O84rez~UM&(~f;#{J12_Qy7ytkO -aA|NaUv_0~WN&gWX>eg=WO8M5b1ras?R|T98@aLP|N0ad>3T@o6h%@pEi;z0ipQSOITL&C*hzNR>+m$ -mrqnUn&0#n7$Y$?n->Sm<(aokF9#8Ht_j+s+C=?2XLZMLjVUNAamN%>9{Gwp}Zuc4cKFiMMF*{2qot- -_#eoQ8Dn#WUCWbCK+Z`eAW#w!*Enz -Jp(-adDNcKIfdTot@b#Td>h+wl3DIcr;?kVwtT9=uvTK)!^RFs>{Yf{Lg&T_P`hEXbvnVG<~ySa{V+<>VpQBL;~eTW;UDeRPO-Wf?lAb -2mSOWOJ#X#A*OPczu(#17e!W^{D_(0E<+)D-IEC7xYb7=9vhXK;3*?~JY9O+ -Girjc@+cXtQw(Ii7)%j#0^==BKc@Q8jcEAPxAkqrS|g08b09^`;a}Zhcb7E&jL7;&hrsDQKs`ypXl}3 -5DAjC+7{Ld&o^!{hRu7DLR9MH8F!=k|$|iMCl}MjxXE3VzsPFyp1OQ=fw+l++t6l30J`ID@+Wtvtm$k -R8imrv@}l7iwnP}K2x$r31ih_0cGSZ;nzpH|L{Gh%U-Z9138I*y*y!k_V_V7?Ax+hMM)luDcy;2K%2W -zB|ZlWm#qty&7eqn9+S))XAS)CA}ScpsNI$;A3;ZI-x+8hZ=aWp=N8+&L4Ce^{o}hZ{-6K39p_NKtyp --;21n{&-?HxY%=yUP$+@ffdz%$!i{+eFhImR7rrAQGlFwhach7;(uogu?7$WtxKeH`ZpLKa --dh7toWdEN$SQtIs$U`kiO&>LOmnWGGpDo#aKp7%5uK#5W*`(H8JoVvWKiP|i4efEBf5bSBw4Et)NR= -y0r2sx;-$kXpZ1PB$9TCQP7JK~oImQN+uWo;}I%JN8l-jD*ZORG@!dT_muwC!l3eTQ_`@#Pcajv^ugU -CqxF?pUimOMjA{|2er%(q=aPM?8^scr?oAS&`FXh-1vh@P~N51dXKe!m5|h=i(w}8T_$ -g)T>pJ!wQl?F>(lUhQ?D=AC2Y(P{f6NG>U&2jl}nVi&=D;B~!k*lBf&hZ}$6#=svWvJAAcZMM)J*N65Ak6BHOYA@*pF3OFsE%?VSDe*P|a_zy1Eh577K!AOAg2 -|Au8!S*%mO5BO^|UvpQjssAcELOT`umeJSH9BwFRuYp!dY$ZCha}Z?T#>FDaKi`FH%1H>aDC%T65^Xi -be>JHO(P!W!h0P7F(qP*TU{NHKD1-yQaZ8MgKGGM)jG;Hx;p2I_IyYvCXk*Au1xev?p!d)w6403JJY% -mDvevZC%2vkc+50Wn*WG~KW%+u!oG0=050Yfg6#*6jSf(F8KJ2rrWIi|OjFIOwPr!C_DUHRZZhV897_ -H}p=*Q30Wuq&nDU}q1jr~BT)IUisvMw4cqpBXaAu20&`?2WEW7<&xFA1$2F&99@NC5cXfx*3~vm*zL{ -;PHvh87!)s$u4?6W>`hJ(X?y>SoMA+VxenHh7rU(1Fo@yrA9YyG3tt@TZ|Q{Tq)~v_R7okCw|gS_uV+ -QmJv4o^@EmCh#4&0XNy2_(Sh265G}$ZfR9if%RJqS&k!EIc5$Cs3UgCLSz2eV2_v*+K%px(T%M+2b!L -zXDU!j8v_xw(6Ys8Iw?**tk&_bZy5x48!dy3z5JSn;VtJuj)nT?mWDwHV|%O6VeeLwh>!51&2G2Kh%8LF|QBl#3861(;JteS#ndvqA~)TF{)t(Aoxlj_N;KpO5=DMPo;E_GCMI33{ -_(tBHe5p2wCuB4*I#pUb6mXKW_J33X4sa#teusV0e)f7%_q2d$ig$9VlaL@H;7vS&~j=3`K;=mG_{9@ -dir4l9tE6tYbV!0FBGD6*dGNT|*}(6sG}6@10ue7u01iH9%~hO(X@!m4!CZ%AthF6ec#STBr*s0~a@Kqji}RDIs0pUrEy!#tCe>|-N&fS -!m0FY)h1k~Z%*&vNAKYTm~LzZq*Zqduv* -AWJQb+=x=d`Xk5S;mYRPiyp^_b~&b(`~fcibSW=VU?dCiQXX)X|?K8VQg=jO<;8>hV04PcR&C6^vARR -{d)AbAI?6!e*e?ytJjLuM{^&qc|Pbr1-4o6$6o*V;IL=*s-)au_u#PKXnhK)H;I2}j6_AyRM;AlamSj -#oPZd>n)OTfR+MRjxkEzb)hLtwZ65t=&{EoD+f#D$j2Q-dQ6m>a327EmJVA*?u**TO+*ZWx>l5eEB4# -2PNYgN!&k$XM8abmt>zvY?R(v@NGzwPJN81iO&Ev9H*YeVbU85ku`qa1qGv$~8&+yS&NWM>)0kNRO0MGh?vOv9Lo(=Et;kHb3Cg& -~zww=NgWcQ+>9^n20r6JK@ecnJr6LK8=aboz8iv*1)eduxt658Yb`S^mCeBQCLV&RXi?fF$S8v(Ge_) -Bkr$tM -n<|O8hOf%3Jlq5!t#e=&#P|3E%ocIarVY*eSmTprK1TQ@tQuN7AfBbRu?(OUMwmBJtLVecm(|jH+bG1 -;$IS>EA4k6?Y|CnV<44$pB_4$Q);)(N7&_eGN9M#EswZd&7bYwiwCZD}k+fcclt*O>JH)t3q#LIqJ$- -$9Z^suZbu8&UHqtdd^`@F0wTq&}T&=(xrKK^lte;j=RZFp%6Khq*h}5P)2Khk*()b4EkYIGMdkE- -;waVlRuyn4`syHmq}za;`7-2_^GvNYjSFCO(c(v+&Kzqx6L%k_XX3Wfr;r~{#6(WnL -&Pue$-jFR_#IV8T`|oT-|3CwQexI|M$=74hJ~RUV_x~A&L)IEPGgN-xS!TFbhG`7geqRh`ppJB4U%5gf}2gKG+ow)-`-74c1q?PUpGI^$IqO((c6$Qmy>A@2u2i -4S-8NxIgvz+VZ}wp{Li0~0-9wqJ=-R`9{`k-gni$c9vHMoQfx{FEDFsOp+X?^DBOmK!yDg(k!HMo@;aNc -*BN2P)`0{?b>XNqr|NXe%`_vg3{y2Ijo;xl-58;+8zLsstkl}6#=}9Y>EDgIp7r`y%uu9L$@?wAMy|< -#+L6LM!sgPvKZ#I+@acrq6=REd=NJ=cU^eYpiUTQf<#^C0Q^B7 -eRJcvPNxxOqS6ugG?~p}+Whbna+of7Y=ugu9sIIbBzhhd%bm!!6&dOao{s_j#|w8I3LXQ`+}8osE|Nu -zsY6%sC5FQJbqCB>!Ssl$B)<@DG`omE&yuCoG}2k%Jm&(%8qmsBbko5F3;&5nJy>yyJxsvSgD;8LBue -r69et~=vf&9E3Ic}e1h_k2qpawNiO+%1)&vG&sFNLxHQUYA#KO*M4YP2SEmsM;rqHGz(lS;vAS0GD(T -0D`1B!G;sE<;UNE?kiIze*&>gbY_b4ODPCpW7*6=y#QqDa3PxMI;7s;=TW!a`h|z}h@}7=H}iy!am|u -y|G6aQ%vLo3Wf{Q!-HVnb8S7^(ZQtrRQ`Q;RG0sNLGYCGtXq{$RRNL$}_@6Ya`h5u6T?lS&n$6auzWp -Lz8&}lZxo=xin8PsjV`eRyftb$}KapZUM&VfCm>I!Gx&6zI*$giCQ%4YzEsb?wogQlZ*!*YSMO$obcU -V{}~vKZl|}~>Np%(6zCQz6ocYPx{uX6(P|krYBtmFc6-C=_;@(1*--ue9e2i^DY8cY>O->w!I~+{urj -%0P&!yb9o#`$k! -Lx;#;BdCdjX7dyZdO$n($jo?uYf6II1?KNjy@^->yZW?2sKPLnn12CrMXGqSXp<_fixJ#~uw<@uK46$ -B(8D&#&dIS8r3DkK12&c<|b2Kw*7?-=W!-w>KTpc0#2+SPrq4CzS$!*Q6B^sqeUADp?b2gAjp0 -T|v7Uu0-nYS*}DTkm=gG)wmkM*=jsZDf-&XZ3L~Aix@gI)x*uRV)-p?u1d`bUe8u)s_m2RXd+(Rf+!nF3RUJ4I;E#B`#WpeU%)z`dt4_3{7;veYS2ArUkTsI;{b!Bn%e~g;0_v77q)V|MVn<4%#{D0f -jI&4;2kO=diV0SbTo_#G_iwz7Z4NIio^9bYM8Un??VHavnMC6UOzJERHjJ|vQ>g>;_Ka -RdT`~K|1`wm`(U!qrDG|Pq(KQuKrppW%Wc5vn=iA7MutXG`kqY(OkR;S)9A~dz;{OadFp<=+1H5}iR!mF?;mBB;yly-mUx)K@Mw%+UQ{0 -XK>xC`1gYJ{wlLMwSLF|h(&tkOyeq#IFU#d^FwSwb1tm5flvwOP}PmbF_th-t(|n| -4Igh+dwu^EjoITb)#k*-e=-@Fk}vQsQ$f$uUWJiU|gpxh2eTb(>r$ts;Q9@eQH_5ptcE)L9uUnUAXF4j*?@A)kx;qspFJc`uqvBYi&Aj2>+~Q`Mt6N^-S>FK?lD9%S4$su#3!h(pFFKYJn=F=q -#K7o;t2hQ=n#~~p&S(O%sR&AYAssPpE!Ey;6;biv`WG!qEK%_tb91O848whkOeTJDD`S|!j -NKctl=p{9nqlO=;GJHQA>c3t?G*zRtm%gaW<63Y{X(SfrpltF9>$Npa$Dr{HM?TteKGL8!uWeV01mup -vuh%Q1N0jh?yIz46f{rcJWJD_RqAeJs;i| -l_lx{${T$^K&f;S_GJv`S|!>zB@Irj5fv@q_$IW|9EpQBu#J2%%`G3oqJ?o4}0t>|%>@aN$d<SeOnBq -rD!N**G47X_=3IGo+-Y{LU}9+(L3gPdUaf{@z^}visWd5j;VxH@e^o9Zo_5FpuagRHu>Uc@I$rC#b_e -^qOklE&T5^(w?@c`1=KkGD>#FFk;$XX8q5;sSV|Uubjl3k4aBDK)UC~y)sVym?%7)5DaI2P-s+BdBt{ -28#Eq}lIR)LDBy(t~yii^7Zrd`MkRoFtdU%o%VolzODj>0+2?uoNMO5#V4Pr2zLF~14>?F)G+UO}PZs -S!W#o*B@9du)-d1gKwLU{A;KMRb{DYglL|t1QngtW70!)md|4HZBV!=`^`ariiRf*qi}Wh)^CWbT^wM -{4h&UBN^N+oz$1`rm5u26uqX&kpVwyzMjVAOWV)!BD;)D+%J)HK?qbUM%TWLfW#Yw4EJt-;|J^acves -vxb|@D?8vZqzodANAWf{|>S}PW7oi1UR$D|CNxII3TUVV%Vc%XQHxccjaNSpQuYq5IqO*c#$vjWXNce3xRtEqip6b -CAuLC!&HuivBeSYjo@2E?v2LyD4uY4G_-Lv6EOaax85ip?J922(oV0!2vj`PxtY{vSyMD3hgKbt8U9y -rH?&nAEvKM8P(!GB54zr$KDR(NFmNO|JVoA9`*wb$+E@Sf;b9(l2 -kMSJ6nnv=MiAkDoo9+*dI>2UWsriKGN2vrS2~)lkdhrR?F` -C?gI}gE6Bkv7ylIMN;kFe>F%7OabPm@a{9E0pBvlBc{(Bns=f-vDwPEqZ1~(RZf#)85$7Gz7^X?&DsfIx(N6#X -zj!=o0F_6S>&y3aL;=rtJ4{~Jy^2!3k0As~-f2aWF7VRj-8jk<=xCf0#?usbEUIGT2Pl3jaz^m)f5N{ -v>iRwQi8X$L?#!9Gn<>2nf?f6f47tFz#Tt=2?(u$4Mc!V7W(rJ=^I_>_>!)}ZyBfH}p=LgQV7k5FB7& -!Rg!BR`T~e#BYFTxW!~V}Aq!xCX>Xs&46UNt2OPxnY?^P(S-gRcSh5LDbvBzIqq{ck6 -)?_==vSAc5ywZQ+SVMs$Ks`Tl{(rrCPsY|5){WTB}1d!5ljfqC0kQJD4ND2jM(AxZH;aGvDWF(DSosN -r)lh&?xR>g(|#HJj%de}XAohTn3T#(9En8GP?tQ4t=VKzEItwnXSuAZ$1D1)@8y1c{ag`c)W!{1>E?D#c4R)Wv1?5i;U2Z^xxP|zY -wB-yFMCGu!dctdQ=Uqj?g_UTPMxO%niGNiAGNv=kDnlid(Pb)c7$?y#_QK_;ERV{J`51aGRU46E;+5l -n`5Fk$NUu%{ur=Xvx}ti>od%tQ%u|qlE9pFq$7iQL4VKUPDT232n-*Vu9egn!>CrKGt%**rW+%0b<;nX=YY&6asd~qtT -_`_0m=ILp6<)p?yXH>7}UGAGNjm)B-^$`oIC+Oj|COeV-Og#cW@a5Xsz>Ph=I!Nq$JOSC+_fg48pQG%t!jcALs5Xb3V>OdFGk4+G{1Pj+LHD=~8JI6KkXEpvh(T7E7gTl=b2E9hbq -E_p}TW_Sjdr4!W}3H+`e(m8x8S%h##R%cs98*}8;OVC)`&B^ELu(87=npcEmGUejjYwX23{4&S7*IV? -|m`IZF|s7wG8-kg1^*Y~xB8f|iT(LWY%8Mjl$YJYHSKd>L2u@w(4On+Fylo5QSaGk -i)oKsz!BdY9bs^FEH*&u?C_{^7Gj*6%zcCIpsAon5yh-;ODQVAgQhU$E*)`Q{jqpLl3b`ADC3MQt{&% -97q=r?<=2B_)DcYsKZpTfo`|{jV*KqN!)WyAI892oF7~owGd-GDwMXE(^75|%`WRYEfb;{^I-N-m=!t`wS%J@dF25-o(-M1A*a>^%w3UKFA<+E133NB -e{|8qN1t@p+OX!U!H3iC+iaueTJu?Adlw7qzNHem>8}8`QK?;_LA|ncSnmaV`A9LRXn(T4EIfTc-+Kw -*KTcD&0y%JhuUf8k9^_WMEEYaaqI+m+on&e@or7n%qkNjGC3^GRv0ZXyRqwm&-F^vX1kh@EtVIr&(99 -hqtw+s=e)Osi@}Q6a4k4$%7pRBmsUe&V+0n0>sqBEPM<(Ntgk2MJ2d^QHSmz@Q{PV;UOX_A;x;9#6Tm -Uzc|P|^p!eDW=HhJ9((=E8s^tk===S=DM^6XOj-ShvxYncTlD4)tPld)bqDBDE%c(&We$KAK -6E#suJx-oyc1|=s@2Yux!%L1^>8cZ+hW+XO4#mz7{_%T%$Dp|jW6H0^6+;GKwg=pS1(=_5;;sJ_gt3| -NBhlyK`WQuC!(GWY|w;np-7TgLuA~~OCi0{4s%Q_-oY7w~2!1&z8v*_ri474>|ud>5>B6^*b%$`_}pL -lSGoLbY2hM81+h586BiI?)sxhNkP#gB=e=hv;W1py$&YS>IYP3I0mdl%A_Uz)bo}C*DOSD0%0Amxn|>3-jCzq-f_(0#j?0DlkC(Q -D5OCzoi!UB`}!;1g5xDy7-T!D*Z%Hn0T+)CBlC9fCc_G2L>_Wx8G3?g%SeY1G#Xd&+>hTaq9vaVON12 -V>w8-?-SR-DJ%mRbUHGzQ=N=ioX+kxn(bXW$nlnBP=&$}vc*WsdK|`kCr7vJpPX*nHP^tNfw5$B`%qe -5UPMs;hTi-_g9lb9U5w7~k4?e?c^pMv3kKGO~j-RThf$myhuq+isg%=H5Z#V3kNtAy>YK^@P&Vn=Jzing@l)$v>kNz7$ogXS0sWA}L}yhI44#Nr(9hAMemrl!BQi=jdSTcPF^wRd=0Zp -6h1J?#BGtsaP(}^cn|jYrwah%0BZnd~TnVL|BZp4N?Mw3z+3F#B^0SN%^Y)c*ZIp;sI}b6*MWt9DB(Q -gK{`6fFz8|p)o4=CkQ#qfOq9Ag7b}!aZ912-#(AeF*qjcaZ(&>n7}Y3Y1kWdP4cJdjWm3eJ_x%*foWX -ei>i+o`0~JG6x-Db`;!vX#H5JkCV)6@ZFuJ5G{c!gRO0K1W{*0UkQ+g&ZtYt4lpbMUR`EZ$O~$z_!Gz -6$(Y<@gp79FiHif#Zi~_5vwX0eS$NB#bNB>W6Vbt3T -N})nwyvFZickME$Bl3P)WE|c(5#@R?0)Rc&R9Gl5xSz_e{fd=O_i2KOEoq#n7sEYj-(G^;t?ge4NpvUzt9^$B%AmF;ty_4v%M5WE5`nDXy!*0E46cOLl7Xi%P?am`zcdi7_*1*r8ZZ#OIQ~3Hg8n8 -)Uy&ziUie1q%?8BoAbyfqh=>hxZSh~!ZoSG>5zXQY@z?#{r(jJKsyjhkaIwuV-x*Kxg&w`5NAdK_cX) -vA&3=9vPXb}^z%@5zm~%Z@C1bv<{`}@uuY35E9d@3UPIJz#+Cq3CB0~i}4u>F`QWIg*!koi~^PV2Jyk -3afioR7Mbyy|K$d$ZjXAu%*RD{>ui;HNl2dcfJ22ezaXklGMX|i0;@$g8+Z}mnnE_-pZfp-SM6pcn#a -r7CwG#WKbi&Ta%8yrR7q{wSJ%BIi(j##3+FxS~n_MJi6_YxX4KIPgrH|;z~C!XuZK&MkN_@Zl1U%8XN -9rpXZe*fw7)9-sBoz6S;b45 -07&lOAcP2|a0YZ7%W>b(*U{ZN6EP9D2x-i1*SK!K-5CpFz+o(qZ_J+R(=n*L4pRfGoJUed-s(ME@=i^ -J$bP-Xx@bf6crv6q0D1dhGX)9kGr?4?x$Y)f{_kG8)F$wXZVsY`yz7TCt;yVTL8cZ%7wh8w-4g=9RXvi1t>&KyX|B}jw10?|-Ht||8#47*l1rKH0<-koe@FnlYj*~Q6-30HG>$CJwB -G2U!pDEeMpic;hUpR*+?7!8|;&Ib=to)rLJAbFz!Kd4B$}=NF6oE_8QQekz9{=6bN~*;Kv$iQkh3R7A -Do9XrqC4uc==SL$@?hIDSMof`Z3cOV7hH<6<)PcL*svQNh(jD(KcY -SWYonwLo!Bl3ca~pHeX$~iOkD8JUr~)Qa2>68mjSCB7>w=HnM9y8{c*Wtsr7 -0`iIdnQhc4voI-aA^Zl|O%-vN{+(?$f*j)7MpaB0!rmYOvJmr+Aqq+E%ud-D+!Sj;LS5~40)ybRr@@j -HQgC`q#CkPN30)DuKqVQcIFI!`*Gm`Zr4#L>A)%!7SbAF9=h6;*6A6(VVM<6lhh?R?ZiM -DQ%+C21AEd9aW(0yxdj~2Q)=hsBu|jPo5@_VV3yvCj72(8{+M|58lRNj~`6&GvjsYnmxCW -<;llt9i6Z(O=K`^zSVeTSC^oeddcM085`y<^L&b9$(V)o%134DBuBdl@uL=j8GEY>=YMT#{(mTX`z%WQi-@ul_TBV?@ -@n>H-UGs8WXb0Txb_eu#}B_iCTYOsX6AKb8y-%9eI+=CPw*0AD7GoQJn9F#oZgAb+LGW0qD7@W0=xk4xC#H6(vE@f(+)F&0(x=MQ|^M126&8H*GeH5_*!Sa1Xe^GF`&zrf -##6qkNS>?@8lg1K5qbTa4!>&lvF4*>R`|m`|QMfbYQ4TT-(k=I6f$@_h<-%IL&OpE_n8DlAtARZvvC%!=Y<$S3gqQ>FrPkmIx+Q8J$;Z;FOwnp^{rRuFgLX~?|eKvPtWW9%r`+qz2WYUX;moZI -1DGrnfJ3Z(%mRl3gks)4$_VKq`!8E+%qmIiz_Ur_>GEDcsA!a`ZuNJqW(lQddjZKlp`ordh4R0}W-nAB?mvunRgm6WTZ -v&4Tesdyz^`)1{`5C?#6nuyQA05)L;dxx(7J=V?bL)qPtfqWrk1BQ+m7lKwv)u#6Gu7L~r3)}zxXbv0h(<9a3*vYM&c2~RI&fo~Q0|&isqqW6F`%R?6w8D -7|@|Hf*dnJ!6oy+?E;U#n502n-n-G|^{ARSxp=+~>(f5taN2gj<8mrCGP>i3UCC54vnrf|5;*y53OoK -zFc!d61F>UTAh?Qn@+jUr}W%gQ)nEGza5b`Jwys$X78#2&iz6x@bFy=PtL@wtjO9x4j;2FDw@e}3HQi -BeB1OFiv%aOf%ykp$>@BZ@k1C%^g-)=z8IQ`SB?_R%&#uHeBL_9Q -vS0NgdC>tJN#dw`gE)2Me!54(9_#I&4zYV~|U2q^QXoP_@E&p!N2s{)uP#^+ZTm~wqB0TWI#hwPC}GsGX)(x9R1e9G?vXFB=^AK3KXrzChGGylT -|jAcDDA)Gj$9B~26rFglC>Qu0TP{Mw#20aW{_=HL<)o3y&$qfl{l)<9nAWin`pU=(Q83U@@LFv2<$2G(x_UA4gfPk^w@<42)?smFa$2v-6qO+Ne)}%Xf> -6RgTbWxm@oln3Al%i;jqDvqd=S&;zG5+&9#Sxo{N|!6FS}}z<`LY)^tXNQjPgE93$Rt{y71)nd#?aW!cam^C7H=>z0h9T -iB9gVh%J(Vsw$nM0x?Dl8H;e{87l|jW}!>XP5E8IG$zVnMJFQlGr?}MT}lJJJ2V)7Ok4YAYUwRwwf8d?z3LG#&rW4r&`@VVg5V0@-{XU2y39wrXPj -Tg7uy6Z?rbS>_QSa45ViPbP@TfP%4dXgkt~u5FEr`)(Mn@zgNsLZ&kF!Sl#7$R@vnb(l~#iJ`evx_jx -${kAPwb`xRUd_E}Sn^b^&=z!{K9=tby+O>|$uP(^yV;E3`|omo)T`Ra~0LtW?v9EQ+4!tdmLzqX3^ii -uYwEA4-As3wvLy>aX2Q>u9ilNVoy$qURXk-lylcJPJ7o&pyQ!KYdx@dPKoLyRK`L{4h02bJJ;yJ7%1S -dH(vqUiAz;QN$*iL18Jyxg08_(Hbf{wDW5PHb8ew4Ri$3EfJY(5--l+k?gJs?CARc+xoOvpRR|^^Z+V -9Y=?kVn<=OuUsVV8p)mnf*OLrix*&y2W7whONKAZ`6eByR)`@^k3F^}QN`oF6lR-szW|>i#=$FUgZAq -o=m~BqT*CiefuSe%OuSqPq-16AM7MAcPi(06o(9>Mi+Pg#bp_kc)vI#_L@;01 -?HD~$!O9B@8v#L2Db^j%?);<8t -5k480Dy%v$*r5oM~aK&3T)&b<9On5!!%@;<}Xjlg-hc --Zm$eKBhZWZhWb@iXDm;pKGJTCFTa2AySW0wrH^G&^~va{ZIcEmV%5>=%zRe}YbGp&BGJ69{fz7%e#?G2j@gdmpU5ZM}!of~Ou-sVyY@@&&C0Zm4NhyrI;#|6WDR$fJu#d23pLPP|s5hQ_CTFs%(T!ol_DYNkZ(BSm0t558cW`&L>T6EEc)xO$|MA^80Ztfp^q`kV%!F)NTiYWR>{9ez)j)%ys)Um --RO6_z2S6xJRCO4E)J@~NByTq-DiWrQ4bdV{?q6E!$ -CBUpFP*J>@T3I#v9ULoQsm{fZ}L^(+3?~r^zpC475%RR5;^iipF#m4IlNMA3nfv9zN~yr*;Ro98?ry- -9h~g!bNZURU}sbrep2Hx_PVyJ;iEyd6)hvK_D8Z9sjKcoakz=l9z -c)_}TKbv`x9NuA%Qd{!ux)z~UMPn4l)-F$Z#8UaDcp>4iPuY9?azP15W$GRHhcFh@6$QGcP$u63(Hyg -ohS427SjpnWIG$qsl^2D!Ha}M;>!Ns@WJF-AKba?la|Hx&dqm=~)y*O@&0@aQ2H{34vAc>S7jnFsvKT -)TLPyY|Lfih~0f@Dp{GShm{IOyeKDEcd!g{c14vt#(VE71yX5Ie^k6`H#=E-%D&9e1|h$gA(pvaE&h} -N7ZAI#eOZf(l;6_Gc4SVKXrz_4QCM}*tdjoeiYT(8&HBiFyx%(3VlcU$fZGJ=v8B)SYTeQ8K^+3qbN( -dDVgeM6#e=wS&W`i9PY?TF|#MXjXp8wW(M8ZB$6ZZC^%2q(KR6t^I$+xvVE-Ks-9kI7Wa!s|LoXTs%2-S&s6jK#(o37hErK4Qph2)1Nx<^gZE*L&9l_m -YdLKm&oS0iBqWi!+hsN#YK@VY}HUPSZ4zaOvDXP1!FdWV{1G<;cpOt~S>+&=B3^)GKEdhInzB`~y_X7 -7W+1s=kbK%}4i{&{S^62ORayYaiF`i)L%v#L(1TEy!I}oGc!NTkD1I0S_fYjB`6xb;Hqq?dG22ckgen -8h^EgW`-ibiGM7KhzsN29VsKkgOGTUn7>xiPZv1LnraCS-0*kiYWWm|$^RU;@`vhlvSH9nTEfEKc+FN -*uRc#T+_sApkj$ -2D-+WGO_9c}T-o3R`fVVM*XhSL6XaJz8ppi{{Tw)%`=0zd@Mg~n{4Y#0#C3vgPc)v#ycXqd%GKTSWaV -8>yzb6qn=&Q_8&i467Cg0nPhR!@&)FI;HNe!iGYo^?fsWvBHqL63X_oeOp1QnBtFs}{WRp)2tw+;*;* -G)$JvYR~Z*2#g*Hs~n-!ss@t_-xGR&}g_+5&~%u4qHa54MGp*E^+IeB8y&b$1gYyisM=#VW_Oq1|;=z -KwAa+0EZK{7exT*wr6AcM;EZsUER6aFNHI-Qn<{e^_0j4`q(ZnK42Whb}CupyRrG5%A(o$&7to_r -4Ut|cdxF9b$*QuGf-(F1BQE38ddKwp(@=Z(L;2Vo@dAfl&4K=*w8?PI(@iyBmDPN`iQ6~bl77B9-XNe -iuc^RucR;=DRDZ%w^n~59&dXf^Cp_js;1{>T|jKg>5Vn*qz;-ot>SXotG!U=F`n!l#i3_YA={qlg&TjlZ_|AG#}5?IG8PFQBlI%- -fXe)1fIXjXNw}ax~_t7)CqRBwstpnwzmHq1n;7G8l3lnx1(?8NfA@wcX2UI$}-8bASr|ExQK^~;HrqS -Djs)(NfF0EJ_$zGQE?S_gDMZAY!S@jqJ#?hu!@olS_U`~baA%8veh*JD)UKo7ZouS9|uuc=A$G6h`~4 -?&8KlzMHRLXTiJo -r++(oefTb(IVZx7$U`VJl(ygWKSI{!yEcyn}qf>7T8*n{ -BR!Ta;0SKl8Wybs=e|Nh{5z1+pq -|nCTS0Z|pzjXJZ3bL#=}e_6%sdii-?b0xXqiHY@UIbd9|n6)`-7($LQh?kD~#lj#iV%8qt}+p3_yL%d?q)Yw2%*Qghg`wdLWmX&1%@}> -7z|p^%P5^Q=YG)*o=4*`jwy~`eAXHaU}qT4le7xvGw3DO-lN{{4FLRj(A|(fj}w^eC>=06mQN3|@gRu -P7!{>9Pvn}DvjxbF6soBR{eZ=cl| -!!E37!S5ZVUc(AAZ(ixYsy`P|2B0dN+fSf~axLZ(5r#fZJ0eJtBZJ!UVtWbi@i3L;@T2Y>wNqxx>lvT -TKOybqnNg#I#2q -aNj=Au7D7=j1|4R*!vAm|26EJ1)z<7(9FP@6x^bHtBWlH85yFdn1KGs>sT3^q2tjVtQ)SrySb-Q3u8K -O28b%7oaVVw&Db8(3V&o_Y}JfSVDFVN}L8_nqct73A=)&@-|jOC%XQhvt!3dcpT41A)z1G8^0>;*SyT -TO_Al=XcN?Vt&(L<|#8B-Zrc~gE&r&H{rGjSeMUVL8k$Jsosn3*^S_VAsRu6;0{>I=2ejc$2Qwy?rm~ -l;^5d4{YG$zCmw@jys)x?lhGDl2POgiS6t+$#oN4y37k0Q6tRZY%!2s7rrA1h3CH1*1K_@&C+hKA;$reOi*rO2! -iMy?x-j}^Uw)E5UWE%6E-L2p)Y$ZEeJ6pll*4~%9!T0B{uq5pDFhDLu$8B-e4xZ1d>FDY&bL54+5@v1 -`!*acfds$q)fTqQk&P#cNR^nY8-4yXe?)LZMnAQ&ktG{0axNjCh@@stOfxpH^vvOiw{c)0j -35^=L-By8Hz^dlV0&(T#erm;qr@FM(QMNy21{SMoQ%mDDfa!VFKZfYHXqhJI31d7cVzlX*6xpR&eX5z -WLq=s0dEAi4&s=k#O>TlE!y+^CAho)CnDEU>F(Db2bZ3jr^Oh~9^=;_^x#DFjo*!ZS3niuoNJ-zv<_gb*906tW?|q2C&0ekq0kDFZJp6}a3Wb -!W5-z%bxQ96-v$N-XMDk?X!iiocbLFdzrZyzNv`Gv3B$mm_${$02U6HEUib95A9*7-e*oKXUY46{v_r -Cp7AhyOd(R6g<&ac2WQr(2n21WDeS+1G#pFPG!OH~*0W6l?!m%(Gyd8EWyEWKa&x?87<>|f7VO6RoS! -NF63@MD-0p13^6OFLgWDjK=-^OV^!!45_lF$!QHY!>9a6-Zk5n~_3-#$nT{VKnS>EJy{BRWiQi@+QB? -0!_1^Ei0&^)4d;9z*A1nA|MR=Vd@5l02m0emYT`y4dqkw1%-9kUB+esDKM`06?K2p(3XRir89a`3A8V -uzZ0Z#Ff#*;rt3aX-M-!ffj -^-)5AydF$i-|Mo$W&^wiW0u~Y}-K<6VAad4{3`OuJUB!<6ONW4}!9W(&-Ii@q7bB}xR -6CT~G8VH%N;`yM9z$m4N3yF8j%vwfyir|Mdy>aW^ -N7yj}qXRTIkHHK?dXn`_k-w!UbDeV#P2bk|I;4_p3JGj2HX|F`JM2WKdb(FYzy`8t5Z=I8mVJe^Mo>bE$3_{HeTF*I|Ssjs9M;~%1HRzvTAFU4coklyF;*GW#l`D=BMQ4yt#;UDSZG#l~v -8DFo^_rh%knaxW;(jf`SP!NmJQ^A1_Ghm$zi67Sss)eZ@y@{$QHA>do6v_@&cAx<#0USIRFAB -^#ozDa(Hw~9HvX2C(M=7$kFVm7SmEp@nVpl$n}LYw;2&y2&gL^35Pm<$m8ZVE64wqc7Jopst5Bkk`E6Od -1Il5tl=C&Ufc;j}NmdsTTZfj;0F-MG^7u*~|q$9;WuZSWUs(GdN~ln-xsm6g_}-cRHbO`CT>wVkBhKz -++y6LHj!X$Y`;^Usu!A0R17ljokjFVs)o_`K9La!yj4hz@0`nF=7I6O5MQUe>Z=^^20TDP`%1i^#s=J -Z33qcToAQ~{$>_J6&qk7jW~6R#arKk -4z>0X9-^Mh(CI6nKaB47V#A-pj#|v35Uc$s4iwP*NQg;EDMU-9fOT8W~h^4(WNp(hiL1Sp1C8K;CYpC -;?O+&boAIK{j2Y!+P-k?t}(|mM8I4zQ^1i0mS{ILS|&JA2icAmgV=p*plNHz}DB4YxvDZ0LQnxW;Ym^ -N+aZ=)Gcgso1spNX*3a`Im+Ms -TWHDfx|;9i@Jx&-0>K(26~4z#va-v^9HFI{i(5UuJCB4?7C~{c$`%LQH+r`=$hKouAG%M{{+>~3DCLqk8>fq2aDsg{RE14(Y5q%iLc{;&Mq(~zcDanC}qa@>$VG&0+WV{i7 -Oh_Asc8PJ%*HH;i_f{x1>r>;7;SkkKjACfp1rB6r%^epcc5oF}ViqLwLl{r{<21$V$ReHyf^2szp!z+ -)Cdn%-+JAWRH1wV<=T+%C{uI~3md;PvJRe{AlVYN>dw16ogPZBIiaU||H@gq`4A| -0V(0eBIzqE@e*rAZYUbYG+ITGx8f4CKgh2s4i+4WZGqF88R@aS2dutRCV+WloZj2J$M-SXMb-%#in?! -afWaG*&WxB3>A7chIPXm?2DJKQ2cRl*21jF%Veohx9P`LpONd4PJDE7Fw{7fdXs2#a06|hV^=M70DAG -P0@Ok%<5nfA+5%o6@&>iU9EebY;nOmSj -0TCR#yiyTT`g%ohK#G7tau9RCj+0i4@#%&yUTt>$Fcd=m+69rGxym~5ZsnD3b%!8Xap3#Oaps3VX~V^nb&$ZWBJz*aI|>o0RsOv!mt|P7p8UvO5mXE5~u-0KBur?QpR6sQrSFNqmOuzn$U2BjBFO$@ -~p;9Myk*hrej2=fea0WShDCzCJSv&jH{0p6z;_J^+Ia~Z-S$Y4Zb#m=r&KrCEjvieL1rL`YNNlOuE-f -lTlT|#*m|p@_eYwm^|GTYXQa-&f*>;1-=ko;4h$t{#tnL7}9-TY^#d8BHB?c+?2qXd7sxdg~4#amq1Z -r&;4e=x(oPX%GdZ1x$ZD7q^Y4^ifG?q!x-hM17JjI%zJ>K7CoIXZmE`la0Gb53LY?9Ji3-wa_4uUTy< -Sd?1qGrDsZr8ge@2s+Bfp>TK*FOyj&Zo>|=8eSAlXDGjn5Gqzai#OhPIZ5!w7+wP8b*Z;(5^*hgV9)V -;Bb;%Ac2voUiGkgMnyoFB$S2rzGLt3rJY4v0{}_`GNbpX)we$Ug0<&OHl2tXFbP0kS_TG2q{2I5WH3b -{A{d`n>$S41zFXBg)|OF`QvSoSVJR$LP6~!rx9S_`Eg-_=J+Vc2z6gz?o7eMDc@3tJ5*&3azK>lO?*x -XGwaes!XHe<|v!ZD@8zEdKMRagxPPs`0RPhW*diS2Rss{-+GzRA{0hYxCQ{I5S`fa8o`$4z-i^8M$0h -t*5Jh5Z8?ia=)=U)ssA93E%$}?Mqzi2XW46*&kS` -1%aLnwuQzy&y5TUcsobqwfJmZ3?5!WT&ArA&X{7^4sDGaN2ERjo#TXhLc%U$$WOPSSmk>6!(SHLGz^A -43=WY}(*TKa|$tZQvSpS1UU%BJ(s-A15>%(nirr~1`1#jXk3?WBiR+^ywg4(u8bdhz2n(_zLnG>?W_DYO*KISa+ty9WcD6SZ@vvN1 -qH=rW2zKPa0gDXA*o6nP>Uw|s>jtszt&-xZ=m!1OjHw{gFI35-XnkF2Cle(LD&tr(;U?FrQp*a`bwb% -w)eKxl5$R$a3Lv#8?XKgVo_m-onBGeIQ-}|`RgCywQJpIW<2fl7WYZyem(dvuM(NCZmyW5tl+0?56!&~TVMT+ycD8| -21(_95q@Ia;t7@T3_%86pzscuaNB)GbRF?jC~&XtKzqEeR=9?r~k=-zZTplsOV~c?}Fr&((Xu10pur* -(5$7s-!}vNni%^br8uOW(tRU}FQrWHGoxr;h~hzLH5o`V~e3G)9gPmWSmjo~Z5;c9B_dgLCOHBP;= -hsl9}ctgDo657TIY9UK*l8KMZ$L$7yGz(I7-qa!w6E_(^@B`ss)m}6 -ni{W -QRX4U^yE@vZ%1*5>0TUnH7GG+V{L^qfXF2Xs24tvB|b*w8vTD^Zrpgx{~Uj+VW`a3`pj_y%_0d{$c8^ -<+AY$LQmjF62(hjx9!y9hGP-jXv-h@eCKB?jiz9geF>Yg6%9o=yM;M#6?DLO8h>Zp*h*E418r2uFt3A7~>Np_!8?jKxK- -v4?noM)}xHydrV+@{7IkU!9Q5dkK0L@FBqS+f@>^L6<9cwa3)ddBKXwbk6Z&GEwT0t?t$8@KpVagTUX -#DECkgIW+;iAE(8E})J)9C|vD8(=p-(1nvTtC#g_iJ@l -YQd$Ntr0tW!RKX5>7m^wC35?wjWU`uo=zqx!m`bhXwNssZTN4;9a%M>(LEZ!H0q*cjh1z?dQu;W1aOg -DuB%nXm!Yb+b*Wo~A&7z0+cSG=RK`NqrXi4GqXMS=jMnzN0EWS-94%UgEcqmef0`%2I)rWF) -L?t&a0EEJ`??vYU*-#HaKnIVC}Nc=II<{I#ZXYI10S>X46E)fW$yN$|NQ4Kws*eR-8LJ-RfE2&Xc;ld -_Hk)-eA?XB=OqT!Vcx=p!x#_}mYt4)C<4_&3KitrX}K@?InZmHb--Soc4sIp&)I%H@?r934-07o< -LC1qp-^XV+?w7LP^X8M)VfjLGFH-rer1Hl*g&-RY`y1U)JbS4Q+jG+!!ao@@DbBP`IJ&vDV0bKQ}Hhw -Ije4)5RZTwh<-OSt;2m$vP)h5u~VlUX;Hl9$A_JZvl;~6dscmyCln<+>N!170I8+L>E73L^-{t;iJ5_ -idc^4>-PE=uXUeNAlWIRv0CS~d7D#6<~nkAZastB6-u&*)djDMTK{xILPFX9j34C5`ibBPKuhMQztW= -f3{xxtN#O@YwGdh_VUJD8VKN9R0xa8h9Do@iY~Hjdngg5gw91|LQG5Lqy{}`r<1>14mmU{A(3JaglN7 -*S6wE7O=FbqOy-FQ(H`Q`l6wUZx?$uRMOq};M(S>>$E`ZO#JLPjrjB@H2@dl>!lB?@NUe(E$~lh>uIF -}xH3XSa>j=>D-SF|6VuoqO#~MR;SyThS~3yro}GAApMoCQgn?8rxc)?lvAbv?Lmjb2F6#yGtj1m)93? -`iH%5yk1do4w0}Xu>%c^hE@OBNq6G2HG5lvQ5X%>XMwA;Y2FD_lv$T~VyGa7P(Qft+`3)sBQ8r90arc -DWFiAD`^sHV8-G-Jv0q6JN~fWa-l=CWC3_(@IUQKhj>4Rr}=Ebmpe_FsWyB+jPS`C+y&1=Hk|2`|}~xx;63 -R?o~HS=hc}|>cp+Di6s;Lpn){4=UZI3-a$6t8{RHuX7JvWYA8-yXxvf>Q>!?Alyx#)q;yTGY$G)nw8} -wyp2cJpAsH0C#Btvw-8441WRp#rc34`8&)xf3^)`66&;71f#F@la2{xKlcAPH4#0Ko#J7(p2TsnM%-w -DBoopYWhJyABKb~_#S2AeANgo{$>HabZ@&S$bY(h8#=tPx?=Do+7CNdCxy{S*bdH1UkQ{!r}8-tTysJ_1lKA2uswPkCQpx}q*nh-5YmEHxDOb{Xrto#nfZruiT_|s;-+LiP7z_^>x{ogKt}8(;B~OpOeb61~@?F00XQNC& -!YmVSUeTt&yzmW#sSVjRq27L;?Xw0b21kCMja$Pkp9$gMDSG+ApQkr>_^rX -F`#p(JoRUP27ZDafkI5fIm=@5bn>0!e27@#ztHGe7tv1ituCs*xRo7Sm<5P2h_rU-=2|vnsifM92jE2 -DgJKGryFi3@hgE%DXYZaeQMCX?`Yw~fI!%7H?RoS3|quatRKudv$@TlBoB;ko`Nq$WMGq?{5R0O@rHr -@7vkfP9|;Y_+v-sv5;TRik--69JLkS@y^dK$|RuF~nTMi~keQ%G4{iiF&)~84lKWJXH=}>Mn} -=tB!ka#T*DUuYTJb9>2||QJ@!$%SW87wRW13XG@}7T3vYWV?^k6kKBrY2oq}&kVIOOvWbhWud=eAvffKEg-N^ -U~vbPN{bQ(CAV?LKv6=YOWZ=R2)*ykN7q8@L&26zCqD)N`;XBjkQPWpz@7~TOycHNWf#TGO$sZ<&UKb -d6U-_GJWlLxh=jFvx21MGgwp?j@e9x4`o=6~J?2}&jsb@$dLy5RP1IjarloD75Tq!zTQ{*@O?=Aug0*9Iih6Q=VBq@@A)ws6t7Gry>hl5NSJE!32cyt6z$2ph -3Ea6a86>3?ErQayD$Tqppbq+&^uxXAYd5{ED0dXBkF)u5fB2AH8+55dY~0t9E&To-GPYlC3WfOHkT1bx1I}MXbkmcuNSceh)j7vyA*OUXWc+HuB{`+Vjlpl6q6;wq3AT4@!goH<2_WYwVZV -O55QPA`0~py*IG}a??fh=gyN5tO+sb-(=sZe`1`C{ku>s%w8UpP2W#TAS37$7X@iH!8JGF?LXrnbRyq -qG*;r4>+a7?Vu(;rC71yW(OZ4^ol_Vk%DsN803vnUB>M6yi%1e)1nRJ*E?oy(urZbd7Movc^T1v~C@r -R%sr#BxaL3&dfvIo85H~3;)-lUTcH|ec-Q}G2yETjlpb=e`Bb-KivN~FW;blKZ1dL$26Te^%~Gm2pN&bH5*75DS|}l`Yu!|@phh#qF}`Iz1~CGTeYd~w8jU=W`5h7KAm -?3CZdz0uTiYCG{zQ?WBZJ^JEoyhQ)tTNCaS0MFgfb`6>KycKvDkz@dyY%3ah=1C2tLR%MYOLxJC=p%=$!5u(^9ONM4qrRAwBn#**2^C3t}{FlDBTyv`!)n(OnKEJ -vaA|wH06||0`yGcIXsDh_EDNH**s^;jljl!hzv^8hgBgK*3wQ%>5j&?#Qd(O^-I;%m?N&tf=0U7|MQz -*q3eo{L_eNPEOnR1Lo#+Y=BI&DXb(kSc;Yiyxu2AM -tD~(+*3bqum=5OHluavpS8Blt3WFv{-0Hewn-cM1?e|e%)8tt#IJS9IJ|KDzm!)Pwh2+dk -*b(gHkh8zdYQW^tbGt7tB9k@#guPHh-MzNx6Xo|L0<(#!JqAE7saSW&rr5(&nj2$1-bzJF8tKk@~q?0 -|$F(F)T{@2;*39Pdsf#c}EQ~-$;(A6}^W_}i=yce`~w^4bH1PnhAq4<*)0RG--{pww=HFG(7h_=rY6- -CoFnev$S*NO`(E8~=iUR+1;(8)t0y5MHlSh4S;m@)j&lZG@6qPR}R;iq2zV4T_)qT9C}ed+*+_i#Y4l -7Yyp0_+VQnH2Pnb#M_FwakV{FkXZ4Ms#z4rOCL*p9@~PSvKt>GQPZYoM<|KVho*{pP650>{e1oB+Jv# -DO5lB)J{Y$T;arHczZ29rAOu8-yRD=c$|-_=*sZX9OLYin30QP`tuD=R_(W1-GIXd!9M2t!kV}YUt?H -3O6JsAE*nBOdI4qv!)T~N0vWSPj7^77sz&UKz>dVQ{B~R3o@8hn()uyePikVm9G$6zXx!Z4!}W(sQ3>N -o4uvSZR$@0wd6n8m<&L|x6%zI074xs2mZO#1dKHW-w-3|w4@Qgwe%i}D*8n}dmFhgI%L> -*)OOt$`?Uc)Q3_xvF5ldfw{FD)8$?%aGJXU_T+D>U$-JH7(m)>e6q6cTAEQNbv6uvimG-BM;FvE|N9k -L-WVRHLY1!Pm|y4BQr=+u1@n>WY$;P2Jd-{_eA<9$LGsJF=&&w<2>yA-O$G&PCXZJE_1p7m0 -CID-7FOK=K`MQ1*6xVE`;qYLn=B`!Zp<2)|+*H!%$3*UYJahkr&#|sg!%FN5e+8C(s(Gi~=0!akVdMY)xZH@KVdpU0-Gb!W -3GCXy{cq1N5dE$)9sTL5M`NBGVws=r)&K<#{X@qfAD{fLJdx^W!&cw+p@aM6dbmnv{6Z+8teut7nThL -BR}><7O#-9M29uN9Wskj&pcMF^7Bi;AmoUkCVX9^g1`}!kFMfY$J0kl0%~a~RnME$E~=WXsNC5Jwzs! -8cXl>+;S)UB+1Y;S^w88=Gq^fE^Ff<5$dX_&8{uA?ulgy>*@jiPW@d}Yy!L{f9hVs3q0z&}NvFEoFPl -#1jdGst=4YLA$m!cUR@qhInS1UEYsz?d-YELPyPn0I)-t^{xP;ZyP~LEQ?PBTJV_kugMyaVNZVI8tfw -8CDh&q_-ahq&x(avjgyCJ$kBP8KJwT2_5%@N6LTN?txF%lz$VAOjV@`nSvlS)`T>T_0vt%l>}YaJn8c -m*NR%NX_fypka@D>^CV+S8>$G0+PRMyRUMRqMh(u?$!G0^vTERzl> -rEfV)BT`QAeH>*S{Qp(|YlZe&!(xA#s@EziVt=WiUi!I+0JgjBJQq>GcD#gC(*>LyW9FkDv$n~MOagV -R74&7AI=t&NMCv+X>7p@UwA*&DB3vZ?Bk&R>pfpb46sKW`y}9Y2qkyGs(>l)3BXGKExd!Q+Z$6j!@aw -Ui9Q!v?qX?y!+6+D~_X4_gmXc)H4k(5{bA=8nX8f>fK}gn&?*sK3gg#F%Z<(wGFOz*Feun=z{LK8J_! -|GAP!i43#qx88(UPo&GN0MtO=(Y1{;F3?Q{`eze!u>Rmx87y+Ng(A%FU3az*Swq`1-yqPeBvVh -ow)Dy`414c;KsKdQ}$V^^O&*RbRRGBcL1AUOl -lYV;|R$ti{cSVK3CEXMiWo5;!Kl!ce1m0kbuBPLwb+Sd|<5g#bydK|4eloN9wW-f4TFK7TH&J`HVj7Had&5HtJB@y+G_bg2(*TG$ru>bms@Md^Uy%sS -wa`>+M}R7tUbDDV~$e*FvKvD?GgSM<3G?vH2VNV)ovNu+xX6J9b{34EtS_7nv9-{t|7vlg4b0tx=CY< -yI$p^JT)|xS8;_Y{^I5!P4-1iov*mZY_XA$j$T&1E+HLO;JfcwCB{XsJ8 -2@;Kr;^eQ%i5;Q;Z94}$;=A5#4X9}#aP&X4L4+hWA4_;zg6X9Z7&abYBi69*2cO^R)C -R7O!Yh)$6P2xMpV^yMEJwib8@~$gvql5$?@GM2|QchkC9LZ8{++9TqFK0glitxtYy(B6jRc9en -k;l#(YD+%yZsgI!9kqJJD{1p93VF#$9NAqjb51z&~4K1S}mAM?pfYucTZjeAfftrl&VhFZZ@5P$&59fOSng#8Ixa+8fPp4ai1Y&zK)0UD;=pp#_~s$(sefj<%3e#dP -{}_Ep?$mMaVXh!*Up}#6-2i&&S=*$Luj?E_vBlhw`R7&qzmN^>t2G>;B%-65}psW7T!?wJ)s!aQ}hmd -?VO=L67kvRy6Nvtga}bYX#~!A+Xi_p_A`?&+NxYHk8fN)P()i(DwkzwO{9(AR?fvR2%pdloS5!w!Sv8ZY)4Fbo@bQgmzm#3&Mz%vL(-&0XQR9{3Bvwe^=*!r0cMZEOD~e*8vYGS>*xs(aahnIw%sbTGJz5D})iqu7+b4y1P!&7*?ev<-v3BF@ -T34^fuh&1p(i?tc%@l*R9Mzb)*!I3$)4+X}D|nswWePvVA!>sA14e`$d0j7^&X}lHon`MFhhHp{50%? -!TA_Bx1UF$509sB&Re2m~J8|kBYo3H!&UvY*y%J@)-2GoLFV1!u2TCCDR~-eqpM7#0x_yk*z=8KQ?&L>Obh0bzu;%yfN&QUc*NVK7hBaZtcKmdk1kFU@9mpakN)i}9U -X(R!V<30TU*$$@Y0O2TKQ_&Fa$}xm_hhDE|C`R(5mK6rbd-|7M%Qs)`Ccw`yi!=%$MY$U$jd*2uvFnS -DP}Ok?qbM2>*H3MmthCe=vYqoJDDc*(*g|^qb>u9v__?_Fo^pc>{y_S~PR?COA0xNAT+O^_t1}BGqKd0va>a~E2&tDxJ9|z~ -B!JF?-UIj-dXGhS+5AP4&y*qs0H9GSa8+v&dygh}VM~AOJgAYML4%sJxcHg@;cRGq1W>FtUPo?`b8E8 -?d08khR{R_^2&vXY2{czJh>D~Xlo1cH@gZ6!!pXP@cJhEZ)YuNeL*!G~#rV}``6!!0nV4RFedjmU+2p -gQw3$bfpen%%HHGRlq$LMl{zRbI0J}?mztvq0iuw+JLP8xP^kqm|kcH*x&b%%yMHD|FG}_= -Oc8GUowbgBg7Ae;{j&U^jgd{>irw$+WfGT>^_we5K`K6B?S2)se)eV20x7s28<=a1jw6_L!`&rKHif)4@~Le0`5E|Cyy+I-v4@7HeW>`$#0DLJ58rzaus;%(Mto1G{ -HD6S)htRM;YVEA^qvZ0w@S*loS36>9rC6PGkpo0|sDVX6GDiR)nQHQ73hi?wPKR)mO@ZHh*VIO$?`!h -su@MHF4^<%+hK=c^qWz1Z*5?QzTG(qqGf>&9|$hk@Z3F0-MH-ETJfOpKG-m7cqOE|)Ro4g24p|v6z$E -Bskx>Fzms=e|a{7GX~^2ns$-GFpU!qS+uB^Hc^=o|K>b2J=bQ$J=`*GcfDNkVio3rsUv -98=|jDAPvG(t;z?gzMzAg5RUYwh*UDk0V=T(lZXLVCBuY|M!14fj68xKssBLudF}YS*ZPU9#C!qJf$Dtp{48{@|25B~$ -zsg`YIQ%%Hp7`dSB{Fa261S{rO7?Hw0x%Ap^i+&gjsmy{S};uUoE$3!v!zKfsRPfrOi9uBmQsPUEJ)# -k?N&jQn3h+zqd#{CO-iKoL#;Q{sJO8$EpQX&wAN@$js{eiB#Q1$$S7$vpU%-r<2J@S0!)aKratWPvY} -K59GF7?ODt#v+dmw-Or?0~Qn;6}ahbd;V#Y*mK+$cUpaJC=j%g9ffKoFEJoufwfVF|WCT071v9M*mb% -K|?%Y6+<{y*Gq|ULZX{agvEKm?uo_0cuM7I`dJ9%Us<^q8E6PNuy9`J&7$RDXftf$yGw8oCHwF# -1C^=LV3#!NGo)nc=fUuP%I_*hCYWKAE>|TJx&-Yq0ax*Kb>EcvOA0y|dNDYTe-LufE#-8vgEl{iiQ?zxwj4uMMI -4@TYll8>L7%GHuLYfHztK51i(KL~VYKj~b@jz~bW|(6?enGhAlaxt?BJ=38f1b~kD>OfQzUdAZBp&C= -5I%DW@k0tW)NcD|Lno-3081kFWC!==0yD%f(1WO>1MCD$(DT?$!kUKiqdPVXbYz02qd3Q)k}btHUaiQ -9R5UcOR-q7f48P-dC=VK3a;-r4Q-dYvG|Y)62nV5`&RYva9bx+mUq^6c9DgfP+)^wzp(`;tkm)pjj%x --Vb4vx%yfS|aXh&nlg;ZDw@U@Au*iZMXU~Dg8Vny~en2IP!Z8OX>Uy<-?jim>uI4%DvZeov9GiN{6WDj%lYWLWMIbVhZ*NO9%#%%+ORkjWCr28l4 -!MvxrlrVErSXQ}clQ94E^WrIgb~5DkY#e49{gEY!6|AGJnKFy=hol9%gt@G;x>eDf|mLwpyx4ylmQGM$1T7vY1EM=>0r@Ox8X`0|ad`)NZ9 -hPng@Gh)Ufgg=aB-^m{)J?H$FusdD_ZGo!+&!X+ww+_A#S~=`=fr{65jJcWjiRE(_Flp%>qa1Fh~M9& -(Um7+-CJdZo@BSc!f3UL+vwSNDE3M;M!crLo4BD0^>AWoa-t!H9UyHQo4fT$%QhIO=3!~VdpdAXVhrT -_U2#mUaue7%De0%^}rpBffJl94WE)~Q9Jh#&xwI>t=nT%5Z^90qY%BIfF1PxXgGg#xx}uY{ -F`xS7QwxHwsrgF$*pr3knroBS>()RU+5AjSi54Wt93_FmA0iHgQS+T*if2?X`}a;JG`;nsv--=F*PbS -a>y65g10cB*r#+6`L1hTR2OZ_xPV?fOc2!4%qsH{v8)?Tjd71oTFdrmOM{iW46fbiCl`MQq=P4!R31K -Ul|1alqvWMY4%^=2iYA;{aqhfw)v;91z-Yw>Ec`XNQ<%6h}%}j1w4@AOkWPgf(gIq?0VP-|;j369y+v -Ll~!&9^GL$G-FqUtrY&SxXXJM -_vfId5>$7Nd6J0Svmd8oeV>)6`(qM`#p(hz>dXmY4ZKMQvx*bQMMygk@F|l!J2!0Bxk#lz<%!#SP2sA -Om#S7Vzd~b@FWg8Q_nnq61GvqG81q2i_&SQ45kkO7smoQTUwcWEuNWOGQDYGF*X2eoyc1b28D2nCt5` -*|roEM+Y#n>IREYC4c>2zhLOq5QYwd|XQ?7tbfx+XI-G;Jb-L5H)RVG#FZV%xry*UF@3o=F2y3}qBu$ -I+O>tVSv7g|N1?V9+A@BRXr)=l&-1#tF~z&tNwCNKP8`c{EQA`h2>*{6lnZE5un>T6KT_hc3rVpq!`6 -B2xARyroQtD3PI4xn+m7YSa(ZG=3_6o&-8`v#bCdEFJS5dY0eOU|7NtH2FXT<1>NN?H%!DciVsUMm8& -D6#}QGz+o4pL%;MW6l|rL5f8~Lu#lXVrlH(?p#hHnGRefo;B&XDr69Jr<`j3;VXQWEM^oE$;fBff42# -^Z9&pD4z-6H#7c=EfwcfRaT)slT;wU-qAunOdJX2V*k->aaY#MEyFwZL0v$&&8_~yYKOU2AMh$YJ!c> -Wvsj~F#K -BEK;1Gm~hOQTxY5&{Wjvo%Kydzd5H$e{@t`wP5)mK)VbR=c<4Ar!+H3{L9F#PyqeV_1=hEsVWhw07A5 -H;F1}5k+L+C4A0g(T+F-VdD)J(JnNU5GbFiZ9SPzVd`M!(#1FI4U95h4T=Kr-+60=YNCE3;<=l5O5Rd -Ei-NtkBro=Zoh`h`5y;+ek^hd2Pl1q1D#7vvV8sn`YHV++clX-g?vWq6u61A8+xx5Gt-WUXb|!-&De6 -Bc%}K>`hs3MFjN0N^`_lpe5v5yj=}B8Mw~m_~@4ts@0%5;VmMMa5!WM3^N^zjqf|)$Si-QG8;Q*uzWD -ravTCs^UYze{m4(*!nl1`p(r`Y*Ma3K?rb$AzEcSV6`aB%`R%5F-(X7|u-7vf{KI${$X^SH+DKzDdhu -Bv!CqgxFiTO7CxO9V02M@9n<4bNMtkahGmTyfH_RWMjXD`yZN;;npxcJi(gna#ZPdwbM_03JN;G(|4c&r^U)Ea|+;jHQhxIXFCqD*`AQq@D}2D>I1`k)Ect2^7=u^2?DI*w4<(j&1PaI*)KuDv9d1iT -UWQU~NtPM`w1-Arn12O5DBUhCt<38NOEnft)FrJOm(+f&P`JWZcm*v#P$yGc0S|=ZUpIWN(7^}gy0gO -YvBv!2@ugQTP5D`SPsfkm*K6B45*o%*u&7P!^YnC)W_@2ivfR=BlljLd@{UL68xQ -6gEBM7D@{0cepLh%&@qdXwtg~%5?6lF$qKqn^VBW5Kj*#Fg^fVkR#6Uv3i(P|J` -4frRD%i$kVWjA!7wjG0|2`X{4m2LKipmPyAO~&v={n7iuv%b61Xp7Pz5+G-vWWAOn+jc*XwK>=aC;NG -Qmio+0z~&RP^@c#_W&(Tpk3DHdtg)b3n+piZm3Wl6xo#dkf8wdxQM44^t!K-(KQYZOZbLDh`pk?Js3{ -B?6IXOT6%==*mro6PAtAE<&r8i245w5(O9jIqoX~nUQrI-T36_wb6Sk!A|AiS4Da4Z&4OItB$K>>QYD -66ukz$yzIlEyfvP!1yJVx=zH;jjvoYuE6SM@rCQ++C+l1{aCUp3U`hpjP!B05r@u+6`3`2;A&W)-25$ -x};@#4X;gI2Ck-6`)XRWMeqRQ#-1t@wGsidEI_w`x_j`>$M8_1>%3-fDi6%hcJM@B{0hKS?M}>?lvuS -lAkk{EjP -xoo`ezvKf(XrI@0mVm8wu_X7;Rfj0~F=K3IHV+_sr$M9FslU)GgJmJaqVyhc$=|Hd8uJCrj>_Z9<=|X -zC2%GKjByAvbSunsD!?zA@#GT>l_>2-Wa{0BVw`A{s} -l>Kr5@=5`n#j^Zt(W#>`dG|s~4Q6S>8F<+Av{yFBb@5w&Q+%{`@D8CAF;b?EkWF@MP|E?PSdb$&(ICn -oPUSJ(l&ENa_O7)exMpQFfAjHBQ6Qh~Odab@(w)$S)(~Y)Oi*hP~j4z_J-N#ju|0(!9wG&?;us5`JDP -w0EJ=o(f(VK80UoLcFe)k;c?`Rab=L)~e(h4fsvUO8ERCVTh<@u4foOHsM{PI8p+pHo0x|7JMUP-T> -$l_X3F+fo(|*!yCq>iW0*6D~9;6*an3FF;-OstI+BjkB^Y9hG@-IgOfxMu&?ecnf3a&aF{};PX||S1>M4uV -H(WXabH8Nn_bais`f^-w5ZRhHks7dD-cONC0iZ3dv{^A3 -hbuz!U1^#wjT>}G>^b(E#H;fNrCYR8L*eIKoUYh`Jz+*!Ovv*)x1#p|o9_mBCS1aKlQBXL8BJb;SUHU -Gl!(bV43alfND0?l%AT>(L0)dN#Lsk_5jkH;4|~qu$=A7@%MyPu07ioflqAE;3#3qA^wJf%$KBMHmJd -5}u{#W0NKkmEW&g0B=1CFj;71sBqp*Fm%^_Gp8W<KNl-XY+yS@l8B!mL{X566f5KV;jL{jlSl@_42yEdDp-mpnV(*Y%td_=^p4glru5@q6jkr`I3 -W9|*andc><6Y)mb4NVKc%1bOjrKV#HyD681tU-z4|0DVgS133m(6^q9;X)Cen^@E0SuG9;7{5h8@<+P -3^kYwD~ttVnLXyInIB-*FeoY`8aF&OJmJjmRFE@g@T0JF9r_hiGyH{cGo&^w2XP${3n>#CszviqPL^G -3G6Ex1S8Wb8RI{-*QdntBiqSzJJfKA+MH%mavIKF=1M0T3uuS|IopLc{@XqFdd+n%g$GdAs_!+`~Z6o -YBe%hD!t8Q?1(z7gyp$F?*rrPsze|v{9k7@1(&k9K$7uOf?PQ7(@QWZzpidSsy^J_Z(#QsLiKFYAbju -oTW70KaK>|-Wl(hR}Xt$3_OYjy@(HD!>TA-})MJ#G9+7@&yBAqC*nEZI|Zg+J3$eNN4G3DXc;BvMbF& -=5pm4N(fUMCiK5G5R)@MUv(rC6+20X)Esm5?=Njh$ -p=oKFvMkGy<*Cj{$kuii6L?_~;ND1jgSwZF`pP&+ee36#$Le9V>T5Ru&1-Zgy^KMcqUcD-1y{$gDPhy3Ao8s;9er$?lh5!IPU0lRy3O&*{yFa -x(t&pZ?gg>T+;phTtSYqilZ$olxFT+ziZI9zB!t8H&$`0vl-u?Wc_TXF>a)?WZAt+oT5`oo&4e_XUFn -tcu{g4i>Bm|HMxngqPv`^Plz7@*^7bzH=e0D8xNpQRsdk)rXO=OmFZ|vEpI!!ovgxP6(^KPW*DiN>5k -b_qPm+VuzwPnJW(HBKCVHO5_@{+f>E*)a}*;9K-!~-}b+i)t?(%%RO8`ltYsq>N;N5nEvC~61wV@rEi -XP>DXW+bPs=Q)m?Hb_T0EM-yDft(Z}d+g>agUBqUZF^N!(Xfq|)XG(a(2(L!S_=!Dp>mRmp}oQF(}Gu -U+XVC9EfTh)L3G^5ysw-kY^!L07mau|)o^1F!rn-Z~==nUnv5@jQ={M@J?tuTcjhgVTyq?9N!AkkAq* -wj)lrnV;mONGf4%#1|CX`~ZRo9R<&IwDKI!Pgq7ff@{){tuvS73xVUc}#T*ObANqHb7EZRiYo?tWk4W$~!U1qJ3i$$T+i$wlqd3qojnRStPx*+M48K2hnF;(hNp(+R}qE941DN#`iVxVy|N;jf`8HLe -M>I$U!`&k$|WY*6TSXuHO(H!r_G7OavPo1|*<5G#BQN1du(l~UZp0hv-AlwnOC`2Lm{*D$V>UL0%HBL -%Yaiack8ja)ND$NTFei~q^V785-E4Ok^A!-+SanoBPLCFcUcT`ejn;*En(@Ag&?Y-9Ry~XyvmF=Bzdo -LG!H*f~+L6v`Cd*0QB%*G03h$)B;EqUb$(hg=tLJ6n1RdIGHKxoO!FUdIF(mX@8I#Q5CohmN(Hg;h$p -riO_T$h*lJxZ>wG0ktyP)vf6ckDr;plpOEn8Fg(2SxUVxHy|B1B2oW|M`y;o!STx!( -!Vfpk}zq2xjZ=iEe^5#An4r$*>lrBquZ(CSkrz|)sC|#5KeH=$)^Y^zo9N~^Q` -sX3~3KV!V>PvG%YQOn3?C`C3lF>b(4AzNL9fNG8u9QWJS6p{#Y_V+_6TUtg1pgl#(duMp7j0~(ec25z -+Sm?%!xs1(!WM7&kI_K;(q^>+7BCQk1b+z*{3R&(9RIN(c$a9CJE`TTd{M2tTbtaWbNM@?|IIUc;JS5 -xT$n?8Vcen!tBx~NmPA!vEYHRDZJfnaOj?m))JBAei`Ko(X5MY4A3zI~QnsY!<|VwGc{nxUa&T>r$fg -q{3uD1j=iQQb;|93efK9sxUs8jvw2BcuHzi~HT&$BEh(=U6V#blmG`4C(nawlQzyR@_PAE-j*y?q^+5 -2Miv;Wz06#dKtsSMWY@x-_AkkX~2(f{m<6H<)F8ce1RKZX(dYhZ26LBucWhXPMeJ -S|XZKda(NvyMh6u38Tsz^3*k;W&~xDC}mCFe{rBs!51d{CmOB38(1BEBkO^71l -u3DDtI7n2gY4?nZ7)UIQYjqo<^JN(kc;_3J^&$U|+UULZ!6G3fS)+O|MHEmn%umuY}LbC1RKlBE_d}b -z+7z}#79xxELz+<6?xLnQPka^!V+I`7XrxLwqH_7ZgAJ|5)GCh6RCPA`|Sc10TU-beGcy06Mrwl9;xV -@F|xM2Y(Y*GBwSv-D9+2opxwglPc@tc-|wz3TO5fP&s^SR)aw9I9QAXG9Jl}Q*SX -neqy>#A8J?~P7FMA7e!jy5JX<5LX`<1mHeL79|Z5vu==jSCTdq2VzofEcO)g4e~YjMd9c+G*r2D$s7A?BSQN^(x8`#wec-QNb!xUZE}3VipIVmmb$M3|NY9MSqq>hdHD4kUwynT^6O -%_%=@WcRD^~S{bs%Ghkfdg~1Nxbv1L#;!)To`D>#8EpDV(TuFD5Dt9py*tL@y8^RwIcorCcKp;ecSo!&rWJvjyL2eNuO~N|ADA?JQ=}sibY -CglHtR)<6Q}&z~41S&_lso<7uPA6r5bP;X#8-1HXhaskdsT#@1tHZ1ai#&7h+91OA`pWnHpQ5phM7=g -;1y_LKJBnEp_VkA8K*8&=?qZvUvZJ27O2t+@ma^R#>Y=spg$$_gJPw}cy!7FNyDX{hQYuL6{!13DaC@ -U)+?hQ;T9KYY4LAvki`M -QxY-fm$T4v$fu6{2iuuVNOVtyPq5+sbkseSKlMryOT9`DVv$AhzD&Jm(zuQ?~N{z=8OqcI#-;Yk&^pA -V$hhl?In$vJ%P#HS{g9NSor>6G!C?eWG(`lW&wU+&3DJ9tn^g3_-uIxy_8|&tM+#L(npW@Sw)le=`_l -0?wj@3Q2*BwJdRkL5j*B0Xj_6ynqHO>ik&^(jna1G=0 -IVQShQ1Hfe#q?7Ip@i##X0gqu6Mw9-(a--NZ6wAsLAHB9WjZ9=uq!umzM*9A@f}K}^{8*z~Vl@fPG7F -EkMA?YV>a=0S*~iLdJh3h&u}0IF0!812O9P3K-MHE;-OVLd3`92%>!qcO8~e;P;Zo_*ktb+%o0=CNW2 -i_?+VlMN7g@xVjVFUzhS==$XiF7Qv(nbq{HUE(REJY)aR-?e7y^BAXVJ#)*{ua7}BzpGS!Gn39}`K6{ -(`S{>@{^v68a9aF6m;bT3JS~CIXK8<~Vp<7`CJ4hcZo{;SbC3wF3g6HG1 -uZF!k*bb(Lz$Z>W1qE)OS%>s#~;yJ1zL=41AO*Rjc(SE1gvRv^~8>QMmHU7cxSX52B -4>v$RqrD>(`&Rf9?nw^FZRB=d}!9c=1&_<5-*^+%eHJwj%B%@{X;%BqQ2sLr*_*^l0RX;9-x37x -#?SJ=%w27skqT1#Oz$I(zT&wy4o0U@7SkXtA?0E$oxlhcCAoOQE~NNXLTENWe`F%Q9MXfX|gPA&h4Oz -u;#E1aSpbrXQv|cP)J0?yY|yI6c}AcMKr2}ZDdx1KN!deKMFoa*hNM;7@$tAp>b?GpC(m>YnEg9mnz_ -%93+O)9<1XoRfz!qanm+~DIX~Y=Drgt$3kP+!oHCW9hJ)F(-Mt|H(T|RWj-q7QI;Jd_J#`W#@uZ`_BO1AeJU`y0{^qVrkVc-D(u{Q9 -4J5HF5))X`@_j#cy>h?IW$e>oI}Ea2x+{4cxYz!G^bNXsUus%dp*?|62A@(!=g_nSdd#Zeoj#^&kRD^(0e=uu>1x_u -9*WB|AAS^&$U!PXu~X2Vobt+vN@uu3iHlR=4<+ik@o4ENuYt -%g87d&G-2Uv)xqJljbaoo@852=Oly89mP7#qUlLYDnvJ(}pV-2q@CFSoDx@kFF}+U|B!TnMS+z*xR}A3M8tevbe(v|)dYCdu@q6=DvJsptT~FZ7@aVk1Dq@a^ng%5C^fUVOb^hb-jSDO!jOF}7aO(Ur>72#X9^XdwO?fY+JS&HqM3mlJU -rcvo$mG&_MJcjn&)C;c6{kpG#mxnJG;Th#lM0-{dudk(i!kA`;ki&VEP%1gtirKcegwBl6ZVlWd-9LI -iar`K<)y_FKv+8gPv2S@2Qa2x^{>OS77H3zU*{^5JN!jZR1Xv?tSIyU%lBsLbHEbYb1cP^+vM2jo8`w -gt0(nXE58lYmH|6D{T7fPigwATGL+}RC2CQO67HamvN}7h$8rp=OZ@fH>F-?Co|EE2hXuAoapsm;^J{sCY;{^6R#8~!N4LSMkeK%u -1O`T73#&P;LKO#=zgsuAtReLr%)xB)7cK>NJ&WpNc>?hJb3x)b+6aM$!c_V#ht_#l-3bW8h7?(d-a-o -Z-bmAcjGnAZT&uone_`QQ%!>CwQf@5S#u4Ji0ddJj7Ymqtpix@`}fc$ylZl2(@nt|8Qr|+jG=i -ZgbZ3xLj7=ThZ@rvpRu;cKPFFK^5;1Q4_T(Ne1)wlt%l)DMC8cn$zT-o5oflbP71=FVAA5)NODS05+` -*@O`LSbd0}35bJ$i8iKL7LU(r?(|B~nUBjo=PxmsAAihz*^$p);HE0KC^1yK(|BN<#IKyYej%|9xg>4 -plR5*3aOs6#C%01>i?QJRO&X+9L%m8_p4-Fx7jF`OoQncBwMrUeqwhe;u%5 -(Gj-a#m+!^b)kx%R=$W!=iuYNW#JiZNG-eF1dtZD;Bbc|8z&=9B&-tI$cqqZZG%lX^uu -HOhWkk#xmq2ldH@v0ceG~rBsDjpV2m$SisF*zzzkt(Wrf5(X3#&r{KaYb#_1|-#9~R%O(}sFH4wBlJ; -u^%=pXCxc!Gtd1~1;KaXz;|nM=|ECBywm+^cMuWh_XK>=mRI37r@LSS<+=_E)ZPrv*0T>gZsEc!Wp!i -nlG5@=`1wfzWT{RaR6wC>%^O;-Y;kEoxuX>kNcc%C?{?J|kbUMVuQcSCk~sW+4mrL}Lh^5nz$cG`W#y -AB4zC6LTtLRw*>|0;%3Z3hW9_<)jXc4CBg0+2dI>!ykx*se3S}P@t_V(bbVLG?;sd*T$rh;*K&R)1(S -Dm67o}#FHSgI_%kCVA2fhSV)5Ds^F56^2ODw!Jv@vi4)g&Zo8BSU$r@N?1aA9qt(fwkIOmFdi>h51(6 -@_7iI#{AbM)&Yq#5;McFR@&`tf7#pq>d!u;Il>M*XMQ>!{ns-qsMH8nIq%`e59H -czuL>K@Xqp?A8F^inDQ_CpMM{Rb3v^NJw$NrqG`fg>{y;}LQ79{*$^joLhrG5Ijh+&@ -+0ce^K8vGKN#eNBF^7>VeW~+8lR1bOHw1^rP(EX9>yZ2i@-IUtW5P(&920k;e2{l6O*?GL>QC5i$xP6 -wh2t!*5D;m`XZFgO9l_AgPBpu)h*mvrb3^6QPm9U`WYCryH)Fe8{ID2KW6Pt4+K;* -%aBN>gcf=s73fH#r=R99@#8ZmC*jM}w*YhA{&7BuClkF6>3WS$P&f-UO|itHp-N>PJwI3ak4l(Zbnvj -L#)>7enkOxdEVCq;3yP0PHjmvtHA3_h7a3g;Lzp2H{&30`ZA7OBSxN(XAjwM~Ejg2iA8$rP?TL}acdT -rSiW?3!jdsGRd|tB5Oq8#d9L^M`mBu7UHD@De5wFdTYZ;@eUdjsys(V}wl<-wkK2NJB$rhZMnk>ZE0C1-Juvw1hTT^QxtK|6RF07axmE -s8e7Ic4Er8qj@Wx75HhVru=SQa} -y0cL6k$Y?A&u+%NzXfC$OIyLkrZf~Q?~EFApyFpX>vOE9eGL*<7!Rb`0|>hytFG*UQOR6XqW;>+z2wK -3Q3<1m+NW@Z$I^P)I}PYW$D)NLuvf!1U@~Ht_SZ|=%?&gFM}6SFR0=NXy}3Sq-uhK2PWFPIw||9yc79 -bZXo^0R_pJzY7I%y%K18j>c9!+s-B3+^qBjbbth<`owd>twaVgY$FQrDaJE5f}3CUPBMp=1VCv{x9-p -0lT>7eZ(NxqBBC;E<=M5yaL9m5%iYr__ezfoaN{-k#?ow#~E%Hg4ugzD~1I2CjS6(Y4hS*}*|)&i1%Ovw=LNBJ_mvt71|^f<*G&t;0p!V&o+Hb10d0y4oo(5X=FM|}-2qReJNYW -~1$LA|X-`5&DOmqf=@apS_@dpu^sl3FoYs@4$WPUq@@c{Xn{q7FUPA)5pRLvS7xk~kxXS1@Mpc4L1TRO!%!=w5qsRiZ3SMw_MRBVV -rFYSyGBRld7QK)`)@&)9OSAV7m=d-Vi4xy&9K>-pJ;d -MT(WlB4`3oyBICG$V=HV5SGEM~dh81YEku`?n&O&mtkut=A~_VUhDI9$! -cvl}v=OIfp4TVx@PV9;3=gK1W0x)c@YZ5e-CnU_dR@*{l(Z -jg^Q}D|JlUEvQ5?-fNhZ?!XVe;!l&J9OteEl)%Cvy_h=fuf2~(gpQLx8}g;Dx3=9gOXo364V&ca03`1 -#5Ef;flP&?7m4=+%D%o|X)M`%#D7H!dtTZ0mAQfIFkCK$c*%58gvL%9z+Ax^{Msq*7OV$#fczlc|Z5|cbRCW?|V)T1yIY&jGe)`&*j5f)%&@>ue>k;5SfIQNB7p)0MVgh5wC68`Ku%Al -h~GNM>D{TA{K38(cxTDn^!vEgGxFwS|jL}HN!S>#-12PpCgaccUAO|=|XT=7r|VVsNd@;4x*nDP6UiWY^-7^Ftx76BXmCI|Z<=yf^ohalj?ANwVrMxxmNM{TCYJ-}Iln|(g0(nZy3uSUbgX37?(THS>OwzNNi}r;!bDN&t$k?)Lr7=np>~dm& -Sl4N%^tLTNdwx(T%OT1*^>!KK=t8)JXA -5%!zur173{I0#8`~5ItBhiUKzmIal2hzn#25d#LH#%q%dzY7pVld56;;@(=*m -}QTy9#fU+qAqH&@hjLRzSMmp1AsEu)681Y=(l&Q@T6KWS -tUVN_LV2P%;@9L!so3=xsXfOPu^sL7!nmypUaIQlVfB74w?~1*2ZE*2rwHFiVDGz+iP$MFV!Ls1GA5T -7=pz9w#%3C^J!hj!rfwK;qH`@_Ezu+Y&mhi@$p+ty6s8W>PyoHXd7Tbk-^)VKq}RwDnjEz>-sUJRi+i -!KBXo1LfyLQ4P|f!y26##tBLvDoFSV3e^k)Us^vZcae+K#hyhTa{Qq>Pb>0L9p@Z(geJ(3<*KnNu3>8 -UWcG3j16PQJWAm&(f+d0tQLJ2f;KQ2d25nAr1|R48?GKj6LUEP7v7m0q+}q-qB!IKUB1pYl0yTr~)Ga -3+5{y!9jLPo8Blz#z-Q9z4zui^#AcfeFuH=tYk_k!eu#Sb=$Ag2l_T*Qb%JAOx=eKkR#j+)XIlWqLPD(6UZY}#fd@%&xz5(M1@H5M!2}kdl@{i -n_SOqkfm5*m&jD0y!Qr -$-zdDGRtd1%JaEG<92*vZBD=u0#7fJ(Of=SVFTliG6-ay!%N6v|LmOZj)@!g6Z;$=qW=R6c*Qp^_-@oGtNgMt$MbY5^2?24PM9>uk -Lv9GcMO%=O*ldW(gBqBC}`~1yM*M}o<;p#*XVf^k{c+J(UmrB@ -XBtlht1;^c`JFD4Kot%XbwH_1Y&OTeHe*LZnV{m-Nmlo#Tj!JhoLBY5X7&TF=OcofT7=bIR8{owpDF&6Re38{^J*(Ou$bZ%EZdfGW$~mjY{h(~*$C7wIu;- -8m^?Yp259eW#C=>cHZ&L_Rf(hqCz;Ss@2tddh?eUN+%rJ<_rvUZaV4DP%n(j`bcyF2bb*-94}8x9XI)daNb-h0gQ^WT%5MJFdNWcpZsAcKdzx-n8kMC2EdC -Icr9Cyp`~#SV?KTOu+v^P`V)!LB%1{$4&TBKOMg3u^nTUqrbJhBdT*m81Vc7q^y>F`;pK`)r7ioZdjk -X2m>TvOD|>ZFstl0e)_t)Xa18uyaPLB*%0F<^a2nQ1mlN+YBZHQPhC>#H6+o~}&U4{ZIY~~P0uvw= -Y)U~Qb?7*lO_}|#6gu4>u^AG42{i=R{Rr;hjZ{hBEyJ@d+j+YCV`u-_!7YDZA?vZE700f}JI?Q;3Mw6 -k+Zeo;88DpVnf_lI#<3$yk$XoD?!v;OO~?J^WeB=o4Gy+mVJ#lKV_Edk< -PUyptcTp)#$L<#2>%FX4cH_Y#k3m(@bg(#7Tofy}%8=?V4)Xby_+*YcV;OWnpUK}SO`d6 -jej(3>#jMDE=^i%Q$>4pF!F@6=@xNj$7i3;&ZpxG7vUkK>qxc842=7}rH`E;PE`n~7=gXWAYk8lFc#5 -Q8P2M0mh5Y^_2Y5v$Z6thcG>z(Hy@=)a2#G~3=xHUd?0!j{1P|26SNLFqT61YBBeARLqxJ*0EG+;B_n -e=Ndyfv3~>Z^*6Lmz&V2&N*v(%d;}du0r?VJu7alCMV$2UWA7K7)3W885SRPNrR4+sfiLgDNgp^|ePm -3|@s5GCiog*1gDwptMa5NdT7C^2Y>WV37OCh%23H(>$Fs5Io%8H0Jy7fALY!@7XiH;M#*srvyJOHP~ -^7kMW~PV$cbF6`V&eBxq;&MYY2Wcpff8o$>wN^8E&k$VMBb0jwxqB=KP{8sdGPXzeBBr1+vdWbh)ip> -u(|I_$vM4q{l3ooDb2K|%d#pUcAN+-u?aYb3KldbdFY?5!@yVo0c^VWn4w8qo3d-v}_jcGc)ya(eypA -82)#~ogy`^x4RJCnV0iH_M=jCNp7!OCece2H^>T>JXP7A3U9bZE!Nbz{<(8H2TxjAIW@-%^Zq0q2EaZ -&|A?mGcSvBZHHnx)D`JxhJIvCdMy6$7U&CAC2r--q$%+DW(aOSVZUn3E0j0 -bem$YB%l;eDlHNdiCxsqvif@1F1s0~xqB#AU083kRC|u0aYu7Z;mNCTS~*;69)10~xAwaA+KViN$;Mo -)p^z8W_-!^l9gHt3r0c(09##-b!9&ncA+l`gKW?sYGdf95_J!ARURNG1CX -W;PBFja}-D%Q%QC_Iy`AoBAR_q_Ey0V%_NkD2Nq6A3KrSKm7FT6SJw%3vBa&ic-opQ$lHZP@3six5DL -)W57OOO>^ZoRaGn7Zplil-KKYcA*x>}h0g@HnSR+_B_h4r9$f<|uN2bGc_(O0W7Uqn1z8HR<=9F~KBB -(0gs&!h%#rH&dtMw@Vv}iKje1~|JH&IkCS_egGh$Vu9%Za(GV6r;IwA>g`;3RWI*99dsyz?|TOZk*7T -uPKPa$d22xt70R_UX%4m5P@>FuWnK1fA{(?60ucQyIB@E2sce)yN8QQC_x#2fL9b9n7aif1suCp1L{t -KOn7!wvfKis@OLNgWmP}-I;%#97slZ0={V^Z&A$bwfeJcnAhT-!G~|qB=T*E3_XiXg_`vL*jdrY&Pz2 -6aqO^>|9>`SmLud^%FTeg`Y75>T_x1Pz09l<&V>e*18$k(%?v!BpUC8+aH!{4bCXQ-MS$QFZG>s#Q}W -AVA(!*f6Ekgs?5l);;o3>r?1EF0iI5G49Cn8z^kR36t6cpGjP-4XLL$Fyv?M1MW@PVRB_*TPUSF)$H* -2lCU)MJ)b?VTxvh}*X^Lk_J9{j2JJP#)%vVaN+1}f+6%^^9m^=Ht5N}z1LZBouvw$9r-uHe=^`04N;W -Dr?=3I^Pum{K6Ojf1K4{PA$Lj759=!(*Dz9MiVu;>;w~i%Z>{^OP3@)&Yt)wO|phJe<^m@Q26p;vY1$ -Vm#zYTBGorv3m*Gru_bJ{ip@|Af=Gx6P>iWz>ls7*RYYaplNT}mI?<355kZ4J4vmV?B7+Yl!7jizARH -Hq7dE#*`re&Izt;rqJt>h3MFwgrJ3h7&XTwNkcxn~k%EuEv1jF>u^H{AK2%@)fb2B-=Zf=r;4SciN?{yD3R@ey~QXdo;nhdnHre -OPpb=p6lb|>gyRry2EcH`bHMjDicqg5A`SieYqjCc=63bB-wKU80MSnT`m63mg}d?FZ^e$}KM!J^s9+yti*Hve#ld -sE6%oMnu~IQxxKferrZ98M!uE2g9UfK-;HpPQW$$IA3rgq?+5Sj(Otl4?V7sUrhRBM&v&EK}KO3qe+T -r5q?h^{hrtQtU#L+9+F$LdL;`;S8E>f-H-NSJFHsigLu>CkiE?@+);ZQTV7>_V$;}lb2UtXjxAg?>fw -%vEm{#GkUSGK@H=E;E+HtK{m+8i)|$xo$mbKHBk%NGhni%jbieDWlktOVMtdC8V%Q+h#u(UNfJwZFjg|AUN;0gMIB6E+$o0-6v0CxuSVwXZi1|9L0BlOI(hX1s0=uWI|c$n; -gu3$prGgU -+Q|<#?>qH#TlTYx94K9ZZO24;P#L>mg%xY(oQ!^QpNHdHbRYnLX%AkkrH&-s_E|*`~xb)p|8JvV;aL! -Q_-McPFn`N&99{WNQ2KC3CqV$W{?1bv+WzUtYaryN(xb!vu3?*3w#1skQ1svJt-z^}Ba+zx^T-6~^Kr -darjsy7JxV;wv&!YSkOmYu=uEW4bZb(x2{v&lw}%$PL$mz^sn_pzN*-t`?9cdiRTe{1t;U-Bf*wurGx -i^u)0ySykcu@PISBe1}$uU}JsS?s8twK7I4ZY_P0!yI -Gsx?f8-(G(RDn+g6~zSAh-^Co4yU0CRp3Y{)4G^Ik*l0v^lpW^v*kq`QS9QYe1DG|+POY^%Lfp-Z%tx)xd6LAN4@ZaHqeN@o9h5=f}hzM(6>x -bXikzxfk=r48sM2@P23awktXd8PU3;(#gL$_hC1Zw!@5dj4!Y+aFykI*`(j-UX6St(A@P!o>mP!>Qztu`nUsz|NooUA)+y&#-z@68}@4D#NapH3Tjdn3 -93pz;4cx!u@k->)ptidL~2hK}Ky_>C*$H>i()07P}EJ`)B=qbLd35OsLqAumll`=&o}hisgmGp)m0^Y -x?p;}`v;yidjY>#Lb9dhOHcNgUOGefMvG>GwJMn%4t#o?k^u_+SyB;O1*we9gN213Y}8Y0rPxZV^)e- -E7SQt3_OR8@^|7xvy^2F;pC#O)r+Y>#pvP`{#BFjZwId&O&LmnVIGi7toN~`h=Vv(ecO1{RRShh~xlj7*ZZQickr|QXhs@V2F%fX_!>w1KZ%F_ -*ZU9R&qt+8Zu+sDK(Bs?K7jeS1Zyj;_%GycqEVRqaOPhb7Ki{*qOnTy`t| -Jf>*?#)qY8$&OLhnOSOTZ3D2K#xH8i`_DDX>?y^SL18TT;6uesj$!|~A%-!qa%09;A#3A-2;1%%D5S1 -)#yxG56v*1_&W|1rt9TTj06pOU<~_2{MlltkUFZ@jYe>g)OX`tCZtdiKz76<@YL`+{FS|Mt7xr=3?Xb -|3A*`S4O6xdiCDjj;sZ@Oh_m9 -E#89#3t&F;j&w`0Qe0gG7a43OEwV9y?q8f`+DLa&=A5}X0SeW94mU-0RNAJY)*h8&;F6Ro{*dxxAd%-ayum*U454{2aHqK`wU0uS@n -gAzklpwMWQbQtd*YiB&FP;?UI<*B6a;x@^Al0BA5IN)lAZNOBQZx#$&6Z(7x8v9Za7}{poj(+xDXsrw -OV~`pY87M(zpq#_mmSZg>U%X$(+$m@AXyfLtB;YqbaL+v?TPx^^629oV=Pt8rg3EG_+qq1@-e&d{_5P -W^qWty&Ef!XA5+{2($rmnH`c9FlLGP9-=~nH3UjDwU9DkIc -Lb^XBHAj}Y$+D`?INRvXyiQdc8MsnVcQD`>|)kQ3(cs+`1j!7#$kspVVd_Hk)Z@BD|3((x09gIuHtKY*frg( -$M*slB`^pN$WhhM!a^bh9v|D}*T=`6cbLk>aa^Z_EZGnQ##v?$?BnCtCs64mJ5S&CG0V?sBsvu(*)io -EHf%l#N@}Ct06&trnhJOEy?0d2}sTe{)-Fg#&NZjkSsuPIU9x*}ti+w@f2t7 -3`6cl|3u)%u4n}GZj|%1lqxSg?xU(6=8zBvYb?|J06~hWuUB4*xj?{ -WID!F)^0URjD@A^7WWwDv`XJ*0~_zKuyBJx6c(_l?$5Y0|CUxdXW0mogpQ{e#4MNsDuXKsE$Zk;X|zB -AS87krvn24?fW0G0)|l&jgcz1a0v4;-Ol-#DEzy^y@bT|^Qe&et>qE{wYNq*o&$<9*Ky5-ce{ZA2J~R>-3%H+JC&d;oX5t*1 -hWUgtg%6f*c;=a+8@0gqZLc6?%4B}LhEHQrXgc!d!Dzvh@mSVW_AKv-SGsYciJW7-n)5;ybQM7f=loy -URlU5nMQxf)7wV!YCfSs7d2a)QPRsevgod6At9E216w^GMe>{N8Vu4N= -xdf5HToh|O<)>yAra!K1z#=4BbdK4#-_-nIimJX4*jq7Jh(4eZ-Z(U`p#Vg)M?f)R10GSzOQ! -^Yr&BC9cv3U}r*M*BS_$~SM`2;iLwJUd6kxmvqPVCm4q@WRDdxlVqQ)T~X`-Y*qYRT{&KRtFqkz^1{W -sYKGKx6l=hG_3Lng`V8}uct`q}oJFEGsw>VGzT%rG6;R+!Tf5(G@GNLl;^5qDL_t|5h?D(suUEPQEcE -~yY=R_Y4yd)di6=Gy1cZZ68>+{7Fwhic&Mqoa83lEcp{6Idv`H*NXPOY17r1+T7qerwsh0YUoDoj5hl -O&BQ5oIjQS786&dP)1`j?e(zuSRvP^bY>U<^YZ`%xGc;iG8>|YY0WEx3nO@-LNgF|e0Wq>+v7?+jqM# -Y9a^cJXWch1v+jIKvM4m-21OiIa1yYU!NT)^88Kbss%)B|*msf4v)N0xmW@Lbd~FaHzdIO+va2Am_VL -*7_0uyrCDE_GGar#ZPu8O&v)5tC7(~|&9z9vNcyzDCmlPx%UryvSk$OXxI3fEn0DfKnZ4;F~r%Gg^PJpbAsn(>bXe0C`@ChCrz` -dDpwD`BO`B`RFQ{Rlx?$f^drC$?`~swd>20zghLMSovn4sr6K0C|qJzsBVtsCb+h$B5JMoJ_)0+MDsT -2b7s0x*9pfuRp=ylH#(7T4&`jLgk;Ph4A(qx|h|+)wL?ho)cCsxhf>CE~?km^%~f0_ng$n1R@vVjbdn -`dhQLG63Pe)HcYVu?Di$CFH)^+C(lRO^XXHRX;e0H9ot08;mjNg)LNzAtJE6~POXAp@sTZ&p26=U%>z -?p$SlqKzy@DT(UlQ%ifo1rd2PUbb6M)-xX#5Rh6WH`g@UjiR{JkH690hK!hhbIW8rUQ-xWD!=u7k)NeSY947&qi -8e8wWsnQ!w!Qetg9n&gdW&$Cb+>|(mbVyopXsKGntDif(xAM;B)V`y?zywyD|I{-$1DPezr+HAwn{%w2ypj|+f-Xd1!FLKfv(7+Vm8MpZ)R81-vSei)160srW{PE$r#Gyhd(d*G5Iq>t5B~CcPvp*U_C64sHyJeui9IhqotohQeY2; -gg$3m|fWL7f@pW1MOXEaMP@5t{mOPIzXO?fya10C7Npr_Ej`~VyCMm? -W7+Txh0BE4Hf?Vn6^&254dOE+v5PU)pywT9KG7YC>&#Rv!i-*OS=3?ISsjU8Sz(gKoAu7}&Uz*#m!)l@8M>gcb}g+KNW0HgH&I5I` -+QS%(jvJK^!9y4=~yjX#JIZ?emhG)8u(t!=A1A*l(rrN~{}N%1BJp~=uYhXb;;RE_b^s#vf&RYsYz;kFWKo=*h~0I*eEQQ$650<}c -)&*TwV5{U|eAFd_U7P>UKM`7G62Ic!XRoWZ(ll!gqgZ5|1=U;reD74jK70OnDFFdSr1^y1TRtV3(nyJ -$BV$SYTxoUynP{O={EO9mFt<=MOVX)I>ce8GgQO=W8;28TZh2ghEPul@jsRLwEG`O*i3kcfHO_oF&s( -SRV<57on@;)I)$YwiuER03KESO#BsZW*?hk3#loBLaI# -JQFLEl_VkF-EGuj*Vmyk0jUG&P(sAeJi)E^qHz`0Y?=ZPq`a(od3E_w7?h#562Q`Q5F&Ar@{q2y)*x1?;QuJ8=smJ3CeZRM9XH -x6RU=xnPLCze1>M+FdUnq2zJN$_#zo%b|!dmDfke}3-YmVd2q}~bHGFmc+72#Eqj(>Xx7?#9XZCg8Om -X_oeR-`k(seuJ~k(#adJAJQrF;U>-DX9hHtNdsl|C9ByVPN2W5=MeVFM00v|_A%xIYSkBjbAk2b8!q+I$2Bc_Ezs-kX+l3{K-%n!EWNX_%g)Yap>1`v|1 -B>_;gJ@C(iQk26&dB;mGsZCd?1Gu2p?KnsFbCerv> -kx;v$<;0r$TB?=incqluD2~7amA(`A1lJ|2qu1|^s%Fao{)Up!?IeQ*8ApzBSKB~;wI$0BKW^cx-h?E -?6#8U4shRyzo_DaY=r}%*n**iX+YAVuQZTToh?4Vtfr)emy21k1Z>4wa -}~8O3st)XJptKcSrZ&zqA}%_#qUbPsM~KFIc_hFfZ>^ikNel#j+U+cBvbmBk5Lpx9ku#eUU%@wNvVjn -89|aC~%IoC?}HkWH#AniN&*XM>F0b*P(g*zS&cKIgI&E{yDSj&Uyed^QhCNK<0svWiiQlHjjo$Kq^o|2XXs^OgwC1chhK5I&(Mt!)WaTCNd#?;EzPq78C*Fj}GaF|E*T -SnkZ;Wlq4*!!ifXLOs&^kEut3J|^F!{lOvL`bn0sxFYXx$o#f?V0cvsIF0jw78vDmbpR{Es?wMvq1KWcg9t^F&PX&3Q_)ZN??jB`Ztoq-v3t;`> -!PSUrFo_mc$}VO*@N%9kN%cWK*r?Z%jZ8lQ)b8cc{+jFhM9CQU;X|2 --IsgGqy3kUp!UJbeE<(%ULEYdOupOuarfKj&ywel4)Cvnw9p}en?dr9beDc@Qp|PRe2t$ffRk}PvQ_X -0)%cbYP+I?hcjPWmZB(_>z$HjMHL9Y(5#lU7`b7ZgTa6!R#Pokr9fluN*fxPrDjv&&F@taoCN-W`GnE -O#jO1Xs-R~dgBYfD -wpAvPZc-T1)N>IRCQy$@xZSccD>Y``-+w_Nct1$GdPK+Ku*QM-oSRKE7x*nqA`#m2UpSl5kQHG1}_adkWDu#&ow19^ -%B52?)>*q4?TLCfNOw__l?8;00rI+|??@*1Ls(ZNEpaD4a8BjicHry~D#PLIrBM1s=h6vgyAm~8^L8e -m$6iM|fsF4C?12Y6jO#djimC*U5n12BKgFFD8M|re}r@OhDQb~{f-^bqH<^k|<6OqB-z-n_g=_?KOf3xYB-9clWAlQc0xH1-vqiGDX2eb^{Le#mQ>!udAwYD7@RtqU5Jo1p?&ct%O+1vM!SHxa83+eqTt%OC+wYtcotwhT|FDKy! -OJB-pqnl`WCRATWOwSMHcE85w_8{ke`pUJEETDo~@sc343Zne&`8PTjd+up?>ut(R(%s{y@iWGn)G#t -OpV%_AfDu6JN3*o{05^$nPX3W%0fM_#$5#30z4ppQ%0T&(Lu+QNkL3C=AE7zo|-@}zurcVVv-gKhIc& -sEO<4Be#CY+V@#*^04UXNt2`N*W&Hk2lJhK^*YNLFe=&S}xt#?jXMH^WC-PokXGVm8OFe -SaR5Z_PCve_XR>69_0Bi>nUplb!4U2w}ng$)u)W0^J*9b?;@9X1Cpy`+f*1c;t(%iu^TSB4jcR_D6-Cy;aEVYgI -li1;m>kzu?%Ze+*o2h@ty@#P*_DQjH5U+sB>t_*;)di --6X_=Xj5c+xj=ES+hv#6=tDn{r_{HRy6W35z{BtcvuFl~H(OCrH)Z}Bh;*=l%l)&D)?z((og;#jb&A* -P6+8wd=0#on&o(<}BeI-{#aLyZoh%(m!C3or^K+S99YC(;vKU16!%t`^8|vu`=;y4&DkZOhT9L+N^)& -{dJO@&)=;0yV~BG8Q}G7x7qs4&USzxRKFbGoIrI#6B+JyFNnvW4<(75gQ*E8F^V?WZ|X1k>n>2FJstn -jP#T7_)U7Ar9Bq)RQ4Xe%VyrenIte{e0=QSW2p5ph^}{G%y(VVTS==$oVCf^5~S4R1i0of?@OHHx7oC -R+Be3{PkbAdT`TuZ^`%O-^h^To8n?o$19aFJf-fz7!?V-K*-cEz=n@%lV6o -`>g{IVFz};Q6pty@S^xPN>gUm9zU5d%a{3JqOWEYKhz-|oIf(xD8(vxgpBSiOSZ0M~r-z3#dcM}OaFz -sOa5ObR@QTuEG2DhyWuIaS|uv}Rbm5o0k-=1^rHOnVZdHC%@1zNbUA!p;s^U*fd!K9t(sIxA -l4434vKBL&QXPpiSp9BROlD5DTC~ER)MN)?7Ya)p8%?RRT{iM46qu1R7;{2CGqdj#_ckIM -5gjUR;FpraG64$rNP>E$vU>IMT$TGz^G&Wgf&@4tinOisN_~^8t3` --z&7P?LHug?HT(@PhI2mkRg2BJiBqB`34_J{MKanKl_x>RJ=a1mM^xMfn_6W0Z*xqoWUAE~Owhl$ec+ -=~LHk^C*YWcn)#5YC>4+HO)+JR8sUc^SE^^%PkdwQXcX&4Xble)1P`C%VDM#NglXLPm$)N}i*PgsBG_ -wlqz_iDYH9EyCz=wxJh`@MjQ5!EF)9UhiVLuo_7%+*@IcNY|j~6JfzU$wnX6DC -azMd$umOJ>0@OfR7&Lou|7$cJ`kgEa}j@5A9AgnPaiJ^%WbDyKhrXz6DFbCO`<2tC9gIUZWJ(>ndtFm -8inpPYu%HNe}2Dun<7` -P02a|EwEHWUa?j9E&{bk!*<)Q5qAJM!mo(+1^hFV*oKky;+v3$(g%Z#k5L3 -9ZMt}jFNTA^UL&-qNH8zh*j1uf3n3aW$F->UCE`Cb!GdK$2^0K_KY& -%Ou1)$Koqm@-Lz|-{ld5Y4GlNgxWSSmAcOIKFP+_c1?TKBToMudjlK|XGTJtrVsA4zsHeoJC?N|B_L3 -xuxc>vV*K-h@(G+3wYq01GE3h; -FF2bQ1?L(<|M1xx29a}gZOhy#?h>CtyT8}4jrZ8fdu*p}JiJ4#&dGQTxEpnVXbz#CwZoS>1W$JjkbRk -Sr}JKBs%p8SNs+|nlgW5W+%;4N;Sf0eGq!UxH|z|Hv5EE0VG!t0e#v=|`y=3)Ve*tjrMfEH*X#M3vem -2EvEvAIF%QY&S7AaWOfye8R%un}8Jw?k*lw4}>0q4BJT|`IdIGKej$Bu*(ozW|Xw9#v;o$|lguA|-{L -XZL2|FEUXei#%n3gA^It~a~4~&R(k&bBnO{U{XdPZrj*{L@7n_7W$cRblQlsRQSLg2=%q7h`MVukk2- -Y2)Z>4?bev+Uh02zq$+I7X3M;25bl29|#|>!RO(jUjv`Ga^Zb@>Klx$W(8^`BiQr!&=^`sOdvrMcgb} -zMI#;rL(&+wO1w)Vxa}rG!{syISdvkq_o8r%`1xyc`Ue~mu0u>AEjGxsB}!l-}ws~&hVEoQQPulyw}~ -ESel4=$C#mna)MtJ=~;(vy(#;=9W_4Rw~uWdx;yN62yz2g!_=5pbqaAKIvQ<0IBQI-&lk~M`9XMUsM6 -#hI(bG>3M9fH=N7f0ZSg6b1Gx -ystMtK!Hj3t~0@xNNBCA^}kU;#?n=0@)oKe~v7PE`uvtJDg=RdsesjB&!ljgbs4Cj5hyGr1;-NimQJ< -P9nt;e(Flm4%{WX4^2lrm}IlQL@V|@CA>>bt(u^!`cjVizRI1P20!Z$&B@<1$7tEjn*zxfJ}4RXG0p^ -CY4h2u&|Z@$8sh4~$+m65?htEltCJ`?YW&tbiduva`(jzJe#Y;b>qsCpz4^ZKzt6F3vP=_Z9$cs -uU*r~|lWxQ$|BC|m;AshgRJ)vaQ#i`mcU%L4xns9GXxSJR@ngsLPFaO%ct>M1~@35LIAQ|Krp4106peLo4r=uEeA~5VE9DHIbP2_404D^7GO9??iF#Ho!pO)o^`YfHEWi -#K|X8Ok1N*EF;60jWE)IAfzq6xdaJ3u=EUudAshf)LJ8@D^>9Vj-3Cd?>NvU9$c9Y|E*rg+q-U@ZdR5 -QoAS0mbBvbqlFK%ecJluLH@5+7Kp{ET?c{y(3RAlE;YfO)JkIj&w9h -7Fi$Cv^;8zuXVjv=fpVG8vSHGlruliSr{?onF# -IncP;QGHws*gan3!aP0b-Dnb)(Mz$@mQByjC5I&)$!!^$5`Rg8=B~U&7m`eb_Es@D+D1M{~7{bD&bd$ -5N<`*%%5Bjs!1?_xft@1-x*YwD(nQGJ}deS#D^e)Q81o)CRZ&E@vd-%qNOOk^&K+ -Dkzo~_*+_1@8NEuWF*!J0Xdm|4@C*Dg7et%6Odp7IvF5`SVkhkha8>`{Ygziz+m846G=#nX!@a%5V>r@B)kLO=e9lT@YOiO_FtB2FY6UAiJbQb!3W$fLHEgeXu&seN%SIKg-$rcD-jD^Z8jha>h1YR-(~05_R&Dj>!^r}7!Yb@>idia~9K -V^D@n(1m%#kn*|!X!Py&unT5F8 -lBq&Lb_{}81m+uPB~L$A5&gm<%ba>-BqS@5IX?YdAh#~^{^6l7u&N?(!c8r(t>O|(ll@pg{KfCIGmCs -?Jhz#lLZb6=Y$D0!qG)nL)d$%qDa$t;`cHT-RdkNZasF4QI=`Iy|V -UNE_|$8#_>knfd&XK;ErvT)|wylvS|NmKJ4=l9YYMyOU -7V)4JK#|Cw!C=M+!Ac4Zvs`%3NCLrJ19$t`-pxg;nZfQr>g~WznuiO}Mx(dg}`1UZkE<9bH{Tg&)dDE -xG;7+#uR8OcQmesEJ{`u5Bl6zxk3Z-C1}o<4*9E -J=e4IR{Z+Oyg%rn*dRI_4%TT4@G4}qIXZ=XV!~(L$_!2Royf2x>)}GZo`F#>>ZkNk8PSdot#juGDMf? -stx?|axK*Dk=0ea+FH#WT7OJ(R5FB+-N&G~{7W(Qyq@GG8DFq?f@%bZP=VS=|hDNfJD#gR| -@eRza6tPLO<2L#+Dw0r@prZk{UR&1igK!wbN0fWENagtMwhza^TCbqrUIL|a=0Poifab8RZWA7T|5HZ -zMFu<;5)Egw2Sic~>fuDFTO_DaC#0{<2JWRX6qK{Dz&sk~6Al^@ -PC)zlB8;#WnfM++zOPLCiP^UnubyLfgpdGom^5BJskE4sqVT7ZfQ2G0htStsgstql4M^ZJ+Lkfl~p8+ -UykQSzd7i4`!mcBhh{f43ldfrR)037M5d$S43-SNX2&ku@6mV!Q!$g7nsXRm#NxJ_Xlt6pm?8@zN;*H -8j$uecGf`QPsa1Bon7%u7MW%TnjTrbe|if+_L&amhe{#6^SRy^?BSke~NYXMa -!zIp_1c&2CjEuWL6+7h~bawqhjCI>ziRF0d6);+f!YvpcJB+VC1ER`9jkQRT2~7WQ(*1@|3Gh -1OQ76NbuOl5?ykg?3Wp!7Wb>j-tzFPK7;vbPk1`&A$-kXWp*TX9e -Y`%j3K21;K_>>25SEVs9{ubh*nk|1B5werGzh~nR9l{TrAqWkz64ms^E9a5Z?zw^KdaW!8v@-Rs`v5 -6r$q@4@r65uZi^s?n7|9FQ3hD>Owl=I$4e2t?3l4IEl -^9uRKbpO?9@FKWx_4+Z*?Rtyn35Mk7I=7j9r11N7S^6ix3ZNLw0TBNrnA6;7r}7u#f9)z|KjVThZYqg -GC{CTu=bRZyH9S`X4XJn>Fn3~(vEj&LVSVtkmIup-RYC9+WQ`puybUb`OwFYPCc@a;F3r3>)7>JQTMg ->6LuEnsw_lNt}W9}iqG&e@P5et|}$a^MG>2RJ}~Db1OA8!}`PCl-t8v}>m3T4}Ub@9mj|z%_+rxZ7ZEoDs{ML#*(u&9_5~ -DqBiYxKESj4mTOg=Wa`9szAMKx)}lv`-l*j#i3y?0Khhbl?7xbDsdc6QJAG -pzJBiMIGW`#e-^r2T-;Hh;=d+S{#*j3I)267SvhMr@RQkJ547XS52-$ICe>QJeUthhO48i7V0%dy(GB*H(i?t -WW0MqPD)U5K7}eL^XVX+RHA+U$Wienx}#42j<+ZS)a-CTwqS>^=rPR3Y(X$J>v!#dP<_eWA`6r@k1N5 -GM&;`0;DxV+ub$7wO}+r*n96Er%7thYmg{)TiMYU{BBYW{46R-e!nDGloq&29pyV9|?MXb2oKEwqYSEM`=c4S9iyBN!K;m1Z6dy_z6T-Q -a=<9M_f7o`m>ROPtq$qTr%KvDB^A{Ru(^!0Ty0U`q%ZMLXY$aqwu~24iaXx57!I#1nRO7%VEF6W)%!p -DKn(Hv7%no$B5OD9o-=UMW3jSp5-6HhlQi^+Yz#zOTJZah@Ob%nJ|$g4g{6aTqv!aai&D<-qS -wK$x8eOo&yVO@ZJ=W7q8A>ariypcbMyXrK0ckHe}oZpbktW7FnjZ$&$)GOM%OnMGY -@O6(&l00B0b|hkr6wNut6MQ>DV_Gj6KFnkWkjJk{NyL+HXD087Kj+YhKdZ -8lHV5gqZWrlOK;G%DWE`!BkiXqnIm+alq;w8?I__`J9YNbif7Z(+|^>4t-qj+S?{?P;}c-KA%b+Zd?Q -ui3GJ@ly0WG{Gc9Yv-5H95!49n5)caM1c6?_;D?ZVzAB_9XK_iNylL2#JNwovp -i7Gmwf}NZXTwQG?Y2aVBm1IA&SN@GBA<8Ha**&a{6_UZG4VGyEK^#0%#OTx_$Nk!Z}lF -Qk?$b_-)qd&Cxy&ILJ3&PDs2civ96U6sc_HU- -^`JjjY!#};jDgN`*X{DU}?(EoQQ!;j1K_GLKLI*;;-biYPQiKGQK~MhhUnnbop*XM|zy79ld0Sh?x-# -B_1Q0TV9`sIsdNatCvgOb`^7VM90W~{yyZe{g-ATGTJ=0T(Tk9KEMV{K5XSem40%39ns(9GEzv(3wMJ -`fcCOgUfz|_dWmg?(AaeEHFC^O|<^OrdY2fb`MZDEwMtX5GIcE?W69mM(_pc8kd_17cH(P=>8-S!CR0 -FdRnP}2pWaoJMi)S}5TctPe-R4~A^;QFJ`TQ|3NU>-Afzjh}tb`)L*DLZJNFF=M5o|Z`r1Ms4liWCh? -3OM-1%}HT72nu$M?ux7|T~!JqtKk1~>(=dCx0AEM_#_=9=hH}G3yW#CLCUEM$H-x|3K#4INOZfoNuX$W)Nac3@*Ko>zHWV+jr=qh4K| -UMAOfsORyXcc9qq)Y{a!C4`!U2ETLhbdL8cZ&B_!0SsW8h1189zt0F5qPRYQuH@oP!X3iq -ofYryiI#yyfE?8AWMZtbUxmi5KkN&52~DCXv)imf>Uj;SK&<$c`eqkz -z{c#9|{}PxEZk(8PKCKDaq`ubalO5EpW1uiVlut-88JbD-p#wi_{z4B@KKFrQ!?3h#Z|^Y9hLBKz$BZ=;%a_U=HJt28_=SNXIx8c1AR4bQMISZ!`S!6NOsKFQ=)t?rrF#6c%Dl(&Y -HSQiPC%D#Sr&tKc}rb&ARACX8aAkq_RRf4XN$p#s5Sa4wAnUKq7|dzL#6$mNcoNsX#ibiq5rIy_Mi@G -Ivg%gBsn;M@>`m4466;(xcd*imot~k)_Ho(f*whXA&6Y@5g3=$H$fSX1juXAab9mdZI@gsLn`|hgmme -m$*K2>?WL*8sEUANp&`r&W=)utx;`oTZmu&u};lUx?`LrHmUDrIYthqbYfJ|C@MV+&=J*29*-rT9Cnk -KMBuF7OgUR|ZklF$zMilDgXt=vZ<9;XxF3vP(u`))2zA5IrSYq>vP&pz4+!5Zyksf!z?N;4%uJNLu*e -KcAUkL_99~EhPa4VRD6J!vW>_osYt?Cfz=bUSk5b%2Eo#^O;nBw)|ALbJ|<8VW?;>8CJy+5iH;^5P -Qna`$LfS5+Yrxu%^L8If#(}nBrb%l0~0%Q;r^!00K0`8GC*F)Gp-kbDvR2bScP(MfM#3clWpC#2#Jeb -9aLHES*>a=ZW6L$u`!g>jX#d?bh5mgPO_IEJG^^|Ieo>~SMZDp9uqFYn4^Gl`DXIZrsA+DP{*|L8Xs2 -F?FnA%w4kX0nu~WEN#`UVU~Is(M53JdB`U8+l?K8wyk_`%#;<1;Z!F@ZC;T8V&CgFU{u`k?r*x+#cF8 ->Ffo^j&&(!2WE!VgGJnwhkSZaz&ql~0(<@KM)`IGYw9;R=^LX0o(#+c%AFb2%#vnG=(j8~~G8K)$#p= -duk9iSPFjP4BfBX-}9F9Q7~hjcRS*GXgzUqQ?68*GVP^iQC<1ja*dVsvdt6?8yVo-)jxFh%8IYJ4%FV -Rkvt>P9nK%AVj7DnVg0^HSRsHPFp;l!aLZ0iTjbqnD7Wt8#Og>IR&d%>W!L0ufqD;yT7R9`=7pSs+0g -ZUCNTBeE8PVK5-Rp8ZOz_=x74f~H~|*IXN98q_-2r6(FqK-TfGTX05OiQ~f$Kmt)VYz>HPfSL6$n9K#7loTF$4wDT%k@O1|xPwi|2fvq?y`8J -(~mviP7umUG#!8FB~9c#arf?o6Kw4aY{Dqcy!>-x1uk8BOTLJR8o@e?Z#0Zw}(Np^R)H|{47x3+h8;r -mW|W5IRW;bHY5Dj&AV#(abA5O;U&qmBFghzf1dBY3My?U;(b?!p&V&8jMiM-e!qa*iO3qJja$Oje-j* -_^DmQTfinVrb$T^q|xowbDHw_q&#Ev|}v;}N{Ov($i)7ebY7Fk2q -NccE0KQs@Rlk1CL%NA@=5ThJvHaSDt9~6Dfln{a+)2x&Yhla7d`?}jpx?A2 -&(>*?fE{7-MfeKmfFDO1Iql?Ma#6l)HxC}Z5WgnXb_A&}%K>kBBbDQm>Em*hvk`}=(RkubnUtNx7>AN4ejc{oSO2|lsJ6llqKO1viVYiMcM6^M=D}UR(V{I|^&tyq&B%_Qs+ccvCoPspj7) -v&h7cLC#@OGP72Vk*e`w?58pO48*4v?bKfCHA-9ZD%;T|e0(Azp@the068cjpvtfZreXeNi5{ho8jz& -9|?$6@b3BH%n7Z(rz#zbfBpcGf6bs)DV9{s72FF{BU%(@F^`w+Eg`YrRex~&Bmlyiz73ksxa{7Timm_ -CZx|n>-1W(be(uAv#{9M)Nna^nf)%_6teLu%^e`QmG|Pkcc^)KVdpQ0tQ&zZ6jYA~cC^SMK=eO$>1=Z -_PU9nJo=31O`-a-DRSxguM|dr7Dwatc@h++>v?`qc)u8be@a^};AZePlxE~+daA+UlcOal_&WghFddz -vAQdD6gaTLc7-#Ff~gtRRrY$Co5Fv2CUaX>H{Y(yrjFGW20S@yE8ZhaA-vBTYUG4U6KB=l80^+IrW4vQDnxKPT!zG02+nPM;OSCWfx$*@HD``#wJt* -O>^(rD8#L!z&aSZ4f*qkzlb%adeA6}Z{jg9<_txYPzlY|a2$AkqY -VI!=q`O{Mb$x0PvD#s*=vSsU!Vfjbl!x$!Ltx -g{lLtxWXJ@^S|-ubn2v{qpw6%=UX4wbM|J&XRVf}<5G-9goZPz#B7sgW>ux#fDx+**`zw_q!1Gj6F9SQI!MOXBSUVVlTsxOo@Z`o9X*01A;j>Xs1F+xq4V^9%#>sJ>JNg3E -7Oz!02Cp5WWffz^h<_AZT@apEtPaI2O*h4W28@Yzz?_{L8;vYKoV9{BHxvB`pdUrFMR+VI$YnQ!7}^u -_{6Q;|@uXG_nyS_}3ooF-YF$oci==RhRMYjKq>4Rju20n?eg4@xe9Fy7XD<9eTbRO@`x7(Zwd}R%4VD2H^csjdIuE^~{eZ=um|wc6Eh5GDUg)A))jF)$&rl*Vtv>J0 -imgI}pI@V?!}cbKr(Y0wW|alBhr{2!Pn2O+6=SsIz*Tu+kf;ZfCtr*xQfHu`)#b+Ll0@u-4{Gn -+d}Wu0=FfA;woUsj4G)8;R(WO~vC$YxZzS>qR52mE|XIuj5CWpAQ0mDpxZ@|*ft%UCz<0EED+m{eKQhM -DcuL+X;Nz@h|)V7LDfv=m*eBtO)(pU4;hNQJ~}?GN5GzE@5(_RA6H+$t2#(Efb(vnjnenUc^?mCyt;= -{pHwxEP^W_H?{43ARZT`?)GU*CGaC{?-_b@;tPp4Ylm4JTyNq>o+?~O(v#_h{L08uwEbpqD16p&ef4M -aFQR&I}Ed}3Xg$ntar%8{HjWK~&D&bc+o$x|a^r_yho^T}YB2M~-w>@Gzj -o%QsPjLOX9`zQILSwjCcKc-;QwGi$2V-~kXgsKm3W5R0E|8E3av$SGOyIkRY4-EHKULOCq6A8fYggAq -1oR{X)@A9Lp+ptgw10Yu{Q-i&@jpfs03`P<;{jrg-(fk57!=&|#e+;JpcT*WjV%al@WMMiydWKUe536 -f<4=qrku%2xub5$G5em@@mlRV41WLYPZbeWh#&-6KY>#kB$}|Z{L#B!pT+ym0jr;)8@F>R{0$v|mzC0 -1U-8oKxX)6^g!ic724o)yb;^Ty&ZP)cZ_9%6xXwUBLCeL<@ERjYg%*%Oel{Wdgvy?SE=hYJ%Nig$t+S8A>a+2MInRF}{WoP0n@^L+{Tu~dSW;Ds -*%ga>E|hc9ggRVO3U1`J7olkJ2%>Pw -VrGUOO$$^&+jA5Jv5+E-TeYBA+7`aK|shjqCMoPsV&>CWWI-j&Q`q3#nD7gG~?BHtKM#Dr87F|ln1;Z -)D!8IN*bd}y8$sGkSRh=N6yYYW7%`Xn+Stv6M0kbWfB%SqU`nrfxoFj6a_b>+`Maw&Y<8Qb`>{G?z8Z -9^|aU{QleHB;T1f=U|1j6~yInBtu(sgAj^S#b68P7W^$R|Rv;J(5MLQP>{bO(D%ey;r -JO9Gl`8~VyVNdolj653Ej#`nnUjfZ{rn)QhWQ%H7fj(@67U)Pv$1pePm43o3@M3vqs|fFNANG6!>C{EG&k -L?Dm1gHdxjAHA=gH|lfmCLUn#c+D>0;qWteg_jZ-rlqZDg0l3E4+R_gI0WYD7m;;^Dsk65dCw@HzzM^ -lgZcoSf!+Pzn47|~<h`{370o@GFjwzYOBzzkHa4#T>VLi>-a(Y438xbl-4${QdxoMCY0bBBg -ZyEW6L#Gv6mfg^l8>6PCG-8Kn{ZP8GTKehsLm50araE`kt)Fc+|k*cbb4W#Hg_qtbtm6J)s7GaZss=1 -DSXAf1wiq|j&GgQ_cb@f>X7nA>;!<`vkesAr>1X_XTUZ2Wu@8N{bF(*hi>~!!R4X@m -AnATFB`tICtH_?@z^lu?t$Q)VnxW39MS10QB=SmC>Y!c|?-! -LB5q8;kot6p>3)Cn$eaoeog6^uv9I<~0l#kf(%xfi*wh*6?NkrBsR~=?>psr&U7=lW_K^l2lMU*m)x< -SuG6@*t*Bl*6}T1-s0t6Q_)4mln6N2lXNEXB8g(Vu3g+m-X#Y?5!@yLSey%uisY4DVSEMSZ*Izv)+Y? -C-66=}v;rU`w23Tlb&|Cl=lI&~6PJW3jxPLx4iO0;HxuoE$frvpEdZmPujPi@OyFmQaE2{NPhRnNEetcucmYj=lMNo~-7lO+|ze+9k9E=CEOrPQt -KfC7T|J(3!N^4jOV`M+13%`vc#EjuER9h&IGN>8!HQkl|CPje@^!m5aAwTi5(A;@M^{`e90eF}{lv8Kxjl@cjF7M)+LAD@@5A;n!jh`g64zFUcjLEgc{) -pQ4IhXqKPLD#S0=?nAD+F(Zln5$0KK44!=C0^X*gw5A7e2;F43RGvjB-8HQ+@yvVA{G^p89r>8P1ZqF -QM+cd)cjn$2-P%f9vu7KXx!EHdVzC>5)E4FY*kt@{s1!c0&$qp*ccPlUMA^ONmAQKtM?J|Xq<4cae=ygV>5 -=ahklioSly;06Ur;_Y!tUF`c=4_ty%|H=OW~Kpq|svnd|+)JJ&6o&3#Q3O7~cRBWfowsJ(0^$=^7QQq -c-gwQNx;70J(#wNpuSAqpV1LF>36ovC66KKyxG@?H3zf)$|bCa!{V+{%29<~w}A6PMGF49sCj5Oz6Ga -85@71%#z7d;ao97z@wxG1#~FiHxdljG{aah5(#rX^(xzEj*u*!O4%>c&h -4RXP}uhds3$+5io7o(d9C%H6rnJob#hW9suf4z10y|vI}%bE5w#VsBPmaNX3^9rv~DRD0P)JMvHuz-9 -WKN_KDj!9xsA6=D=IH_7U}{4#lS?`>d~0u_c5TX`u|7iz|b9d02bXNZzt09KTV}I(&B&(W!^o8cv18K -ciglsny>Y7zK}aQ<$xDB#Y6ik-;RXh)Gh-)+uJ!qReZc7lM+xo_(^Nl&mPWfusH$8bC)_-d4U^H(l2- -ivZC%CMuj%z}Vv9FOamaq5?{44(DNq)hzg8^(4JjHt=n6?yM=6mYve+s2fp3_9)!0RvlCO3awoz;4_| -mxtMn8Bhs;N#OFB1P(mZ6L|HhGPm?c{di~SWeiz*@P9$`oJEW~go5uy=Qey7t;~t09iIYd-ir -k^eO&}KE{nY~AOe|IT4aP8@?B@9xy$FbwWX}v}phohp^E-Ep^1K@(dEpGwv?QRR|0$A2pJlD2DJt^>NEcfsm -7B)$vUEOXr*pP|1uv3p3U$H*;UMl6hFN%yIektB1ixFItwujQG|tP0%&sm)k0!X##!;(Du7vt$zojk9 -W#_z0LnP%0E7b541VGQF5sGUn9^X<>R-PqOpPemJJ<3y$=9ET$F1tb3l0`uUI?fyZdIK=z#6;BYcUyX -H%@mJq}(jt@y&vYD8*iZKP9L)$bXPvgv8EJGd=)xxTU;2 -j{I^FbR>0ugJ;kl$3e@5>& -adTMWALc-iIH_br2w>e{wR8H+R@=+y@OVH-AosQ<`ZpY*mZ_o#{1uvcsur(LF@u`ZaVAMDXa}3$3Ror -OImVtDG+a=4CVCnlhixY)`C3{28POd#`x9N06=2GQm6q3CD3`0r=}`=5q8b6o<4J9+J0|f`nE!c-mhA -7yAbv -W>K;FZNXFpKnmHkEz4?k@r)itPo2!y?Q7ruOUbfjz|!yX*E8uyP}4Ob!P9+am^*ucX0g@3l&M}brHZP -?or(q=2M`Wwmd`A{^>y>TWfFvfu=3i7B>e?IlYlH`uXPdeW`tT}*6;9!jpK--6%5>MgV8#AHEb$lT6p -`5NXwX^9ZQI(okJxD|--Wdqir2pj%Gk(B)w9*#eRLdp3PijP<)~LoBkrXa1Y3q@WKPHJlh1O(lNOfBH -6Izs)F|Gv7gbb*)q=tEe8cDr=xcR_&x#KY`hG!r)(NC0`40CYG(334V+F4|}lNX9Pl46Q)Z-Hol! -fu!?L~Y(VU{f(cm$XVMWJj!R=tz*ji$+X*`3cr%E**Uv+Br4C|519`SmUv>GS)m -A*d=aP=B*nUZ~KDO>Jo}*e62W`~}`*1_|Y_V>21+*=1Vzo%A;U=tDM$>FD67!Q<8%|Re@{`&|odcSoK -`;KkUst<~@K?Si=!C!0p16(X@9r}H$xD+;6PZtp%tM!_u|*yD+Zw8B%neJT1 -N`{cQWoTEtef5X#(_#k~?^9d;hW6=-?UyurL;KW{d%cO`^Hcaly1gpkKWuXra$+rMMC9&_w{%3R?$5M -JxsRM$VS8(*_p||mD<0aCg)g!TO9OG;ousQEuC%_cZs!N{8`Zoj{!tH1U6F1p=Fb4Kj3NRw@3jJ&(gG -UnzHln7K!hqdiU1pe-bN&#sjDon(s9EmjBfR&;a3`z*0#s+HQ;n}`3byd -J%tzJ7i59)49Sb^P=CHNAOv^!}ZWb_0jaU5ZaztyBvEdb}7Lz4097RkAWg-Yh>`(w9n=TCA$RRIAJS! -a-ZAmBoFLpdPj_KYu)=l+ls*$qf(F8v|>*WSDr@6CfW$OpJS3VZ@y$wd$O@9`SiljY<6=`A5CF8C^_ej47T}zBBuBdkEv3}(i#S5~a93%4$;>Sc4uO}eZHqNwCxw$ -Eiz{YoUC0{hrHK6tM*;WjJ)QiYy;>ZPEwXPD9cXciYMF2qnXn<8DjTr_3uGo1z -NzyuDX))69I-`X!y4Cmq{*h1L@gus-Srql?uw1<5azSbN>Vo-rfTWPyC8c$C8OO)k}keBG|@A~SR=Yb -*c6iFhC=E_R@^h%Ip#jMFNTr4tlgc5nUZqb4~pL|h5!<~gv1+6@8PGp -UwQmbp5Njz+f$BsH(s=uPQ_-|G31gUw;?S0aHg(=V;@oLldBHfPFxNj#xXKNMwH|}GXBxWeJ3b~_}m% -^7P>Zoa~W8&?zoDOxwMkzRp24m1sj|@h_(ANBMt1xln`LvsL==?64AoVG>cW2z|p+Y}-S -5JN|iYJoL``w+5`d8lD-)e&Hs1r!y3|ISWf8MzA=cCX&BSc%p4_0-P#e>6o}#aKMqEM986-;|J -~U-7cdDU3@@`(zz_zyNNfh{K2UyonnvrSmH7+5Lus%pg1`;!N7+m@_1Z#g?(`>&Qh(7850m9L(82Wr#%}&OL&%+8+aDCv{!)r+%wLi~p`rU-16{7G#Fk(3iR)nDz(iQg6pJi7>rscnQjpKDi -&28Z*wLXGYXKW5v7Ie&P_#!cRuDYDtg}d(+cB0XQvJhbHV$31BmZ<0y3f6n7_}=uZu7ilke8yw2tlnD -CKxqq5&ZW8&sh{r19j>atZdn#1tZa3@Yyym;Le_gY7)PVnDXGmxlpZunY?OT5CAe&$C!*-=dK6)G -FJJ_k3X#w0m}5ym+|%v{m|i`IY&qLb}R0{K}V1`!uX^jMHgyf`dht>e1OL9S8LVM@E~J_*?|PP2*gDY -lVa8HwDGRU$dW8H-Zmk9=}T7HRC{JWNOFS>~aJ5-3_dl~p&`PGP*zeLZu9L_VZtXBDe~BQ~f;fs&u20 -wFaH$Evq=e*}oY@pzC?$UwSv>2u0>GI!+3F`L+7BD)+rn=sN`&8KLh#+I^QQABJQJQ*EvOlJZ#K4n`u -wA?kd)yzlItMe@HvWvLxj?pQl*d~T9L>rLfV}CJNKk5=)NFapbmf5ZS;xXd8+Ng>$cCW9iC*Q)8-3?v -d`*Gj?c<8nA@L?@&oHV*#Qx6~Nwz$}CEf5P%PSSSxU?Y6sntf!yJ@z^PTX$G{*SHKX!YJv@*;yW7K|Z -K>@&rvK;i>(wogAu6xA|=7({f)EL{@&KajKNx2nd*uvo0mQuJka_#F_?Ru0>IwUaIwQ?GT_Q>%TleO+_#)VQZ6AB%s!8A#;xZ$NoNTsXL?WVDlkg{^IEB{d8Ey++-86$#l@g -Qz_mtS{Tx7irX=Y||8?ya?`z0f%c1&jiv+VYIo1G?wc1`Hsw=35~&lFKd -6hO%-Ho!9Y!5LaN0f^BaNVl@r^{0NmNqt+fV%NH`_-A1(THASzHi5i#&Y$!0Vi)19SNj=%g3BFr$b41 -Tc|6^V3VCcehA-H9slE(Mm{IGBowFl}>=A?$x;Bav5mRi1PVKd_3Qe`X6P=q1l=~fk_zS8hxMpyW&tr -n8$~zS7PYhS{=QZ15eQL?1@L_y(~^H3l-;Uue_dNkTw%UuU5CIhgEte?%Mvd$9vDv53(lNrr>-k$))8 -lE}es&fynjKi@m*k-Zje0#1~C5x;8V=U!3%jYm^L%Cj8s`4FCB8znvz{hH)Z7g$giZwsS( -w}4LTj}WXxrtE--ygXkjGmYMg7~wW%800n!BuAISrrq6q3`z|@QJg_r|Bf&1mLw_`oP_vfw%``X*fwn -CpjlmNYcqTubA+SaK`U!{WYn)t|BBBf3YtN&ZaV}{-_v?o`oU>b<1E@f&Zw$u5EDz{082ztT2 -OB3M&SW(ET|Q5jTRo3)Yz8dK$;CzX-{)V>K81wwXznn=PFW%dxpX!Co2mi_> -fc;6oG{Jxozjtdm_j+!{Dwr6dIKm4!C!9W}HUqj(%BqFkE_OIn>^Z@GrVVgAY{57Kwz$}>94w)a*;3;azP+*{e9MYU -E4n}5E+gusD@kOnTo6Fb3$`muj^}yK(#qjsVPOHF383Q}8w#170R;5c -0*y)_(uoj!sf4<_MyuPra<_8X5Nic|`}7(-$V&zb}tApTt@X$k5R{45mqz@ -Rvody8Gk*~D=%yW!D)C5Xczc(Q5Do=BOI8N<0)w#OPyPmG2iPQf`CXF7~z!jK0Wg)(;ipQxz`>?Uy0> -H%w|#NZg*WXu(42oCl{t~9)Xf5|a-E+m;24@}6Hs5h4i)m$jJNt6bfLOS~W?NKN$UTYh~tZ!-{Z9NDn -D;pgH>cADk1v6<;BJms1<}EDj)723DK%+fp+PmMPgqZaB_tZr`eJHPQo{^jyvS+*>27+-{+msKJ?@i1;hvrCq2ziAY;Ha4W_!`5U{}gyl)xg70GaRn=)JV^fe3(dok$D1<;m??T6?_p -R5Q1kL=3Ij<7ks0v@|E(Cm;qZY57hHFc{^@g5_kvnpaz|ZEP83=e_D`xVmOS4l6bDFv3 -i1l;XH^HY}sB>i<_BwY*<>e1gXt@fPQDa^uEa4Ll+Z%fl?{B=D}7Tvpar*5|?8iyo?&4|(XZVipneky -M*PWYmNF1rCg0*@VN>%!FI`5Qaf*pTG_whhqaj(#`WESKv#<{3f1du$4Z_ID=6_m$^FoLyzQOJgb-wm -vdfB>Q|i?XjPKxR>y+n)ite-seX0*voSC8=6I1L+RNwH%jMYnCU~}u9R^{m8+wK`Z3tmcHVjZ{J=C?X -UiI|qhPu@&Rd3S-mZjQSB#@fU=gVR;^}b$9(qSmvT*_7lT`v`9d8g>Aqa^&2G-33dU6HtqAog!`b4Uc -&gSVx1+!hgbFq|A;i$?rvPZ}p$MLI^5`MGg&snSp?-H}KWSuJHsOIn%nr|DEW$@Y=NX{#t)Kp-tK9Y# -ICp5^JFt(rU`iW ->l{>R>pAR#phwe+<}&nt#q2~Yi(afekoRp`XLuMj_~(wyyI>Kj;$PKCEY55{(s4daej$6m*jk4*Qzztpcm))YVK`LkN9BIE{3~8Bai6rBgHUPtb-zS43QcL%fa`No -}JJGNu8eVS*MWqYVCNIehNEtrkLA{f?+W5#Ga7Ct0a^z(vDd9aL`8~<}(*wtCNG6BqKTS9(e5MQpxN;z56Nj|Xav{pG|(lXLHU+WDBCD1snUBTavYUS0(Zt1|AUdes5_E={Uw#dZhnqX5eb4rJY%n*nF*citwTu=LV -c<6GXecVW6`ZCs~K!rPC$kz?Lno+^g`Ve2w*Ei%a?u!Dv?39YzFyW~(*I9Blb#Y=K9N5@Pu;k;7+!Sy -*WlYCXs+OJe`S%0B`*FLFU*l{s>ShgIIi8Jmm|b>3pA!=?n`KHhx&uv_6fhc0az(DF^msO=(wJEl&PC -?}$H=F$L}RnY>9Ef>I-6=Tt}#LLtc8gLEOE$FvdGM-75}NN9ZWUQaArP``f*f=&<+p9F(L?N3DYi5!A$kd}Zc6O8GX+_S%huhl!5GIEr7emgK5aLDR@Z%M=Kn8;9SHYV+Y -SCo{EJ4>ReYdyN>5VTH&fTq?>s8LR3z|ceuxj9A$x=3)zFLBva}k(Ct(e4qx(8p>vJ~$!#7;#i3$w?1 -;E<0Ivd8@TKLyCe3ljnk!!U#|W`GUJl60Ggk7eH(n}xv=u~gI1SG9uxehg=SITh+CeWIned}3hW;rt~ -q-H*3W+uGV{8nA!vwe53nY@gfn&UF&n@KQ>knwX=Tq7d-qH? -I^1moq8Icqa8g)HW3vzl4Hd=h&5GoU0=Ht83dETkL<270sJ44C}RCLK4xVHZCTU~PN;yb_>47!IGhE@a!S_9z+^pPpGvP+X}6V)nv}I{ -s*)s`^wjsA1{53*CL=1@#`;lzG7dQpSVH**v8046THwUJ0*}V;U4Hu%mPGJy`wG64$s`bKW0X`>XLkS -ic)QozW+q--di!*_Qmt+?abryY&S$JcySO2RWU-#?Mcr;B|H52V4B~qj0hrsVzmNH4hhrn1z~NzWzbK -My7M&tG;sAB9H=JSNTzFin=zp_TW-Ae+sJ3cYHn3YPxQ6e*=|ldhSbm6)wkQF|H6Kr(hq(MxZkGD~(5 -dcnsXfS<2aFT#tW0K1w~bw4^i72P^5m0>lqnmB6zTEdSCJ%)Tv?pRCxL;zAd1?dp^dgsWbNf5jf0a&I4h0>T6FmrP<2h?rrERbqZ6^%`{ -i*?W!snk-dEJJoZro8@~PKaw@TnNU@szZNvSN1;N?$bvWqv3VJa6{N!~!3Q2(!p&S@D0vMEas@(qwGyjVc -8a)PH|iH%5Fs{YLb1mSG3G=##@cKK4M*5o+DjN9ZBBiHHIV{_fwuso-y02lzh2vJxG8QVJ(rwEDvlSB -#nYqku22oBu`H|cOrjdROhk3@QbPfUhDqDTws)k2@kp#}uo|19CFY79j03V4`eUm%j@F(R*Qp2~%jnf?~;h|3efDj(&LZ4{)Q_L`1eORroR?80j-h^D*SQ7A(PRA`b7EHpi0rilnf&+5im9ZnD{& -6^pFtQl1#Jz+S41*+MVfS0NO1sAlSR9s}Zw14EzTINOZ_rOhf)n@tMbBznagtv}s0ou3)f`$f_F0GWm -rACpQ>2%=T3+I=LMx#;>8q=lq)Y4H^kT5dIJsw(0_YLuoNTo`PL6eT>M<({E`#!GP$OKHvR{>2gH7?Z -^eVCrlpM2BhcXBw`SAcUsFgrHSS{BTEtMXbWrHahPP9@1ZteF6{fdh6s>eP>;f44mKyS)Wn-uxorcTs -l)jJTCqr{uei(-UUrq;H0m@9S^@<=B=wULcanwV4SWl7ekMQC4}S{OR4P0SA#+Ywt$oCUcE=xiD{i)Q -f<37?r{ph%u7!XE%$j_t~}=d6@8RZ9)?Di12XZA1wY7XvQhh -=@uLKOnMqYa-x4A!pHq-27Fbczav -!ch!S;%86c4M3dQr0$!lr`uID5-U*acZ5~hA63B;3aKQvdZhM%R1}4&U!nU*bPcIc>Rq{QGa8rEWb9@ -*S7lFp;tB~(hD3&b6u1)&r?Zj-G;QqpSIUT{kAA+%91vfgp&QvDwT93mJWZb6KYtDZreQ>!IoNU)}9m -f=a!sxF1hQhyG#nm3YnPzsy;9N^^ovyb%eOARjFi+Nl-$Tg*`MYO`?7lQIK^2HaB2AycP7{jmpkz(I_ -|y`T?1*w}NqSkNw51Q7aRTqzQ+RGDx(Ni7!lVI7{PQ=Z$xxnb&xVG{N0G)QNXqhQKu@UPR88jU3Uu^E -DRll9!_=;Pj;C39_(fl`N_~udoL#>YesxAO;6Manx#3{A+7OV(kJi3AWB-NwBraOWK=F4rd0XnRP{x; -*oTNt!gZ9qjFFilo$ecdQ0G9MI&qfILK0x6eUo1?tv|=)^K18*8*-Ngliot*=Q!(XlE2OXCG^+_S^)W -=OgX;8lNlJw~$IiH&!=!oz0XT@mk0hP7h`!k!sIP;>H%C-$<#)weUWKObkXdcba-*ZZfubD@cJ4E`+2 -47igAB*}+gT@cZITrCK7pfI;{VA`sr6c{GJsCA4X;X^86RipZ@AQ&!0a3CHwE`um -0@$PwfD?%`*eUXFquMOZMMCJ^PnupFR7wXN{qlpq|MG)>gP(u;{b`^{Xy=0d{y%>C!JmKm{$G6g -zP&k9YBod5{_hWd^xr@K^nZT%Gb=3Xsryp6tz|1rYkSBlh;^XhVc=GcXPd<6^M -r`S8V)pT79`J64!#;B+kue@Jj?F7$27eEb&1>UO{LU=-nrJHs-@ESYNSP#fkcE|PwP*oUJ_yEoo0J>< -c3N8AYr0|`Gk4s9rT}?Y#+V8@3*7i$oHY=fz3F5&TdQs=;EKzzR7U1@L9wrqZZ?|#WG4Wdyj$wIf0BZj -G=`Y)jc@W!dMc*0U>Ospx-tknMZv%0OiNJ@f{#d2F`XDQZGY3MAHS{HNusqUO0ltUow1Hu>>y40Hp4D -9&Ftf-J%7}A_OVLQ?+A$6kaU3MSU*~Sf&#eJQr?@;{xvZNvClsxOlcgpy~9#-`<6YZ?8vjJT4)vkZ&k -xw%}GGhz}&Fs~1@Th74U@gI^HSvXP*gQQUzEIDANw-!e6%tU3}X=ZA*WqrCCWY*R-;)HhU5{*gK-wB< -SXK4$r0AC3&#mS*yKmFrYvW{4=(c6jX1sbIv2g%HyDj$j_ymPfCmav96%` -~*)lnTm;Lp3jCEJpD9V|+#}ngF4{Ft%}8 -85U{K)~2hY?x2Yi1vrlDRUu*3l#zCpgetFGnpp#lcP*2MiJY-8=bA7HTGJ(z9DLT{wZ)|9HZLzLXkv%bW!8oEx&9;ht+e$*wGeK -%Ts;7a!p_2`afCTQH~0JHoctm_+-ObuFg4(8+YjAB9Zeps(&V8`PQSE*LXeKLrtQP8X|zE`ct!DEsGT;sgp`7AL%`;k*VBS#_LQa-*5NW1HB7n1%-Wm5+-F2~vV -mh7hF9K^$U&npwqW7fj!NggMV2i~@Al6UP34%aaH{7t#ntsrvfE$=DGjL5a3RFfhO}fZ7G`8f#K0`vw -|4g!V+7$Dzq$zR(b8HngQKfEbO24|cj;%HER{0p4=y4kuq?-mUFPZDI -+A8ztb{8x|A&=(+8H{Eg8W{z|w(PGV&Hh(&A99bI+uY+f}hY3Ws>7Rf0#JeLjYt?bH*3@dS5w29q%e! -l09|bYuuH*TWp(!sXBa4rLV_na7i1H;iQ_G!doC&Wf2MywBq}!`$^Ac;A~#JrP0Lq2>{oWB`KZi6dx5 -F&3N&Kf|oPHKp=K)Q8QWGOr%1-IT$7Fnqg?Y7lUhY{6w;ZrL(Zh{>d9ZgOmchj%a4yW2#63G!BzojU! -&WW1a(0Y;9z1Lihd#VuYr5v14qa;PaBEK(p+dy<_jl}v+8uk!GAzdn#9hZI0ceA%-17pOWJ^zk&#XMlvvf-bkac6GYt!(?w=6#&BXrglE3#V5U}1&x43*N_;OGq7}-Ac -FccCU56AXZHhjRK!}f&VQD198BY`n1#v79^Gx3a(QvcW`LUyxkvFSu*KH&g!pIf-e -t#9EJ(^~Tk&GDp(>mquh^f?ozYnKT4;B+%b+vzH;nr~{(S@=*KAvF=d1vg*Xy>W`EgYu}*#2qBZ$1<;X>@NW*8*c@T_n3Ok12?7iTm8D7bKgN -*t@f1ph*C`pfA89gp|6m3CYKDen9sP=&T%h_m2w_`BsJO+iA_j%B27Iq0-WN8W`6ld*t90rzC36cx22 --A{~ww(Cd0VEWEso@e^&M81Qz(x)?`AkbpW9wDEWylZFY)cUwRg>`r_#(CC!#r}ye5zI(uH}?AJzxtk -YDtvt`I9K@wigz_@kZUWyW|vnzsC$2-!JgXJ`6gOSiFP?e_nE6*N++gvAkAGHTcy`u#077Yjvn0a++Z -vF-22W0#8iz^Lyf@)}TA-_2H5zf60=cv+NYSf^e9ng?#G%w0^(SO+e-;Cg=p%gs&=@sUx5?F6e;vm;i -GUOU0!krf${|aDMQvj%4R7`H_&3oeX|tC7m6*KO|Z_j=(`+?+;%W6ly}jFY5N&c+*@lt~Ch;q7-7WY* -Lj(1ukQ~fm%t@7Ic}PnZw`|_L^ZEPS1Jv6uP4VLxg4^ON!O{SzkRZI?x|%ZA>&ui=7QeV?5!;Yr~)w@ -)cs)S)!HS-rYU#+jrl7`>q}#xWz@?!SG-X8w(42*I&QByI-J<9rm123+WtTyL%VrFzp3PI?DU@)f&6nHDR;`zgz$R -br+Dj32fTq?m=m2&LWhzDBR1Yj|mlj+4Bxw@N@zg^s2-OUl?{nh;sH$UH#_ZPRf7uWY!mv`jmmb|^We -s^_$b#o0*-;;~$U&-IEuHVfG18V^v_EZYg0L0{INtS4{-7)5fkQPQHS+ba?JO&qz`*ng2Ygmg>EfF=-+XoY=d( -9}o3Ir8ti&!jPN;a0b8>u~eBRE^Cj>sz=~VxH$Kpaz1;VFQ9;4=kclDSIjUr&is?^3^6_8ioY1PrM_19oVs -3eax;|UlrSM*6Q<0;8l9%v0_WC=FZYhs#Zm=b2zusS0TjXAnXi9}_u -^PAG8{@tmtD3M9+Y`9M%2RZ%XliySt9E#=C5^^--Al@V2nZAum8)n>)SLGpxUbT>wY45O4kv1BiWsYl -U<=a!)DD1F+y7>bQxm~CL52$EhX8^oDyANB%5iH2FM9a*%gGR3h>3mep-7#C0HZB*ou**>AN9HfN30X -U9|htc1GeNQ3e$9#k3aKBp)5q#nh38Gcd&La%9Fd7LNDCA#bT^gH)?G^EK!j2J*anjMIcZ!9>!i@Wo^ -;{3I3rqv1(X2rSsT=p9bioTy9ga0T1nVaEA=0P5aMsK?XuUJ^K!<7Ki0hdiau^aFg(W(^NvyU8wfkI4PayBk6iXcE@YqU(0VWD;31=+Jl -}q($vabb>V{MuIdSKDOig(;g2ND5ATac32_qg?XZPvQQ7x6cwnEtR2*w`+pQ(19-r3(H`6e1uW2#cOW -dQVH&@Tug>UZl~7V^3GIRw=o}ikU62O7;h8=gqaCX(K-0Z?ZC%ep%4o;|T3x~HW%Gy_W>S-GH -s2F*umu8A)Te_1#(4I8+$nVD)4i0LCK8o>lXK1lttajwG#ZbGFNuLEwpSw@}n&LUS*QB-LIeUbf{-t` -i7`>5x&+E3}7@W>PcPtxjUv*fNfjwPP2h9a)u;(w+o-a!$4ZG}&IsaI*uz^Cgz&K`x$(V^8dFHALiIsM)hcrT_wK@mc;3^ -r6KL99(EpB9TwBy0P7L8}{i3^<{iqJljM?{LxlE2g%LK@p?z+DPdWv470!B(^usmlxTfkICHc3Gk|{* -9drYF_U`7=ebGa!P#%_Kfuj8y@z}B%W23!{tQ~=F{r)98)@# -25!YjYZ}%KwM=UeG;AIVL@87j;4T)u}da1qu>sC4~&w-`)qOw-Xbx~!ByRtcS+Dma7bTE7^t!vtFO=Z -^$^bMdF|7SVcaW%bY_(-#geK`HtMeeYD8HFFUdvSQKfm%7j;hh38=m0-t-%r4>_n62Kr9I0 -VakDlNQ138B(a#kSVIvyYc6#KI@p{xD#;0Q0uv?@g^KF0$(561=z~;^+OXg%%Df69ts-$_rujAzJTG4zD+j;<7t*ewiD5UhrNq`Xx8>ct+|PqGF>%$BW_xX;sjFU+H7`VqRkpCDajG@3V -Tvi4N0n(F^%rjd_Jdrg?eRP%r$VJ}F6PCxcgzBl^8B<*oF-RzZbO0~+-Z0~@92iC_&}yW-5F -6;W>Xg-m*E*{-Yw`C9xphQN7+#y`t2XFQ*LD9@#Bn9?2M$Rka1J5Z6N@Wc6SfMp_1k?3XqXR+l9Nn!Q -Ah6?ftO~jJ2fca`(D;KOn}yT?j&wX+1&e9YoxusHMT`-IA+$rFX64H>$m^0zR;?()v|fm;$5XZ?s(sz -1lrEUlg*1-gyxCnNNus|WNuDxD~4V(wI%eb(xl#=0>}H(dG?2XF+t2{RTBOb3Z|C_o%=s5KF+OZfF8t -oJUh^mbSFO(L{@kTR*E`2E#E%F2sP@oc7;4Azb$^B6Rqv}zw+Nsf1idaW?sEB_G5lJ4L=n;589us)YO -q$1+HqdXDHVf;}={E-w#RAahkdB^o`dpdr8?ACp)y9@`Nb>C~6q;=9gl196sU$mH^#+Pmg^nhK=)tTZU$mVgLiA1JZ5_m{u1VCPx`^ -bmR4ueIY%0P4yM+)SCaGpXvklT@1#C|ZtUrCi)=F>1p=Of_rZ45Fh_|BzmWDTpwO!!Ulp3VLzm2UxH49jWgMa@}cs -FR4nb_9)JPW99>Ou`E@rveLO5hGHs}0`(Px#jITbOf4&j`F*!WD`dyrV6o+TOi@%T0K8(ciZx@r}%S&-S0b=9Ri<9v&q>j -&yPCkDapZy}<1LoQJl{gunj<101)j1WZh>edgk=*I=3IyoGlj>Lz<)5Bkm3F{o_U=0zFc@$qh9b+Pvc?kcGuEytQSec{qv#SZb -j-alSs{;AU`0{up4kzPF6wAlS`6*Tt1q(RmLJ}LQBliEWoR*py@?okL+$A5O;QF2^hTN%o_(-6%12Jg0Jn`dHCH=f4e(gB9{b>Mb_m -B@3&UkO^H{aW@p#~t0 c{Aypn=R#0;{Nu^Nm;45Y`aGKamu!Yz=7r*ZT3E<4uB!g%ce|>!|4i3Z~W -bb!p?_>7c*8F#S*W#xGVeOB^+aZW-CIIx^j(|UOR?)3P592YtG=gS#1yHJ8PThLj}j2h{`L_(X4gyOZx&XQFX7Km8CS;JwGC?7q!%)~iZ=M4I!<0OfbD#{Cx& -?}HoC2_5cnsQ=VKfK+D)(`tNTD}a$Z_t2A7Ow9*5P4YWVMZ8(D2afVI`r#73C1|=i?BVTBSTP3upOjA -E&_fvadtos1QU5Et;k)-lKPmP6X%VT)X{%pC(5b9oq=zn1W;-Ql(V8xM-z9L?v9~4YIQ^*{fe2_zz>^ -+bK?HB`XEy;so4kH1w?F_GK`Th*u_6gv@s2;h(9LYtt`=iF0{s_fe8Uw9%k6kkc0!Tad)gg6c&Hs~{idmjgWiXD>@HGH9k#cShHKy -ULh=eF(@hA9?QLV!yNM!AlKU1&DwsnS -CxF00V?gVRz{qxs>!hl#G9bSb`q}O%95gBF*!qj|9?1IBcVbB --)0??BrpujZXHr61Cyk1uuTG3da*w)YtsJ-z6reHbL`Z&FKZEuW4!CSXSEV;K$I;!pUw@ZX-qt4ptA` -d{i&fP$o4}xl81pk`epaoMG)vSgltzb8HGHtb9U!ek`OR9B#*SfO8|8zPt4XIjz_CpJ!o!jh-3ZHTrJ -e~sBg`3Se29fn(K*tz|VgZ2AEoE~xK*MMx)`PV)c(kz*r8KUCxEJRIRNP@RCF+W~TtEsXhEmuuUmRcT -zuptGAo77EqKB~yk1)i}bd#Op#Ki&%$55E4VI*D*ChhNe0x1lkYYkEwda7{|%|$TWeo>*WMhmr2Vs&~ -Vo*GmY<}QjKB9)D9Yfjpms#&-u~h*W+|@Zo!u7~>U1b{~WOwb$x@uSz*8N?sS^~Pn4N -@t%l~J}epccW#4)HvgOB81U3(<|;6sZxcAj;EgLbIeEjIXgpxKJ@9(^^+!$neBUR-#sRp(-w7f*AiVQih{e{84u(Zqdl3OIh~qz2_hE#$zLbm1)AWxtpd0RD840PFJ}d<2Tq@_$av -%g287X*+)TH0{BU^GwMHVzC7TTtorlyk!!5GVQE<;zqY}jrbo6Ab#i~C5^tXg(SDjFqjV1aOf@d2$Vs -@3BQ}VpL=a&izSCH%yb^gN9WHx&Io-O!1$bmgX#FdSsmDB%d54*4vf#KOg;o2DZ_mB;xLpnBiYF+f}c -Q)tWovzhN#S+MlRnrK!5y(hVWOgra>tH{OKm);4Hf2`uBL88l?GZ(pHl*6+X0?@` -&Cq_`MyWkh9}Xy}IbDuQo#Hr3`bSNUss?4^{i>E+77=QcQhx^QkI_DArHzwl#YQWtns! -f9|yYJ+$De6d(L**uXhd9C_;6`-~1KT^&AL)ToxwiP$evL$r+@m(PQa1*XPzMzAF7tFTH>@^fp)-OKR -klRH*&laJBD~6fE#RPg^LA+I@*ab)@k6mNvS?6x&#J`A7)&2gpXoYRIW7j6(bivVIET+u@ -mO0rMKr^oLrDF|c}&>BL}N8Z*bjjKsSiow>=tgnWK^nr$F6tGeH3i@*W|i -<&C4~qQP#YnX{HLp{i%Xf@vk5d)NVO@yw$V8HWn4vQB&?%wNl|?jr!8$A9q%IW?l=rE9+&*ohVW-DbA -tIVdT0YlDb_secZ4gX|#svf_S-BFNhXtKG -ZH-DNOzXAdC}l9>>b#XLm=Ka->rl^VSAm24;T|iv{jBD>ZUNDOyK;MHra -9(!Z;kXmP8*A6Kl&fa10ySW&5MPr_Yc1AyM&8}NKva}wxpdKRd`C -E%&h-cgULF4sFd=IU#MrrN=!*SpIZE?(DGJ2%SZ@9H!!FMYSq^A;0qwz+1)7y~u|oEtAn8Sdal9$rW@ -_-L*bw?zIU4x%klP57tcrYP<$ar5XoCFjxBWfxOpg;( -Dk%~^(d`gGhp+OklE_`G7BEOuxcY!3x|H<+v=b}K?gxDN4j-bj5g3QAU6;$}r-c`9aJ>3N@oO8cO;P( -%tI7n}D&b>2_5cq9kZ}&RGh%s7WW7SU(iyo -;`nl|7i(KveL{Eq*Hi6Q8B3SlRzVW{t3#A+7%WbeBdad`qPf(*9d8=npz`k<@ -19;pCyA?i-ZfNB_47Th@nZ}*`^L{fL?QwKhr4?>(G~LDBQ{(9(i0zE1YrgR9%q -SAg)fAar6ymh&91_WX-9Yht?oYy_=)OtW_BuHVL?17^iX$k@c_<7B;lGlE -QXoSK{|uUJs{FHa=6!-S*d9wOwn1RZVo0TW5%!pWcE69VODuq;MOSMqhfQOV`t9p~zG&rucmreg>ky( -kP)e-t3P+#CiEyAWGW!E~0IoQk^z|ao&b_dPWHGR6n*MX4&g8E;sm%kqiGo*rlR2B~Vo@66yI$S$z=l -b(b)9M`D-ijSs3C{K!nvb4h>q`iaKgZQvUkH5n^bhs(O>b?EAm6>fy5<1Fx#q0%U|d9^OwBZ%@8L{61 -KCm?X|Qaih1LOEOvo#fLjsPZYAJ|&@2YWX?XnxhdKU$vnlWCfwXdOPIO1&yJR -4~6IAQb5anThXzk!PSq^?5fCmCO^yD}LBM*&?^Y97tIFleTB+3)X`Rb)WX9)ZViL>FUn&9tq -OA+##1*`AnFAn$`9qLRR|XJ*j59`!pE)(nD1>hC|hgZYkKc3}^$e~-IL9Nf8&XFt)W-jCUiQ -vVrf&(J?Nn<|DCWKCxfWHyqqhCBEJMC({451t!_?vy^#){i~qYY_b4x>>Lrtt?bJPDeWf3=QtEUn;De -J`ld+uc;$C@rdX^{vwI_!!y%P^%r`1G>!Afcl5zEmP%+cpfXt59(8RFh5r-(~^thk=it1^jP5ae~}pT_y -Pc-Pb>?!H8io5v+Bm+S|Wxnz;I%%Xr^PUW3q4SK?8sqj^XmU@ib5kxAcVFs0yad1EABoldIIiQwLt&J -+%2dpyS&FL=c8OV;=3rSdXv3+9(9HyKWr;hHAsd8LjpB3}xcq2l4@{Wy+3i1}z+r2ADfApt%y=@SJaA -5ZB!ZlnwAzhqhiRB#xxi$>iCF9NVPBN#~S?felWCgK&?s&O* -BN=16zfsnE#MC+JrQlYfJ9xxZk{v;(n -jQa{yCFu)^)wEuTRw{X`sP~vcp%;wJFppdLgyz; -o?viJ)4I)ln=j-Q+gq4jP}7!fL04F=#_*L#vKmDa(+~)`b}~)|K|WayBSIYi8?0G=bJ~%uY}~O3yJ)i -{v>heRKe583D}xFOf7^Wo1j%rH@25tskD%m>z>7`CQ7*lj`)bmD$obM#)5l0U~Zck?6PZbZ$PTDx0>P -7EH5gjD!afm3US*tr9mti}YC#;h8;Ex|+S>n4Y4lQ=M9K%OqKgr^`SuI2=kHb=;y8#-4hq9!zu$NO>m -tz;Zn0zMPG>&69_MnWoq-(OII-h=UFm=cVc0dQ+{urf|UE_Dql2>hfoHyLG4XOFHmgCxbBpWtTIe;Tq -BfS;eR^mnuCA#DTwpB}|J}45r1)9!bMHh_I0XSB#epqyoFsY9yr{C{NfH-q5k=c<#gST?=Dal!J5EmM -ROM9gdqjS!2Vb8SfIjoyCd`6PHzs-GG5wxlqj|^mSRU2O)?7&mRp@EDEKfb1a|J8y>6DK=1~MNItwuv -sEY=qnzHs2&XuU@hzRjxMzP~X*jbbu*!t(WxS*VpKwJORh4FboM)Be-~hbUG}-r7r@HX60crVe<_;Uq -4_%e<%^?Dfj6>#Ijyy*Y9wjiz3cw37=Cj+7dps-+2Szk#!4vEGN$SXr&!`MCyUvtla5Mu8M`A;iT7wx -vsI#xgcVozc>Yf3(1r8b*Zd3^=v0oCZTPjn{jgYe9R!cd!h)M2$as>5bxugRG8Z}424Qmdd-@4{Ra>JSngl8jH43r%XC?XhXUC0Qunz$KBJZ<(9L5m@in*nC3a^Ym -4VmKd40yc)7!N-s4xGlBh%Khho>Uql`e{D}}cBA04d%MwDn5Xl4uZw8_PY$vKWrmt#7DGZz4ZHSPkCO -!VOn{a-nW`ec5pNgZCW!qeEsd(%GluPf+v`$zZ5SOviLS;QktXdxycvyPM@||6 -MufkS~2)k$XtobXhlQHB+6BO -=U&9nJA?}`*A=9cyn4jQ`E2=W7`#aCSZwg;<~wkF=ucKZ$KT%-rR5n={=ExuJgj(aFL>>+3^c@?85Y% -s&FjzI}!?|Yfp+0nu~){&|fBp7Z=A9=kW4!{L2|$n048Wub6H@|9tV`@ap)ob}Y8uE2qn?T3}-cjDPj -J8FZa$cQfGM26uDdpBIBBqDJ4=c0_$zDKzQ0^uer|l1P=*Z5x@PvT3WeW+U;>{~4NoiZE@%Y(XaKxju -`hfZ1PFZNs<_qN{B+uZF;k)L?Hbqj`#{7&{B9Gmf>|6c&E4*3yf=f_wciDp*s$EOn}MtGFsT<`f2HG( -pug6-}$)N&K`4z``f+*EFChw`3I?5iwnD7of3-D+<(NaHia8!iO;Hn{r~DM_Gn$M3)`CBR@37kC{Z^O -Bek=ghvba4ojgU7Zt67KG`#dXQ8~8AzcosHmj)H0@baHv>lSBw^O_}09WseGpv>S^YAQZgLBGbYNaGH -V=tyQIo#Rs;5e2Srusq-JV%?3B!m>d83wdZ9PnA0|JD+pDdFi`-k=XnVmw3E$FsJ@_dmSWH8h3WLWRV -gC9d$$Z(9%OyB8pA>dvUM!-a#D;NwL7VzY_eprwvP_qmeACLNW`sTSKyTWDHCSN%M_v`44@*Imbnli- -#y9A_7gPp9V%Tw{aVCZaxl9W-qfS3wy_sK-+6Ka*s5g|}u4ORzH+x7W4XL;F4%EY>!08O;!&v7yG+23 -MHnNbF`3*D>&lIZD|b32R7x+1$NZY0&g!v}Uq&UwSbwzhc9ptwria)&AzKT`zX&)lEmFw0oC^=#W$FE -VJ=|SMx@$Fy_rF8lD1A&^l#+!mC4Qg5Goxjlf+aKV9xudbqCS(~=q$4-C=fetc=tD0#-{x4;-Sg+Kti -S_ZrIA#wxm0R~%%oV9>L74<3lWM}}4D=EC$cehs2g6`KU*ma?lGO^yXl~%)$3^h`CsyU9zA}aQ(yLUE -18PU#Dz6;SxN5!1h!ET<-Uj6&7o{Txz<;k2~!#-n)XXd|rnZA6fHyRt4Dyqv2J{nVmS_H4ejT&9vh*v -+U*)zJ|;08*$DWUKUAvn2CZ~t8r(xgRej|MerZU0G9^BARzR~`wRlx4joQAEifIN6FL-Sd?YA|X#n4B#KBWk~O~GiDd}CqZi8fb}RK)-@+Isp7 -3q%i6aJ{)D7B4M^Rb>6&nc)*1#|FyW+~5?B8Dc%dk?@_z&Yqq;bjrK8th;J(LcfP92q|L}ih6-m5Yau -InvO#z@1Toj@Jy?>TUzl;>4?l>XCz6he^$%(C0c(bHr)m!Y2#O| -#L9Wo&@!E-IG_LdP;*vfmm2TqAX#)Y>0#PuncoRQklSCu&e|3|9z6f|B)W=`YDxtN4+itle5aatGqE8 ->?O0eNAlNj(9sjW2OMnG$h0ck{I2p~jL68sG>e^pjq)I}l#YLU9bO!~I4F2N9%G+#nCz4L-qLj#3)Ap -z7)LHWfDJu*uAVTq{Kg5qAM%923^zH;yPCz;6Iv?w8jQ6=6!DAV+vIE+{<1MS2IY+sTE#Wu4DZs(an5 -Zdw#>cnF^+CGRff>MA%a9&sb}ZM)X!~rbbg-F^yme! -QqjHjrdDSI(l$sm`o@Ze1R0_1okbSH89CWzzzfem91QY-O00;mMXE#!Rer%%>0RRBC0RR9N0001RX>c -!Jc4cm4Z*nhoWo~3|axQdubTv>xa>F1Dyz>fXdS?u_lk~tT59k|+Q5~ijh`?>~`%0$e0$NGC%eqp0z- -p~llbXcUEqA!))G$YD2c?ZVi6zI3ZgULq&_aE9wis@Pp_3X^$+c5u+xVOULgHJv3`a5}pny_~dw3_stz6eQRVfb5e%rYmVRW7sO0U2n}C -{0ZqY-qC(qC%Q=#TX*xbs!}AD+?XZgg^QY%gD5X>MtBUtcb8d2NqD3c@fDMfW+ykOKsD;Z9JB3q -j9NhB&pMZ6-`oi?=tmDY)qNzxRhfTI&jJOBMSh+=CkeOM;tEBn?_JNc!Jc4cm -4Z*nhVVPj}zV{dMBa&K%eUt?`#E^v8;Q$cRqFc7@!6|8!p07JPO&>>BV=8zgi~GXJ>~qvYM=MfsJMulpd<;=*+~dvaNUq-5bYL0yub@!3X~u(H`XC1P7yoGh-`zX#*@{H? -enCT_`%=$yO{!MHbKly7c=A6QWMDlwwo;1yD-^1QY-O00;mMXE#zuX&48Q1pojN6951s0001R -X>c!Jc4cm4Z*nhVVPj}zV{dMBa&K%eVPs)&bY*fbaCx;@QE%He5PtWsARG*n3qwfIJr(dnm!{o-Z747 -oeH3WvY!jhHjilnZ!~Xm3NQn|9I_VxJAc#aBk9YTdcRX608l^3>mj=v2_>X;CmsTkm2EIwLTP*fkome -B9ym*4TQaac0R}03PoL9WDpbhKff7xz7zxQL^vbt*gh=(S -vctm_N*vGEo@O_ZiF5Ka=#8=&WFt(s)or}0hS-kW~ziZZnm-%045 -nasc8`d~(%ZywL?qYH=Iv&ArGiSVtRr>i_fz$+m&YLSZgo+H!sh1O1Bpruoa#s&fdCFy5=k*%t)EB0AjwX2xFW6DEeLnN_$e5Q4%61@Mf(VAj`enTM96PXFdrnMT#dEj -$CO0V-1Eh3Y(MR`BE+qG|lYdfcja$xo4iLHu2Wi`AESAQ(^;!S>A*@H|MkZL;qFD$)ecB{aTv=AgCG- -?I^67K!yKGf2(VXt1rWy^*_C$U!!X=`l>K8CBH6S1PJUqx7KXhT%l{$dCZcvC~1us|wSRSFY6W8CF}Z -8YHTXZSJGriRNvC)fKW?5LI0XA{UoMCmJF-GKWki2wtm6E-8Y)z9KCqAtGHv8ckvqSMwpWk}>=KjPstq#}{LH8d3RDj$5=9s2<<#~_$V; -4IRWRZI%EDUNQOG*WzB4gz*nJ=%uP?(XU@#`!vXeL*E%VIkIXO|V16&N0;x3Y^59B1h;sYm@U2z!*qB --(kUb23EmO*aX84u5m(7uiieoXD?_2kBK+v0JyVQ+7Ln%i^3z5+Y7$dV&}0s`IQChTF$4?`(;94S?cR -67B$6G~hZ&+sFv*a6huMkEE78l!n3ggX&tu-6)~XVBpcz`dzLY&*oJR-nm5`Rj$6o>4+<7**c6YKJgK>Q>YvoiU~ -^6xb6yVQ`0XL_jf~Sl%dO1f}j!WE4W0l?s6rgo)SX%Sb|jcf*xT*F@}EM+7{wX=VrP?)LTvEXf*HS8& -xJfp`4`!cs%&=ufS>BLogNc*U4Q8`6Nh%PJ^Ug)kzp$a7zHS1+w`yOMmJB|sYyW&++cc?kh|<`*++X5 -QZ31r2ffg1nZ%cXJjbn~B7cJrtIBs}!@)V7&aqEf?LEJbO6nZ%sa>>Ffw@C3KAfbv}ac?u* -9&yOv?r)uK(N@;!JW9FT}#7Z-8!8+{lzqIxTZ5Lt?2b2CrIzjBM`P$VVU1PJC~P-nZ8`aU0PJ1T)7Ql|p7G5|W-5UB}S4-zM_ -kUB|G+_v@gi6ugG;e{VFewb+S9;0Etl{oThL-Eka#Zh&!fH;VJTMRIXW{!HOpD%0fZF^0m^z18yC<%Q -;Y({p@}p&xp?yuy--&3jlBdG|>?#aBiiHGI};D)y*=HJ}!h03`ze03iSX0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gPBV -`ybAaCx0k%Wi`(5WM>@0zaAb}16r4~`v2*%wt*!a+cHj0dQGW4a$cu5_6bAcu -`miB?*#jB$bLRlFjJjjTTX-hu(DAqy%AKnIgq&%XnS8&9h2XHw-nuxITwEgjl`Z)w2@?s*#Ie7)2(su -Y)4UHBF|L;LrA4mF(*>db_{3mW~jDIa+-au6uXQ-+!7KV>h@@D7VJWU#xmV1TGP%oQUjI<=lqbncyqE -F`=nnvn^n>5M<9Qqs#+}!q;p~GZy`oAz(b}hd!Ke5DmlsMmZ8NbP!I)OR*v}g%fdT4!{0v6&MP)h>@6 -aWAK2mlUeH&TU`WD^nr006fF001HY003}la4%nWWo~3|axY_HV`yb#Z*FvQZ)`7PZ*6d4bS`jtosqFl -12GJS_dJCq_FLGH7?H|?s;c`bm$+PLE>0b%v~Q1lz0yOX2*?m6j{W)fAK~MJ0bLuW0V>BBx+YsL2w}* -?a*DlCNCpoMv%vEhePSm5TKH{|F>+}zy|`s?+lXKbVty=4i0|&cnw2p9wlX7iHwJJ@Jkrp{Bm*p?cwe7$;IT`@c0<+@%F0;+}->_SK+_# -(mXp1Bm5fxy@Ql5wJ7FIEkgJ=xj10(19|^|k0py4F4{=g6H~xl%~$-9t$_1_iGsbVDv+3XWZ$uJ$v(c -lVrPH<`aC)yD)n>k*m*?H(*S9E-B#WhFq_(TFP<5GQpn-DnD^FA>npeoW;`K64I8!B)9F -)4W=E~%{Y_gP*HKYs-x+qoDGD8xt?G0`4u4 -2v1K=rtI|OY|75?>g?pjL<{pDq_v!beWjgrn>s7XIuDafPFZK!Mh)M?EA5SF)IWZFhk8tE4iN!NUdBt -#?)Zkn5e}eTT2uTp%o=|nf3OUuDH%KI=ylsA%Z>%;=FMZmD<#Sz3_cXuhQ$k6W{pAyuEAAn*n5_h4?K -;KV_5l_4A?W`zVk@4-le&SaDuCrb_Xz|y>3VKcaKc_Tg4|ZH8>8s!H4XMd?E#B*%T^%WD5wRDJzT`Vq -^*5`prR@AXY9|}NoNJMgeppmP-^MV{u-Tnvx7W --oW(01T(A&=<&z%}ka;DuB2II8`zL28h+3VY -PF)|=h4vXUBc#HOuXUU4lni8o0D6+q)%AYo8cbRrkYYP0Wv9&===!v_me$^X5*Ph -NlOab&l-EVdAGZk8>}Wer_UB1`>nQvM?}a3&4ZCi*ws%h_0SkI+*-5V*yM5SJ)_=k+>|lLAu7c}=BF< -KhI#&VSoyMgJZ1F$jt*V525luxX5U -zl_5(8I@E2pf4>-qr@UVlFnnxoNmTBtx^yG7}U9n1zJxbC#;sq5%nS>BQ7S19zr+t1OoBi_wV61&hC% -CJjXoZ&*h@1Xi-WuwS_sf5&Zl7JE#WdYcYvO9yc6ubDcOX)h$`*!Fv^wAL28(`~LI@1k9Y_X{TbMf@Z -H+omt9>8ruj9#BmW0Ksok0G2~vXd{}7R;U#QMftzU0XY3mM-CaiPhFUs*_p`j$vh79Z6fCK7jiP;6Rp -$Ib&%g%2omr* -;BxF7lkG0^nP=iP+B|g0eVL4vB)p94KWK8b{gGUHHMsOL4}cFt#{Oh@^Dp1JtY0FB34V4GY@poQ#zQv -mZFrYz6QaIrE?pyKrvV9<{@Zwsts=UOLsop{w~!z(S;N6eloNa~&(t$aP9tY~W!9m3!BsA|*RysGDf~ -46+Ljv_b&38rcBS3>j0c_%rAblL$!x$m6_e7weovi`G)`d$4qf5sh?WLq`q8X!>*%NFY%1G#U)_!`Kf^y>hf^7rcPod) -o?zn92#Nda<#%I$W_u=-ZauE3yE#N8BrN9^rqSUJvd1vTdEy>s21Q-SN=q!dtLMaHXd)oTl4A5I1oG09t{$x+Cl1h|eEhf4E?uA%s!O60{5%v&pF;28IwTgmC_)$TOb$8SfVr879$`f#W6>K&>-p7wZOB42aFUCaa)5~4~({&?OqnUr?Czb{5E;nGU+KR -?&W@;i?(w*#s|EeYcyrH-;VYffOMJu+898YxY2t*Wkn&+I*(z -+?Y|wXfcM21>WX6|z{WSze}MDWDSmqNU!OS+h@w!u;jlAz3@XUDqhyq1Ef>&8>O*nxD32J7tS9-E2Ew --_rMcWxr)(9dIJ95TT(H;V(i(-Go}6R1#~@bBnfPv1680< -y(6cijavg}~Pz=;@v1&_b>HESy$Mic6_4`&#N!QfXCd`aa+!1w#>GYE(h!fefmM|S)^cJ0NS#C!$t!? -YTb9tmVf7%CW;W2zpq50?@>kVF*FKc45z^UKC!RBGi@W2dG!R#F`R(NWSg^!EZz1J9kb^9G+Wr0S4#j -yso-G?g}M{zy94~LkuBl_e9RE%Q*$$^1FoR<*brc_JoRGXHZz%$T+>I-wZLrmU@3cEPk8ttbi%7b0LK -50)5;Pqb834UU@&4}B!#&A_KnA9I|)2DJ937JAxQQ>4TSrnZ%w-cDKzg#l736X=2Nbj_PlBD(|ojN8;%&L@NmIDPw+rK=6Ez5zi(|Y|2oEx%g|N`vA{4oxKDMR=5#m -a^c*>=JrYSv3+jiQ^^&sMtcCY -xkUN!sWiz;a46;z8%%91pmim!|98fvn5BrqV$~hcxr87E-g_N<7Em>C}yyC0RYv=?*@q+2r;sg=T9c{ -ONBk?m-;-6N}x4RU=l8lDuGF^|d|J*JvIqx;|~e?l`Z!lH1+?;7daa@GU&;^R?@^>B@kww4u*4M_RIu -txAy307bNxI~~CJw8<+6&i62*AMo+#MZ8z3KAmYJU0iJNKtYo^!+2ULm%X0xh%WZk$ -Nxbmj$W`pZYt_Yx8J?&E|mRJ_yg80XD2UFWpw-ksRy1wA&#wE6ohqXI;_D_7;K!%RIjevjJlJgvo-?D -sjit(toD!`N`ih}ZA=9}$!wD-)!(y4?7K!qQAAa)Ze5_K>B<+8T; -nAvTn|4rr0<}>Ze@GYM=R%IwWc#iJWtH)YHxVk4e@5CUiOx!@6{<721k2(pvSSP -l_#!LEs4QrtE$gPq6ugZ`@GZQWuKnG8|3<^S!hGhk@5xLHW0o0D+bPCZ6KA4JqGY0O&g#<(G=YRd*~ -JdMU5=3DN-P*IR5*-p=?=pg9VBL^&zpX;hQ&a-VEIY-;wcTy55IGKO7UspI;V>g|;e2dQ#R_O7EYI<< -CL&J%^RAzOqj1hXvuaTrTtfPaPuZFouu{esDD@YI+*O>ChV8(!n4qF%!RXIHuOP9R*f38J9e%3{?$H! -{MG35DqOnO07!NfB~6E+WN?dPa_t;u^tj5l|E6$_o>Ah&S2WR#4bhh&4@Fi7mNJ#5eO=!U@Bll&}Qm` -e=|q`I=~>5!NDGdXJ#-~b2|PAv9@H@+A{B%(AibzLQO -FvVWwwuWun*={C7y$T+n?Y61t9AWk*xQ7K^XcRKVg8b9XR6zWpWbbW-yQEz@I|!VYDi2S$mG|LxM9+1 -jFo+n7n|S9m;DkaWfR-8tEOQ*8x@zIgcnD#S5pJ5S6)U686R-I6Ve?@h{Sh^!`JNJNnG@b%E*|l2YRe)Y>$rN;N4DaBgQC-;#S#bWh2kj%sg*ZG|la#Uo*XVxVkKp0-ejFvRbciYC -(1Iyf{C*SvrtO-ov9>VP}#@Y2jeR)?)8$gM1mxfN(*`Dujx9f0PA{t=h$L4)Rz${gy2(=QzN%_=`$$t -5~o1^YwAgI?mE*p@CcLZC=TWCjSdx5qG?!^6fPP!lWU%ENiw{H4^3Pf@e_RXF=tIDwTFII -9JHEM^(e-=o8I3nH$;qICIP+&z4VTxvzeRZ#e?=V3@R_z-`k0j-4{oViehFXP@|xfs4Z&Jdoqtfov5E -P&iTo7saqQ94@4r0bipcNT)i)UVM+O?$4sKt(w=6D|{-4tR4Nyx11QY-O00;mMXE#!mC2d}>1pol%4* -&or0001RX>c!Jc4cm4Z*nhVVPj}zV{dMBa&K%eXk~SBX>)XGV{#Te4%P# -f;^lThpaL({8PUVkioMmZ+EwMQS7!$1U>TcSw=4r6f+{2U(YM{SMFhNLrLaYLsF|c!p(<*3X(2q}R)( -C=e+yWl^OmQ^`{dK+!dc9soazt)QDoKKKO=M^djI7m@_kxqbqKDvTp23*?6S8p%Nu*qC!hsc%L|2m6Lcb -yxign@T6D^W8!I^QSooT1FLm>3fMMmYa08x9VtCEp$Fc^T*lwqaNA6StyQc0>bO+&HzMp9$7ju_l-u; -i3qhKjI!1ddcGxbi8PUl0V%{l_{EjIJ@G8JgbQczsldY(7*3469Vqm3gn%1nQiwNn-?O-zudG!nKNe& -D$l&dGClSR7!D8Gm;@K1j3Aojd!IGqgMn?r?WSaiKd_Kmc4Lkz2W@$W71(5dCqx0}huZ+dhm}jcewCg|0NBQ3 -viuaR(L6ySj^30$wHZ0oT%DM`_Sfa_iQ8OzIYKA^G;(#j>wS^ZS*dk^n6-!)MU}_~96T1g^xv;$Ew_d -pJ1Ay{TrJeBk6Y-u`Kd9kwQm1K*d;O0-uARK6~^S!9^Ik*d%XCf^p8qLH?`c?G^n)YyA+x9qC!myE+Q -a6SWz9_4qSYJ=$pdP6W_SNuz0UI$;>Me~WBv{|E}o)Gd?C)0sr5I^_Bp}G6Ac=2`6w%0iG(SLO;(_st -u`2l6ypyO0`^PNk{&X>IqF&EoN*4~HL3`0)eftFB)kVonnQ9_=RcQg_Pl -5P>o7}iH(Dqe?8j>mK6pZ&qYRaO0t7RerqSUbTh~=4$m5xNx0dLP!3_D6 -;7{^;MVxqTens!<@W|_?+2N!oBj9%HlIgF(UDaG?gnVmikYUxkT6z);}s+Imc-HF8wfTRHxQ>1C=(F4 -;Xb`K(b!#uHY^Ftvk62&BpJCTOu*Zy5Z@_d*ak%S_~KKXiB!d($tpfuF8_{A3z)h3=G8y@sj!>2s=FU -c!XQo(E7($`B<4hKh`fqnPHK?~78~`Lt26lXB|ZauqqHoa&3=1nU0iS*xHDjHh*O>q+NAvMoMy( -p!)nl+pR@(&DBCeQDV8!T4*?#!Zted0BWCWL)xy;Sw#R$#JyV+zqLUZ$OJ~@WVbYd>>cs!X}?c1Md$a -`nD`4BZT$bWB5Z`us0E<3k23SO_>jC#&_a!i4ACc2aQ%-JFOh5z2-!zgweb{Yc^gA%IhN{ijipxI5G^;?8Rgh=ByP)h>@6aWAK2mlUeH&VCAy;> -Lv006Ta001Qb003}la4%nWWo~3|axY_HV`yb#Z*FvQZ)`7fWpZg@Y-xIBE^v9ZSzB-9wiSM#U%|>KEV -+uBjg6o&Fb~OI+I{FIXpGH+VT>t>@^CGYib&1uB*=g7IlM^J#dff02Zl!$$&crLGjCeiX_8aLzP;LT` -xlq~>64PeKmS(qe6y)K*^rjE+3vtZDLdj;8}-oA;&HK_b?n!kDXlW4yS~tU$CN+w8g6|r6cdVTeqe8S -q1^>pA)A(Jzwuu;H$VM{saC?~6wr&u8oo9Atatj3DbVsJm1GVx>UH&x2!V>4Dn))~9j7(_jdiiiKe0jsl)=J#%D!pgFsr -MSI6>iq=QNk)Y5PG6=B~FS*wx*h(UNtFY}e!%`)!%qmTU$DUKwD*6+!F~8b4-bJKO^5qh;(^Eu_#)=< -PdND;5Ca=Zt*#@#gI{`R=>F5(P>odJp*UQvv|N;~9B>-ViD36R8J3x-?*;i3x7>f(#0&2?UOmFbIR>xMxc&05}_ak3loHld7ydcHEXOZa -AgVdF?NpB3-oXxytJAwc~!wVQGfw3ePlpENSldR=IO{5SjN>rM9R9Ehtizt5e+VBQnHsv;I12lvcM`O -Q|P{rLLO&?W#pag3TLJuN4Uz9c;uj`d`TG-vVYj)PD7&;#wz%5wxpVZjr=|_pg!^@6kX4j>@wOBEa6w -Wvg{%%>?kqPE_UE29+Ff1m;|XRJ|qc&@IW3@azHnj$LWk~)~GmHpeAdifYNo3lngNT&Dvg2mEux_o87 -Cm-QW_+Y#vDua{{bAK~M)WnG%F=*7i=bN_b|vGCljpW_${4z)|`O -=U5d*aOoJA~hAj5&+~e!GH*a5p7v6JaOZkRJ*XeXQGl@yBAdxo*K36%Qz5d_DOOP-{w(KY_Fo!M}y23 -R0x|w%7^NV3q!~Dri1(MlCkuvB`p`F7ak01tuyj-n0!$zM|OU|KnPLrfn#jPgx|FKWFn@l3`A&GC^vj -Jm78THG~hQ(v##L+0wBhE=bDI!!A%V*(Z)KAYez`z!}~ITI&!@q{?y%RX1}O*7Z~x&St&|2C9g&uvCj -o-HTj4-c-wWdTfhK-QNY(x$jHCxBl9I7weEA;{V2TYovq{6~7fNG_!Xo+bGC`nyG!o -?^B@Bv1fEEG9F-(Fwdk-s?lqABH$cVysiQ*}Md*FRk;=Lr{mlfz!wYp*0Y@?kT@f!~9Cw?@9VU%k2;d -Ii^ZOzeOw=zI#3=n&M3%$O@_7-ZVg#1CAu2I%N{TH(%Z!0V~TUdEVwv@;H{JN*7flmTEvbqq*J5>K6B -Gq;ED0fR&3v}O}$W34ra>By!V=WYCL;X4TcvGF0fzL-#^bwq@IxP|j6!@qYyuBE*4K>9h>AM=*{wlqn1xq_A*N*o_%Kj{br7 -ia{NfzE4(_$l6!-@28%BjfVHQ+iNb#N&0F^@o;m#fnZ$o}Uy(kD{6e>$+LtG8XApkN;G~}47SxMKql- -}`Nvs8nL+ma3HTT-B+!Y1nsgkwm6(hZE#)!PcXze?M}7Ky-q=SaH}yAtgAdCtLIP7{ZYE=*pw{FwA*Q -$`9oJb5Xwz7=CILgGJ$D)p{37nM~tSU>>eBsIJl(|GDs^(2kHs+-aZoV}QuF^C!PW!{~$iuLNQqelok -mWtc4(7nrA*~YfA4Sf3f83G1??GoyCsDSU1P)i{Xk?z1=p&tLrOjy7yKoC)sknNU4#l9Dhtek~qf7}q -dJRVT}EJ;K4pf*p3L^tJ_^^PdKMgF^i>fz~72i^$I0gbvq351h`AT?tsKfEF~%97a5uaX&@8BmN3Ci# -AN#uOK0(}oYQDe)~5v`iMOgdj14qyG3Mo+7dDt{g-PKFh(v4N^gS7kX$e57>;&z$(gXQ&r4lu+qMd;v -(m8*STo|Z9CkzW|(K@5_d1pGoO3B5=(v*S{(Wl6-U -n~=`WtSa)-~v-Md!WV1g+5bZSzGb#uXcG+tGJs$>x$!yEB}fy?11mUl -$ugUXXvy8H7r0wEkBgOCH;Bz_C2gw(zvqSGaUQyy`jC)pk+J8wddb2!U(5myxE%vH-!_F=0~9F7&}^! -^U@#szOwEKmWBB}HQu@WJ(TrHk4aO}@mav)1^%-VjO|03M&jvsf+A;bqhtp4QPyTdFU5+~9`H&n39rJ -gGWZC-q(Z{n_F6JQ5lj_D5bN-Qp=e93Fhv~oSaSZq@{`LK1KFG2%;JXBZZ;t~yX*-z1r6~qELg{_4W-$y$fn%MoWPs-Dw-Yupz -`?QO8e+NWzu?H>$^*X~@vgo&T=+4=81evx9{qnr{Qm!I^!qPRO9KQH0000801jt2Ql~w+((V8N0I~uA -03!eZ0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%h0mVQ_F|axQRrZBadsgD?!;^DClGAfa}z#Bl1(ow}o -3Fh`_7kZqR!`nCy>5Sqz;A94KBp&R5`wQ6EOX@`$OX=Y{&itg>ID*-M2GEp$6uA>{ -iI5LLeN#`^9?Ncsj?{ZswGc|i%#C~Ka8iL{3q4YARwJxsBHjkby?p_W|^xSy#0EHndf@7k3suOjlYj$ -0L_G~EIlk{`7MOAw&rthaaHJN%ktV$3Zewe2<4zFp!<>L^H(i)Ex^hFg_fo`;zO**kV29*`g|xBov6Z -XUTf^~}@tayeD&%HJiFX}k!5XB@p&yZ}&30|XQR000O84rez~8NawNHvj+tRsaA1D*ylhaA|NaUv_0~ -WN&gWV_{=xWn*t{baHQOFJob2Xk~LRUtei%X>?y-E^v8EE6UGR&`ZnANsUiVOwLGE$jmLsFDg-R1By6 -<1r(GO^70E4xzfNYi&9fEi&2#ZfrL=i0sv4;0|XQR000O84rez~{LU}Q2?hWFIS>Ei*9)~vwD9vWB9ugC9IUaQjN?mwN`otPbt)vt#}1) -!S8#)>iw(u)AMK8Ig75>?s3W1AKk-ZHk)OTv&2B!Xh>8IGTCWiAiwBW@KR*&z8})m|q_Ql>)TGUjYsi6G!z0oPL#seZR89P;_*TdV#@n6Fzn}`83 -u?H`FabWdh`vLCGtbN3L&Osa&aKsvLI~&UWVOCp-`uS4=OOFUINBYp`)kSWh0N5>p!r`B@rvthPYK2m -TOqmLAF=rEdiD19^KpA#-dcMHxza8RE+p0HK)gZTGAIFQ$7LV~!R1_WnG`0d!enWmz^>ZphekD2>ank -bg_DK4n-)@k^aZXouN~n(+c<_2EXFK##nf0)ihofHD^(zTfZnk{KZO9a;YL`L;2;X?R#lS;>WxkIPZo{rc{ArulG{G8dqa~foGk-EeBJMWx#cYu1V -OHPD5T{D9o-|~PdVft$QAV!bQ?KJb@oMu8QafZ*S}KEN$`-u`1QYh(w4_c#?b=-cQFl`yr`%@Opc5g5 -O_HcPZlKJU-CHI!8dQ4UFHwm+f2Pu1z0)6e5@TGVF;-r!QVtJO5xa_H>hnPd*2hCuU5=sy^gr@^>C`FQo$BBs`4^Lz9$jko4`}r5<2$8L@1XR}b5s)dW -iJlgdP8ep~*cANLtKXxiIBZ=k;sTyB@c_m~i$O=qW#oDgbGPHLQ+j^hQG@s9+dfZKn-*L?xPgEgJkAM -wREG_iZUN+7JkaBR9|6u-VQp>BPEH<#Et(Au&(#UuSsG(LapO#wrcZ=14VaTRuRApq7tj^qAPYhD7dr -iFuC0R*FX_nd|8n-n*9H5HeethfpSd?`Zj1Pv5*~)04omjZDI8#heJEhHh5Z03a-;Q(@FeN+R<*;}-E -nJ`OXCW62(=C;u#*K|Vk5EzaA16oI~G!tj1Pa -0DCYUBCk-YJtZWGUqe79F@!BFw`GSYd-&N(R45$)R#9ySWg=eent2X92^38Y8zg%NmFz>pZUllZ7!bW -xFZ}*E9TRm^w{^Q@#F6QXBjp`s>)%z8e5%YBV;6u$Ky&Gfc_JH^|-qa&_mnrl`}QXG=(s+VDe&_}Hw%aJo_oKv>fJvAgm@i%j{DE~1pOl4e8_E)wQl -zC{s&M?0|XQR000O84rez~sK-IyX8`~JSOWk6E&u=kaA|NaUv_0~WN&gWV_{=xWn*t{baHQOFJob2Xk -~LRa%E&`b6;a&V`ybAaCvo-!EVDK42JJKh1XLeWjw&7Ubf3lJ51UcF>pFG3K1r4_x3YMN>Zuil-T}$e -jE2G9zm&o%ws~Oz#WH}GFW$VyhVL2rzOAPi?YUK`?7vvZJHbg>hGOVC1g{5RgX^VDn(tgA -a@G`iBwEu_!H+rsz5c4&=#&6t7nlD+z+FFI4@RnJGxS#9SbDgvtvkCFsw2yDW%Y2Uuxmg5cj#+y}(3yh{XfFVZD_B(!O2#6MPoE4^K)c!Jc4cm4Z*nhVWpZ?BW@#^9UukY>bYEXCaCu8B%Fk8M -OU^G!RmjXO$S*2UNY2kINzE%M)=?OVaA|NaUv_0~WN&gWV`Xx5X=Z6JUteuuX>MO%E^v8Gj=>GXFbG -BOp2G4emJ$z8sfTXR4I;}SDNX`toEUVn^mqh(vwb8kxL4@-#CG{!^g+>l&v-7uU$onjI!`RZ5-!6>wW^F|Y_^n=mbPGRL5o -cF67PR7MptxBi|&RyrdfhWVi)?VL*4^T@31QY-O00;mMXE#zK(pPF#OacH1OauTP0001RX>c!Jc4cm4 -Z*nhVWpZ?BW@#^DVPj=-bS`jZZOpydvYS}DC3??OII3=Tg=%lnH;UL7^a2Sa5dF;wdeI39B)X?R6D=> -N?X)xh{7+QWad^d&XAgoo#`v0P=zo4u`u>%6yDz-{-*VkXVSOp`+ZVHKpI>TR28YdVErbv>3VFHD5&_)x8FH&*K)9&6CH? -R;a-QmQJKz9hSgP9$H>=<;HBD;v%5y=jtc1*U5kR46!P-aJm>oj{7`Ed+TAH_R{+|ki4!FL(HW0D<-? -$B@-(mN*H(a0|Qm;qU*3h^D1>}Yhy#2@3K1o`8L>3bjq-r?{r#dlG(1M7^b9ggl|W|v~?hzYhs(skT* -xNwKlyNKM8^p1EhC8c&TsKs_MXqoNEcpVS}T|g}Z{pb3J6J8o8ICOb$}ww$PHMWF%#iS$U|4J_jWBT%SV9xTNh{eA(gZF9g) -=Aw1^K&hEz_iU;ulu^7}U4eN|iLT8l}+}9K$$>6St3Krht5RvO+g`DKdc`J^iYg>?q{#Mn`c>E)mMWi -l}p%*^jdEE(dd~@6Kyq=-pXThp(41=DApCEG+YvhkQ{YOfW=_HEfo}6;2r0wf?}i;AR^_D7?Y|Dr2(5 -;msi%hN-}{I^5iq{Z@SR$Hozj3q#9i6K|4cnU-Xkp2}fE>V;2+-Q2K2INYIWhA%VO$JUJJahsH>G1ZUmk@IIF!C -wq)Ok_}4LATWLQ4FOe9fSjtou~fBkKJH -2sZBAR_h`+_F{=5)X@TYvxmt-X^O3e0Nul%+JEFU8=&ak-penrG_(M_n6h(4|Gu&i;fbk_ZjTv -aJYF867g{1I_zGDos)8<{mP!8>zFsAOug -Bp}@Fn1WL*(!;;mZ<4ush%%@WoG>XQI>KH&Sn-^(`v6Z+pJN!?|55lenAOnphe}X4? -ys?~2|hq25z&MkAQL;fYgsA2%b;(CC8uc@cHDm=&y;*an4bV9KVG;C=xk}=wtQT|RXhA}312JMI)I8l -)q(qUQNG<5=N_AG@V%iG%#8oeCF6gbXHk%b8P6gu^oOo^c%&wL_DK!uX}+MyYmqm@FbgV8yTj -Q(bFTQ%OnardAP6oYIPM5SURU0?74~YqPN>Cb$LXGOBke&L#nw~nTFE#*bVJ+@5$L!jnuo`s|Po4;Qc -M#7WoEYZ(~$Eam*ZJx6E{ -0uOz7gB(X4T^DsLBUZIW7srGhVQqZx3~ByO`L^H}loc+R)+$0X`D^(aK(x23UD=l8=lsk!IL))8$g<&yy9qo8HP#0)+8gv6 -j=;kNz6F02R=Q%s){0CVYXkZKAZ%fikG8ld<%ZpCls)92alG%j2lpg`r`kR-W(=+cKI-{Oy=bB=ux<`s6Fg76U>eg=Ze< -9o8@MU34C5O4SpEo(-(zFrOV)Lo+8Pf{>ckyhqH%oSau2ES)*YifHn3t5)Q%>Lk&YTMvh4oO1hlljMB -MAt2&}A1&qt+HRCCwh-f#LNe#NgR2xX8-=Q_^O@A7#gSck{+>F`J7)Esq1-jE0X=3&A91tW8Den^p#c -^ToF!ZE!$r*ODH?Q??_jKJnx6`L{pEKenV3{BXnZW0$cXDK0G<~}E`V&My6eDkvG2=DepAv}8 -1|f=WgDE3~SxOszAn$p<-%{lBrD&!xJDbD`daq=cnvEMkG46}Kebn~Re5uBkf-J6tx6Uyrn`R<8@r<> -lznKt~A-lAW={(icTzvMmp-hkMp5RX+SBXQK=BaEQ^M8Pi;_cbJ`saV$Qh-cp_bjp^4xdGP`@+7S*S0 -I3^OyesLW=%h0Q$af46tt;$Nx(IDBAMp%m1@B{ZicGw!8n=muUXdrP+Ud`H#A2if8|&F2d-){@3#@MF7hK90Pzj5WEDvg8}_uR>V)y74gG(U3T)O5ftDS@Cxp5yh>ZZ1Y&ws*a`Y324GC -;?~q+QtVlI|Lw4~b0~`^4v9Eyr^C^h7#wqewG(1A4OTh8XSrVRj1)eb(0=xMtJZ&9Iuw*9c=w{A|r^8 -=&JHeLp49G|L#B+BjYV;w#u|O88gtAxbpuqEkJl!L=hU1y*Lsu$}MK!4wTYf6qJ%23^7j`;X6#*%t^G -fzA5@W_IY8=2PJ~{`kF=-1seNu))^>aJDj&CO57EN9Ho_UXe1U5Ve4rOKzJ(E!QeAWa5KYYqzOPsaRn -DoUSbxZnC!xoD{??M3(4@(U-MTWutGm80F`8z(PAFf}JSWUn`Zs26BcL;-k{`_HSM_4y(gnrMi$o0!d -nK|b1+`mZK?KXL@}It?-1_KT2ZFc&h5x~B0E2n -_+|WRsIg#roboDFvJpj_iC7#(vn0in4RelhZQ5W+2`XF)2pTJ1`3Pv=$*7Nz{4NRSl93SRE?q82mVPi -*Xj0bdp2Xh#o2g|3P`97=zD!~nnTa5nNj{4I&Fi85^hrS-1j`AI$#ic#%kr%e_x3$U{Db)M&z4TCgk) -KC)EAoOqcXyku*gXT+2RY&SW+~VKxngPJ#8@?AlovLa?rL7-+Ie}9R&&ESF32EX%Iy)wFR_Fcb`@-6z -6G?d4CbwTqozrA0n!r!Qe>aSdeEe?(KLyAB;0`Bu%4#n#z*fv*UM6-4y7(OCMH#ap -c*)7H7JJ`#PvtH*G7jJg+P6WH-dbl!X|}xDg~P>c#fR3w5^AW*+l`o6x4_{?gU~UQZWdbe6<2KxOmLB -y-9xyc0By~3Ev$@&@XwhJ^htG`^uocW%nr{&eHlfmWzAJ(EBEEGzhe5ro5TvQ2r7{<(oTuhcoUh1iC! -~t03I`nyKWB}HpxD|af8Al4X(ecbl1eU^K5PLsmU<#uud&x(;=H*PyVJ0pJ)v;bWFUMt8LbbqEY3>=_ -a`on0Uahv``{(zwaBWx!%P(?R|^%GidP;Pvkcd$JXKX=)6!4Ch;UpVRs_DTNO*1SHj|Kolu*m5}FwvQ -C*vz@HB72;1Ch?+R`P3=D|E2EEO4rqf3K_nMCEslDb1?J|6k)J`hA6n?z&j-s^f8A1TL2>iOV2sSOnQ -#*tT^n=Rb47BZ^RN{=D3i!AdDTIsIds0*X5fh -bI^p2L`dKtB07!n0(#~2j^g|e*zN-W9{YUjroZ#OZ;S;uh+xvT%#xR1wNrd_pN&|cYsu@Vtkk~N*)~F -Q~69B1iLoXApum)fkKyV148~-Ir19Sx18iiMp3Huy-T7UO0NS0fenN>h5 -rVn5ilK)&eSdhC{OMva)oFh@PV!;;T;1AK)B8nh3mxG+fW^0I|SJwK#`L>9Dn0Bv5SF%2Z9@0C(f|7B -?%^u{@#4Ntmfm*H=8lQI9yO6qS -9oHX-r2zq}u)Y9&7-MT52p2eXks)sE+`#H0@KpN)FFwRPQ2U->t(IYX)!n!*_@gGZ9wb-_@=>TPx>c= -(K#PA^w?B>B7u%l1k~O|r0Bj)e_W+n(W`+Xm53LR0?eN3wf>?mf?Nf&b-(MbpdBSg;8FD@V_QT38{3y -=>wq;Sm -V-j_U)x4j24%4O1}I83G>@6-sGln$jn8%7v%-3%kkCN`k}QottAJyQ~mS+HFrOLxG8=f7l+x_7jfS5G -UJT#nLm%*@xb-35KnGkqrGFuQ1-7(YE4m9MCQnjkIM`48e#K%_|o=hB^*-mh*bHFd`9l>Ij`7>@ghY| -hm%CU2Ad^`^ePb9cJiKKv;ZCv%uo_Dm|bDZ9I*Y%!s_{=TjzUPg1AkbuI5*jhUrJA+0R -z$5cVkVLPW#S;LR(Bhf2;yvb$tRh)y3QPjr0@kXW-$N8dkaue6$c@rtM?%XPl5X$NDKp;-U#;*)C5kK -tAipKgY#DT9&`*10k@c9GY00`!y{Joa|65ikQhns*kcuA1Z6CpEZC@NB`qm(tr^_4v_3~DjQBpz|nFr ->{89xe@dA?rsr4o^_n$l~rZTSv{#QP0vVL(HcDP;mQea1za -@sx5`3Bak%W0WCdMCdp5`M< -v?xA?z)qd&hC{a5wb0{)ODUnOYTrMEbJ3r`e=$uB<)^=n1^e{nTG3E;n6$@id&AS6zbFpd6F`~naHfE -r`FG+EuSNwONZVR&_BV#(@^1(FrXR!xg#zk}5X`zk9V>g`6wRwpQpujc0j0AKu;p7;(=Rz(axkf0f}f -@{Y723D!JHx-~Mj_vSlwMEC|E&*totk!8F+QI2s3luda -5Z-jU!{fgdzt!rM#hP!hYPwIu`HlGPg&*+>avW`vO4j}aEW!S!<9bB|x^2d%RUv-rR&D>IAcp=>#9AJ -D;KwCO09qsX0dmW!zKLQ0U;(HDAeepio2?+|LLVYe0eI_wC-TPp0vaDn@u~6sCn{Ed)PFO)*U+kfev*w=zh#-i2cxu|N8OYsb<|f0WoyA&mSXgn3Sl8ttV4A^_>*SMITJKnusO;7 -18M7zk$p5xjg8!eDj&s$F@m04fDA12?FFDh8GIwErq(*1IhgZz};%(JcC%k>J}mvs!82qGz=ZsDCv0< -_8D#0+5~H?xPa;&Ab#*LJ}Epg{Fp6>kkG2{Vjz!hR(Cn`Ar`@4-KPWgsGjJSfYBJ5N)Z2^cU7|?=4r7 -B7Qh8m?#F#v4T^%6GN+y%u#ifUb}5Izh7A9h2>bkQ4}+!BGo+{G91E>H5*%*G{fLnbM35_<#kA|?`MnyU -o+q2Q8-LmBPMgD-4UPgbBVBI%NxE_L;K*gjT?ix`k1q2HKS-=m!~2(=x@cQUG`24h8eDi~L0>s(z;Lk0avYG{*IseT7`!kod@NZ&YA(jlp${vkfxeO&3laDc8MXZI6bOG -)m;!6(4~Gus+jF*_mkDKfcY~Ord>J+VoX&&dwl|M?LMP;~9G=4sQ7)Rl_0RL{bCtvOj6~b`U57{Rlxo -7=z$r7I%w<%niyqr)KXaW*2ConTEZo{++{T+E{bIfr$x*4uu)L7HSNCo{VpUV`Ekq7+Tzg}qmGERGM$W5ey;34s1AzX&-*mjs$U!C6C -UWu*S8T7yI6HnU@>HFcH{u+w)S@;Xy@h^4w=JWnj;~$6sj^orXNkB&JC}NeZC{VG{YVXF=70fB>?dQ& -RFtNklzF`2L8S!gvovuI(&^g4{9sr9YW`}0G5I{MxgMqR|*3SU=Lu&O$Gvq3UX}~Vf-;e+>3Qep!7)^ -F4u~HDAl7T``uvNJeZ>bGv3cY&Y!6k%msSRid#jJJ$3SGMc37?>=H6O@pj9gcMg@3E9oprA+=T -8zKu%+q#>h;n@O1#@L?;XZYh%{7~lD@e<~|E{(FTF0g3O}i -|A^c@u~226Lp49#ru^EL>gCpl7Y+j_0Xr^`W=4t4-C0zKl=V6Fc8DVrCbLam!auMD62S1@G7~`ZF1E% -hpX_+&v)x0?s=sQU7l%9mxkfI;&`*lmWz@Hl-=Zt=*|4z2}6Fms0VhFs!8B**FUT?W{V+blhI{E93sTI^z-Gak6jn+{l~FbmaX+fs^gZ7lX8EyvJ3PyT*vR425T!uzx8+ -m7hZSp^KvGe*;x4gUQ4W&okT}0lowxU-P$+kI^trads{5z63S05&$)Nl2Tt6ZJ4_~>NKlimbL8C<;l(2q^@ -v{^&r7{&LQs*sIS`SFE^mqm5-yRtm&T)d1&@5?J@tKQUw{fsO9$4cvwp&O&JEc%9vW@@C(%})d%t}vh -P3Pd5xD$KpFiQt_w9dxm|sRtp{u)-px2YjLwF5GW}-Fhn8bDwx?&8$tP(W~S1F9gJ2F|Vwb|Q -&3x>{+)k2G-E1H3IPyp`W^(vybJ_aHcCs#i&z&(Ize}gVkxS|Wff1(S={@Q9Q{baR$Z|TtA?CGh-jh} -nE^L@SJ68B^^d&cP3ef>ks!J43rx&TNlK$6um3&b4pQ`u-*e+XS@Rl0u`x=9@&A7buPPVGxJ{`9p<-_ -=8kXpGrlSx$|+x!6S!9g-+`QvFQ*rql`4F-^^6;eXY>p&X`9rudxTjTp0|En* -?ZgNAG8moh0l-^ADlBl#Hvpj8 -*=MoLZp)I7IdOjZ4KyA8hK!*4+d=-kK8{4xnh{&etURlxCi_n^cj1Evtspvig>h*TL$q$3rOX4v=LSb -uN6CtJ&`q+2%b(^M(dfA#N^)$k3Ur6aa37v4i9ib+mV$;Ys1f!^e<=U9foopiWo<=Pyvf)ZV2w0M)hd -SjvZmM3PC@(x;@eprd8krKv+28Mc5V`2I=St6QpBhcf8cq+qNfXWSfJX>(rw}hNhH6`Q&u3E^7@vn`2 -Xp&`_n>Dg`zM;k0`T?JC;W(KcH8AocfjPMGS^($M$!dQDReJ)d%Sh-zz)Sh -XY!nE(s@77Hm1*R=341BL4}^e2xkd+#D?3)J$kx#o0!fAXES?IW~LBVFj9e(wlakmf(u>;Sr0UwG1y= -#3-ghoQ)=fo78~bF+EkhA_V?36Zq)d?F(duCfo|8=bDEe1yG&=<^_Yy%S&^qM^a-YK1>T;Us?lhN`V5 -Np7x4D5^fzNQv>gpeW8XObqq$puP{+q(6pn?W))MT=umID7Ut%4gbsqyLqv3=7AY}it@h?KKuirsB^a -G~nBCC02Gf`glQcZUD_ToeEdh?3$*Gy|&B^>$feCo^QY)WnyC}s?W;mv5uoZh_bOivvV$2p>wi|R#RG -Qerz#p2`wF}gbR24>j=*E5U|Jv~j&=`oO*2PtEDZ6r!?^DFuY!y%bBn14h>v+0I<%Pe&)pGfsgZ7mt2 -q}UW~H`2~xSO_=HTIL(X>fU~Pcs_Gp9q-1HdxmjmhvC?&do$A`A*%)F<`f&lD!Z3w(^Aqzv;7cUAnNQ -byg;wT_Z!?kO9}Qmh7(#*w}ADLH57(otU{)f{xEf@*v>kKJp(MlJ^N}-27VySqI>Aj`4$zgxV_Q!CZk -Xy5RAw_Olbw*rtXE%wpL9LHrfNrzc@UG(h@Gn$ipC_~6l(2IJNEZ@@;lEQA22;X&d-*rOu3} -)O#2Aj=s_qyyE@V;Ty6Mi<-s7t=wpn`O8p{h00`{RV%1-wJ!#h2mqL0492Z7YEU5_ev#Jt|TqXk2qWY6Sy{<~Hm4`Y>hMEoefylM8dp+!}it&jm8w1EXzb4u?ksF;gbJ-`Mb~KQX5WE;O1N -Pe_n(HDU`dJ7`R%p0{UGwD0r=@zNner$tPj8|4)t5*OG}H%xL^&BNt%K6Ux_lD&ooiqz?xyLU1;%+&e -m-Db>xO(A&9o!JoRK{;4;5&e}!13xK2NZ^6-h?V%1I)v0hf}Mm9f -kjrGNEsKJQl41Wdyp~-2rnW(bX;h$QF&P7J9&)z|d=KTJo-ahpNTzxH#l}QD7!2TT`UgP&InxORGiyZ -=Kyz^rlRgzoSh1e}^)?BhtT8ChspP(`s1%5amF4FDrGjzZ2!vk7eZ_tAV~>&cCx7==g~d(`GmGIv$`suEoaM+By9j&L8ubBUUhwZ@aO6^j&h -?^MhxU9Pt?N+7Vk8tYe76`~KHVZ-v<9VdWBO%M%ZD?rfh1pW&X-FQ);u&a*b>8**( -Be3Km16`Q^q_OJ@ZmCPapd}7IVe1He+Gk64(^F#@Q9>1X3Ds|8f%s%P!j#b1*EF@V* -{r%4jrFJ&^?>0PBFHgOp8`+G>!w8-q!$UukkE7#_Sf%o!ev=fz -Gonf=t_ec5*N@|ZpH^_p8oFuhn;T~yv*S}4r7`{&uPrjr>_Mt8ZZiFSCwL&P1_b0*&6!~MY`%Jl~GZG -Z?fjkFoY&?WPnaO)NNkcHT!y*Ur`aLFcY@!bP`SMDi}A5rtzap=nQmJNM3&*%HqyXXGKOfU!I>94?vAKdUL{m41;%TYl5PUARhuS2l#OQ|$rEB1)1A-nwCTcl>ZVv$obL_YK*(6pr|W16kD%AL ->C;r={-9-kq8t`jW)2S3BZo_x7n}Tg$CFC0F%9Lyexj6{p{fpa;tSn&sYH?!E80u3+M0UeJkYG++=q= -mH$FEwHA~l^cwzv|BgW=)arWx -JZkl_Bx|YxO0Cu~P)>o#m^HV2b-l#za6xLNOhmRawlydtT-`JHn=+wq0tO0GaCPBIw*WuP@V|{~(B47 -)kH2G3)K3g*Zga>TaG&w`YcvA1&ZtOh!Rmf@mOrdl;;6mj3%^;faLrPd^+&fVU`# -22~R=&%7&o!}1=D?NUz*BO|m0mu2tz!&aVksJ5^|J_Zu#pTB+g5bhg;NNKIf=gTeItCH?F@k_#Z<+bR(>r>dCf&3zr=g0Jd<>KE(rsjJb0XLy -Nt4gSR$5mxULnLi1u5o_`sISyK0TvRbCr4I{Fvdf8jsU#y}C&XDcDil3*YNxU+Ovje5g*Q74G?*LYTH -4ay%?b)jZ$Oa&A;kzVg{V>9*w}*nNTE`#^U2Q7p!Xx+naAK^2K_t2k+%=@W9q){y=_Hc^5;%{}S(H9>H1jB&~0tq|tA;?F-N2$mo33sd@+^)oy`>&x+D -9)|PBLo^d*+>E3CVBuCc$eMhGlRZlwXJ##517@Dk`lx=5G~&QuKR%JpA1~S0?886p6VRvshnFIn9r%b -mZ>r5Rpr-1=F4b0?GM{y|xp{V@eQ|R!d6f-SV?CQQInp8qco*o#%J(JF@io$oZke|Y#UtoEwc{ooHqVwoqPZK6geKe!GVj#ov2?m&Q^^(2AEy!$*dR*5`t(gd5)-_ijUXLCi-? -0!t4gQ_g1O|Y?9g9B_`MSU;mS5uj_9xuuApK3ti;CMp|kYdxVtF -P{e8a79shU0g@MdJhERyJ7&j(z8m>p8{ns43+S(+Ee2FZYUe~c+l8c?_;|W@ndoy>9a-j}A>^|4?@(R -fl_Rp%=^TgGWb!TTRjKg7gVl{t^ydoPmxw($=KjWt$?3=;!lOe-nBt~fDhE^mh0L!9a1zXt -D_ln9L`q#c&eqeSnWl0xc}@Ni%OarBDHQYW4cSIT!?M}=G-Y`~9amfg2^q{8|fyWA&q@u{LdTraIGoo -kzTp2NUMkNy&05Ju=n(9EzeB^AGNNZLqK5aUTu?y)2ngLw}N?lE*OCfbNa)K2+?;wQbCH}~XTL@y$qv -cXMn>?J<6{oRJ9NFr+!nf6tCFLH1rDv!H!bs8;^K9Yy=xh3M$Nxcl`t7vRO<28OYJKzd$1Ktd=6+WH~ -Upb8a8uzmYcV7fg+Mw~U%&!r(Duc2LHKfSkCEA-UV4U -XPJeBo3%2<|O>4h78@Fs%aS187GByybvRFr@mjETGwWjl{hKL>AS{T|%KbKm1eFl*_%Y7Zt`)^>p`%} -~H|fMKgoFe_M+kpn6MD(d&^4a$a~;E))#dqw{9I}-2JE97J52QA@026)dZNl1hQ*I*3@{`oQ_Zdg~6g -11u1eFggV_2r@~HQ$KQJIZ+dnm)cI?d3P{kIp#dd5lubf(}t7%jrm*!rNHm=40M$Gfk0SpTRVF=#P1L -Vm~|l+#Xsxw7x9f6`A{Yb|&a^Yx;M0Cg^i(`lmZno*U$|=2s#0%QKyR8zWRa4f~l`TtD#kL6T!g#MvzidW|@tcP`tl-drM2V#v!<|i_YiHd7@sY``#lj4Laott~ -y;4%Z;${;=PwXM>Ew0*NbHg3E>%P42>-M$yNdSoV$;p$d-Y#eOcJ3B|FNoJYP}&Tyx -Atk9c3Sl?TxgOMpDgyLKHE1}WnaG@jeIz(0?>_@TR5g@Sk`>=xMd{2Kg8R)urZs`yn?uOhF+Ww(B)>J -8{^+6i673ZpQ+kkGrr&U`5k@x$=!w0zvOPj`=A6WS~E~GdQF&I{YmI*6A9y$Yk?9t-Vyl9xX|dA+zl` -!EL=@1akfT<;&0y>9<5oH5xVAupzjP%8eXj^U^awV$rcswGU_+njV4xOP4YgnA)(g(VY2edkC0ffPAp -lMv?iFmIcEH>!ije%?Au&KQSUj8>Vx-RQk3(w8{FA`a@hm=9ZteAupl=U(%2)|2=Die-_wQK -~KMc?eYXClm1>3akn}CSz$4t92ZNN5MEVw<8ltkNJXbx=rfMPmJU=7;K_Zig2hV -&q^0qd!0u1$$U-bb|QETAyO}zPr{b)1&>EhIka6)SAlAK$@CsIb-uKnyP@0J-CrN)y*pRFl@iyRwt$} -Qt<`MQDYUkLbuD+2{lXR)(nbQy8Yx5XE+MjH>RkW-z(R@A!5}l+?Qzzc(1@=N;ysZZOc#JIuEYrv2^K_Tg3&@ -PkyL8N}7Ew!2BmakPhE<6EYG7IpBjjl8c3k+TmZ41eyAs`;=5nNOU;yE4h^;pz(ODf)7Q@@=7S*%U`> -Mn5*`d_7}0Dgz+#)ezq((4j=l%gR^_UOGuv%`WiN9xY- -JqYkb(K!o?w#zz*$a4evvUgEx0ue;8$8%D6?1^%(}YsYFhjD~m_w%el7sA~SxO!Y|X`x@4ej2}{% -T0Jy)2tYTt}@&GjD;^4hL3*Zmw9*{7o0r9FPPxA93ejTNwD!0SAd#`#d%?S_l64LHkRr)gqM+tQD-SR -t3y*h6mCj_X29wzy^Jv)HM}RG`MA0Hmm?fN?Nzj8mz=NHXM3)4Ol}Lz3xf2fWrK<;3Vs&@Pd`pdf|3$ -^;A>3g>_xucwgKaJ%nae-$=b*BL9JW$qzflxL|Lgb@w@fdTMBx(Cyrcim0mnHw8I}+*5U33LBaitd2U -Wi2+`?jqL__YBF2NCJx;yeMElB0LE`e_spGX6e*OEj4Er}|*>C#%mX={Z<_1ypF9VU@fkW7vfid`cz{ -VOY&8%5A+57w{{2e<)W~(PE&VEVDkZjHRLGU*tqE~+#^Umf0v?@&3B;gp|MepM@v3ITyV0{#^I_GHOc -c*U9Z@*i-h7kecMZ76v_#QEh)J{~NSy`H7ajshIvFEwflu7tH_Tv`qU4v`o+-2Uc81U7AKeTUJVKs5s4xr9K4Fxs}= -+Mn@#5JnLL_xo8|<{<6s3prB@`=eclgIS9YrDeIafc>BQ4L=`US^ZKCG`hMMDPYT7#?ZU(geQf1)!-i -_GVEaaxYjjIVZfe^dv?mDCIThu>a@sp9odwc(=^Hv4Hm9?AxXusc>Ji9Ap0(TJGHs96=qW1a^8D}ze=|fRQCz#VuTZ%adf~nnm?K(KD=%ladMPQU^5|xw?4(pG6(s{?$V)!r`2WW7wf>ejY@z{&&D3LkzW_`L9DD|A#J~>)Y6O1I)Jj0MW=}$oHZrTALLqABJoQ6U# -MSx>t4p{qx>JFB{Q1as_2MF}oetr7bhgC;*e5b|+nQk^yf`Y)qgh!@NM?4vdB~N9P%k-->*XcT) -a~LN(Sc#fKdgaVy{0Mz;@fTq{laj^;U8wBoKyCJrtDqtV{v)4+U7(yB7Bww?@Mftd7#PAH`C#$@PP2i -aw`jlOAyN5S%S;kA_j-QGHl6!`P_6E3Oy46uj=n@a?)>D*Zh--9n5A#=ydn7DnHJ@$aI&u*>`n#bulW -E4zH_-T;~NPJU$-3w~XeZtGK^2t?9Rq!%jc^kVjM>p?G1BUjwbaC1?L&ds~BG02MP9ilPeUrrmwS(_i -=urq$$+ql6P>G;f;hvVYaMwVTRZ{*+boFFQJZ$d>%R4fO4p{0qB)y-u2bXAR3m)*{jTC@$o9RtE+RoX -4!e5cP`hXs<`lju+5GFaY7CXq3O55G1$fv}m@zq7>b2Ai0?c#wsl3soJ+U6gSM`k~UC+v^YX-`s=W~J -pV*o8%Gq{O@T+-Jw{uVjC^0f-O*$7rL{vMl(Q~vZF5_tI{V=c -&-4b7Ai#T;?!#r9qOmyf;;Cy$}*jaB&c2g4MwTAtix93^Ohx_H`MlK(AWRQA~J6*MvJtXipx}S(gp0E -u$L4wbTV@O%bl4LL3p$~-eBKKrnfZL2m^evi^a*!u_G(`az&`lOs+i>xYV>U&*&rD4vduZ8vuYBu{etA1bQdU^{!Q@8*IdHFV* -utT)-5-)|PnD>QhnL(nax;zjHdd12j7M+@xibPA>M`)AN{<=jKFI2RIC1cSI(At^a5CkwX765={+U_5 -*j7*6e?9HT;n%5l6azWZ#jo?Qh?<{@7snCkLM?hTnYt%;z)XB}*q+?Z~xrCXtK`qurYclT -u;TPwsQEDJ>)EBZO-ZMw<;;B1d|Dx -efp5$LA!oLrJ1r(PISAGa+WJIhXTG{)Awv<|v7uWc%WJjhu{MY|S2}Z6KKQvlNZ^o=K@l3iJ57)!h-= -SR?y@Rv$KpWy6O}0kK$E$(zw^qpXorb@9ijy^45p;v!;r3t+5x$x;;ddHhh_9~e7+aYz^0saQ#)~m)I -wbw}Ra5lJya9*D!_~PAm^ZmPw*NK}-d&@{s>2^qW4}BJhckZKR1dZwuBl1>=canLVMnlFICs7~)l|F0 -qxyN!+(cM`t0Qm!?uA=}#GX*%65k=v3SXvRSf7dU+IX_GQ4@^ySXAO82LH!0$Sr@pw10JF(C?P^yOsU -?Uywk*|366hrQZ@;7)2*)3TTJ4wa5z(NBFf3&QFbMyOEx28e+2T>+llpWOR=L{tz||-Jgo!ZX0f(J{M -;%->2z*XZCk2$>c>Y<>YoLDLjtYKqV^`5)Pp=z%NZW-IS^V>rY}xCTf8=2N6BX@aimGV#8?ExW5R0CL*8 -iS?H%@Vt(uF3Pt|@I1ZJCAVfd9|1WcY*5oL?@7c2U>gdSI45ju;LnBw{GUBp+Pl}eL0A)XF(o9K`!-b8lH0l&S@Q*s -_sl+jRWienzm3KP)qbYs%|x+Azjz?Zv0Vs;uLtQ6o0g<&d>3&wGQ_q6)H)oF~X?T=TNZ$#o&*W^_YsMtt>7Y8|);n=>WsbZmPOZsjji6$>Hq4S-wW&Q;tV -Sf5FynJ{_+EyAzT2wl@MtJNE|9t>^PFI2K#2E|ukA=g!{iI#OX3A}bKL7S^7imv_25 -WZIBmSYzff$_B#wsuDUqqR6MZ&L1$jwDw4vJ08Pe|l((rX`$#^}+h>sV&-T^MI#ZJ|!}EVPvfc!EbRT ->+y;mrX;)2~?^>pOjvjh( -w6jU&}8PxPcGHJ(tw9f0zJ97kMoO?=3h5BgZyB~7r0j4|fxeCzkvICT+xoTLYqVrTv!5HXjw^_f&^mh -E|9uRSmvD$6oqlCWx1%5bG%2Ztd{UX!VaD|DF+6?S~Q8Z~Ii=cKe_WA0iXEj^FJ&$H%hE^V=T(|G24s0+9c+S9*t_AFsm -v;++jcBn(kBL{Sh*;4lu+1dY%X1S1%NqU7>thA|rd+FBc4AN|;yyf|EuAfeU={lYKkWQDF|V=OeXYET -mRYY)&3(J10SZ=#vC#dUKQU0?~q)`koeS{YS_t~?0ensd|56ecEqH`*#)Iajj5-P(z}jj&q%M6++`mm -ur3jpan>+jtFRMKUU05ewPoUc}JWsIm2fK*>7WgW4Rw7r+ev(V#_8*QfIMfl|7y7*CSD-r-=>;2`T0A -Iu+LA{WO3`A;U+t5wQ(E0m|T_cqT@EUxxlENM3%b+!hpW3}LlC6s{5eT>tH+`V#%JSMjh=bCtLBNptn -^}o7Z15e#V!>S1lhj$2^3?H!9Gk-G^+q}g7erChFq-=BOu;PdDE^SO|mudoEYk4yqUsZ?#v6ge?nOOe6p&J8cwfMY|WE}n;7lQW)X5981gVJ8 -t}&R(LTg8LvqjfdxRXW$SZqDWUUA6&ZR!Zhy5xIHEMP)SvWsp^eeq6qZc#>JjKBP_-UWR=wSucuEcThM%PO)>{6$3brDcj5oSQ2o`k1cNDqi4>`2?=c1QU@Tsr<(H6KT-buHE54Fm1!7qT>Fjk4dHV8_CY^gda -%1scu{$;dS#(Tq7`_mu|CfbW!-Si2-;E?F8qftE`A*q -`JwB&ROUVRm%FL6t0=#Q(sDo@Pr=qDU0!54QdO2kfzk~17{ex$DJNlats04ptZ`Y5-g_bdgLNW&b6o9 -mbxWkd^PFH!HhgfJii_tD6xGMHq2R$<`yABR6m;&P!QFKpTJP;7&;8<*PSb_m^IDR65iA*P3fm7!6A) -qx}503N~5mk@~G8yOpj>J*LC0ol7e-%o(ej0Lv2ub(lg=H8%^laU1IZOlVCVQd{XgO+QS*e+6)KyIiy~QfzZDp||*gz}A%N5(Yr&ngv}5Exf#l* -Bs|^UMyQ7I*eC%Pc}bsnBHtl(rvhNy4CI1p&b7R;2W)a75|jBynbO9asl3Ts0%>(&RRqhl3o^!OCTEf -@_LF;XZUVdEeyx^R_y5_MH4HmHS%&x6pH&fo|x$$d$T{Ztp2pnPZU^Ryzx`@W8=4NgFpX@zu#r1jV11 -lg(aHowv=xxk>ZMmr+_3Ig6W_=;Yp$U`_3xf>}ep)z9KeeaC8e%U?m(G4kf%{Av}e24pxg -QflP)OiIU+-2*S6sHGFndgv^S-n8KgL6AE#=bI$t1q(9Xp6VFk|Y0VXAw+=`UB%^*IjsjzHEKxmdM>=g -OgFS5+3Z56yya54nF})&qXtA9z2Yanm -xezW%}d-R}kXlON3A{a%2twFm;EGQ+os;CnRid;H~68%6%wCMRWHFx}it4O40q -CcU;NmT=_?~*EpwiVQ;B+EYX$f4UKyO-JLei&U!@KCFIyt|P@{`}aY{NUjJ>)6M(R1?r(8=hny+#FM# -pD^V)Ml2!JT4CRq=5FX{j?cGhe&UO5@(PpgRMoU(4?v(*X>TC5>#LuX_ySKE{2C$dBUDOBEpVtPv@R1eiE&0nz<4f -J#n!HG#-x2fs`~M1r|977DBkB9=G5-w33+iHw!dM-?=-04<_rPHtB -N3kR=iBJ6>o`6&AK4s0=#S97G3SZQgr3N3pz&lf2iQK+qTCwn!f?gpg=WXd_K7yH@YRepTD>VEVj=PW2*v!WW9ZX=g5u_jC(8}^(3W1**hY;@Tm^05 -j-|XeZa#8(Mab9($n6$SAK11U_P=9W3;b}%YRCV2SB^Z_`-?j1%i<`O1!3vKW)2yz4Z5$1OL; -dzaInq+odnhyZrYhNPVNb@;ADRs?RG(cw)uMZpX9x5~XmBq;g)A<6RT>>lZ}C6hF}=cd%q7G8ul1bB4Em%fZFkWD?K0?&ISK3y?=;`^ShoGNXffykq~*byj|!?XShq -cN!@Y&G*T9EQLFv#atl)y(5uo(H7oq>6j-K25ZBviuZIu>>3QuG+^znHc@gVT(f`%0p2Hdr6kvpq71EcOXb@Id-_730o^_81umHV^H%;cgkuu -0@pOSa=r0Jah2^H=vPX^bt8OY&}42$SuZ{pN`567$=x$!#ibTL5DhNIrVw2>s>>gEiyUcuIIHlot4QY -Rl8e6!f~)p3xTpKXAaBvuLT@a@fq%X$3}%eIGx04h^o8ojlExQa@ew+Vqb32jfO1qA<$vhYjbh7YOS| -$I6eqI;Ob{ZewgQ4bJ9bX-nvddL|K9A>|U%cG|pFt9gk;EjH9wWuK#(}lrQpPg~q>_W!oc7{*w8Rj`7 -p?cRwYqlVw}HZ2KZJ{$HQ$9g6?vL_g%fNf^gSn50n*Mj)IbDFT5BlB6*j#vl^L5FDbuw2Pt^c-yM6WV -F)c1x_(~O@Xf_4b(RGIa*;hq&CGM@+E9T_|_c1fj*S19rMZ7bp93ztV1EwH84oB6{^=W(QDTawnPHxZ -(w_^?{1mz<$#5aF9dms0@h-2ysj;ZSMMh}*~Uqx+b}G6Mf9~Mi?0`^=yjhAUN5;sAvm$_h9+wWvVWg!L~q#@}SDJO1LGaN)#wM^U24BnLggY(p{zl-88*y>+5Z20!dCIe#t~AOSznn?s$;R!x -HvpTt4x8^nNZ6(*Z|smdA_2q4&=~#mh+YoKw`An&w5{!AY9zO3Lbq_ayKzA{pifnryo84tLoc?uATit -OyU$o&Dr<5EzV}zw+k*;V6Gs -=#@O6SmR?+_y3y8%pYS3NfV^^4>z`gIuHDjw-M=6(sO>Be5(;seNrmt9P}m9 -A3|g^a?Pus0T&H6`;9rR_G#PI}H7KvbGGz2Dew^PS;ySplNa6v`59+1hi&(0$t -Ax~AyV>g=<>h5%1+6$&paXdW5LSOc$8%grP)HXr_GWame!Gp4R!+0&hW#*4e3V;n1DK7lH5-#fN;t1W -ZsZrVpt4R;vB)!SjD|qF;dX$CLb6IHs`$G-;fsXdH -ns2qiHZhba`H33P!@498H6_zE;hdL@brbzEmXZW?(sT$9KP?8VSZ8dGE&;25t+grr|{U1}ZOgl~run> -hYWA0KV#nGkE^)53V)STmAsQ=T^)0Q7ftIu5n{_Q<7{VTg9?Al)h@0i{Xmes)N-98-79GdD=c({?5&l -__F5yS9WE>nVuI4eh3<1N)f-*m`C?|K>Y;~jYI=aC#-ak>l-ZwM})EC0ZQUWy>_J(v}pXLL;P}H4ygR --8@uscb<4q5_bXp1e(bsviO^4L+1Jw!6ZzU=@E<#x%)?RJcWT$1%E#ro>~28-H4@*lXg@T5DfG&3lav -M=|xN9x4o2wv`Gt7g`kZiMM)awBqcPK~-73cNy3d-i?`pFKE7svWSIG0mcgwPs{B6n$Qz$zs|QOI$ni3a6b1UQ6}VE5i>i%_rbXj!b0LmBex*PwfslJ2;c%07RU2wewV{#64l~8M -;wCq|iHMK0vx>@|}YENfA-1(&_#ha0nu3_{&OR`$TTzS(6F`b)?s-}$Vkv;gi34#B67{XtjiN?_s^oI%a<45oSA3D -$-H98+@erIb&*~I-1284IfUj&df&qwe$UR2iV@65T*zaaLmmbl&T7=cf$KyG_CEkhsmL#H#4fDk^e@5 -r-+-C_j$#l5kpu=q3lXJZnnW-Xg-8@bNeW)xqP}dvO0dm^I9=t+c)V&hR`^4=E-H -LAkBRXWQ5Sq%SSj_j>;&I(wCPp`M$r{|ae76vFj;HBtN3Iq?Jj3sI3&D)ExbZn5-(8qyEb8LwI*KRIN -Nf~F}zY_j94itxy_1L=<;%wbZhLwHftR;TEl^Gvsp~GhT@ReD$?ZIO-!Wga -yW>yWhKT>kZets@Wii&rs4d|$Cf;8D{7Jqzs`>(}C~&N{ov!On-x{wTD)*sZEPl8L>+26T`X(R+49EW -n41Vrn{@W&IHBxc!Tmc|$lDG+V>OIPEU)W7CbTgx1JUq|NjW_CMA$HF_-L@q+j>mMm(wyHOZmerPEL5 ->v;H-7f>0lgY0lMXVa%dgZJe|mSp_^mr;n(i|syymcUe1@Ze-lAa^`6LFnAi~AI7Lu_k-M-?)*s!bbh -27%w20Q?yrlbUgW3BIRgIVSq~g*D?)5{2nEk#HItre5Z+HG}7c>)#dFY{98Uyt_$wBVR⋘$oneP6z4v22B_*Rflz5=fMA_PFWEc{ydRXC=v_}s%=`#;?ZXc<){y$w?Clcxja;w;CMJ?_Vs`O{#?+;!Pw!P|KOgc7wTwxJ -slZgpJJ2bo2BDTrdazu*KqDY3oyrw$j&5UE=Wp|OMzZ^dYlPD(}?q-T1pBfncg|O%h9b7+JUN%V7imp -xI)evDWrGBOzMWuW=2+MM@w4(Je4nj&`^S<4}Xrbru6}R9{LUax`hdvMP7&9>yf@GE&t-0pT`~j%R@g -f^M}KJFzE-`We8I@o&zHcdg?BC(iQ`|o`NM1F6Gv9Og0fW)vkv}^R!_I=ts5y_)1J -iUy%zswKykPZA$sdD!Z+Hty7^|CtqHo7GT~K4x$r-f+S-)Dt=}pB5B$6I?1Hq^)*ZFZgM?RSe`M3tB= -p*toNWS`1#;<64ah0Ham?+K*(L&AB{R@AUSQLnzFEet0v!4u0n%J`nb!|prfwX-A=kpILf#dXuf$`2V -Ztu~lGy>DQj&-Flw>0ApYmQ?Km)%dk~1w3_CA!Dk0xx~&y4e7=ERqV<$R)H@;-kz>CoK;?4XQPiN -=Urp7ZWC6s{!w$90XWY;_5p8jexnanZ6i{v`7BPD!N~0b9RR^|f$7QEg5|)-<-NLPm2E?!f7I!?~+O+ed^65)ifB6F;2}vY)m`-< -O_t^}?H%aukaqGY_Yf*Ba$|#k}K%Ok|CYfU&qA?h`@B2XxPk&8?J-Y4p1LeYRXxu6MYbTPds`CoO!D` -+HnoFgiG%)UgA1lf54Rk_{%t|??M@b?OaDOZ%Z#S||e(}qXQTM> -F(8FEDVv6g7EErk4z+c?J`%6JB{0L>Bi&hf0~-W8lx?xUvS<50BBSGH5?KfR -9_H5^dm8WYLbn3>eh&F)P)eLDw?|2S+-l&b%Z~7b+TzV`s$`%+qEdS2v~Z;Nr2X5+wGn5g#hg%`; -l+J(&$)Ht7?!{~OAZ_tFbshhS6_L$y?j-KS7c^^cmyqIy1Fhzc+=>h(S3~k1~^5O6Bx5h*Qp!kcP$zE -woF-(bX_wU~c+%twpPm;3*a-9)ifW{l$ -mOhE*_KoIq1-_G(#UY@(l!+1?d!mEm9;WAmck{Tr02EAmf2r^Dqaz&$GBMh|?wFNz>O_7PdK~%Ky9&D -X&ynw;#4T^8c&TQ54!>del%_@G4Fl!AlS!q;CudZ7ezAA7Q&_mO0hzzwB{T9Nw;0(Hz7Z=!C9k0T*jc -4uEp|-XmY(=s4HN3Xsu7hLnwa!WZqtVs=wIU4hfiMbl>=;Qn!(IsvUj=?&*i32iPYFRQL2h#luPB4%x -*d$_=a=xMW!+-e{ySSdob#urxRpnUmuey`>6GOY3o;_xc`R?GWo+m+q_Oagh6|B(dRXwoi( -XG5EXyGg3?ElA!HrGW)}UaEo6TL*-0GMy~M({g_}`IkKIx2$8nWgR(SOFQNQ^8l?^);vr8qP*@7)9p* -0EL$a>9+%{zD4a0eslZ7&oyR>zh4o^x?;WzE0FqcDQkGh{Ok>>|>MDSK<1*aUpklGb^y`6q(YK=8Iq` -HHoH*kv<;K$x?KJI-+;I?yqB|=|3&?N`jM$oXIo|~YmY>vs)ydF3`cdfPy2y@Q4&s*_b&GZaleQ?8gE -L*g7$72*I#B)07^j{4+_9bBE=&x8E7!1I2hM#WyF#f`<9cEXfjMLv1D0?g&vrt9*XS+)X~j@WxR@QlI -Yo0}7nSJEmZM{L*mZ`$@2A^cMLPMB9j>qbzVNntb7~W6Z$A=eoRkDmtGjnwcr!xPQECO`#cB_ub5KCj -s%tM@mP0$z!5KrdH<-ejo>OFpbR#&a$8yi415`fM4=*#_^IE#UEN69I@HCrB*^7zNfESjw#Akickzr6 -dbU0oG$$O=Ba+R-W10fTjK4*VVKeUd*t2(i0uLtSdjI~LcfGwixd&$p?j-^%9%kl}n3axu>1!gDXao!Pfqn-;O6mj~RQWWZXkQ -a^yIhoAk-nutrhd(?t^exa&=IK^OethMkFbHKOilxFio$#p~RUns_pakJUsRI$J%v1i+o*WVJv6EPcc -LlZ8o#5lgr!iK`A1-*zPvK((&SRCd-K{T%;pu;t({(3@1a5cZW_tv7%FawG1}VWmYU+gjlG9yx{%T)f --Py>$S!?msaJCqd&2Ra|(^*#+HucT%$~=Ft!8iQ;eU=VzM3q}C((@8!F5mg`6~F!d=k@o$B}mM#+lMy -~QZ6L`3^yn$BpLLQRd{lBXvZA#ok`9Pwof52OWd$OpDu3Jk5kI$JYsf*IB+<4y5(~`p8(r`NH)KJVRj -3O9NoH+PY1H_z_62m7YFHDqdA!$0zb-A`j|focKIHu@>tG=tA-&CoM3e~Os3`By0(1H`yqN_%<25x6B -UN43B~xQOf6HwE@Viu6oPZYI^%5QZox<7$#Fn5+)3eCNahq9pn-KGuI}ot%ap1!5tBGjh9w#@*Qq2z!y06fOxj=cE;crC3PYZi-xHek|p3#BIcmbyUgoke1;raFZ=8{4e1yM$#k=cMj6|x -*@XZ}9)`05N)anR0*`U*s}L$G-K(aiOW1h6PG>$5_E%}|HhT>MvHf13cS5A@{Zsi^KEfp__-R^xy&Qr -miL=fN7l}J!ww##{eh8Zv?Y{h-UK|`cj@qB9uDf@Ka6%wKz7z=x(8xX4t6>R)NiT7jseB%@!^{+>wmk -Z+{N{yL>jgXUCV9G%LBkC?oy)`XFk->%3vCM=6XKR?v4~Xn)SPkjR4|sDOL~tKsgJM^&4!N4gZFZdIS -Z4h>l1dnc=;_FeQoYv-~a@wz}Bz&(1>@Rf9`z$Eca$~E%ldxX+{K1B7UZ^y-OVL*SmBrgiZ1YJ-;?7{iG!VHkVQ;|1sCR{~ -nXAea6Noxd$_<{^uwPSkniQ6s&^*zeh?RnQvy&ECy3&8PaZB=KJSu17Q3lZTh#X0e%STzFN&c#BJ+M< -lf`9@hnOitzl{wV^enJEBi!^yOh$v#$_GEca*?iIBC>-e23IdEs6t#b|IlNOMrXplg|vK1x72@fh -g(I>r(}FxG)Yn(;zgOxIU->~(c;ERfP}xfHQqs@SM>z`t&3G|m3;iG=$Dc@8HNboQ4t=zvsFg=0H$kr -lQhzb_>$^f;&7b(0IXrxy!(s4h*OMT$J1}v?<5-!^63Qv}iM;Z2 -#Xm-grN`OM_Cvr?G8h>WAX)6wI5n+?xn?MaR6bw9bS_^I%n#D8OZ{WmwtZ9UnHY)EaiV<#GM~44+?y{ -`v@+nT?O#t8y|5T1OKla$=}kor9%_tomS}sUZlZa(%U7N0W(0awII4;4OWgL=zQFs=e-pRye;2m_+YrS6B5ng1=`7|cQ$q!G#uR(N+Lp~==IOz7;fIwNR;ABNh63LZfhhN;D -ANAJVO?2#h`o7f0auaY(h%Ug)g(Q8zxfL3ODMfB-8#q~9Tqv5Mg`1La!27N!{QPt_~mv6k{Gi4FCIXX2%mO0S$>%`sN1lD}10X71Q=_tNV4&W$}h9r5!$0OV&Xyo{H&Fp3>%dijjFB<%_UNki%L*0S ->LeyL&TN$h(i3QLujio34{?seFQyjV~`Xxx@>APwFIcQ>YGX*;A1+nq%w<<-6Vd=Q>lhJac1tcfD#>J -P+);Ycd?w+>4T#9K%p9Nf+OIi*Sdf|Yt@-{w@!>E03GgnKxYhqvN%Cr>1Fdns*r_LNI0h7y_2u9fHpk -TBhSmp}R4L313e2F>T|<&N=wIv+H7-diV4?!qg`y?jUx`y|yp<28(XkR^uJSA-pKQd>`85L)GSQkw>B -qupPupN7rBxJ7GrK(2_FcEShcbWqQC4G-GKUf-Vr;t~2c9|SJUrGlP1l7%rSoF^I6Oa|9E`rd0N_O20 -Oe=Fjbs#xGF;&b6j1t6Jea~!dvr$omI=tR|qa{nG+6HmwFou!K~ypT_vxs!)-esC^>&(F3%IQ-AO|MckfI3`MKBabDTu&Of~Mf*&E?-;1% -FF~glxgnTVp&#t@*Y!s6y8eDuKR5gv*wc_)qk;Gd+r|*7h*GmXF|QEh|OTrf5Sp_fKT~-|CB&tYw+yg -7kKUb%NvXnh%$^*MW^&U>f7=6rwa-8z7bdbd|kt!=l&0M)BsR18;_%+aMt%TyuQOI?~NuEsfUD5T@4! -C7aFX@`?Vysxw>585&8FiLqNU8KQtU}o@|yssk4o1)-6=``7aHJs^Jg&ZzvaE -1d7Fm7}pFRm65!cZTP%OxP}Q?I!N!;CY1eTA*hAt}UP&mA14+5NS*UDgOg`oyMB|H=S??8JK;kw-EmF -v)8lx=q({s+cE^Jg7O3S)3K@adX(;2KnlEh5Q(A`kjZ#VT=a>0?3pWd>DbSgvJOm5Mh2i%8q?L|?P+U8w#>NI -1i(n|>kl*wqjbc9JZ_qnywj)H$^;!t -tf|4Ygvt^|AWxmAY^<^n^5ptnWBDI4_ha6Glcv;4lJt65eSF&I$N~~!YdXo)A$a+S4tC`W{ -x=g{P&)|4ERFy{b}SoD}-Lq#>le$Dq!ENuGRzlgQ&Lao~j6ft@7sh3eWo|;6j(ibV_u`JZCXh(2N@NV_-wlD -SB9XRZH3dn}Qf&9;pIzM#esQ)lf|Psw+hVb|HWoqIOW)_@Xd+nj>@~`h9pUa;$S~8`WX!3_2fy3o4lLP=~tEkerG24Ye(hJqxB5Zg}gKHpvYs|Lt}Yq?_ -IBn1f0nBSH2eC61-{5vJ0_;(g7JXy -9J@qp`Eg&%F*;}af^zN_Nry#>G-(&U+B}0(O$(TNB2bshtG97UPKnnMCgpmE0K5Chq^bK9M2fzS9iBA -3ppoiDl&zbV^ACUGf>&CD>R^(3yxjKwCM?_1JjOYQ_IJQhiYy-=1JnmAOegYVDWS*Kk!EtH)!iB4kUf -~S!XvjcPMP^vJFVp1tenks!|3}{Yzy1>O1>N5d|Bmk;Cw -wEnTG|cGqx=r*KOOO>@x}j_*ZCfR{5Na-Aq#*)C`n)#OprK1K{!Q|5KOG1L~PkW5-4T_b>OiC5w;!xSuCIsZc2Nov(s(9vqW6K88nC{C?iHDR)rhN4Y7zr4F# -2gBYb`TizMS#5r@mG+bACLP>@BnsL%{3b+P*gm}pJ~scnEiT#WKNS7V)n|#lvdwfL-1>LcMpEpX(R=d -GVG6W1L6WcUSpe-})I~rO$L=6IS8W!b5aALkmEoPzdr*a)JJZJ^G9S6J}_$>%3)~Zd=#|3+NH@Hbxwfwi~SWz|Ns%;PYJH -ekv7x;AbcR#UN-m|b@jjccZ%KCpM{lGixf9pE3KgBc*_H#`0b4at^zhAW*|KbL&_Ye4QZs51(ssH&6{ -Pb7&pWVRq{sEtF;J6{NOAMLOCfXMRM(Jcb153XbGm6!dvj<1Z^xtB7QXTVG -@yuXATCVe;)5^GqAsDxfG#piHFSp`DSE-~TAx;-c-A;f_`$T#Xv#bp)yc&3X0djj=Wsx!C-5uH)*n8y -P;pUAubpJ)Nj%TsQi=$@e;Gz^!P8c4>-OsHOprf4CC1p*JQHAigcutHs4T}>+ZvCXL-G)U-?mAm~d#7 -=c$89K$*F{s*{MBdIgJ->MMFvHLe(B#xDUbsbYw)5e>8_7c+Qh(c)`(7>r-s?rt=K*i}Aov!WH4c)yG -aIP;cyJ6~30?RSAol8MRjJ&<1!hJ9*xY{bxyp&TZeKyq5}WXO_3_6*flSyLvdE33Xkvq6_}BMVo#SSV -MZJ>BS-(hI2j1JbI5e0ek*=c&uS55zW?^Y(1!2aa=|oaIqfn5FgZZHc)LEE+uT$YHMQ8>OIi3;r?jL9 -Ljw)r>dl}MtWpO&q0?-mHCfwnIFP$M!z50guUB%o$Z~3Oo+~r2);+^U%=Q0teM41g1Oo{^DF&t+jx)u{^G9@_rBw`qPRqGU7Gp#&oZ;7;gep?g`et9ROFL^Qk7dFn@CQ!u -C#)7iC~71m@i-9*BtE2zKA7ouJO?E-bi11vSzD9mkVbi-jKmSf(4%$icU4uJzoW5Q<1_2Wz^P*h6sNw -;sILrNgNk@a3-+k?QQoaa1G<)(e3{X~3lpV?%l%H)lpXOO{o_u)9mX3-|M+m-qc?Z}J{3HOKSeDI{S- -y4wBEyH8fr`}CWfWE;Wqc|-GPo5vPJ{M>%>=ZF0;A?)LjpWK6Jnk2C${D2W0AxV;=Py!+GB^bdFf}jW -lLXj`^oAIjcSSN37gIbU+@`$%Kk0lnNlQq+TB%3r6`JI72MXpo2;(s(*>%RgAJ+cpct?uAxnYe_Q|BvVv_h&o-H77O -w@0Y;)Vk*8#f!Sc`bA$&x$w-96~cojfLY+Ysim9sf|qO8|Xs1So%1i&!3B*n2I)`(_q@`z{Wlr+7h~Z -zwbZpS3Fd?ahHcaExi;@IT8jR|v;fGoaJkI2c^DmS_L+2Cnf8ylPdxQ(bACS+1lAJ -t%WPJ{c1w32uQNItYfsYTnPRPzPMrmq7WH&NeIuOr3mA_y*bulhh4oEc;2X{HIxoJ5gI4TU{9o_!!*k%jlkwm%l$IFoMeH)=#6t -e&cTd{M=NbUk}K>Z-iZjCnoyfcUhw9EF9_tHE7Isf{b0=>F3RzJ_i*4GcamX#Npqp=^g0p3-snrZ^Oo -y?)1QSd-`9@n!gt}c)qis$HnDaGrqmx_O9K;LrB_IhXO=^-XWZhF~PZ|1A1^lWw4J2n>Ear8K;`A$7Y -NhAkV3nT{P$!!su>&ge!)4lE>Q)K)ts25;dmJpuFH2ch{Y9I;KzMmA^W9yzfvcejTN(ibhIy^as8#iW -eNWkCtegv8(_dFJIh|?{{u}u8c;xrl-1|dPTb$q;k|SOR>F{@hj;Ol=d~qd@&1Z)!rveUkB6K1i14g6 -CrWTKw+Ty1l+~`gcL|>ETMdK!X&hlp`CWz>F3}`i-E}A%!<0o2Y>R15bq5Dl{@M65^>l)>dl>pg2BNK -t{O&z<$`LUHu!ziNK?bj%TWrj=kT~R{R!g8tMD&|mTl*@BB3Ao66ozm -Z$1wy&;DwS?3mGS9lEUdP%?uXI$~K4h6>YG!fpLMyh2Fx%%B~l9T%l%Rve~AK`Pvl-4OfUGw;s#|y4D -$*(0|};!zyA$Bkaw~ZW}ZcV=Gn9HdPJ$yRJ+OSuOKc0S&h9w@~s0-&WV$Xsz}ykcvRtoKAREmZH#Fl* -ppB5p?+oaJ)8|u0Tqx#rt(0D7>yL*|0cVKHWcSHTw+=zZd2gE>*Ort6elVjb_g>b-v!)uM6{s{~ip#d -+sc#w*Q7z=BMc?KjiJ#ntKVUR~dVor&+Fr`PHPLgcq8*y4@cB?TUb(m-Htq`ZrngUNcGmA&yR{2P1B1 -&GJw-OsT5x}t{JaKya7z*9L}Dk)`5gJwBMsO|M41!;e!vUsuzm!h8 -`u-i*rs788pHz-9DU;49fZBcz;XB^(OMeRZ5>z1mxikK(qZe*pV)aTYTO#{r;PGQ^i&CRfC8IURuFL&;pa*lBoiimxP$SNC=TQn+(`DBLBFg!ZN!vCDDcn+4>Z> -nqyw-$%AU1CR&JAI)s}cU}YsT3}U$&B}sDAPi?-^YbD-s`*)!DzCqfZ0S_)IRJ-{sTqZt~ObhL>DK1f!&gR$HS^m8y_nE&L<8~GE3zLOLY7a1qNcY#ur~upWd2+l^)9KW -Qx5C&uo_D?rAfiia=lPDsFK$7uzA+8u0~4?P13p#IEabH(&2j70|D+0 -SmT>~NIxwVnv1go%8h&;;UOal+imcrMD(T}?bQ8t;y?ulM#H)by-`J=fRJa@cFnwsz-z7>|+@$^%V}F -_2M5zGBCRbqN^)ZLz?13x>V-OT6p^ydl4o15QPTe#n%wJnq8iFl5F_N@Vn6xK!-^F(7g$_4NNR_hwCw -YFU%$JHO&Q-ZtHCF%M;SADBS`A!Z5d7iNSQB#;E+*EgFOG9okbWag>5-`8cQ!Xh;QQb^mkujR{KF#bl -3_VxhwFYQ#HZfWuzF#e+hyaD9jKl!tZ9*z++OkyNXqc}4|C4Po16%uLG*uigkzc`qZ;qRZt=>E3%6YeUTt;-Bzb%1#f@n%mU4~vIa3J> -OIdju*5;#@nzC&NdEX7FYUS2NG>9&P!Dv+50<{oyyj3|_6mLPji-C|!FoTjOWL*g9$v5v6KS-09jX5Y -*pB*B4^J!FYAfZ^PctJ}P?RP%e#=)C(T_e(##2Y+8h|6T1I=#s)BubnWhJX;S8a$_;_So;W*^?FFd?Z -LS#E9$OJIaX>DEmsfzwDtI)yY*D-r9&b~ -#um+J(N-%A>kb!ag(f#Mt!X2IpQx|$bR@TXAIBO)ec(6av}qsmUGjvJA(s2=!QKef)gpTq*~-(^KCB? -YSv5-3IrDp=U3S;rFc{C}O(}3gXD8CPGQ?zr7X!GZwwy1G9JW)4V;hJaEIKh^K+V=uJFTyoH-kQ0Hs% -kJ_PMETYQEuX<9YCQq{Utx{-Q>Nva2pW^nFG6?*|CD&5J0H7D1a`7swpiZ&|V^i#AcL!8p+m0LP1L-) -GJdx+`8J{LJ#Hvqa{H?+Wx$h&ey_8U0P0eSbNn_4*i*Nle_Z(_J~JN61bLg%FK-ueaV@AAWmF8871{J -IESONTr?;Nd1f%mX>RxlP6@2DT?XUPIQH=xwjcRo?jM8ei|lfWwgTlbK@Zk-|XsO( -UbgtsiwDIionw$69b*##nNIh!JLlyYk1k4_{cV3jWL^yeL<_6w12v-Cfcf`IUtjP_CB$-zva>e6DE#U -^CbK87$bdQV9yA>Tv$$fvcTa4auX*r(6_EB<@Zc$3A5yzu*>W!JTLxK4RZT8pp@?Uma-2rO$A3!wygu -g#NQu|-p|Kh(FsQ*U}_=fAhd9Y6akB~FzWssQ(qYSXfo&TFLpCSknqe&V;ahjTM__92_^q^-Do+&WMB -n_9q>}091BA_tLkYHYLW}`Ep{=_Gj!U4k0_#0yYwo?j(wK9v&9FKrSAke1AKw(beASec8vk^;HYWlNG -7y>|bv_yK($DL^`6)x8q1Jer-&qnJXzj@0*E#AHi1voyuoGe0@bZ};Iy-2{N0KEUTRGk3 -c5rVU~ZqNMmJ!A#?77%j;ff?hcw(v}u7smYF7UoXhUorHjm;C(|Lw|b7->0Ddf>I0The -F!AjLE2qcRV$3pzdr_-KcbxwKhBr6BJXrs8Qos8h&;=ZSsA^Bvan3^L&WvN;2hBxWN*yI9N?A=JbufZ -iIuCnY)delg)k)8T=q`@`{Wf8R-fdK3w)r7^>xTmdD9(JY|ZkQ`zCAygx}&b)ihm$gru^zESEJP-^ot8|KB~naw)@m^`9wdfndmM(ZS24-@?>1A2)2nFGC~zEWpP)5Y^(fe -xW)$mVxxr%(jy$SBjt*sg!Y;`i@^JKvrxn>u3pthMw$eHUIh_Ro8)RCj(fHzeyavc28rJxbws9Iapii@%98a^UZ~knXs8NJYr@2}tE%lsY2r>p9e9>-ACkLTuAu^9<9r5AT-dS? -lGQA_6!dfz1k;vv#<)n$@p9M^>28bjH#@qzJ7z7*ZvV_SB_5s?Xx)sXg7(u!Zc{FcrFpl16=yg*)QZ- -fN+;{LaBvap!!+DC(pvM`b+5=)Ou0RvVVkOSwZnRpOS>!HqNUqMlO@5=sKD-Hd_m}+_GFPok;b3^YiH<2 -aG*e+(RAj`VFFb4=#umXI=joDS+pqG!TCav^cF7pGV^ty%NW@V;YkFpY3BRj>C~@4mp=hkoqtPoQQ-7 -(tyMObIM-q2v__3!Te4d&&u7prjXfxmO*~gP--(+3lu^I93;Y8{4Z2|Oo`dQ)MlG4J{+kJI`JhiM`pT --`gj@5Cj);F0ZWX^#G=P5f8h`Z?pz_;IfZQfGO;*i!Cw7K$3+o?AT=UZLKq -aYdLDJ3cj+X}6SE|PK1jj0?18%nGJqL4~G4E=B!qV;b;R;8wM^EFil&xicxyjMjRuh(>qT$7}Y;X`aGvedAP((4mT*~{~Wm)V-~WQjd*S688iGP9KDm7bBe#q_YF?U8*Z)1}TPWZ3J5ypjav%9gC -lY;@WV<0-vxvPJF6%rYXUOCFFcq^!H964hXlx{R!GkO|^8CG?t3G@v(0c}H&XT8|y&95sXfao>^yz7?~{y~$l=8#aJPWmR;}6C^V$muQ#ElVMD9LZ+kP6QrjE4RP9!WeQ(Km$yxO_Q@e5;TI7Q5TheEv?3+k -)81m>mK)++uA>Xl;>D1V$Jo&-v4a4MwEGJhha6$(cttM -SZHy9aF21r&K?<<@&ce3Xyv?eZWeAOz8r=hUy%`Vk&&VvQ&&gE>N>oJUqZ4tr$&IOY>a)lw5fSsW4qU -+Jx5oJce#gQMeAckPy(y`iMs4ttzS-b&+)?b;k5|EbVoAi|Hc@<<8vkYuYv74yE&udjDFI^0)Ip#4eK75|K8%vl5`AM> -S*4|gonB;VuM??3Gw+rE6tC#FDS1O;O#MdJiR&YXdwa2m(RugL)l<|$?#KvQ5_O)^V<#Zu!+!zEY|0| -hSN`3f>1e-^lbW1z?uEsZzO|Dr*+Ylbz@v!lQa$9#sD$Y&G<1R{>X&OZK`c?3fOsb-RairkE$DFc4K* -qDKC90U4lzz#M9ZWkm4R5b9SfQb^IrI|0DLcl5KmoTFriUGaN4D1*KdU)Zl1)D7(2W|ZZciOxRf&Xy= -?q4-G|I$6on8c&bz0Fk?`rgE<6R1GF2-AkwaE(vCszT~-z#8!?m3&Ebg5DyXz6mqcarZWFA-#Htf4=S -g>~A5<|M=|SAh^b`HCEHfzfYkIdMAd25VZ)2yF?O_xfqn5+gM2Y8oMOK(hgq3*_itz@D7)a -)8BIYFCMyM$yY%?EjCmY(((P=$}SuOjy2vhR5wj(59?P)Y+MtGD6e_D|&gy1&b}n#LHB)tGu?nH^@a^Lvx}`}vy_Ql~w1!+QPVlpS`?B -E*Atukef{=HUb1L0nKA+YSC(ntr3?mrAD|&=M>Q -P~a@r2LqXxcSQTr=OO4@-te6^2+UiBwFHMC_bSw80l{H>PmH` -7rHSBhRj{xzYwY|p4=Z@^|GqEn#9gKZEIdm{A1q+Jhzx-xL*+~yY)=QkVrbd(e7G$Kzvc1P%7R78Vw% -05I3eu&+@o2^;&9184BBv8G&V5{ddD$v4!OQwO9>x?rnvzi{OdVA~97HaFbb8kKtWGvyxMt(ljj+-+s -b~LDlk@pv5Hx2Y-ts5iFY30%4R?YzvH)@yM_xCo2SeQ)Y6IZNo5u+rE=FfhItm1>0@HtuY(d7}9rPN= -BJjkUDe5>H+6l&A--;H3^C3NT+^+ye~50|P&IVI`#p%85vjO0c`<~4Icb%~Z4I(6{@= -f5)L%v_)BRR`wO#nSl=Tt#{u2j#gTr4w_9HT)G((UuP0yf6VFW@mBtgI!Ow6ktG2ehvB#cvEN;#2*cE -QUyB8a(IvY!B!Bw)Z2P&)#UIxsj8{VV#qhBo8W3|sKx&OoK0N;dzTS?0_yXUv@$;*7Jz(!`3Fz{vUVG -aSbt*yATK8N-06&QAlnQVh^TK=&56C*azYf$2(e!AOwg90Ea2lD^7ku%*H_bHEweiKPmcE(~{m47{X) -{D#414_G1b%>+V#=mU5=wH?CZ763cnd{8A&zhtNa|B&w4(LB-sYy*}_kJ${M -bm=~}Sh5{ZRw#8?7=F-B^Gc^!XRQ>kI{#V%8-^nAI1RGx_tcQTjgbGDQz!J%V*Smj6Sv(x)nd^}*d -YOp-V_Wbof=KxC+*Vc4t@?|5tiAtkXQw>pFzaCyIu{5>vQJ{jL%(4dK%QbnGx&cs+KaQafc_q$Jy|_U -l-^>zF8f2fybNLumyA~m1l+78{SfDWkYRIYkR7kDJ1=L&2PCg&IJ4oK0K6EpDgR3N)bI6bb$h`R@Vd*FD%wG~WsV7REL%GS|CepC_2;hH|kf^IbZf;z_ -z(&@#9Firk;J{#0^=G8k{7iOlpD-Q_T-HoX%w~T!dx^pzc*#^p{__{hI_=Gq&9}bfiXN|MF=aA}_N!m -5LwD8%2x!{4RcwYwnZoLX%4>o-B+J#xhLVa#YX=SoqM>tG(Xz(nj+exvn8D6-xBVFojNX%HSIGgk0V? -(g=UZSOIoTMvzeRm;WK~|z;jOHUbMO^7mL)GpZre_Lrf4rjAk?A*=kv^GcF^!0NyT4_`9_Gk2;wv`LY -^ZTyRSI2`wb4m$!nQKeDZO+QH*&b>uZxmSN#W^+3Ex%9rr_#?E{fI3H})@tNpQvgLG)y -$?EKU#EbFyTt6O65o$>zQ#af>Vn(n!oQETcsc3X+0uI@2P8Vo*x^L&b4$-8Oe(Dr_bF5;&J3dN|xuv$ -IONGY7W9b(l_qB&!i=Qi;Kk%wMWQm(q3f9?WuxXw^PL*He4lULFpxr7EUB+l_$r{O>V^xO10hR$?ov!g@n-^?`H -RL!hTtM+Zh!GM_e|!X`=dft-as}e2P5(|*hxgsO8cN$Z|mMR6-#cfo02vnW)OYif7LZ@kzhcWo6NfSljD=P?-_S2C6BgO!EbwkcLvFa& -%|MOYb@{^Q83I(b)<5OJ@zWW{d#b^G~@2VyJjWJMFGQ)HiaHnc8HGK0Qo~3x+L$$IZYv!>M35+=U~lV5gXOHU|<*@H1BG$w8rv -^4af6TPcoP`7s6bI&W@$y;35p4>sJIF&q){nHcNNs)2=O7-3J<(_KHhOJvAXxY5zOi}2hS*r{=9L*RH -(4RGw4pBvL(qvK?*1gO}VD^)#Ub_sXQ9=`Hv7lYw9iyFrN2U0+7Ro;Ou+57L7VK{&B?C0&=FCO -`}SNs01&xxTZ0;4E};tWE3sU1R=eC&D418lSy&<4z6psbBvhFM-j!x50;;P}4~>dP%y7QRM)&ZFGA(m1|0t7{Lv -IMU!QYetC^O8nNfg_M4I2xXU9sv$a(|=j1Fu)e<^j?^kRrV-J4a%ZMZiz1)r6rT5SRyiA -xKf<*bB^W`N-ga+7L4canb~`vBeFq(-W+!mu#vJ}BeFl=_Wjwx$)SJe>|jz9`t2Z2EuQWNO5M0uF=irJ{r_IkIUtT -!YjvI<5`zRi2Vf+ScqZ-q(U?gZk(&nWJ;c8Wv@c{U+~rB)?8Ml~E=&CDNo#SvgNpKi@`NOtSE*hzxWx -I}Av?AEy8&jIhXvQA3%c9)9b0c~2<#P7SRVq0;LDD2=paM94rdvnoN434ogF#FH4gfHW?FSkm)RW`1@ -K48~j>S6jFyMLK*_NkQ_fAcJW7N9qHy=MB#j`m}wMt*Np+!Rg;dnl-q;r_hf5eIm;1Lx>pB@iow?Woc&-2MGh_I~_X7OkyGx -^q5O5eeLn$=fABUNaVAjRgX$2Uh*I3a}P3(vHQHM(kbdvH!E;NhJP`_)LYn`ygK;Z%qMBeiew>JguJ1 -9Vz9^A>Axt_^9|NaCE=mtnYwhMv_?fMA!ZEYbtDo18ZH0)|YJf;*`i;e~-GutK$im^(T6XJTVX*6{#u -h5x+u^8frx#=bXB2B`7sy+r@@`JUgki2Cn1|DT#YFX#STji6x$feDIa7?dVRVE4?>I7|~L%rF!|(*(h -MX-OFo0Gu!!z*x)xVd@Nd1PvO()RLfyra*m~;6Nh-e?2ENV;qw%p&IlOt40B3D+VSw0W{GJ5b~ff@LB --=3Mjx^JYFC&`B~ft4(k39Fu?@I382uibOJ!>etBj{0jUm^09YhapgEdxbN*$1Ehqyd!6^zLa{e91z- -a4?m1Mlk=z!tVUqay;$Y}53w`xQ<-Yc$trtXbnPU&SB^S$yz2x$K@CsTjnYao@Z`)*a_CRK#ImCCF8@ -rjSdjBu~T2M5ymqTJf-Qy1oSN&Ml#xn^^6gsJ)Qoz`Effaj1Hb@K=%dMI^7^mWD$43*se)Iu6s>KZT6 -9&hoZ_<$L-x>(>7f?sMC=l-Ew6!!kM-8Y&m4K2oFp^h*jcwrN|9#>WfL(b)K -eJ7!byH6N4l`lOWr`lQ0TEh!cR-%Mn4q}&VFJ?r4MhMgWqIwSMzSJ-HIbRMiNG4=Eh8~1IDX%F`V{mA -KKJoe`L+dsk~K|uGW=UrneDGVilGS_^GPb8c*Fj%M_*CvCI=Mk0cgOER}2MbYwM1sJHi|@@ITcSNrps -b0_q;F?Z-jYLnaUz9E~Yx^+6Wr!M+dl-Ar#YRh@^!sKp}r2!8WccVhw__u>kzgIXxpMy^=;@Ogglk17 -H8#{E8qDsKmxg?6ZWGCuYdc_QQN&C}l&!y^1|qHOV!J)1dr`&j^M*xaFH|TfNhO@k9dv$ROg -|pcRUz(_<6v-jb=`Uq7C)Rs3Px<_2Z!spb5NDyO#N^W#~_URbY^^tn0B%Nv3|jnu3S`H$!)xeruU@4w -h1km*j~$v*gmtn{r$-u)8iSXyIeTIN?#H_recVBbQQ?n^g2)9HhT=~Z);2|{d6N=AGiBRmh8MhO3y2Q -5TpcD&*!~GlL#aL{AxL!jZm7)G}KH;(0jl_i0$g0f?t&=VB_U{^0zs6#HZx8*7!PI}$h5A2suD`d -M{vo)FLS_KRP?)4p8YOT9hUec&gq&IKjPEnp&rBC4zwF54uRcj&b_HK}Wdge9Gb&^0(l~!9Up523A=d?qc8-4Yo6d&%u&YIfJ~NvVIe=to? -<={k@RbMQ-+N8}U>Oa)*dxdP$TE5(u%~xmld-?GN6r`gDql(UB#ye^ej0+E3}N0IIQhpRSn-Pypikkh -;HsgImpva~*yXR_{iMIyCO)}&Zz5rd?DpU9TcDq9T;_etdwBVLZPD9%^bxl~O9o0lM#j!dqR1WPJ;-bj%s&LF%vAy|m-rT(=lk8N@R;MCdLtGkV?XcMkW+tREeV1uH-wlNEjytW -e)_R%eAK#8#4QklL*$w~(;UEj*h4T=`LbeeELHorNYl1i3o0I}FFAMDfY2=6i!-j{LTo+?|Y{X-^F>X -schr%SmtP5%2e06|3W#tsMTbULRYB3Z`K`h;Hwy{S>>57B`37S4MYIk)4er?FbzLY}<9Pvvtkg2D!Hc -dWywIa@;?OCtIauNs8_tNuPecAY%VK1AzWdgTQ~ywfq_+J~2Q9rRIGiLQpV4g273Kp<#jm-~i0_7-q% -|oT9#@fZ39#O(bA_r56v~crn9^$$wEK2)CYZ$LH0T0?ZEkTDO%UV5J6ZF98Qj8Bq8HGGowkURu!@=ua -aQSfhasz2{>(pHRi~@FF+5P?(rxN7<7-HVN7Jdt2rWc5r( -FE2PYf|mC8w3sh^gqZv9Kn%EQ=pAD0eAv7}%=qIZyDEW>H~6S|gh+<%5mGq3z9HhqL9 -=$~NI2WXn0KM}t59o=aAM}$g`BvtyTX_6Ys<9_u}o_Cr&Hg##2p&*Thusad^-550Wc=i4Aa(s9t%HH; -{reEv+Iq-W;6P1M6t!d~OOsAMqPn9JJva}X&1#^hlR`PjG-JJ(A+a9b54)j -C6GAKe;WQcE1jrVBm4o=yF7TK878W^+AELyzrVT5Z|*oiUYMdhLA1AEJgqbWy6)V3LjIdw;hmo|sZ15 -NMM+H<^BHDlZ*rO4~Z4x2TN%u6 -mKj~J#CfCH9H*}LzoapY>$@I2Sm6tf<_z8?in(EGvMfFFbuunaOXd-mCVOf>a15KzD@XB$*xn>kA8?s -)ZQ%sxeE)S8?Wlv+CIfcg5iYfY7(`JAUO7D&*$jTSdx;B#S!N3%ys_#x*gIji**7y(OXSYeW>Mc!rk` -GJ;q=3r+2ev959~Q{@Uvovv_0%JhA#@MdtCe4xhKGdzO#>aS*O`WTZ%Rhi-JK1+=nhxb`@2+63F&k4K -g;CpVI4EFl=`=;1;cjq~@UWrub03}DoDZM0NExu9Zb>&li|j+YD7^K=))o59#HY;>(x)-%5w1s^LHmT -R2-%^E`LGG4BiWB0Hr(tn~9p6O6cJ=R7V_{T)wUT7> -fJtIt@I=W^Vd1CSh-f=T}dNsNcKmP{r#=QpOjY7zbWfd{{>~`|J3>aNm=<5^Q2**`6g%XiD5JXlVEHV -nRgK|O%Vvi;3UGJ_?PxeFZqEWBsyAz)ESVV(aVU?%>A;Zu$#i53ro%0fbeVc-emDM!ogfANC?EhhJZ? -z!Y>T8a>U|%L?A#84jhz7P`;iqKKhx+4O~*Rj5y)Ta48B3)#M^rClOFP22W0b!kc11+jZVC@F)AGW -1$f#{Nl38B~;^f2X7jD#}p$IlCHLY=WInCFOZHBhCo-V@dhj_}4!yDFft(W?K4>OUm!tqJLUa2HPb_F -F6$0=5f!fZ0k4!rgb>`&T%YzVo{alIDaJfupqhnsx$7&Zj??GvlVvLhOxX@gX|WeJfSC}iuTx^GcP?| -X&AP(wNi0qJ>H%~HQTf(%05=G9Z9|*4qN^(9XzzWYheZ5Hrg%XpBc#@!YNc~8$Maee8kOd?H_rPQGZc -pg}$n@ewJBz+0IKWFYBxR3JYO2a5JY~iQd7}*;a;l{^hj;D>S_jT -3jDH)b=mwz;L5PpUJ|`5kR8;gw@o+dogdahua4?fSQQo1f3`|7my({cnfd{NHhDKjhl{-erBlA<)JoD -4fD@n8pbjVP+H}F^WJ*9EUN4LP`2-u{FH}%>b8K1Q0+x0k*d@TcqQqTsi-afYDYMUaE}D*S@(VfP40?Hsz-^71{L+Il8H{%Dg6jA3x%uE&~fTDW7FyKTK0^k8 -&zZsAW0iz%qyo#6x442A)u7_U6i5VEEj3OHF-x4<+x}sc%{Lx6b5Z6~4vZJo6*~WW0{*yvB=`QF@cxAFGGFlB1Eh2A8{sv)+IxoHlE -(2yM?d7?^^Wx64OOKV*nw1$s1hZaFR34mlEvSV-u}=#mVW$8yn!9`cW4I&ci#J_$j7sL_wX?PyV-pkE -&C0@`Ij6R`icaPsE8dpk=yNVCuH=aHBy8nua`*88|Nf7YjsBwRUR1XBtgvGI~UPRsu{tB$kyo;N9{Gpq2vr-^UqfjPGc>M0K3v|0V44j71hlEf(Q9p~M(n$9(?zO}{s&L%dTjF3&>pN -k}w{s~aJ7~@6R(f=9hsr^B8(L*E-Q1YRgMI5p<#4G(qR4}*6HttL&mYP_4b9ck&t7;}g{a&+P`6<`R? -kpgzPfjB9nYvY7P3J2&)B-{2cPb4e%P{A`EB^?Ie#i2Zyv(XZ$3@UAnM%wK|YXD(n|dR` -3`r`CD-Tu>UQ*#N<))NP_n>=Yv6{Xv>kAPEm~1h*A+Zow=xrt~Szj);m}c&%dBeR`^ya9*L9EDMEoHAW&-SClp`P8>nw(I?#=?& -Dcz5;{Bji~8)XvC#{#+c_?Rix{g;Got1Km&cqeAtIZ}o?i?l#vI)TidC#vxaEK`3+zk7#o3htqhZ@3_ -Mu!C9PFRqog-$n`Gn@0=^-dZbU|KHek8l`%p1Q`u~U=CZcD+IpCgm~gw8+%eYU%ur#G9dFLKUzd3z#h -tuCxtngb=*2!<4no&)=nCRSWk8ZgLL8?7akfLg3J!R?T0gGx^)bQ8EirNOmJSEuvJcDEevpHiKzA23G -<`-@EU2 -j3&9-NytPV~f;;)R2VSy&VF)? -O|#h;Ex_uZ{ds3z -w-uudFHr8ON6(ros@foJG;E!L}9G<0Y7j4np~IVsjFb_f<00w)3%^1Ua)F-M_Y!1)%xaGNKl{U@gb% -xwjoZ#y8daP9`tv5uipvOgT6}C`;$OD=&MA%-wxE%bRRlr*!@yd=bKGzN<6{mO;=AuG6KpYpQ|G|tII -C0%f~|C^7<&Xc!~r(gl{u?*IL%uX8Yuf2>aMf3Vv^PyMW%Akumu-b7rw95({22$*Tzz0h@ubh57I86YzUnG;R12AjHtWEPF_x?D2RPe#y2g_5{nCUr9e_j?{c)?lVu?sGjr9=ZgbAUyXM@9= -IyT%#ZDTT>#`<93Mxt&uuh-wNk_&U2xwfw(p)S-3RJ24I~05y-`F>)rG!v9;jWX^2L`eZs@JYy#+R9g -8t?<)&q}YM`p_K$#HQl-BX)wO>`_`OwTQp=>z_pTfJ{V$q#3JH**~IQk=2W9SlJoU)+|#ZNM<*^|l#D -q098S^kYlz2b-#RUP?DeAWK7V*ulExf>4`RYpW4Jr4B{t{QAUOJu~KUH?hduyuDUgMbsN)OdGdEiGyL-s1gT>3h-CAkijj0a{CL)1b?l)})e7 -E9V~Wrs%MselDJz1z14l5WobCZropJ6uFVpStZ1<(ADkz7ET5MdC$a#I@Lj;++_4SzXvR$6A!0RlW+RE&`cplp8mCnZ6 -k|9+~hHRQrdw2I;DkhSZ8RC8H7fN{WpDRkXd}$@u5);(THB;dWS)-SHPe=HX@stsTxXrCwxm>~uj-p* -Eq)C01B`>=bySL3IVr3AkusvxlJa2<0*8bSB=LHtz4Jm6j7scOE&rSPFb6)f4eaBY=M@{Y;)ghNz2?% -lgdE0(_TT{j0UxR^mO+FtuQRTukAZnUBNmcr+ -gcM3Mf1h_9%}m2y%ii`|G<#-^pKOB!Zuco=a)xSxKUeZ*nM@eys}MfuUO0JJu^1+gi6p|E2Br}6Wgo_ -ck`NO2c}SnPV<2Eal(9UlPK_|c98QU?6|aN$k5exwH8inknP$#3LQ!r-#%_B(cjw5wCxOq -p{zcQb;c&dl4jnv>Q*V`t!vq%f2g!X(+vMl@|9|bEl}W1yanzwUGca1Q@99|?s4znw93hQS$dfhRG(gvVweHE%|5G6lAu1P -y-9)R&-t7E`;l!>Qz77zQ{ofq)jr%vWO=FxZ#`+klx;1L{nI?ZFJk>EhZ3+}V)DF%4dN;)}`i%))239 -O0n9KGWR@{Uz7c0oN_w?Ob?v^|jNP^*y49{Rn;TY!@>jO1cOonwjrB0Mvd9iPaqm{^9-{`k=!aUwh5d -48H&+fWhaudvQK{yA9qs>J#*u->wGwcsc*%YM_so^XY1SQxFDXYT0g25A^v5$xs`W3`4&Ad|8& -0h(bKNO%T|-_w@7TD{Zu)8dhNn{0r&l;I;iA2(|35Gqp9?m5baFo+x(Oz>%FA(cIei})Rw4HWW&9BDG -Mk#;?cq0)dqE{^h!~S>$SKB#5%b+{H1b9_L?4Ae9pe7oiRp}d-D& -+)rP>%%h^Q?$uqqki-dx=!`d=bH+9tkcI03yF()7bOHX$$DKtSHiUpC``A=xXY2pvmfhiuJ&5-mfG_? -4jbV|czHz^0s0DF#vlHC-yAfBbL8!})Tv;qG(Yw{REwfoiccE7J?@+F&J*ZGqPS3Va6hN1&G7K9{=L8 -4qm+TE}Yr44w5Rl$?5ulelx!;-+loO`F -}p?QugPam7LHN#_!w@J_>u(CYN0vL=RJ1`QtL0#{du)Uh6gnDg^@HX=$(YzS#!R4y&VJ-L^a;9&);Elpo~XWd#x;d)lT-zoSm(p=G|JgzYDAVO}MP~lZjvp0yyW<>of -~}!fVCS^fNUIGd3OQ9yjE9-a6oOD;{t@4d%8`Sg^G*+9>qp@KiH`gwf_15Zg0-Ay5wQ4g!b{lv^)*3z -DX)GR|N4&(^EnLm(;+^A%9kU#)Z(IrgBjMDHox+HL@N6hO -gbkx$Je5`^(BK!RrgDM8ZtlDiH%@+g?rMShJa5g>2XyLO6WzcvFqe%Ef@x`Nn2I)8p^x1Q`;8je2xm0 -ITmrFhq6$2!-(00Nknd5d6uEd(wNP!k5!=~V^ofTnOh>;xCx3CU~N91BAqZ`7syvwg++V(NB3Y+pUV# -OG!^)5-$W`reoz^p)EATdi^!z0liqqwTC=2byyz;sYy8B#|M>$3g&))4ze*kcJ!m2R$OB&3)>!shAZ7Y1^-7{Zx|`HjUox>ssXHF@_tledsAoVxlvij%-}+Pd7HY*evg(Xpb^jG`Xs~p8=tu-PP%{9 -{Cel@z=%9p|(|VGfDU%mGzZh@mX-VG5FG&g?{MGeisJ&-pBn(Bss)x`NH6WTDvB`@|0ul(I!-MK8;RZ -qav}Vw!3wj5V9J|N`li0zqvjyy8jTS?UBdE8rnu-l-ZtbyGG~mco#L7p&O3|K5Y6Gtkv=ckx*&gE(ni -=SShfU_wh~|dtdCRQY}pAK)CT^g?4J^RXy&LO}@gr)FWm5Vj2a?2+>G+606ME?#};KDvXzk$&}DylR`|@?!- -J_8g_TriH)7WvC9T*}@r0Z9( -ob>M_G$cA`akVyhKKf@b)YcJ%rNu*0AOYL9Wedzli%Rz@1OVynQ$1vDFme`5@866#__LnR%aZ+nI*Rj -14E)X4mbskEizgf6bh-ug@Ih!X3^KJz8N!;B@_l|dgJ9_+2SJ&FVKPk^)I!g5X>xzSu|Vlq9dk%7Q=? -cAibPMz!8B!D+CHDG+vU`vW4s{kuzZiMx9a`)E;NPmMy8OGY1P7pXqdw9V0Jct=JN*9xX`v>q;XJgua -jMw~PaQvoZ(EuqHbANwtxG11{(lx&FS|_>GjzBnG)0vCRX7HNU%AzGbF@f|zpt@BrDpx!46b$v-}h@+ -<-?N6dhz0{U=y8`e6Sp-WVoK*G5`=uWX99`us0%D&(D@%8=A%Y**z_5IGvg -Z}RI{m#pS66X)BAB+Ys*SoSyt}?pKa`W-nL+6C7H;+?r@pnTP%*a>n*vv=$=qehPK@}o_x@NTv9|vDb -_-88=sBlWsWxlZXKh5ESH)LQEiDM=v9H~W46AyO#e5+aPcL#i7}e9tarArPRBUp -Dnb@My}rx~ -5_#Omq>i3L&?9DlhItzscYvKTalG=j-8)K&#GuwSF+TT;NteMY}IE5a4Cw_Uc*fXaXH&=6SF0<2z#WM -jI8;QDrZy*wZC;@9o`G@T{w ->B2D`{FJuRGZRib!Cw(fPp(MHIcxAeM)W+M;JTk?WYzx!HClPsy!uqyirKHL@MQWZaZGEO}?{rX|A#3 -ogrzirtJw+$6^-Ry7xxCtACqIsJ$9MVX3yz`T7w*jb5M#21iNY<@B|oVZ5Z0Mhh0t -$ORLNqGbu?L6>|rWNEr#>EccJb-ynm!GOz)C>gLu7>v1qWKseI4^cFT{ec;vc$rTHyrzi--pPN3KXY- -4qosC&!QTh@xK`8Xk -aq&pG`edO`IHhu{9Nw1e9J;0QBTaIazI{HPx+bbK6ZssG6MmZ&iv&fQWU#fi1v%7gs*HTXc<0R+N7+^ -K)MbH4Aj^L8HeNyK&MQ_ksf8}xo-$?3Yy4$AusY@$Rmb2|Ft2Zr}Pk!#OSc0m5iTYALy(@Q8{?tCS*- -`)2a@}R%PJbkE=3rBEGev%#sHm5@Ic{-(Q(?iABznv6~hOB%ejMR49m{zvY`@6l8^86eX?zPu*HyNTG -a)#3fqHXnkUc&m8Bo7F6bc=!`?o;nTxsvLj -#!h^%-w@^x83T=P7j6%T*z{3s><1o89wI^W+-pjczV{4I?-y9<H?3bRwo$nRh7B -M}vNW%2Fq+*f0pKIz-!!7B5ln(#IRYTm3z-$`vzzl;yTo0-3w26G3-G) -=m(jnt?@j)g$Hgq*;gfAp<^7XMY=>nAdRcZb_K@D@p&THO70bQM`3c_~`Cgx;smR^}jep{1-zY1d2ff -^%F|{PtNldtp4M3{LoAaVI)Fg2u&ipAq7fNpU&%$=-ZPBdxr?b`>s=n?n&Mu@$dK@FSPsmQ9Dq@(1vK -AI~JuoK4j6}wXz+XzLSJvY}a$x+mLsMmv@HHru-o24Nc_k7Lom`a}>h%#usXb&i!0)wtul{$qlopY(L -TVMMCX+YV_MkaUUr~c5|W)O*a(Y?gNeXF(VY(zow!6Yw}$O#h`zu+3$c%68ClYuzUqF#RVsl9AAqqep -=_5-0wzofOmSGr_Xy}#5XbDcd24Wj7tJaNWjZ#7M)trnnpYmL}0Y9&HU-I|3kNiDl&)?gCjX&1S>qLwtNreiG$+V8 -Vc-|cn8W;**VQOMEmrihy=du)Ya#SCfU_BnbmyUzYa=6l;@nKUm`N`G}u7yk5MQ;TRF-;wa!=838*qN -p2lJ(Zdh+E@iH{7H-p&Rk+S$hoz^oW;H)QlXfp5%cqYsk3okfgU(H4K?jRjVf+Rd3_Y|W0=N)VK0a9_L!+8xpVHOQK^%QSXM#DG&m$f-AYLq+67m=2QS)@z=o%g9zBD)I -{)I$9Lp3IC3OYJhG{0h)LRDiqtrjz4k(UG~NP(yh0xRl3jK@J2+e@X~<4q<-cD$(E0t5&1Dn4}LAY@n -Qa`SZyB#zUZU4mw~Vs)r;EP@yZ`Uw$@@_Z(j*R{R1@ckH`+gn$LfDrW;Eoc&9u_T(h+z=H!WmI}jBsl -C}#X^VcOJ%u1+u-Q1AfeTY@>prvYmy^cJ~+Tpp=RG3oy9yhgQy*&M@E{ItEdflq_vT5m)nz1Jdv7pLQ -YC1RcJO?r?i&rS2~R%Ko}K!vY6%;Ck&E0XW4Oqq5;STz;fATB3@iuxjhbo4$<%_wwU -ICo!vn)Y&DW+}=s><~Gx|fN`qprxk&MMzC14U=9J2Tiz`oAb3|B&ot)oc3d3=3n^Tngm -R*rpqIYGW%B-Iru+WxHlhyO?enCF;0uEnv>Y0qAUOUaM5o}l2&YcmcHRb5^e>9 -o{(n_V!-MkZEx=2}GqVS`f*eHsq>*}sE9b-b(==HzL98xJbtkKlauW)7c=lMf#b&&nde%-Ah6}_wJUbW#1LwtGPsv;!A8ejPDL(gRW5fVil*Vn*J02+aIEIRO4D(%=IV||Jktiy@W4AcmZ>#npxVhG4WEq-(%wECB8AK -++MU&nty>3L(NuRI|B{5cI*vKxoFN&n06TRSl+gO#U72Hnwu2_t_ui(cpoE?+BVS1yL&`x1E9Rz)z4a -Iwk?*e@1Kqmf@e%UZMKIc4nWKo -E;l9_83U(C2=<@`jKu-MPQ9eV?LMBFiG(yb?XU4|l5%ZAziqYP@HMS70Nc2<3o1SQ$>j_Y}D-qD9)LX -EhK>(W%Gf;tQ7CdDWG&#d>>RPKLzY&9l6oj}Cw2PWs^%uYd`0xwx(!QNE`58I~{ip;GV(TKNUz5Y*O(WZ4Wt}6v~99Lsp&UD7$`3e6Y#0KFT@w420sfec08-d-wfs2sG_o_?IZoKJwog -B-%21DXW?J=e=$GrJ^aOCUkT$MhkVZfX_&+b6e4hphER$|Fc_zC93=>fplKL`HeUGYcKAm9BIuoW@D7 -_w!hMebhxTr$jT@r$&Zm%U=UD{#Z}M|WxCa|kdmSIa_r3Mqa*})pEa309E%;rhi1&>FI^L@tdjwauZ) -$%X3IFp5H@>sEINnW7=r{G-o&zC!ttFw~BTmuI6Zg_f^lplNS7MO&7yItUd%S3)xAc2c9DRq~?|~H9Z -lVVNmJ*88UY@4E#Y&ot#-aZ9dvhTV#d7d9cy62Q(-Ce4`#CR5bXURsf*X5YmS%eo(WzNc5%o>x{!qry -xvD0Bz{jV+#>)tS{+Prmg>|p@pLhlPn8f+=7@sf3s=$89U_bA1{NpQsy)dv}d8c-Nli8^d+8z0s=pR^ -g7aQ*h^sy3Ijylku?>cVJqlrgXl==Oa~nGmWNTf;(&cG<(aqrPZT%Pfxj3Rp!Xm;R%?Nys1xeV4s -BHJlv1*fRv4O3G?tM)AI0A+f?Hg^`_t-(wJScd_QIVxUc5#R%OaS(Qcp!CjH}abY -m;Y(km)vN#KDdQtz&QUz`}Xdbm61Z!BjQRZ0+MTVzJ$y`%6Sqv -&LE(6u166WRj}=YJW9&2@!>)_ueU^m*k`MAbi|>zRCKxMD3Ya`-VB{$dJ2u(Myj)5HidzXnUHio7XFWm5LwNDg1`@#ygvr>5IrxRh5|{TZXXy!ODY -v4NPI%|?R7WI)#2s-x2? -W`KYP$XabOa6>gJJyDxYypn(+?y5@`}Yt9|Y1pxZ*hVvl_C?FX&j_>Ng7q83{ud$~m>DU@;D7QEG}yY -4u8^h2b(c0+SgKc$Kv0d;7$ikonDJ1eKr6EjWM%UZ-b)pgK5qO&LuD`DxX{4A5M!mjz@+Go#O^%CCaQ*Bha= -XJ+(nGVW>%0h2GeWNuB|qfl%X(Iykd25RtPt;`#jS|r!!a6JJUfAPEZ3Jp3$g8cDLf(CZWUWR3_VXGC -O$<77761VC$YgCUCjdpz;4(BB$s!V%w4&W_gT9{`%bTX}Nizgd7qJFulr2K4)RKnABO~(Sq3!TVf1`n -pveO26jMp8>mE2#ps;uIMS-lR~|1!`tmy@9tE)w~knrV>KhmeA|zYD@%wnb<^nj;C|9FxoRaBOKDJ5# -W~otKpx+tMna(h%?)OVC!*P1gWeZj?8h}=TW)}=HjvN;q(Z_9C^;LC&cRsw(JAc&@0fRkk;P8SzH*0j@!tIy -hpQMWyVH2fY|F3)YFYewnX&0v-dr<%9!`bKb-wgLJF5JG6?Zv&%DByp3j&Hf+zj^)-eJJqTgbu+djDj -}CNW$2s6K{C>?vhM*zc@VnHB+rSBl}bhq63Md6UxFSilR?Cm+Xk-a?)72WCLZfEx{WNx$;Lw2r-5&PXH)ZXj4_jjgyH -4#hqZLy85ZVzsk+*?AEy&$^%GlqW05@l!QIMzx3=tDW4w^fR$`j8AijrID@pYiGQESxT_2snDZE0nKultTdCGy+L{QhLQyWp%=3Xct1iWo=3=a`!_x8Pr4%RmoWuq_%Nu?zp-oJ_wDIjOL%5!>E -@WX1Bjbc>MG739Laf^#ZV_1Wh;&b-~bvcMn-A`uhdU&r8Xy(E5khFsTcSC5h0QA#s3>X+$Y$~k&&9EO -&4OBBRg4-e-%3|^kIDaZ*OSOA_IhYj{>$1mVl+E8tU1##vsHa-tmw$eaqNs?qas6BG7&>T-MMyi_R@p -2kaAr#s)+q-gj)MHMB -7Spl4QF~7uMdA7t9rGl-P=U=8DKhnbZ-*Aq10ak%=Ae8G;&4qnjJ{VUafMr#TP~>tfi!MP>6$1HIG`? -)`54D(F`=o>ko0sk;u#103JMJTh|an+bO#Gp)#t*PuepO4pTd|0geST=OZge<((wtp+E9BW3LEVkEPg%-`S)})-{|&UL{(Ux|H%m$wC$cJk1!~=4A^jrL^*+D9#e6yraaZZ1l8LtvT`h`{ -``cd$RoSTBjIl?Fu>0%%s*XVfS*^Gf4aZ`Kd&(Vbb5n~ -FE#`3YBP7Aj?8yv54qsW(l-aGDMIGQ6|J_{EDjqMH1GYQFC`1$mo;9MvAacqr>Bln9GMc)<&ny>GL|% -L1!_tp&soYQA2_QZ<~`9wK`X%)Ga|B#-i0S59qY@Y;6g{;2P4``w!sy -*3ed3^A6#Z@r%IA_N3BGHF(EE)P{x62DUcrK_QNK=P0Al?;1Cx%eTOEmAgr}o-pd1u2`sEa4MjkU^SP -GA>jU``UW+^a(lKX_g|J?Bf?83^#OSrWAHBkL>d<5s{|HMMyk105&f`9SeDNWQI}6x_KgJd5B_FO5jo -Q&oe~D^KV=FptsP8Pq}<4J*Cuc+5gZJoA>OH6oqd%09l;O6tbK_95pxG&_dvXoyAxf!0&NObHlDg`36 -WOBuAdzloeQJQ#{=Rg$^umpyc{pA~40k1MMjZ*8;vG8u=^9U+5b>3(&dKv@kH?T~c87_DeR!t2ZolUZ -A5P3^^us}(xslao_xeY<^V6K;NvQrq#SzuxKw=2IXmZr8zeNxE$y;v9$R6!IX=X-GH9qjl>ziK238V9 -s+Dyc++AZ)^O;&=DA<8TV%8z)6Y)JzdTerb%d5d(_&`mDk0CnS0&kT5~x}YWM8MAFtBLUCqcz6ViaOQ -eK!j;{zapO7kCfz5VMe0sq#2_V>B}e|Cl+``&)_>>vBjaSX;`m?Tkn`;($D`qR!g`px^ZcYPOv_v~II --8yVw*X?1#p|o+7X1l%boAx;9qYIq>7Fh8%o7PKxHv -Wi2LiJUcfv*pK|Hk~2_XYUujrk|<3-H++^H1Iv;IlX8uiuwF{`r^Pf67PqU%q$$DZ4dM<_+iS^cWB;G -9Bb_V27g73`n@vo+=Y_ngGY^?PU0qq~CD)IvOggZ79lza~v+*=I_Huo&3U;%a5-C?A1|-RuJ>;y{D~U^RscBfSt`o@RpvJ -F8u@9Qwlp`%&w-4cPJ(R~rDXt>k4wiYkWaT0O^8Kcdhaz9F(Io;P3PM;N<*^ -v*L#L3TOT3S!=(djQINJ0Q5LEVYpeqK10nJ}-u$hl7+>6PpeT|T^GHzc%JgW49AnUI+2N{a3<3=w?9d -($2DfJH@;$wy5{qb>Y&#-=q#x*=?nG#m@TNGe>>!#qn*Gjdgiu%DbubSIelfF9wbKvN(}t3J5Rc44q$ -)nhT9x~rT_vJ2bg^RAFh8IP!e`ZW9OHPhqi^=e|qoUo3T;Qw0|rTYmrn$J}GYs};$B<5sPs* -3368u&q4a8ZT_IEjAnDk3ZwP<9;0QabPtIZ{xT9?5@MPyHj2a>8pYns}Skzw>eqcbay)c$H{=J%{p2o -ymULBRP*b!DgLDwdHRm~zZ;x?Dk$7IfHQe@P0kPa0+s7O;QL?cKJcIN{hyb#Klr}FDH+PA)vXNJz>*F -)dwFKUh|YH-JUl4Am{nD-T0{t+(NYJ1doL#8)g|Z5k6hRqF`v6VnFc3MLy+lLm`bKAk%=uHf`pYaD%w -8;o>DG+n_AZ8z5*8*^fl?GO>TN_)SjMBt41e2SKUn*iZJ9P28-?uvKHPi56Q5I>CSeSL!Sg24YUq3kj -=;Wm0DGXWWKU=(2K8==9Cu?P@>PS5+>?n>X4#$MOa-A2a>PRMia72?mPlU^Hv~4^qek5k>jfqEwi90v -*DR$JM&pXXFDI628QE@tCnt2&i%FY@S}4nFKn4rM|xQj;99ImcUhB1DWpRu%h}y+z^C;bwnubB9;-E7 -f*Vbss>{2666>DL@vN*Au{g*5RYCcoIY*oG4zm&bkz*S9PZO*Yo+5edK(vK(%`sHWs%^C*?&vzJDh%d`71m4O4Y#FGdBh|Z^V)(vOAsD-w)Hiu$5XP}4>XsM4P5BQ(4>9iwlDhmXkAO`_o8E*sLf`2+n9ste=YV-KeHHk0 -JHyq}-yEcjNmA!3*8eC*ezl4G^Y>v)%fJDn@nn=UTV!lk_!cW)|fLvUaMDf6(@CCK2=A_xSF%W@i0v -Ayoe5efTs|Ah7?O3!{ITz4^H`_4(|LM$gy0oWZ(+=y_D7;~C9``byYG9uSB~R0N$pVa|--J+)o3Cw(^ -~=gC0`%3bGGVSCdBS%`em=f_!tt4Y~b49N>R?9Rx*VdHAamBHQ1Sc8s_Bm(g$uZn|f*Td61@!<0a-U{ -!T(U>-o*Fa=0N1{L7S=A)1c3J>F)0yD5(QdyUjQeCsTITe{oDY0SF!%KY(XhnQ*zx=tl1wiskYqZSu< -dJ8TdL_5fK=IR$t@2Pzm_O55qWSw9b-3srgb8BVcM3=@f4HuP2ou!Ms@wQh}TN54Mz3VNwR=}AEskTz -xwnR-x!f@X$MDOW4NlwK|3YaCs}0HxSnRV=g&;r*^U^8Zn$E?$LtO8pG1v+-+lmy{4*@f*bJ5%LLNez -b;XyWOD>Wh(qGTsZ~+3tIGi;X!1rVRnu*|Py3UD>6pDhMgKG-WL>P}o`Os)S@?YdRQRa2v3l7OW5@b~ -Pbw=twNnZdxWT`+6jvy09YmhEr7r&0P)KwbO=I8d_!rjBb!45a*zQ^24>!5)u(0Jus{LAEYK(3s+CRc -{R;vq!kWmYyA@}kuDW0R38(S__W@Tl-Cly~)^!NS43dIlv$IDafjr@RA*DJw)QqCqO$hqjN;jKFv-JQ3?(8aM|8FWQnWrpb{Ti?6SS4l -pajKuXL3cP~?HUpyq1TOZ!v+?4=50y`n_1!hhdAXb8LPw*9L84Xpd)SSO8(_Fmuf+ppY&{`XG%&0Xm4 -p7OVFnh<*acQy-mS!7deeOB50UP{IU?t=C;Aym18G8PAY4njE@E7lA;Dl#J@XzR5bX_UgJU>z2rP}7s^*37Hi+!z@xPS2INz4z(xC -I9||w7V@}HQOYF6se9PrzgKAsD`{8U?{n@Atw6UktEM3||5qXAweI5)zo`&+ZJ`?aTAIP2gDfmr?ptjSOCJ!`uM^;UMPT-$wBGv%zeU1cO1IcItmb4TTYLdv=qxyoKseNH<$} -5`ln>T@9rex_iASOoIPhbK(z<=nRf@XfKW1U>Oib)MUF9ORlt)X!gYHlLIs=`3d`nnC0dz0XPrE=3$n -4E!x4CB2eY2M<9NDXkIc~=JqzP(afWD-mXpfwk9BcQm?Oh!)QpZA=UXDT4osdUbjE8i(CCkA*+Nh9!3 -Htn;6`huYAC}&?!L0M@}71_y2|TR_$~Aw!0or#^#4n^`@eVoKLhaJJ@;>s7$*09qrC|&+joQZ{L%QGM -T+go&r!LbPG76StNJ4mvhu1u^CHrWnzS9a~l%ea+A+*PL>-&DF>pCF3{arD8~k*S?ERcaou -ECmXyP%|kw-PgzPj4m&OBM9C+VLDCA1SxifZQgn}s8+Sf$T9#iy1?nd|k(bsR4@J5d7Zw;(!j -4uIq8<{bkqBqD&*9j`dFCQiTD$gCT%Kc=JZl^86ZLSGHD{SksVow9IX~eQcuubZf@EQU5p~a2}9Kx@heKITj;xA6njp8V{9 -2<-D?X%^5&%--y5OMv?8^93Kf~UmCVI0Na~A{`khv#uI<C_mB9r51j -h&%nkQejr48rM}<4Gg>M@_{B2fCVP9G}qR;!lw?j598@)}^F?@$iI^Lyb8t=xoyRjhj?J<;u_(`wvtTrrjLke1bS3IscQ#BAtX}g&f_RB#52}>C_QNrZt0^B0_63>>jVZhsOM91z29Qc1<6_@Q- -cv_*-g&O_9muEr#8>X5z|-4G2pB62sS&>4N`es3!fC}EEtz7!A_cL98lQ;$vbtqCh>e(YQlzrMSkFjd -)zcH9UpqEaR{Ty9e=d6hbtG;q&I$omy2_$*;BgDFiNB@jUx_~=}YCF9pFv+?a07taskn!@qkB+EKvr> -^}q1LZG*GqVnez-sRPi?*clHRZ{!@LR{op}_E%W6|C$4zCVhyvo@UI`8Z*XW>S$QI`PJiwi3eL8+BCtZw!8$@FnkQ?oG& -LpAV$d`?`+2OPPC;@op{yu -_)?%07R`xMi5y6rL>$nADY_^uS=cS<@6?*ebTAt>Evk+!E~&^!0z_hx%PLrf-6!pU0Q#)dvm{`lX9m~ -UZ>p^vwJhM0W$Nd5R8V&0Ga??cRwck)jlW>6empW|1ETYZR#_WkrKSF~}Rlketgt9ia91XsEZw$&PgC -)CcaV}sd(d_x!DszQ^~FG7(j{W=rrp$t16jbY2k;kvlf#;YLsq4X?5e1_LCIA}f5wRH$*jvq&_5U4n# -Yr0fPlvtN*5N~fN@r3mb)duAJFt&B{rpr&Ilnv|I*+-%=g;(TXwDD#&o^5G>DcG|_XT@~CFlfOX&MAU -z^m$g`b37vcC8As0lqDmJ5D(S~@GfGlLX-4kU>ZJW9sse<62-&$xY8yxOpWPDsmO0{>Cu=xB996X8o+ -jZl}uMY{ZN(Sfdvy-FdF%cwTZN06pGO5ku^p%GS1?Xjk+#&2qgXm#IWx@!g`XV5nx<c$0R|_ -{o9?RDZ!LZEl1?wB7X~Kw|{uIf>Yc2s)2G1mc)?63D6NNEEX9US_ftU=%Q;=@=Yu4tfY4Ii} -`RwP}_U95SLU%Ip=X@;L^d;V{zue+Dt-3HJhwH~VmTW$BbgA2Yl%WT(xvEBD>L%lsLBz-r$r@KeW28erXGrm_D$#+{! -_MUh}_wJnETAf&XA!s4KAxm_fT&t5B?uGq~Ec%Wt=FjeTzhBS)h|l0z<4?$9#*H_G7jO6zsyNL0AzaK -qQ03#XZ+8LweN_4UE`Tqn^2c2$3inGy$=`^=y+b^5ftgt?1D@UiG!rzT1Mr9)!X9&Gtm)P(CDX*6*Po -~Y^uZ-KFd&wGk@0RWa|YKgIjXE%K@Y6Z(7U!9?JQBI;7rNp!L*p<<5_JUaD25GmDZf3AO9Knj}jLrsn> -Rg2CqJr|B@dgs|0b8h4fw$C6 -f(V6f#xK=v66vhHsAZT-%_mM~q9%uR)E-BZy+VVACL};Yr-QMfByz6T$FeSvn7xhy)?6^q44GC|{1%7}LpCjG1NaNVh} -Xo*<*ayBwfz7llu-$V@7Wde>4vzdvd&{BZua~VJUB*L#ahOTS?RJ2Q$m1)Tfui!v?u30^se|JGNp7`{ -eX{x(JhC9rNM`NJRiG)qm?5HizhP`ut6FTHiDcBaGFG@uC$yvDX$RhM6x~hFY*8q&*vR9R-|v6=)u -M#R~~(obvjx4Mu?sVf}p@2GL73U&phnB9K1)i2KT{ASq8gw8O{RK$zS5}A>^gO5gdG_;ZVPpAYpb~%! -@OqHEweejZO2bSoYkwk&PHH7CGH}dph{M3Fya7LNeCv89RfK;6x2Vr;|w78g5LFu!$ogp@kU+=e$sQ4 -{r%rP}H<-RDZCKffNH!S+AU!rHvUvJ`S1eOXis44U>gC#}(UR=*mYBn_%UFaHsR};i*Dk1SdE0@5CHw -Ch)=FA!b{8?_Rrz2J) -zAp)M67??t=iI1>1*=qf^jU=n*mBFu*j4%>e^yT3$=F0q#f$QC`SGIz330yn2E87E0+DFu5lDZw9^-_ -WNA?W<&bu#I*rj6U`{v@XK@Lc`vH$S8R=@`OKk$`e!?n0M$T6&!)r0!m+IB=OWKWi4@+6SE$Y2gI{*E -oWT`ixbY?v%a46JQNeA{w16f~HvCS3%X>Xq`>DuXyZ^<80AQ0wlfsg?lo_899(sSfXAj77hfK2Os?F`kV$rJD>-K5tE;_Vmq-xx5whUWMH`6tR1)Z3=$3j*EBO`w-g+&K~^|?fav9N71i3efP; -ccy9;J-r1d-+}?xPvb|+^)9u9Dz&LsP&26fDyZ?=Hk@RkUpHXkixpbG+yTfs~7nkw3ZwW>1^l2ke2>L -rx#2$81boKwJ=&Esj>*GUOn-iB`m7Nr=CA6)d`eZpjZi)iGr6Pa0&2LmB`GFAaOa%B!MHIo~&GkJ`H| -snz>t!_?`?yDG?elcdPL%d}y04Gvg8Sa01b*D3G(QIK-$~KKk5~I*$Nwek`eORQ$1sW~tMEHqQ&#K9u -i?mMMHAAeD!WOqpnUPrOG8V+p+|@(th*z6ONhIPQxsf%DRpCAEbKA -V$E7KEALgH;N$jv&YGPsq*sudjXLvpwaRv@a|IB}+YkwV3VjYIxacmE!1U?BqKC*fK<+X1(HyJI%vlU -Y^7cM)=H<1lHYI}n^TD}~-9tiJIK643#^MwOX-a%TOa=wAqnY=t=H{28K?ht+ -uNEB_a8bl-h;+__Qsbd{us~rtp(#}BcuOoSNUdj^s6g;zYroMO=6!;H*YIl`fkg_puJ89Q(t;AF=Cf@ -6ul=dZYvIy?bFEQ=eZu6QrmRkrt!8vk+<9V_S8+y!SucqZX$5ge&IWg5e@eT!;hX!;@|YI+A??lO=`a -f>SIR@-(?>5UerkJ-A9V-y_(UxU -*ou6;Z!ILxP0&GJuv8a1l}x~)vgw~qeWi<+7UF4nl|%=(HHuLzmP0IByjji0C8G-1YhVDDQMO;W8Cz6cE=YZ&3s!(m1Xa7G*%t`5(x4hQvUiF;Fm1;(@?VM@ -WM^!n6J}&f#>6owDF*5`BS?}4t#O$Xm#$3IpDl~I`@|&?@Rg*Z7Gik!E*EBLE-KNc(L&P{R5P*?U!@S -e|Hn6b2~jbf9uo)Zs2_#TO%T;B^qg(i*Nn*k@08?%qka#s%m_*hW8s7tJ}v9VpW|6pub+ZdU=A_ -}rs~Fo-aey+q!+6ipi@n5-}5(N!<_19mh|2}~<&ar?&t==sCV=4Vv-!3x||k{;FA169%e#UP`XIi8M! -0R=Gqr2q -QC%EbLx4z>-(_5PO#JiB3X@ElSP&oS1s1?FA1ZJG}d -05w4nf%w&XIp8&)x+>uguD)>L|I$4A-ZjWe}Mc32Z83=J!BncL{D;$ayKXwi)->r>Aw;N6WiKG~8qD6 -<*e$MFU^ejAL=t2pH*cJL?tc4v=ZQ0JE2_x!Ax&*Kg8MUcTgZB_sXy|(Qp@z`gil6-4F=~vd|ean>Yq -jxzEKeYE&^c88-Ps8fKS&!k(P+^oOqs}t@eNc7$4cUI`Py7M6HrR6*#b=EFvqPZ!-(Rw+enQRv!D+t2 -;%`s!+mPhleS_LJt~UOi(R;T<^o~T{;rvoYY&qC6d5-l+U-Ngy+JZT-=sg@tC|S0^Z5; -$HU!)L+?ad_z56%lH(a9s#;9M1Bq#5?O5q*&;P-Z5nC^X!yY)x3v;R%B;KbhJ38g!@?}pLvE?^>hztw -$~A>F%6@OR(lp0h>1rOBSH`CDX6cVui%zY9suenJn|TLl~VYRAFllj;eg>Ota3bGHTjkIsILXOeFTSi -1doVERxAoah1`WU$}DsQwxqzk=P{En4T}#o+Z7_^^#;zM!28pBxw8!0yxA{p@ame{#E@-7WB|+uatiU -s+AFA6|IE?uEAl8#iU`5qmHv7k_RGm~*r2LSzaep?u$TQ_{5r0|iI=!o1+|Bhhm)n{KAEPd;eIk|*+uzq><&Zo}FMyRzfw%Tu1X?n!*5aW+XHZSc8w;VbxSTQhS~o -S1-9_hMsVt(<$};z-j_nQz}*76=i8baWZ -qGS9K5#Mj~_t&*$%Qs%OmWDS@V@4pO%DG@>lzYw}fIa=@S9;cYw`$p2WT>6GHPx^_D@qY9A! -c%}BJ}_^dA~0veL(fT<-J++=Gld)8ShMPg$#f80ZET*q9qy*iU5;GJ0lLts)q#HE#Ffdgnrnuug?s0d -My(5yUxdR;HD~@QW$_wj1*4vD1wPiN2Gl-&L8;??QDZGk)KAA0Iv_OgkprvDdr`mg^-bNIJ1v(xzX#-P26@ -YQ|=mK|$22KgSz{uj>mZ4BTq5BzP*KM}u6Ldjl#+CX8GRGS!!kX@uD#Eu~Q)*7<+Z6uq{`rN|`e`icl -@s5ET$n2^MeHWdmz0efDn-}5tBze3&{Q# -W-wBGgCuqiy=S+L#_E#YT11h|N|TPwc1(cdP97w`2QIJ{A16K&tk&AH1v0E=hVlXt%Wyrca5;B@(^5N -FrS4}%7>Xox068=DqgfV~i>hz7oEs%TSfCPck91?pNq#2@#LTpRUnIkk(kFJ8CsCTdIIt9pAk-0uMRH -%Hz+`so=DIC;m}?M}q(HQX%1c2_?5;L2+A;pmS>kJNP71j=&1jC{!zD~jSVZ4)GNNvC3Pr4Cr58cZG_ -2s#*I92s)TuCuTKZ?(dgT)*JApgrQ@@PxHXXa~m9n62m7lF5?$x1vLUmvD>i|$J+3=B~HkqW-6 ->oN;xvRS{+ej-mwbhRvi2ja4*}e){049^26;gGneMXpB4QnJ?d_y@gOWmDw_Xa>b_&yQEcsU&QsK|I~ -4Z{Z|)3_@J1kDh6f1&5+KaeH|XTa%FN0v^WW&`=t1U@Fq@5p_P0K_R_sehNa2maD9QkTvWey%#Q}1h3 -5X`$njDZ628h?$BuexCm+38meh3dgt(mYSt&@auSkeQA$twi6ntx{S{umzo9jX976x3_RL+77rE%Zrt -&ig`TZ)zSIZ9>#_&#DjEho6emU9zktr8(^cAZg{9yFQ&&JT!yCU&mu`YslU|w#$9(RR<;){U}K!y);Z -Lfa_-d;qW}l@m#{0=_f#YD{}FCFm8v}d?@pAb%`s($R0HMHze;5jK5ZrM~EG<_-DAlsq8kgHv@h`X%g -H^5*Uu~wQ8N>DJlnLx=XsrJm`3g6))IO1C6YU-jgo=7#dsT?~6@b&mJK^Yz%Y`H%?dp$i1;tq1F_0eC -GQ7;ziAoI6bkun;&(rWgo>^t?E%qoV)#s955?j>i+Wl(?m-rJ2?W*wXqrZrglVt6p@!+m3H-8zRi`Ck -`F!oY(eC2J7PThFZv^QQe;h1MZdAp5Y=`|uS^eApO8z&99OeD(W85aeH$ycfyZ`{NeAwb1{95dwrTf`UrNOy^VObQ&4VBFAnboMB6p852Z|MpVrQb^DaW7sJ|@V@iw!=a -9_)JETZZuoU%%!blTuC@g#-tKlf8v1|ZiT>Cv=ry6oDsb`zTLf?cBvzmt`L!DTMvJO7rAwBB83-^fOu -*wWbbPF&~B{+((F#?o!Dy!D22}xHl$ -r>Q`$`YDSlhkEcfAXo-><&C{)v<*SpW);?ZTY4dj8uB#0l)Ney>+1&5- -U9+Zj5zCOdi^|66~a1%J?QjigJag;wFY;%whwBJKz#Q=6$$I)F6^YG{q`(em2Hq8zCz{Wn-QS>fwC_c -xS^^tm9zr*+4sLwVyB|e@A5Xu%A32{{lbJT+O9TOuFidizk$Ch0N!29eo>|KLGi8baMaE4DXF@*qbF{hDT8`=J#VylI=s%cKD-n$VU(mL>pw -i2%tpD8S-qqh8t^j1d|F!;*fCawI!2Se|eOFoBYKCenEz-G{V~sKqmyO}H{8QR0Dh?b2yDCdz;#>D^aFD=XsznaWW)A -+1BuQxvzFW*X%J*xiwEbT6w9(cI?O8vzD&EiW<*-_X}MCtMv%p(oYusXDzt)l*iaKE#hqeVPg-84f@f -Twmh(0iQ3eaERGXjS5e=ny0ekM5~178fav=4rCX1nWP?8hwMXtZRJO}ICOdAzvz^o+#r~809MU8+;E#kvpw8{#KvFpq;opO5XaGI7McAaL+#R&S$r}Pq^IyQ_Zvp -+f@Sluckzo0)B)R@4Jht}LEai(ge8EBoy>3DfmZqsoM7umcEIMWw^|TCe<}ZdC*lG9%C9}#I^oITQhE -{Idt!)FqUYXqWcBijM5W7pI?L)j!<0nIf1@b#H`27B=e-bzXei}Ja>N9OEZE&J -_dGK3#EBoVHM-e6-a}-?q+9Brxc~)AxwHE4&v&l(>@$*NKcS;xEWQ=>v17b_agNY5Os4_lQ~g%qNWVw -*#;2~V3c8?e~69L5NNZjJM0#)FCEA4;3^S=6UfbZjtEE+6zXvCvwo2ZHA?uV2jXHq-LIKW9eFt5`@4E -lGElm%oJCzbfuGR)_LS$71RD=Z6qTSCZb%*zBe^iPRX;d@zzjUH{W<91{C>W(ZJdH?`*LS%Ak-swVuz -N>tVeX4ms*kJ_2wE;M+qB%bg+l-n1H}@5~Ab1b+P+_xySTfA7s%nZS_>+J(i~QeAVhjFAtwg3kbpVzYXNEOL%W)_B1C?aVcB=WHNsYd+^nx|Xl@^LZ+Z+scVzwtny -?eLxOp8UagKI=?wgZ{32U?#8^1mNwS>wlXe=O7izOXUn1X6Fmv0*d`MJul<>)g;ppK(2WwzndwO}-$@ -i8lPQ@&-TEDkUoWwt)A>F;LtdYkVeG?tZn8kBQi@>{=eibFy0S;kBIi$KyE_$cgDN<9gxS?*62(Jgo4 -tAc6CPIXCeMZ;Y{SWd1VTU>2n(!BOg-N>+5iAbBupw#%W3KETQ;x{N#;%G0W^uQnlo^wj&d6KX;ya>s -j0tuAy8kI&8BQZ5-C>HQ@iuGhn%0ZEpMHCa9CT1k=!PaSA;$L-;5KRWUV;)QLq+!e --=OuIn>bkX)WMqMwcm-jhe|Ok69&pdH6Q0X1<+?_I6;+=@B{8;3fa8}7@NsSN%5wZX{{)m8sCuvs&Fo -67j8i~Bsl`FHnk`rk(oK`;`7K?)~+tQh{UM*3Pu{HLRQYrAonfJhW22pEO8|3M5Sf0}HecD`UR-AyO> -&hkU?o)gJG((-Srr1)J8oa6tAe$I55zf&kN@+LvT_s|JUz6*HYk(g~S`j!RUE9~MuFOm>%ndr?j|4J| -f!}g|K9Nb6QRY>r62!4kLq-rQF>?Ocde@*6EVO$zyE2Sx!a=cl)Tr?Ab+w-e826x>Ax$Y|C{OWv -j_g0>F=`#{z+F?N5*{T+;6IJtVQiIxr+V*-1C^T^;4d11;{j^2k$sYJ32V7V@MiGkVhP>b{fdhEcp6Xt(``s+dz|O-> -8EI@v9$Y|a-}Z5pow_#onx3JWL?JihYm*VP`)tC`YJ&^=?|IiF7#T+%B0wSB8G*~)!hM5!cA=V!a#9i -}^kAaOk7H_B?5=1{juW{N)C&c*hr1r~s9h~vR^u*@HrQ{rE_Nkwm%EuGZY0iua>q&Dd+J@{hO&z{tz8 -y0iOB8$~$M4BTk0C7gve6IN7O)e?$;p3-q-duV-48*0qHYT;MN6~zVr1wxS*@=BhqXY7&dxmO(D&`DO -gu{e$l(3SA*Bw3*rLH5F&U-y&hi^ulocM?7bS7%EQl+_G>GG%r8yb}JQ#k0T0K9NbY{&{)Gb@MYMCAO -3mkO>PG0zPn3{@yY11evN39}?`0$uD03J0RfvEiViecS-~1~FaoLhAzEUQF6?CEnN6=RFe*l2Vo7zKq -Lpm45HV><|+%&98Owc$`2v -)FF4kn-^_mx7V&5}Xod!_e@#&Ot1X`v-cASaex@zy~+<9G>xGwO -nB-h(;b>4E_)wO6U|ww>$bWsYl92xWt-{|GZ!^sBl9+kSKh_55^71lb2NcQVTzHa!yn -GFp!reL}9`{kUc|7!NKGva2i;o_cGr`bcR58rQ~4I@~Nrv@Acn8ynPYMk5Es@Wo`yBW>_wG)Dza_|j3 -9T|ixWTV7lw<7Yd1a_cITsbC5Zhw+b7k->ccn%8=^?59S(CNVe@a_I5NL6^2`dC?hA8}kuXCA!+6`@& -gMU2s%wiA6X)H9Ypn1H7c1;+J*t_ls!WB`+JOQmcElwr+!5UEYq^Xi&WB;BI84?xI6CGM87#%+=jEU -R@IwuaWL^0{V}j3QkNKsxe@8J|bb-3Pec_vabrs-e{i9!N$3}c;xxbTKegS5Cs^zpdgDu+G`a<`0`e+ -b4?}BS<0KLgrehe3Zr&;7S-||beh=V>_)b=dVS*(Z1x9gDO6F_6y&-B^(o9T+K@H^$C^@~8p9>)Ow5X -jIxE5lGiPq}8lyFUbld#6Q5YIynv&U!lYD})^qUu=Rtid}T=GR4chb6_d -un|p8Pk6YjhoTJGv?J5yR+ZGcF5nsPbhHS=I|ZG3h)ibO8yR7I2yly{{`dVhla1SVDK%+Ez4qVbTH3Ia9B#wDb2^>j&o-J&32!SM(}zy=2skw0WTJCfISa*xYWz_&D>4hKe!NC9u`) -8(ig&P6W8$z{EfWTkrxY$9&sPxlM3M%>|bqcxwAy@PD9OVxD#_C`gB@K-s)p=5V=Elw=Bvey{hgCQ0HJN>q0EeFPG9}^5!9U27z-Dk%T;uLuaT -xuqG+Z-l-+Kp%t&_1u|4-q{G89oMci9?vl5eG>&i(2Cl(QY2D*f^vALw1>hPoIdZ^rNqApV(~fwf(lPHVvb{X_;cE?w03zp?fHKm1L&;B -yb{{EH$H2uBe3$B@H6KKavD{o=&$n)H531%|&XG2s7v#P>IUeDlh;HGT8YG3w3R74H?8D7wFZf1VmZs -ogpdZ_elR-Hx!mMTvJng53EaH_Mc~X;(HIm*Bg_g5bSVj-q~Hil}H0Uu;Lf*dBu*-nykRwYNx9=$m%= --M5#dyFBThjUe~y#rWRRx0jtJyV2Ww4&D{1n@s|Jz}rxfI-rkgQy}D)@xRQHu9^acd)1k -&MJE;-dqfCys3qC-&=gnn~g%C?ldxVQzYWiW+b}nhh1=&%kWXWC%Oy>3NgnsK20GH{{k_;<|m*(nEVW -7%q~#H7R%+b~=bG1p$x(i%v3nPskEuy%2d6ijN2WE_w|us}CmeH>)Wytt{L5sA@Lp)JzcR%(7@Olt># -OsA=om9Ko_P`%*WI7e5|-S}>RuNrcnGWgq89a_m(%E6&V(#km*%1U<{k&ud8$RtQ-4wDOz0XluV8hPo -3d7k`51!Rap_%z@2zJ>px9$jC7U&#nD=JD)KPI|6O)k(3sV0j>w5Ql?uI6})1k8=OK1%6!>@}n*Z3i%q -=V~?O@z2$m~aZdV@{28h -OGN+JG>a_y_#j!nV;x$|J;NDAKmJyb8lB+VkD(Lw#o51%i8^3Vnzl{ZGcRD>V)vZ+_yIWUae5Kk%;b^ -=03%{tj_~YX8j+yba3y~#2#gECTPnaqzQ%rL*L81jQ#Y^20T_@SctlaGD@d6)aH#YI{K1p)QtHMk?XA -{NY9-v`xOdR|*8^+KQpvFfTcmy9yHgAXpPkk#^>F3MpFKH<8r|Ww1_)gQhqI^)|V@3wRsK=?+F&+i^Q -`<|ul*ZJVh%YupyDa&S*gn8nZEGeJKb(7PacP-(wy6+y@fdeC`m~8EQ~F11P^!_^R*}pR(%MXaymZhN1z5N*W9#Y@_fi -AW|^?$NH*EiT29J*7-4`rIjnkOo>tJFCS$B4>Jak%s6ZaReWX$$7X|ESK5j5PbX+c+n#=f$dQ#UHUN4 -~A0}|<+TpUBV;U1;^WrHH{bsYR&dl2;Fu_Bk?YVoO)smI#lOMmCUc2O6A3vKI+Sust(6Qq7f)@7MZB75CAq%WL$~tbSbcN>;xAvtXBSE`MrtDl -QU%EiTd(En4gg#0&P>2I9;bFhT`ZLqY -Vj?L|c-eQNlD#aTqW#nEpv3b9HY9o6S+!1@JY?l0--7eb8E^=c3AIHCBOF(@0lp%EQkcr>fmTiE|UEh -50_)W{YU+P!vc3HX)w?V7@PSnyll0^P5@`S576SNm>nqwG!Y9l -!P7;T>hg@9K^JPr%Y2{Pl0Z(zSpL;RmqvvF-mlSknH7U`g>KwsSA8VR&SXr|Fd!wdN6%HUp0|8x7tGU -L9NNWikLlb&06g)63Gz3T{)SQYdPsaq%#2iK-7MpWTf};Ju{JR}IZ?tpKXN!T8M5PE>;MfQ}^X*{*Et -dGy>DG^;*+z{r@dMsrf=7npWcS)r-dU)%FhO%C#!8K==`&&%@_s67P?Yr}DcAl*ICIa337sI!vD@9C= -)B)RU-cV$S0_A%-6>^H7|tmFWG5if;7hF1xjJ^*s^1FE5(GsQK&HdVCpqhZmFprhzyOkvmt4lYBBQ0h -0g&pLfxsp85FB~zr7f+fHaq0h82&eU1Q9V+w=^hI~z`$WZBtJjk|3&MK7^eTC_BzR6Rh??3AenHJq8z --0a0j1>DReQGh5qdrrJZcu0jf=DE7UEew!{SjQNaR4VQWQQ3;#SPBjB1t4J4X4va?Sy;o+dChPFIz>I -btPZUMRd+Ou$5I8LU&GCWefI1rbDiMHHom@xrx(*;blMHNNOC2QVPlvM1LIVfi46#@)V>GFMxR|0MOG -X&VCNT9~R;rf!i-7W9%8t1`_1@zK;l>n)fX!HoF50-==&mPee4*oTBSUm*dsm&GOtZDgtEj)UW2y4Zr=>++NZ1Cp#xm=z$1 -65ns~HhXA(ieMyKpq!fpFS(GNhCYH+jZxlfJCc@~6WE+Btpij^eFPYogGd*)8N#(uF13H@#&dSlCUG+ -TpfBm}@gzgTRv=6`(@{}WBA)o5vwisbfmqIu}G%-7{WI9FbG+91 -IXCs=V}2p+CH*?8rO;3JUUbtSto^$pEYsb#ftyogXs8b?9v1EaVE_MQuxyDp~$0edTSBYDoq}!R>W)d#Q`Hh)tRn{Sx(8u{NOl~%Q9mlI~4Z@P_aHI)^g7iKWIrq0jgtpZx>qv3Yj}l$Gv2QO~KihHu)8g}AZnq+yoG*Xxt;?sMq^*xP_k -Is}_BlvXw!uKbC6)xFJM?(MfO~Uhg%nQY=zcaG5{B+$W6shFof|=cE_o?7|; -(8`>Albu5t~x -;SYJnrw$*b}BUR&weS`=z9&BU~wA+64gp^IfBFi!QFlxp^9Dm+aG8Z!)J@ww>;*y?gNFXHpugZk@57c -x{BwnXw`o7E5&xO&G~&bH*Gc^^fHF&{L%W1V$zDW4N~2L;N94_8Z%!4GZq^afALCvqy?q>_ba4#)KbK -j@x4uLv3nl?jG9a*?F@FpE>S%EE{NVMh0!Ru&)}_~t>nDBz{tUqUv=-w -#ehvo$=wk{Su*gQG@(=~{NiU-NIuge6D*&_M8}Ev|Hs7Cu8)E@3Dn8y6IFPaYK*!?b7A$(stoYr7ZV}V1pxuPxW5R~fUxP3btSI2kaW4Bl9tLQJf@GkY6WXjMlxEchN7WWui}=8S1jsB`^gD5p1Zm+p6)e}QCVe%k+_558H~#0)xsQ7lBeoGwe7AYOsPU+T(Y=}Q)LX=0q4%-I>B-;|AbwZ``6iao%3(sS-rj2;x`x -ssm=av2fQuXZs~rood5LPPh0rs=Y3x#is0Z+%L;aCi+9Qdf3wx2#NLfTy;&BKw}#3db$AmrA?a5cmLE -+b`PS-+cg9!bT}OZ*yP+lDXH)TBYl^@7gEtG8zx6q>d}m3_!C#m}^j+x?q3@24WS3*v3^ESC(?oB6MG -SqDY+&zdQG5@9WausyN@e>g*-loqw+ct^pvF!F`R-lWrNyBCB!8pLV>gNOSCh!Gfw}&ya!TXDAKD#k0 -nluB;-^n$*O^zp@XLOhh2Lo`wv~R*ZVR&KLcgmx1MxeaLGJ+pX3w1LQrE`$qm$Km*Lu2>!D*0wF85B> -<;QKn&!+WHW(E9gT0fuFKk1Rsjm7CH+&)myeKB#PI$m7&9#xmF^0V8uHFsH -EN^}D}DZIxqbNy?tT#?n`OUo>txm{mW8Adps2lbmLbMPrId>4g*!I2byt!YM}wxw^m&ehmi3=!(>`Qn -&{BVBFr#GaW>5Dlk%zFdy#e7io{i7C+mWdn<2w#fqrUqT?~v#Ls}_)oX5-e@EyVbw!b_n=OPufHxL346VN6VLuu|~c; -gGHB7Q{;cawaYT#N8v)woFr8{Nhj?j(yfFS`6(Jm9NeW|eBC3o)%q$0Is4t7)hkEiWRlO=b)Li-c -wc%JUc=hO7@khzQY1>Nl1w8dSvM_FgyZ>qi0__WtF_vaP*`uOhqY#6E>cIHgi7EJhiec7F~8IIvErN{ -TVOAu?aaE58QgJ@p%-f0?F7Ya#{WDHpd`~YUy82Z*LK;#}!VQWY~N^A0DpQb=v-@gTjT>Wief0gt1Z^ -6N?$^DOoN#Xpy6f5Ntp{=2rywz3kXad+|rvd)C-h -ZOGy9bn@qV6K_{|I)@lE2S?F&Yl6^@EUEx2>ppbrj0Q6ArDupaE?O=oWsjrsnNi}~nU(cxu;6Pwtb}O -0u87!;;1f}z!4tZWfO)#yqp7`f8GF8q?3nk#twy`j$3!FSPI9@%dbJC>zd{=lICrzfRB==_MHkQl*GdJ6rZ+_^T&>GbJwZA(v;8#=o_00Z>&a~XjC1+1 -#bwD(QHD3P2uLM@TTQ;%US_U9TVo%V=_z{5IgLN -*r>7Z0p7B2;`h6PI8v&{a&%j&v^b#}ggxt36+=2(5GoMaU8fK?l@TxVC|g!0uh!;>r_|#HUmWCVMbS7 -+axnj$Sy}yFt;u`piJM*9|MFt7Kfr-hY)oJ19;}0#aceB!vq&a&QV*CW&@9*CE?^xcUezKRCDuFCV+{ -nIRYiNl1i$W4Rq`+RHJEzZC=54Y#_@6~DBh+Apu9?I?Z7B0$pT=I1eRmO-qqmfPDbx3gJpsXdAO_Kzt -Wst-kB0(KseP^_2mqJuFaW9t3W{8{6hP6X5q^Y;g>)~+8pwA~Qzc{LzGv~45(HsKb?@2{7)mG*-7YmK -8Zl_x2i{ghVN&Hnpw?yb$T1NND^ekYUe%XNCEzVLEmeY9&e@KIqa3|rnl2pxWBKd}bjyXnIE60_7-0O -BL>?&dsrrvUX_gSLS^a`9mg_SZMQ7=hjH|5}`z1_^(NOvQ04gN%6Jl~lq!m}Z-~PW&v7K?fisH$z%*W -3z@?AvYd4E?mp!fvLs25Lp93$m(mMTiM;9$~8oEqr4%IGV@8gW<7`jO|J}Bi7&~zdp;?WJlB_3-`cfs -x??HXKeU)ITNp88uyVCq_`(oTYn6x>&xu49x&W}wD5n0J`*7{k`Y^&uxSVc-wYlSgHyjYrq&N#=$LwY -kq*U7ws8JndFyN7s&qNaebC-$WN#!tJ9*$403VGC!$CTFD2x3o-&x-ohU{grCnveK#O&hE>QyyljfKi -d~;RA{{ynD9LWfr5tUfgFrCjgw=)ERtLFq+$G;=(wf&=}1r3CsnuIj7e!~Qv>*A&F^gj6Ja=_l! -A9~Y2gS)xk$t$V7#URahCM+m_d)IG`ZXDS|-W&QLqdmI4t9g@qFDdw!vMoZi8yo0rwqK@YWm|p6sp^I -6&yDoyt0e?JGz@fAv$cu;C)yGJ0V5}=!ragKF%EQL -39m{$@v<^9s_pa*64^#NkdgW-4uritgjxPqc8IbFoKGzzi?DMxd8F@MS@wu3nD*QKHkqrYAlf89w6KinV!Ggui}!N@nJTKyPDVvkzYJ=CYv -(f9QwsSlsELI)`6Dsa7Nq8UBMG3ykKNd!hES8AJgX5ch18rNd3%P^D0^6Vt1TvU7rSEiMaR7k7BJrV~ -sjSemP`SOY6=BTG3{7q~2Vo+LA7m4YSSKT+mbpor3%gABuo#{^PxQ^b -eBPt*#wxlw#A?|cP1bN}VZnjd!W%#U+`svNb8*YoCigB`=8+H# -gs%DsWR`plQff{^y@OJ|A+tyO?N+^#x#w9uLo5YRoY70N!W#wfak+wJ!FFUU?%+D;+k -N_nxDut{7n022Q|Q-QBMtFgFXq?r82F6ipQ|tuuHc&^VSId0qK5`Lf=*-HrQNAt_jcPskjqi!z8$fbo -aiH;EWqOzdAmSAb}~G5h!;-0|wS|ss%3j!6OI6wmWx2MZjmz>upJRSjOIFjFqxh`3=EPrR-FPwhxK*px-w1sU7VeygLS^bzFCgf%=t}BlqGJ -B1B`=y2eM20tq=w?L$~cRZk7iay|>hffB@?Qpk|7D^G1@3O1%2u0+5gs~xo+3jXmTsS9%0EM-jsg@%HEEg{9jc+s@Y2ibKM5RUa&Odmo>hn7%d$)v>;0ACRMj7(K9RMvY%c<=PGPRI|bm8HGEmnir%c -iHal7hvmz)%27K}sYV@S&c`J>G43l^Eh9MtD!TOi6M0$el~gWS-j})=R%hOwn@*~39&reVULuF^h^#R -)K=#9|oigt_JyHKYw*||3Hhl_r%BlVJo@O_d)Bf^D?utJ>@+&vR=TYB?Np?cEtLv~xlc={xNW?;!#b{tpQMJa&QXrxMX#J_%v(SV+FtQEqSHe2-L6&>m61-t -xXX5qPo--r?wm#D3j5vNKtMdxuH(R?Hr$gEZ-M)FJtqwBIBx?$(0khOhho*6x -gv#jK8?Mca+}Iu!XpV>S(b^v#x72NZy?=GKXwNFQxSRV`nwPWKu?prGcJ0y%s5^<{~!cmIbh9LpnlOT -aALnk66`PA`U&`^yi#yKRqfvN-R@+ZHAGv}55CL~RlBd-H2yU6SK0zTBO~lixCw=h<<`-LWvnkNHqTC -z!e;e_{z#|%uf&1{E%fS!34)iH5tY3(^`TBQaCUbi=Sz9sl`+( -+ycTNR=?sQvtjbx!+?`;4`LuJBtMDlzA`zCYkF(&d^3xRO+vP|_n<~)0QQZ9;SKlbldW?Z0wdj&6k(G^8(T0Fz)8(M?TVD#rOg#dia`GrolM{PA+P1-CRhS(N_9W3yQg}vfGDRpU8a(~r#LKv -051pEx4}+7l=Vit+3Ao|8Shek1!!*KkxNqLkPDrDYqr{WSD0z%OZu3ojT9JCKUGq$Dj_CE-6Xc@7^AR -NgRN-p|te#6ygU6{d3-w6XcYh_uS&dXUtu$@!L2kyiBW$Q+g6YB$GQ8l9tT<$925?6%Hl}utTGj_J_w -`HJkYf?U2S{lh?8YPc6&p^2)q+@6<*X!|566;(`^xs@mKqr1d<(%~oK*&gR* -4_)@jlv}|GP^MrfhmyA6I-i`Gm&Sj?g}Kr{33v$C010*q+*f$7dmy|BxA;9hZu`sgG+<5JNJ6lUNVofjaAIm&MCoAK2jsuKqPzbM_JKu`j%nsa -iwO-7)^>&MO4)lvZM(uYZ0khvN3TK;$y=yZ0A~ -y~5|?9zv-`YO)D!_thThNVmb -!$6Sif>Q@-G{L|9Cs*R9R#pvgc|m&COcnfkhO3JN5LxNjJbc<coi4uj-kA*VkL0G*RFFMjSpD&@=&VLZJa4x?d|~1yt8Ct -6pyIqmy_`{x!`;gh^)#LKl2<{B>I&GN@%9xe(_AmFZ3isOBDzG1j36+Sco>i`!hTafiKF#@jivmPAX) -nSsr_ZYrGz20Z5TUAY<*~JI`xr5W-yyUUfxpzoIKAQ`vOLi7-zPt3gRs5K6mQ4(hZP12R@7)WQjJ#LC|cv_!T`v1Yr_>)!KCAYYoFC~(K}yU=XD*UeJDNSr2nSQI69mtyBmLElQ)$nI@yuQPIQg4$m1+ -S=f*(w$@Pe)9Z3IQA`o1p?{V4`+xz8r?v!|+A-WT!>^?`1yt!ZE -J!%ZTqr>?7EHL{I6#r#x_T6E$d}Xv{ITigW_nrF#MTsXQGr+%fr@sU?J$rLNQs!Jiob@gIpEc?Cb|ya -gq%7Ghasf|B_jv4=3fJkIzNasa$d!h*YclEA6RNHHw~olHpIr=iGxrPp4~n<;wqBhk{!{RFs@=^g@hu -k}ERdh~)%%l1A7G#_VtCsQiKC;hu~^9VcPdyLo?pRT=)a2Qf&6#Q3Gf%*$;70u6OOKY+_oiwVtOO-iU -i3Mae>)J&IJGhXTx?I)#4S1zuLW+$Y93_d1)y=v6rINrqi4jV<1WlUS3}GQjD-akIKYLx4~HfkXCco4 -812D7|Vf?0+xJg*Bj(s+qO8CgwO}UD5@8Gx!CKA4*45A1V{gDB3`cKYzb)0^l0VkF2u-qv~MtJD7J+j -@nr}s8LTyeLKrgeraSq3JcN!rim(_XW~YOfZd>;yU_F(P^c;HTb%>)C^$AgYB>pN&k%~Ck%^S|^rM*Z -HpC>{*BNQJK+w+mLO1v%mRh$4QuC%vHn@^n}RKi-{)pG7^H(dM~;*)twd2+bVux*>rMNzoJh=z~F>=G -8bCi888fko*n*w@T1wyt%+=?zg|y$NYnQK=Hc^07l)Oi`UURekgb3^QjL{*u- -KGEzqAKD29*wTY7qw}(9*|lk-g&!y4Z~WG)>#5V+xfw@ -Wer@6|X#7lWG-*)Frr`$EK7jPkz`DYZlK`-4GkYt@+3}2Cg5v>t$|kS1p~?+#zK3^eXO0mAwh^BtM(+ -K)#j-c_A6=`hUoKv!+MQtXuG&Us3l&A2AQU12GE_Gf2@l%rioO#PI76DAQSXI-Pnx*F`#si|MJjMq#fTj5_>CYjN$AZ|=&?4z^t^ -)9y(`6vtpOwxMg&9TX9eat(Sqz9Q^v2wrz!I7UK2s94inz!Ap1*p(=3Db=_s_8d)S}n(2;^ajNe4FrP -wq3(KyH1-mT*4v7o=_a7?t&R<$#U+n&t(AVdBD(po=YpF8~tpHuUR!x)_*7d8z1(jYlt=i(EXK?fN&I -P$r5ASK0TM>BR@>-4oam&o+G#OJ9EgmW(*GXw44}NiIylU4t`r>&E<)IuT)(#Y@5HbDS99x?weXXVFH -@F)y<_^GYQ+2?AZ&q%Wbv~ukgcp8=lkjYO8c^uNuF|F9REby5_5c@8`U9S$}AklND-MW*0ynn+gqSFc$R{Ds7xv{r -PXBN+oOY6&Kinu|Gp`#@$4^n1Tf_ON~TqYz3eHynvSmpoY3ugBPLVZ95k|UcySpIRa3)JIQ3-k4=hk^{n1?0;q+|RJrIvfR)hY -=q*dCKq5bI6A^Zkq-bX6+H^2BE{rt55J?l*z6qg71SUy}pdc8>f5; -GgsMLS*m+&XMi4#ZJ8X>+Sm>4;xz`qVp;lE%%o>Rxr1M@@&din?|;YSA;9UbJnSbDJc(#VI`=c8YYVx -OLK@<{cfKTFLX@{07)RGy_rk~pJ|UT~5;&WNB#&N%!?Egt_w4sE9$K_MUbb!aiB2i^M9{e}8-8K>)!QdrNwq9cn@d{B6Ds9Hx$y0z!{{ZzO64<*27K;L**W946yo$4{t6Z(P^A$y$K -^1qo6(lnv5nn-L47olH=0?7e4fUkHXPb&WFC{w)b=m-0-?sM+^Wt2(&{kDohHOrj&{Kf%alD(6A_m}? -W>F?-JSaSI6YyRfo>h-@{)juJa%_4yIllk)>j-P86kXW->4vj6e?_SoU0^nJp6&UDSj%X*B9uw4y+HI -3&^6bnr5!i7zn^9(>6Bx9a)IBTJKbHh9PtTb_MGpqZbFT-KDA6|CTrlxrZGB!mNDVm}QS0Cy5ss|Q@OaEy6=4e1r+*jL)XCcTxOjv)?7s#k_PF(EB75}ja{$?ySO3 -Ft#67Z5mAK|y*f`E<^@m}pAX7F`fgRI?P$Yi-IU?$dabq-Js=H9SKSQgh^WC|!fs4C6ck6s%1YyTPPC -x&@MHe%K3>OS*m%x_BaekfEWL+&^t -H@GA+{3RtK>#ecj}0m@v*knA$3LB~OEPf<#NYeCwefN_{6DU!T7m5Vx!6K?v^{e+L3U@()?PEIDbnl> -sgl7k9{>y(FIm9DJ4fN^)V)E4H$`BX=Ubau@eHy)Goilz>k7Uvb*?|Kh&xXtCeMa>Iau_h|sUNq#Xgo -Ocpo{+hFLs&UVQYVladnU(=7U-$BNu(9~=_w=%wn@>!%y4j<&JXm8p4Aq9;TJL+fwAH32G)9ia%R5ZV -rRaPd@sLmlX(hVo#K*+@+Fro75FC9@AS39RBIL$wjGdwyqG{ZXy-n^$Zt}YvU0e?S^r2mPycm%%h(wD -XRUWf;RHCww|+dj<;)daV~lFR75?-&Js805^%TI|;eRu^1^iB0c}GO=mlf|WtfqJCayoGiCsuV0)ujQ -MT|`b3`q10$S!rCh!EGKjK(g2tfx~Qy?`OOQr_)(tgN&;sI7O4NErMBYPjn{H5Scos3YGYXN%zyMXBn -p0b^#!9>Qwdo!1mkHw*V=GCB_K)oEk*8ny^Xa2%o&~7K!Q3(hVoBxhv{}Cg6N)71*f&$L#aCRrT7;{6 -0F#t^b}Dwriizk)QM4TB^M4I6oy1re)S!k8u$~m#l*=$*i+!0^E>14Z)3bZXw2R%sX&z`ub9W^l-PKXXYT)!+TdI4oqJbp -v_TEDhp#51UL~UL0WN!NY)=?vRHVZT~p!GtUBSFXWm@DOAwi`T4r8RE11bJGi4@?xL*YDR=ytFqv5z| -x4@^LBRVv3$=M_R6KDc5HU_SkUR-VPR8R(;K0)l2PXQ;R!5Qct|s7{m<;Olq00!rL2)rqD&*sks}`bl -%HCrCaUpk=o_`zEAiH!>`Ch()?a7-U8Sc1SO{8Uh1~_UcwDY+tK$0cV$;%9iM4uLC0f|8idW4pqL%QGPTGzG)ckFz49g|9(L*ob9{utoRSMY|3K;o|WxCoV4y9&7<1k@KFBa -o&G~Aw>F(V|6=~vXSejDSpDmT>@OFp!*Sg&q@_chZsqsto&RrH)Hf~8f4!jJqC4`ybr^|21PP%Cj-fd -IBP17n1eT6gKlEs@kCFo+k)Qc+Dm)aCc8rFGAE8Tn2Yf#s>4T5L`k}4#(b3%D6OkT?Ci>H-kH;T=#N? -yNiGBw2vSR=q-;vzU=oycdWCtWfK68S}r(&8<{Wqw1t~QTy_vv=cY{xU5PD9 -#nfL{Flv%}oZ0I>DD7J*V_yOKQB~0QlMVNv|E;no$Fa1adKL`aKg;>uaMVX9`*#{rU%DVSjniiR(+yc -eUpSED4LCM_h>X8%{M`fkE6)e`R}bi~JRjg+J)pnxe1L!Tfd0z!`CD=o*xNnTvu8;Uuk-|*IG@}bz+% -@|_M|DAwl5*!Rp!>>_9^3*)>e$W`SN7ezB;vJL+_+86QrQllZt!VCLx^>EfT=t#SF@;Aa(Y&ZlTE3#X -A>Ga5R>Eh!0G`iSM;G)ZL6j#14PMS&U#4znm|9RCl%jnDmtyo}%m%#6~ovD)c>SX=On-)?=Fpqgh{s4 ->4y>G=o|7oh_9X9*M4;)V-lQ{{WsanDdQ1$4h&yz#Rz@D))khnJ6gldBvLTVu>I-mL#cNP4Y1+Y9*+` -=1NA9+*OnVY8ZR;8`V)aEQQwIWJBFU;&*rT45n2G%@Z%GGH_^igDG4K(|fIWd7X7*Q|kA3ECJaW+hY| -bHt2~{H2+l82|l8AOv3}jgUbkVr_#4TkE~_z6(SGq;VBIif%YaE{`i`JgpV`gE~4m~^YW8(IT$Td_w< -ZpUwnsUyS*G@2E}cdFv?9yl}Beb!^~^oiEdYD8Zeba;}|s_bN6>MK3*Jec}qMHfqAJ=`d(MUb7RbBKb -gHGoKElBWuDbj5U-VZ!!3ydHg!_G9a6s%wrE?riLMd1Za8dbgwcZ+W%0A1b8n7Q3CMM|x2_PH;yInj1 -$9An>wrP%<7xNFfe>81$Sh-Tiq0p_Krd`@zdm~y$uBn|%Q*+k2m1PiI`Zv?T}wD$Znukct8+i@RfX0#Mcg+<4L^c-;M~auw>!h{n1zJ7NDa1;(Shyh+WO)Q8iUe^;( -T*yHN~a-u}QY7bUq5J_P5A?dkUBf&;Bwb*l5dP$cAO3p)eWiB;eV5Cdj7`y{7;@JWuhe=+dPCc(Tc*+ -Ln7DO$aC+ga^;rOtK1lI*&|0opweB&4O^dgwo$;GweR9%D1^9G1>kTd-KvPZy;hK+m30$~t+YK&J0f^ -e7IZk7Qxw$CHHV?016j0ndfUD%|R@U_7)K$7~|q9D?Tn76W -;H|jfZ0ESc(j3%FP~5bamlsh6X(vc`j+5r8nK1XNDt2{})5*><@#$yxD4frHDieTE`kl{IY6R0 -60O&Kn#iXYkS1$qn$g60mlU`ppB2EZuP85t!)LVMyITNnJ1KN}oW$`gbJFhy)taWCrEJ2qbsVkonNQ! -5W%=N`@)Wa>F!#Y~7QE1qak=<+(TAsU4sN|1%K*)FB%?@lVLM51LR)_F7_H^l4Y9(nDbn03ym1klwJD -C02-RUKiN`zuR2(UrIk5j-bTw;MrBhDh@sE6m@Zl=v4^N67y%>ZbpJEByuPCge}4n~sufbkuB9?3iC6 -;$t=if({}kIQ%7!59~;ipAnYq7b5&IsQn1kBgv<3N*!&Z2U~c0)J@6s$RzGS7DbMUogHe%+3`a{eaOR -q$~g`n%$Pe8C8-aq1$E5PrXQvF=%Z+Ql$VpEsTBX{q){KbrZ_nUfH3?h)kYs}d-%hu31Oe)>xbh4+0i -ZX|6l4R`FrZ7Lo);V{|t4L{I{r^o&o)c04or7^2Kb@Z28pXi!?=}`W-GAH5vN*=KR; -SGe^3tn38W#BDUt1_pN2u~>ixVSjM5HC$F3m_VH($j$F_tvMQH$DTwAjS!Mi|6-3le-IgfmwBJqTc2x -&LQOR{RFD+k{g7RYQp-Q}H(Ok13G;r>L7wfNwJhBegpaP=-nm)?0GHRPA-P{{? -lEW?sviIcCWr&8?6333QPZEH4l2CiokLkRA9OYOBTuqNfBG-KOVN?=$;K*LL57dC`Or$m~$QG?+8+dM -||x-nMpQiEz7@DFN{^X5H?o8eOoVQ#=j5HG1~eAMCAc%f3t&yn2+`D7>Y+Hv=;NI16Ish*Zh}dp^mYK>G9QPrOC%9ebwhawtqh%@vnFNHX`w(-F`PNL0~9Fk{C@=Fp9zi2K} -&ODNK)P%!AwEQ?&}?L){Wjj#Aw2@pgB&`=%&5x|jB!@gH|A9qE=&vIPAkOQ86eS2%_@KPuS=VKaGD<} -l*8!m$JKkz|U0L4L|th#u9!DE-vZu;cjfGcp>X$J%i8aB=i!R)QkFYJ%?Wj`~nlpr1CTqm1|AC_H>Mb -?_->*x|;*-M3?Z>hzMs={4X#$0ayJy_HKgZhxp#eKI))$EO-Qe;b$Z%;0E&{%XiYul`c;`l@#Q-Izoo -(%WxIr~!Uf_CAl2$^^lz;P^!>{zUS{w)b(j+}pjfB)TNyHH55|l-d!&7IR%8sOFST}(RXU -1=^;V`d(Y^;98#KV<2-DR-237)+Q2jH^I>NMDZNyQ=o$*&vcdVd9HVM^~Z@qo>f-ldyJN!$dfK-?p{dA~`GLp``RDkLuLz?~gVXY*C%7i&W! -pv-?g&*%Un&Z?>L`@8=Gza{=Io(8_7HE5H~i5k8XFSV -Gc946Kx$5)qG_0&9j1#gGlx*Du-a;)Ghd8aDieb2TK-rnRJX8H*%YJ$HM&+RSiEY3tQMlan>*>T&xs` -gd*;k;%s!c)e!2e2o+HUO>{hQx{rIooc^m`D>58NQ?}*)SB&-IK0V`;I~pn$uOG2h+H!L3!8bW+S4A! -21|zLrFO6B#lpl2RFUIX*N0!u1k`pb(%46$^sanLYjb|9VOh#r?WJkcJrPpB6cIf0Zm&F@l8}P^IZ@H -AB9Y%g?Do7YB9AqxlLae>D=)&0a{_NtI-mpBHFU2SEd`5qP~I45Z{bvd`HZQ9-V|Whcj_w(e;$q)@Yo -ilt`1m?263S!wZvg{MOz9|3f^;bH8o>szdmlTlyP^{pzBAc*yT3`bY>nxL1XA`u8ecT@4hN<{b(mByoA(Cld7KtEIn*%uLK=o2}GN33(mPw(C>`l0{YBck1Pq~XDLKoiH9-4 -XA7iU9k@h&ozcDfrk(e)Oqh=;-v=<3QqPJtapRMjUmJY!K(&re~S?w|1Blmv)V`btP -D41>T_a4Elq2JI5JRDvS;0V4K_m3>$(no#+-F@@phJKyaa|G`h_HP>ub(zb8ix4TP{mpx=bbPa)+MM7xmRbq_Q?xZg4PWE62A%osZrn=geZof9S(1@lI21Q_2nJihMc_o)l}*99P`AbZV3Jj;lLV -L4X#8DWg+fU(z@waVLu8}N9)K&P|eY;?dYP?vYr8l5k@3A7&tfEhFXY>Y4qc3+-1&Rc*4Rs#$B0jkME -)*o4AFN=lxID@d57#Vp)xD8${;f*;xgC1~;$)4^q9_N~J8<5?1++Y0!HFK`FXr}Ry%azXKCDP)l$qA+ -_1dN|E-+Vg^yF-Jc!ws-LM0TZZ%S$ft6zo=p -s(V}RG^-D&gQg5Je@Bt0|3L2j8qBJbk4-TQtCL?`D&KRNdzvhD4_4p&1bQY7>&XXVNe2480y=H0pEt -)2sq+XHSgL* -$t#Tv>xp8s*fQ4%*v{3vceBl%|2hN0Z-vtc;-_uQSw)DusftX^=WAOOL=#$*U5Zd&w%EH@|Jew!q~nokL-d$>;{h;+wY -%gXC@AaveVE)oG)oNlnm4^)tX{{%1AL3UV;EIr#YvWVDzPqipC?Xt|fhsJHt3Ria>9}LT(Iu#wM$z`} -?Rx)rlO9$+$EsjhstY2cE%rmM)!ng(-EGdBX6W;!VVpGr;oP3?mTgR0}&G7$cBz`x}>yW -t82?Po-QnR!@>LKmDRS}7H8)=73k}5(+ae*lqxOmgMzL}^FRQqFrWcslm+3Rk&)$HNRUPSctk7tnxsy -zIfEO~h@dle>`c)Fd%~pqW!<1GoR?D#=r-$6jkDumk?V7{RGj_%jywh3)pQ&9yl5D0gAy*@%mfYFS`-=kWuQ!l8j2;#`fVm&dnW$Kslu&L3a$PWvCA)pWYp)}{&ubEM7?O?rKUU7E<$6uG?#6VMfuc&TQ4l1HN@Fv#)~9M0((kBZr+FiGf4ZIXyTG4ne5!_~8InKh6q3^fCNIe1?ap==hVwN2VIbkC>d -qKO)h{SF+_4KGM+{{!2{#f)YPNRoRDvIXdvzp=T8y4IM{|2zl@&Kp!2?=%bo&NL`UfrhC8ke%}4UJ4j -5DqkR`jkH!-0GcmPet_VAD8BFc>__tA&CB%>-yx8(S!qiA$mu-srHJTGU|9=8im48H4SI)(?P5C{l`g -P-f8CA)D8&wrU>934c#U7TQtk)YKKy{E&sca{qxR*i(JfBqOrrt|jB3BJya};#+9puFAs?>XUNEQ9t7 -azoQS|~50eNQS>6)$X_)uc=xG#}`&p<0vIZ3j~~ZHXV&d+pYYvnSot&w-+V*+s&LF3duK4oR6%!e(-7 -djwVd1=4E^#JFhQ!W$=?xfRFKs=Of6L*7n(J~nO{bV4q9E1AQ&xmMQ`S76x^1~I|JK8o4l2m)8~iNP4 -df<>cL3ZK27ua}^alM3y_JsY@VoVW}KouZ|$JF=^HpPcST1Lf}F9sE}wuw|-DwWseU9hmBUI -Zr9%f_{rwu4{t{h`8oI_j4vAjjejuejR|WUT%%QL)cRd(>f?GJ_FYyONG` -_G*)C1G^P$4#`C<__yU6sP__Ee&8MnauNhSY;xon$&g{YeQ>cnelXucQPq*u$_*B>=kcQ%YzX<(kXzBw2M?IKy#_1>aW@_g;j-W*UuRh^E8J1rmxfC&d_4_C-qH|0Q8^04RTb^ -k1G?^Y$V>2;ZA(Q)RU!)m{53e9Ftk3y85hIDBY&^iOdqpVE0z_TZL={-$7S_UA$GPcgs=NoUnj-qz_1?7aWl}id$1gu07@YE^n#4x=%(*2Q#Yh -LajnlH?axJY?*1QtOTkHzRzodBF_Rt&4}cyx-5R% -Uo6C*#r0x+A!S!`}ON$h`7&8`kV$dxvk{kNDctqfyH^U~ -p!UxUZ%L{n%^hC5W=jF-n&AV-q#>|qTisL!oFB|s9%x^Jd}U~4%1ma?aPGvKk5?jot%t@?&~>lIjhxp_qpxnx2R1SIFi`WFusdmgYC}f7KdcsHot?n6E)4c!ZdGLNu$!^D -mcBR8X$Ss^$42Ss*+Tr!ba($E2)RNZ`9JtOPCzRdg4oE0zTjn^-+$1&|hfsAn*Kiul{)ci8@f%m!{SoUWL -@BcJpbUP03$S=%a%1Nn@p-+3`60j4h@6m4Ak+s6zniP>)IvhR%K0{ptrG!jGT##bnfxO(T(`C-+E_Wy -j^=>_e#iq4PYrvd|AtCw-KC66(mA5%e(vg%N)nRjF@3V#=~Z(BTA!*Pa|8?x9h3Sp3lt{vSY9>mN|nA -rgRmkE*_H{4b*_?Qf&1ZJjamj*(A6Njt54T)gUj3i(YM5sHu(+X7BYbL!*gNDeyE1w&shuOZx|2+SwP -xtxUF>TyHvwG**rN`haJo4lSOCtatPHeB=08SSmHSDWR;EwBKWye{PEJK;?Rg~5GTPbnoHwL-dAjCI3H@%E01ktmw^f>%5GnaGc|VDNMNaP$ -$3fgyyMM5+g-qM+01k%s~5kgWv22BXt-29>eGyuajX< -5i?zsubsINET+J-A#j>kEILad)7zwFpB4h##7U)z4YQhk(V@1f3$ew -B*^yt%V8cZH%XNO2`Ed7QWlT1&_BF!;@u^>W5CTbZVuqM|SCNIJBZ?JX#OH{QKnfbm{Po_3jaSrc+{W -4{>J5m<^0#$KVfp{UzKN8PLkVtBSb}}HiY_WE#A73_mIx#UW-+D?T-=S!j -lYPDjz8GeY@HT1PIeEXeSH<|-MK6}lba4Ou1|CcBWKNh1xDKi6Ij`t;BF-ERJxg%^&85Iro;r2QLo6e?AXsJp+OdkT%*-tV&&xg@!ktEH>-rh=S3?{CDabS+mHQ3Ft#VDTfPO1W8ag55Z0T3Ot|np!;P{ -5KV1FF_G)v^0r9ag)fK}=UN5ABG}3NuA+We3Lw#M5 -^NMtZ6X++elRH|{0i${Jx?0nPMlAQly4QEXPi%=za1u{nLf$3UiDfG&yH071(T-ipJ-CAvY5K;2vU-CvLz8$o>)K2FEtQchc#eyYZgJYF~O -w3Qe=brVHJp_0i02AFqCcgVY@dp}DbBt?DV=J^rYDb4cD(YXyQXZ>CI!*=FGA&s>5;X)iU4k-^S -Oi?Q1Kiqs`Y(E9Wt$&U_tR&*y_^=i9c5ZNBfd`P<9>?W%!)XW755`e?BM{#uU>cgNTK?N$^L*R5P{&I -XE)RP$^G=m^*~BTqu{@Bv>yMvdyrh6Z#QdbDB;m7LGRTXBQ)c0GwM%(6Yhyv;@D4NRKSI0m9p@igBL- -ia1K1zuA0`xyym&A?2p89{WNjeKp9Lg449Owfr@Sv$LcR;2P6PfI<(=M}@KOnlj+<^*MsmLRX`EsOJx -YtMl-dw%b%`HxR)_>`RUqC<0idR}!kWWen#% -Sf66ayByC8%&M5!l|a+ZS4+H^mJCj8`o_|5ZACCgbp>`-Uwl5A%iHc4zZhj=Re2}oqT2?N -(7AFvAKGYu#n8y%IH!;Rh=@O~DXE;W$d7FpW?sh0*wqJ8=vl$Pe4xADklj>G#~dAPRpfK3|d%$x+-v(_ -d)%=%6`9ag)z*?vLANGW-}Q2tQ(AhYksK%=N|}Kf7;)po1J`cWO!eNeEDf!`+<}3LWGqKXHm*Dmb5_5 -f&fB*t-{mz8ppz1td87+R?eY*666+9GR5;>_<(C_^`m>N5v|FKl2;#agW%C(;Gd~7Judx&(`4-W8|Ms -kq|<#K(mMHDc0qrD;IVoIp)IV`Tm{WzrDN7XSOe%1^7=K;^A3<|HL64o&`8E1plr>JXQ_-Cl2vgHSq5 -_L~Tw!WPkA!`0`X`md)KEH%&&)^^#%CJ5H{nB?i;B+jif0>7$qS))^9nOnskEl$j_Xd~1{pxOZ5FCv# -*4wYq6{=iDQDV5)m8)}>4{AdUUFR!(s#>rQ-YH}1+LnV0n7*(b{kCQZPy8N&~5CcMXv)EQ0nw=!Ow_A -fgL;749!cM>Y3B0YA`1veCQow#smOz4t5)Wvr%6u``Sx5KQOshFmh1%YWt+eSUeq4EktxityYG?Tk|! --e&B$5UQW?%vRH%ffZnYjXpX>Q2L{2^Cd+)}$G6Pt1(_N_FkKa(ZfHyE%k3Jv;wBzm -BKh&b8_uw=;Mt!>71bxI2)`LnW*Zj#8C%crOkPBLk<5<3e>h0S7XPiNf|;dn)+qU{HTs?zR -626HUlP6>gMB*oD`q#AUz+c~7*zM$HckAV8Ps!rr}oIt%WtoyM6LFl^z`WP(ub$IKKA*rN1yQuh!ALz -IVSyqe5~N?zU>uJ$h!^SGd0c)A>p|A}mlw*pIzCPX?@cx4E;M*v;fivISQgT -JF2mT{Tx14JmIyfsk4`9_So&P2eqGoAYRO7vsJOtVvs4#1)IJ$d08CGc9nJyYh&hWT)+r9Mk&ZyR;?n -SM!#|cWFzfR9u-YJpg~{FFZdH;85G7c?+to{$bwoBcUm>-9@q9TwPSeCM850-+Mq -;I0vYXUMktS-h|G4m=#rfou01p`&1gE$ZPt=e#!j0JMA|H=&67p3D}y$Te6r^%(gqE2tyb#kn1}>P1R -j86(?n!Vd+vKca@yt7a6$nRlEnVE&@U_J=znuX}Sw)=|wLTvMQ$`Y$^=q2`{6JW_Bf3GA$txU6QE?Ok -5P#5mqWvb_WJfgLrL2;mwl*8)t-k84H6yvmSiXTq_N7%W$3r?ymJrf-V#hs)C-%^@7`UtyrOx0=>G&O -ga>0-X*J=hAU;U?#jrE2sGj18=9ri{>xZecsS^Bk|WuLe;6CH=p%=d9)nst7Kf6_=IGH`@*nJ<7e0su&gSv6|ROm-@C!r5P!-M}iIr`%1^e4V=cXr`ter9B`e1s$}(0&u~2o -;l0hEoXQ%%VB&!)6gC6?n&1v<) -5ZBx$4B8mPYxU^|_F2P4l{{~pb)t-lo9+&zY8hw8M@n`H-7z(kc?Jm~A8JM>hZeK`geqoSC1y@a?oQN -Xyy!QVHUUq@QM+9~Wmu$uqYnf_olzdOtC>?Vf8I0WH1MUx~-LL^Dj=x#R;butJh2pB`qA17U?&zw(uD -4iZ0{@IbPkFX=je@q>HA$CANO&j>n*wd2au(yY-d2;0bchj^Vy2lAe#^pl@ab!BEuRXH+Kac6%FQtZ` -#SHkTd_aEMbhD2{S(qKRl86sWOn%Jekw?jn29z*5cyN!{209EYm44!t@aPHIFTaN=UpqrSaS=`bLQ#L -(2T~t>AZYndyLlfY4=1j&qn1}QrF%4i1Md5nVLoDp^1l@`@L%YKKDM*?tu^~L*!!ELi}`nwF6DnK>GI -c?e60BIG?JX~p54M7%HsljF*v5w#CjvOOShx$9TKA}P)@~te(`<3!M7(GhFge}B4+9fw;R3XRbSa?@W -wEREMyqFZe0t>#)Xs5I*ZN0at16t=Jf#qc0>~hP2yT+n(<@foj%SLBlT#lH3!jWS$q*}gLMJuli5I4d>;wZcSf#(ha>m1 -Q^$$gI_yu@fpsmz9rFGCQeWB{8GvpP!?z-7LiolU4!g$9V?9qV6lhD$T5TM_FqU<_&mV?kJP;M#Id76 -e;dyzhZQCuWlnqiHfy@dS{aaCk6r34XULeh`0FW-S7f8XmM}>;^J1G6Pj`)_jCj2BB0FN^{4k3zQhtb -o#EQcI-8>&7Aed!xceULqVye%i}kx@p$VXqwjT?$5&zxx-0veYQqQVMrJnH`3_Paro)pU)rcsQeig@!l}j!v-k250c;QEZ{T_Al-uoIj1} -j=IN`$s+&CCiZLA5MUy{ec?t3+_XIKS@TVJr5c5 -o@1PiB?$777{RCY&C9WOoBmp^@XqKqfpd@KeUxOvlQTr9cDLyVfg -9um5=pO2!^bCQqy18i{t%_PJyvGG+Rm95R$;*gvzNCJ&g>r5tnbnETohZYiT%5pR+tuZT#c*gHh|gD% -N6TK$0Dq*yO`%5>f|HI<#MrqZ*cFM;eySK11u&(Fhzx2f90CXyY9o{tUJupFwx{xcYwTgZ}F?!j6 -1o7QQ5ZkI60aNJ;N2k3Q;82N@Z4gy{H3Ult)hS_$X@JF)19jdwV@N5bfzkD4O~Y@@!(7nsgvz}IQ2B9 -O^wh}`4LtJwV^)jNMU!+_#D#U~4r7ja|mU&6oK;p=3*`@%u-l{>z$qq3qo2un_nZ;0bs03p~ml=uD^&bp$b!UkDgqSS*<=(LP -7OdKr^N;$-(xEMA{ncje8v2;Oi!AY@aDggQotwzQw$Twv*R0b6lb^$9q2Jc3zOT%3d-(9C(g@>#V$&+ -4cJsVFZN_65zpyc@s(5wZ55y|%@ZDe?JnzE(aLspt&IKND%LDh|^!t+?TOdy`>uajOra7C_>S|4sh;Q -^;~VBg}3lqc<4-G{nGmcGpj%;s1D4$*>h7U5>hYt!)ETgRWZyv-`l_yPS@*WTCQi&5CtQ<%Y -9?G`_Ewt&S@=F_fJsaPM>G$(ZE51t3z|%NEuM67irx)=uO!fNi9wsEGWm59%Vk}7XE=vE5Rp-JVSTpI -Ep^MYE!A%hTyoUu~tGg*AK$x=?ZDvK56mBFvT}!Nap<`~AZtpWS(mkqrX{bBTsR0Wyucvxn+&=W=Gw` -Cb%oTgj8o>Oq7DcwdHZyT~s%PnV86`ypejnYSYgcWdB(X27Xr${sA!j;6i3tU^nC^0=Hhsx;ifJ -GK#Ks+PeW}!7(0Z|H`~Odc4RwZJ%!jt4)ItmZN?L`McVy!!uR;ejOv|Zi!2whnH|-Z+7TCH2_OuuxE# -dIvdc?@(It5&t9I0CBuaNwY#LT0=p++T*wFAX4Ng8o14`VZD%-vLSH=qsZuU3HYWzprG?krRX{yEsF{ -nkNu)C75);>YS8yf#xkp&3FBjUMHDIqNyx}>HRu_>`)T8MX;e5gy`hb33O+gMbG>9dVYLI#(t52WesWkEU1GpAu4@IGrFPfS=`89;G@p@f)`)kW58&+t=E|tieZ<``n6 -M<0%IZts!pAoZsyB450Z?OMDMoSUVV4k$^(?8X`T1Uuq;ta(P=9Kpb?XH3n$3`~<^t}1YL|qNPf=*)v -%~*KpZ>(61GbItzPpKH0c^M{@d)4jWWgAf1HYkk1P-@4A%6JIE{!b1W_ -2@(P^k{}6;f=B{dkK;H-kn6WU!ijmd%|ET^ZUu%hv0*#}*=!65c!yp2F4u}}crC_$B&kQ{8-V*nO=z{2@9q!mRQA0XSsh>+dgiri&x*C&uWF2& -KU<3gbSqLQsWL+(dnXgh+Z8=Op#jT?}}E1>-)PDD0J0Qnb6Kn@Msd9LPKyo<#9##JtN`VmenzZvoJJn -hXdwDkd^*c(=-GoyySvV{KaEpVFxFRZ6Gu&=L@aLeF%D+7~65Yb{biu7Hd;RLl{CY7de -I-r*K2>!81t%(==UATdq0ah`u;QmVv0q@tpS?`rcV6euUMBE6uk&Xw6ZqNd{2jaqd7Hu002ma>4H_rTaZMzHB8VPzc|I)%{>Vy#^nx+wU_gdty{|%R6<2FU1J_ -%@mv+Psv9cTi;QYQz3Ihg5$JJIQU3f?GeVIIb-da+)*ejK7#LfFvl5hU3vVI52WL#W3LMh> -X2u+=(!)?9!y^Y((Y|HJ@d$Yf&N+1I98E#<_(~v*-nd*#~#Y%mh3yTCY0*L5b$_~u;U*&r}6=GQQkDd+#qujEu#k!5P2Mi -)MzHi*9QiApQ5LGJ0Vm_mqp_M!5xRfo~%m^=EoC%d~mljY^oXlR{Ax4G!Pdvnx)sEtv|!>`898TfP8ryv=~494wRlQtTMx}Lz-1`kQ;W -mVx2h8%n4#G=7hWFC_d^@bbZtQ`&M>$GtpLHUS*9QGLw3r^@a&GGWQcXm&?g&_qE$);o{b79~A5HAAX1~;69G0gLVj+mW<(>=Cv5Q28`??oCW*LW>U>ogS6Zk9arF^pqrCy$M0q^#`|=2Hf1UAqFN+; -^Wf7gqon<0kI3t3)F;ori?RrL8G8$fnw)&TzwzE$swt1rFYg_({w!PMhyb)xx`N`Z_@*TSwH+n3w=0# -6{AU(Kbv={|DIdtnvLZ4NF1E=R)S|M4fR>hV6sjH|&z5j3)dimq1~}A0VERlAAMR4R11}tuyD -yHf4y`Ph`oM|kjmN1^j^|Nh?AY$F6R!ZnI#U)TSQPBBGoXJ^$8tMoKf^>lah?kc*m5T{~XND|l5e@qlp>N9Q>e+~AZuT~tk -+diqtg{K83kOrmfDSzyEfCtPKplwMg9$5%NyXvA}G5e{!9#b{1g-gb)%&2pEJY3MHWxCt^6Y{u -f0NiXt!qh7k0-M4D*huWu4X)Gid6Z%8grH?#(A`bwKM6}+=k;1zB`-){)-+{`4}De>^`f)(xD{+%|16 -I&m6#hW>}5jnT3CL2kfSnmV=05PKZ#<0i1?OJHOgFt)-n)$ZWd>@;G;Eh&_?oM5wbS#nmQFN!M#_0w! -*R$5=;L+AtPT@_-IoftLe@UdNHX_aSPa=&kkKx;Uy6;qZdjp}D0jDW{Bhq|AQNVwK7B>_H{3mE}Ls7s -tFiJ2%?e}*USFrfYoyA{)V&FePi`&Zt{tdMF)yo8a^g2Iy{y(7kN1b3r&%C|^@*%|`+j_ZV7_DHVdk+ -^F%)%v!h_uxMEy$7hF5kG3c3ncq4Wb5*XelnsD|gGbEr2_!A5LLz28r`-(y6{(j4ofc)X0@@oL}0raX -i&;r}qv^?kLBya;nV#O!H^JPkH(ib>GBMvk@VU45vp3r+f_~1`WL%y=tl-8<+#%I+!1qZ$7e -57I!oWHR8a;qnXkzD+MUNi<+mhov`h1*?$UBi^E%zG13{EfA -M1$lUUjR!FM=CJz*efYTuP?UIz22%K7Qyvt++yn)4*GnNBG7~U=vw?f)$tRj&@PL14XA(pkNemEZSnI -%R^`9`u+VP;_P>3Rk4XKKXMGi)Q3NL-l!Pgif?*0rQ4%CE3WQ;3*TJI*f}{wP_-=%T!7Xya#1^O1PhK -wIzo>LC!10|V7;TeN*r!4{`)-6@Bk}qd!*^K~aO3r_;dKq@5wuCSto1gPZ|$Tw+DM97wyD!a@fJ7Z_( -z6^*_I;E-K#Kxw|I{2g9GXAUIRwE*gmy~ZDOM|u8CkXRmArBf@JGK!O7NW!uNhpzK;tK$Swo}|BL*k; -UR-=*3Cio#kyLp%A2GFDx+g;UzRm{D8Po6zhSA#lgsfpKx04KR=>5_g12!_p?BfBU1P-_ME*31rib;; -pk`?kZ+>tK9}@7{_r!@V>G+oix$VKP9{XfDIIr<@V>a$FRTJ($z&YAZb2J=!(HwKqq5HnH-(4B-qow` -s$^cEcZF2&Dr7wQGQER!8aAraCqZVQyO7)6~=cnoxO0;oXKLE91CJG?*k7~uE;z54+lb0Lj>#^MPv^H -O4Hks@kx0-PzlPhMGx93p5&v@mI39d?y+`0T>O1&X2tszs7?`-pD)Zcp -7~dS@tQ~8cOZ45G-hocUjrwlG{@(csxGS1lPP-(FbnlyX(y$M;PlbBuuDJ@eRM!Q#MX=q2Q&UESK2pq -l&!c_5hS)vctpafoyuAEo%NRhb`=XB5Yy56}GUiZCiZXkR-8f;vwX=(YMW2!n;Y-_gmH*JrUiS$_Ti%qa$=9N@w||6}5) -5e80nr_0n`xhC=b3NgZzwMbQt!7PPmyaC>s7qvu-Va*MIA%O|$kdfoPvK`RP>h#^}X&7iGUv`e^b!7)#_F_jg^tzmJSjL$dH(He%goq~N19{x4II^Bpm -(EJhgcv>k-dEM*P$(~-L*aD!#*@#v{nZHRt_hwF1{VR8MXLsqk}< --IRVU5+8aGxQSA3_jpH8Nysr=bX`l2uEwa)wb0$R+kGII>0?4;O=nZ&yLt~~6cyi=Av5s;`f -Rg~5DTSrq$#RG_-GI;o#J&-+pGoy}7^>w)2u~k)FJzX`#dOyfp@*RtC@V7`z3k$04U21rWQtN8`XxJ~ -PFFd_a-$!!e7r*o8@{zvm;qHeg_l_$!p<8Q@YFr3vvC_@JKZgcdAV0d@P!+TMhk%1_+fdP@nk -prz4K2jtHb6j-=ufKLn5BMU+<#|2N5B6HPll&b6HllRU0NDy)P#Uc5XDpz -A8m%pQJw%brm2TfnbYt24d|-B#GpeC$D~K++BDl65n|V`0R@t;WWivpY-0>?lf=>XMwUCjvV?Qb5*c*ZZEX)NXUm)0)zxjB} -Fx0wo%n$IGYFGRG7@7+HisD~NHihL>CqX=v3(_r#kEX6vS(|?1cQA!ayI&5u*3|cA4x!dKY$`Mm2p50PQr4PVy&1eC^~G) -=~n@H?(Jm_4o#};g)YeD?Mq8r>QsHoDPz!-VhXOn@j_Ewb)vx$*B>vg9b|=M`xO`X4ShIc8ns+_F}S} -EQx`(WAtqHdibzecM~Dd+a{|EVZkY|?$dk;oWLP69WT(`Vi3s(6D0p-XlAIL>56q>5W)v -sZ7pnDJs->hR%C#&^5*Txk9K(P3*h-rkk@Zr=I6NU&r5uZx>nGIe7A{_Y@Lc|A0f- -gZ5S+vHj#;Ku#MbmJ7OPoTS3!W%*8*L2F5o&3XyHdXR9gWt=?O|Ur$9#EFmr -V>I*-=;dSJZW>zK^m*oY2BCijp$<0-Ab3=A`Osnc`=ywLR>dV1NtFDnIe5-DZX -@6}UaE!O#`QygGH+O!k4&8qERLa7i@a%8sY%N;7lCgmg>Eo?%m;a`t_F3Sf*aa@wUEpF(9w?a}%KUb- -m(B*(Vi`J#ZI95+4TZ$JVh`9z7Zj?9_*M4BYvia{e;ZxgQ51%tyi54@?L`R0f*+`s1>7<~OVzm;Alpn -mcwEBL=^@j-D4_>=+~N9!ZvjFj*JEU0WoC!(%wCgckLY2O8b}I+$0HL2P~}XAc+IiX8ZJBVN}Bg`E9C -F+QJA_!SlGSt)vFWB&AWT_K8##CN__Ju{s6jM&!RPFiyX$Nvv4HtL&{81YLe!IEnlQs;o`i^obhTEF6 -}moFq!fEl8)l>1R*u>P_8D&_$hjRCi!x`gD17gp1GyP(4nl0)+7vE!zAZ{6`rqj4LDH{oWGeyNe<7_k -AVu4$6o3+|0q;XC&wDZdpK;-C~4=BS7ow1zd{f_(~s^oR#-##It8519Z0f=OntL}DqNd~8x9G5^7(Up -^3Lz{dV5L>a#XEovM!xlxB>Vo`OG&G?mYGkOS^1nv-~N-a~n8@u?NPO*t%`O;!z>rP!!a7Qain;YJNk -D&Iy&k6X&%M583dV$1N8Iq}#HR`Fw#skQB!G6^BfVfz3ABBW!HiNA|XqBW)6=#G6Ha#8y6H6rYqUN3oYv$^vUj2)`O#IMeh*IF??e7h4-geoq_<{9M%^+z8atBy!pJ%^StN*)V;9@S?KXTZw|P}^-Jibh@1Xrz%lv<~u!s>wNu=euLQLv0a3*)*~ -fkcpI8+${492V(ggxT_GV+)NMGf`Gu`WoP%tX^H&1^Aa+pbeW576!~z1^HT7kIU@nVOSK0dGpMX(Yni -W0ASsI3345MRym*Rp=IR*qgkD*hnKbS^6*)P=F%sgrlDqsZ0f=$&PyfV&TV7$!Cqf5%Zm+ukBKMFE^dC=~v#jzElT^Jc`}vs0SA`@ud}zUw1q8&Lz@MOM(gsfc0!BGGMfAK$&dHp$~`w|+>rMko^f3&wslkd|&; -$o0NdyxDc7J41wwH;A=0Nx^-~KiirQ#BLvkf!kjs-flqbJ%#mV>xnD$S{Jbmuz}m=U50HGm?-Zlj-B9_B{qfHh|YSCzbcB6+MO*;fZEM*XKN0=`|+@2u#b$N;o1(`IMvMnRk|k{8Mf0(E}6hj -WP5=~b^C05PZg8t11Yj(aAehKJZobGc*8k$=0AV-+SuE@6Ltg6FbRq3qfa3me??OQllxadd%0c1_rEI -X1fbN@4?aG0M0e4)*JW^v)trCExpgo%1evg6T)5!xy=G&1N3lk$fVG2VjFWdRFwJWKU$1-r-qOONf2D -w3t9~YaHpinjSh*_p01veOKsDHxynzH5?A(8RQ@!_U`;KLBY9nl9bhA-&ubyHNw-j4{JKe`r)yF+>9E -GKEB6;Vy9((nNCYNnzx%_m4E{tnGWrZl*#U(ugXz-XY6DKt+o{fLW&v&l`i=Mk^`?sLguo(#_n-p)3< -_PZpWU0SCC`X+*fR=!^SaL(BwvwaEsaasc^dY;kGn9b4>X}A`T4H)qS*BqPEO><|(#WsesqtsKZ1CdC -(J+b!MI5s5ldf;MU>FHC-N*#7Q?pE3+3_aVqd|8{5*G6L8dYBM4O>l@{+3)-OYoZ|BG(cHN#J{`M3o@CcdYayb%N?>deo1!pHBgDgRBRr&5+1UO8Ad1$>btOQ9- -A8>PB9>tS*HC=5{Xi+sy;|0}HdjSnYkjWm8BDSJ8SB8&)6<8{8f&Eu$E~%g<#r!U7B{ubgDNXm`1k&0 -Ste*VSma!UspLw)&{X82FSE%=8!Ln}P!vW~&)%(ePAucD%N|M)wdIxuzUcqPQAFrDG7}pOD|6o(y;Zm -qxmVgppwTlwR?tXJlPoRbhULH_%B4;vAZi~^})yO#%v+h9s-S98wd45!?SyqM -7=Eg+Y-V($;)T4OY!?+MMjm=l8%Tu`FxRP?la|KqIC#VFc+r*;`n^~Tp>QJK}FLEJvmGAd>>44@YL2I -tVCQi;$`^O97EnXJer8SdRb#8$s|?%(0n56=5F!h$Gb1-CefA{2t)6!|@bg%JCm7Pht -R@||8l?b_HIFE-x#iO}vepQIZ{_6K`f>(jTrBxr*&D^{b(UC$2PJBj%w1hq+TV;ca1cN6+;v?|@q9P% -GIcCCPDgHd}MaTDC$Srjn7F)}DjTy9(jPp8)aiBCG`r$)6xB{U0K%`=owYV$H(W2+NhcG8XGf7W6tmtXES03}q#dwrKN)vVaX{eRZ&6^ -nbD{;CsvZ-BoQ!>qnLk-y$toemLZVFJCyHcI;Zmr=v5U(K`WTw|lSIPpyjC$FvCDQ%d108^N6{u$)vmtt0Y4oneQTedh+=rXoHN;&~;(r3|LGI;sb|EC6&SCu$U1}(kDh$L3Zv8p0G)IXfylT9Hz*)5)*q -mn;2_C40cEct+s(U?WOsCfG$UtBf+C|ihQ|CMo(7Fw<@H;Wwdn>dvYs$qFnS?I3&J?M8Wr;XOEXxj3!yTI7(|1n_Q;+<9xr$njoD5(vc?OYfISNP-TjdA|=+& -E?>C?bRgXgM*y9^lK8@dyNr~dYJ)gKD}==?7;YgcQ3J)`vHf;&%0U`VT}ZOgg&l^c!7yFrV{p*s?LJ4 -S1dNK^T{hI4-nt;_0;*2FvjS!n(Z|c!gL}+*9WX{Q;*hybH|4{JKGo1o#O$DdhFSIv?JJE-#H-w=aru -feex1vD)f%8l5?M7c^s)uuSw3(bLGlJZg4i=@5kXWLZB!-m*jDR-PyF(D*=~CkUaJ_7V|ZiR*?KeWS^ -!Z!^-9pT4_{H-9u}|vq^u>BI{jVe^(DvjPVAp -2|XA(-(yiC{2M8{}k7@ndWHJqP#i{h)+$ec|l|kV^Afkz=fQ}2)lZR&XYWVv$!F5Pjq!4=%%PVGYu22 -6dv)NxpG&Z9<`%jTZ+A$P<+wN(V+cI&%rzi9Y`3lj3s<`+;T=jSSWG;$!c`FhTWnd3oFK@72 -^0#tl9pO!i2l}{E!kXS1ic{!qT^=um)_isXGtHCweU -LiX~kxe*vVMLAgKmjPbs=v87lH2PU^Z35}e@n$biqH5KI`?L99@cZ!CAydUW7ko-2%;@jcV1pAJ1elX -hfU!U~xKR@^X+r%#adt;^AS@y@Kc$s~A;J@2!IM!Ja)&DhQUDF@`pXC4j0|r6rkFU@CuRrn?S4E#Lzh -vnjW1szTZ|nIRB=>*Y+CGrtZ?Eg?SuS)%gcO3o-$R9HytN4vYIpd;H}@1U*#H!n?T8H7*kT*cKHA!iG -5lRrNbYCA#BLF=o0}lfhS+d?pZ7}l7HYPQSgj~6j<>6>kd9bU-H(KzP-LG#*qOa6T-|mC^X=q~O@?ms -S?eWMxJv9(S~;{`bOoFn!wudx5Z48v*#-AYud=Sn@IAnP$7TbP~rS#z@N8kLsS2z*V*p -_{jYC`TfjEEBviEf;n~W$-k5%ZRK3jCV=$xd^xs!h)tM`JSo=S_gmciGroO^nFJTJD08NX?P|s6&>464)(b80)i*lFNNUhV)x|SnJ)ln{ -U0=52RNot+l3?x(a;j5yNOR0$Ev@-Vc&bdfPeCae -eeAO{>dBmz4r_FCvVvI-Y?*1Z`kIR_A9eA;FDV#i(gOS3}dJk9n=taXy$>$PpvCG)9Mts5sZs;Iv-yV -o5j=;n1TAR^Pq>04q&-xk_@4ty_C5uj!5xt&FIe3H1B4;mbXnu+TNTbcer@5_l$~~-tZfLk)+&%$+-A4s4Lr{dkVSa}G2tSy-d)C7$S+-`xM){BIU&~zFeR$nAC(AWv#6aN|2- -~dGhbMgT-Z173zd@MOw&L4@bF+8Og7+S3^9CYzOpkz93jAk4$1jt`X?iNbUZpcqJrREe#hb-d@;?bd% -P`-NDqT&ytVmM#|br^nGQ!ELp$8hAW%h@S8#jls8IIdM$J5ya1~mWqFV2-X<>g?&Sa_|`5t^t3wtJIh -=UCA%Cm%sJjsn^IKMGU^IT{h_>o&$7LsY*M{wqlWfkPkb<+4id~{8Tg{7}q9e=hc>wE+%=hjVUm2wbP -d)mjRK$<5{AzTrQ0&SV^-9;^FDe5kldStH9;eD$4DlA|8U|r$q9s<@aU+`mEO)f2%s&5ZR8)~ZP_zbR -aNn0Mnj>#1vBYk-vPLUhIx~=&Alj=CAheh}WK)DXDr4dnbMcH0vr|C`Vh01a092yRSpGV^|3&|7el88 -K~ERP#^G3glHa1`{lpcc^5k^lb|_YaZCy -0E`O5e&l6eZGf;CbPT)Q|j>KD1U(-KD?n6B3zvATk@$$-zFE=TM<7%Cm_7t4&3n2zHf$ZljJD2DVSr))-c4 -04NejJBsspDpQgk%lDIy!zL0pA9EbKPzT);c -(UA0&S*pOP-{v#k3&Nf-E8*8O?X<>xKwew*5V2c<0Q$sbAg3H&VU{xIpf+WTV)3D6w*ZE!rKRqmqK_w -}HLd>mU*%64ojV)8ql5WytS+r-U2WdsRv`)M2P^vM%q)a+tXiVt0L$_X!Sk*+x9)O>k!$GBO+#R-1bA -uRMKf1`;(i{`B0=|d2Gq3^+bD|VHolKIY4Id@}}bTl{7UTUd&>BQZ0+r7)!Tp%If_w)~?>Z --2KnNsm+BVx`dAa7S^xSDDz(~24?#JgU4wO18+Nr%=~HoabrX?_Q%P -t!$OXfvlW+@T0)76&2wp{`%8X5hcOiNq8Nl{_st9dGn?%_;!wy3Aw)Bq6?aaoMyIOMz)%QaTZ^s7ya^yAw6ox8*w~7+vYLJ(*(|>)R51x`#}{A1K8=ciIb<%gS9Aj-iz6!jzP7Qz(mM&(Fq}<*_*%Bn7SW=1 -XL9@?e1EHL{O?}mi?;D!F7TCI9Y|mp29w{nmq52I{xuD(0Tol_Lo)qG-j}zd?565jgjwp$&NBDZm>hzqgr5=7p)M`=WH}rhI*B5@27D8Ral}36 -CBEO`I;p0k+0msm|c`~E9gJnNwOhGVCABDr=OySr01{M(O->+=#41_34$0H6u*qnXd2GcpbNvn7O#5D -|0oTZ4*LWJ;A1`B=8s#A$KS3NH0OX$DUOWw`sfQ%Zu5DOpmZ}Hs42nnl;wE+CXIwIuMv@c=yJ*K_{)T -2k!OlyvuC_kY(I80fUXP28xyqEY&z`13lhJQiyQgn*}xV|UxfY`wb1QwF^ZIKX*JCVeRZpcwwM^IIP! -7$Y&QXUV+^)L#HQoB_CSgT=Ke4T-aLLe@;*|naT!xA;sbL3yz@gm$wMzohS}`uUC?%)&rPCRN -e1CM_xZuO{#J{HK$po`=nE$2-_ -odMR(5x?x&8xeTudJw=%QE$H9G{O|+z* -S<=(;Ts2a)!l9tyr#3w6Tr`B_*)YvWe&_iJGfxyMhNF8vIM4M*22{o}xD7i$==kZ3FEDzy6n=Cgly#r -Yut=s8BeP@*SFZ7lG&mW!*&d2D?l1((tdI!c?cz=!k1rPv=!bg;g(f7AW^?NvSSvOZ!@|ADW19pSFAV -HKFE7EO`k~ugB~&>+XW)!U#ZrJVxzJG;lcjIHoY(9MPA1x7dkEX*&ELq*HTk+Pq!T&W=>D?bv|<}!#wyBubTnB-bT4s^%dw# -s2GvStmpE@stUe>?%WidLr1oGJ~dB|3^=~9ixElk0^yl>u|!_K`?oj|3Uxj;p+aH!DPX1^Rt~A0U08L -Z630JZXH%!tnLLC5P2XwuEqZVr3N%`%Eu5Q>-@KnPM8_t=W;YIBOV68yolY*%5SIiyA5+?MCn-P=zgO+M=Bxa1vX89uSU^BnqJ@3_}1hxV?0>i&cLWy=~uy`%vp -^XB&!l0Pg2b0KspC8-()xnLcyB5t*`dvH+<{O$?t9fFd8&7v6hDW=u8@UzO5xHH7%68n9Zs0K5L09%8 -5(>U6!hz)0sKED%JSVmyKG_99aBL&RY%9e71w-2oM7Hlkpwaf6d`FZk{@dKfpnYQi+PNphJ_NrW#D8f -qJZyOG@ux?7+VO?kI@2{s#r{}S;wxsS@3tS-GU{9OWOILdEwEQj^1#{&-JxE~=u%_p4_S@SS&w_XTL4 -x=L2+Y!h?@!P_peP(E#&yS#s(jCcm8q0mkZjTY!`vQ`YxK~pHo=+K83}<^-TqCQ9fBOIv>YYjJF7pCW -3F^>nSW<)~wG3-Cky=zU}F?4SSeo%acrhl-KonJ?>gIBLXqvjiLBa$Zp?La{_y}ztrRFJ*kfqzFhFbh -7tIaM4YmpC$yL!PH25&K@2k)0!aM*rVf$cCtWGM2FfrF0Ts(w!=vrU2x&&ibuE{yV24j}5s9bJUuF9h -a3G#vUg8_Lj1~q}a-|*wXN5U}FAXc!nvYlTezLJNdY(g>kRXCfz$-HxG9ibU@>U}9*}i7i!3Q7#GLOW -gg;^t%$l{1n#4&~jq`wT~sI9Q&AgQJs7^*LsqkSglK**g}`a*~U-}(9t7>SgvnihtnAk80eI|`ZVUeX -z&?E9#At|@68HFh9=MDJ#s99vt9`!1jg#*`cuI|CHuszL!%;Y~yGQs=TY&tG4jrlwD$d4l@Gw55{41@ -urmQ23I|Nv|^FRfz6m9A~NnG}sDmIP`d-WK5td2L2#mK>Xw^^yxDJ;}iKJ_&d!N_#XK}H;=O3=o$Jv_ -XlTagaotP(Xg5d+=O2gbqW}U7Fqr6GQcNV2mNDTVxG|sXf`*2Xyy+@=udRB1Xn^`R6XvBE0B1lpGPPn -sN?}VW)a#Va1xdwqdvG)Dk~JMujkg#oX{x_zQhmLz;KZwhn}i*nq&+p>^055FM;fE2UVfzN|&zl@sZ7 -E1m*dFxVKmKW~HEKc9|=tdN_#f@rZ=e>2klLodJX|_iU1It3oLefZ_95Vm5qs2J`|CYRI7Wsk_Sfvns -P0dSWp>@M9^3S(d$&(Uhbdh|WUoB-jc>DJP7YnmmaTyw;lMCykqFu;@WK -S#z%L$+-kQP~H#rhqNGDpSB`cdh5cgT -~ytt=nr{`qcv+Sb(t(#TW*K!|EB-@+ezbpGm(Y&qIUzZuXi8vE9~q{R{8PTp6(?XJp^EU)N8e+bywO_iE -E{&9?a%5Z#NRaON{z#d_+XJhUHyjMupQP@TE;nd2|Msg3tiQXH`;Bvv%T -IsV-M(uQILyK2@k(L7u>D6F*lRvO9({DtaUi^4j~Gd>vY?HojlQ=M>SOMggY?LBL&Yr_+W{$ePaf6h{ -I}&e=QaWQVlLY9$$R+Y;Kwmd_||)v(f*RQRF0ueK+*`$eFc1tuQkn416ijUdY|b7x=SVk-Od6UvZ)PSNSKAn^U#PmP< -I#W`>_sIDsPXg);+iNFYLh;eWLo|HYNZm=apyM)nZ7*pvE%i8!tL!6gdpwe`G{ykN?)4gErt|69r`|JxTsWnR& -bG0kvB5wR;LFg$vrOw#S!Ucd)YoE(6R^OUiTNh!fG^(ZnVZn6E?+;BB>9md3GjDG5_1%uwJM(c({lFK -$gfrY@tR`zGR@xsjKD|ldGOCDO})d*8-npjduAAY?{5gLfrn?)No#&I+aumwngkP35h5K`Mjv!IZ8GN -!pG`*#1&_%+$BZLyL`U)akU805jz&S7rYGjPAnXqOzXH~Oe|MJM_Gh`9R64f4(t(wE<&sp -T1CjUHagHKJ>o%ZaK-HC=YDXIY$q6vVhkaLunxc0Fei=!+tJ9$trGu7rD$jYHC@m3_AfEFY$dz0LLmK -OA*kevhHH*adKUT^{Umbp1>^UzKAiCQ4ooK_QL$GED!V_q=VIkIfff=Fh_2Tlu!-B)2V>Y`Fj7WXZL? -*Y~2#`aK(MCEe#!e{=8tfAKzFw)cO0kFR$7S6E6>oAAb_C615?NNsZr1dguR6N6xk!m01~f`p{~OA-x@*mL`S+P>Tc+9vK#^?AS8=|nW^6{%Z0#;mo9`XrG}&N-&UsWCdn??ut$%>}n{+<=rs;Btq35(vEUi?R$ie%x5UKNShY -pwX&=;AF~G6c44s4Q#B`e+j0_Dy*xwi)iH4Myja#3S&zwv2a`ZOI#C;Zv`3YiBx*2c|GJNAoVJHm@fH -+#*lAavDd&8dofU;kfYSTC8!82KB9Pzy*`RX_&r3S4|e_Z>nR{;r>zuU$qeM*5tmXQ81nvH@xWgxS`g -PFnxr+R=6|9oGQLu-;r4O;=c3i`xi&3t5X-rTa8eA^#JrLh9 -gGC^lSZfD`TXdL1vJm>lKmo~5R+)_y}0qKmQ!@9r5&&FG$LnIB{LF%V-|r*JsZHkI)v+qVFCC~@u7A6 -VLGN*ro5_36t|+yyx4MdW#8!hCy=`yn}5PHq?3+V*R)&scUN@P3oU8RE(Bqp@L~6VkX^zaxsWq?AOJlA~F`^nY -Kv)YPx4duM>itl8@A!nZ;ErOROJYLzf2e!2B}dVvOZ1+nsC!QTVji|xUjPy_NQ@HPF$xfa5FkKLfA|y -`S(#Z;e^u??efqRnWtfUUOd)-~++j$} -aZnT($^0Q37qg)G(kfxb~Ovq8?YdLAqx$VX$bt&1LvCl4DeNZc)TVI-Cl?lX)@nj3L#w(sGYs|m6@Wv -8Bu(7SCWSKA)7Jscd~ZZ -|HO6<>h)JnHo)EjD;>HffO&2A2=GD(qJdp$FnHxvZg?z$&Zhw+s_xAH!qWMXB?wT>IUl>%?QgNN!Pi7 -((0^hT6*tJH=1=$X<_ro8ghI8F1HW*E~C75IXHUN-5M`GX505~qV&j(3}Q6yH+Kh}tCu97-C*1n^n0~ -Xy_o12j26=HTwbk-2b3en$YLMO_;z8keC!TAsrX9f7uj)F#Squ2?d-PkjNAIj4Kmni+)^sy{$PblF0| -CP-s#8EH6Io}4E-#vA=Q*#-rRexy$wBd+D%pSBwt1=3+)iDL~!raoqXHV?!ndk;=lXgQ={Awfe0PG#Be6SR@`SP7Smb;2 -amQAPtHqhriloRHn~tu+`dSu~+(%r|UtZ5SZBF!y3x@j;m(c!kCZDBq`rB|)&gwdA%j7pMiPEguUPNv -Bo1G0=^hk=|ly(@)aRLZ#cvtoTHbYQygMk0!odD?l*PlYo|5MlS2}A$Q^Zy7@k+0Avs8hV{tT%AEp|l -NyCNbzZ0L#L6mw+MO{EZm2B$BU96Ogw+IYNQDOhmnji!5LdZU>IvvkeLL*3^CPkiAE3x5J~@w)3CWW! -`=@ECxnr5o|jzAeqDj=y!mrTnrpK`8ZPoCMN)UG6(u9Q!|HYQTkv9#3j2H`e%S_NP-_Po6YI&=cRK_RmaE@~A -4=3Q$d8>~a$U6S@gfgDP|!8XJ7zENJhZ!-`ZsCAV$<;4W9D3vjP-&XzpJfI&R$iMSEpdTN|zw%J^DOQ6bTePbwqOcve?1`5X@rLdyg?snSROk;NBHY&GDk70Tx1JZ+-?Q>0McIidv>p#-R_E~$93@*S<>XplVnhGbPCZwaN)io~z5GO4(84o;zl<sSZ9|NO_Nl-D-*2pi1O?knrFo$W<3P>Qt%LMjF(Xmx3ChQp-m&)m0WV*N%4QC#a2zKVFJqL@nL-dk$8NC0 -Em~m2_r<=c!e~t(e%|#FJLmc}TxliR@+E7;P)5{Ycjj25G2o1w2UO_n1QEV~ve4h<%>3A&N^HMfjY@r -9{1i&Y?Hy8|GWg-nKIZdZDS0+p+E*9&3bo>RG*UPSaD=m+E8t}(} ->$i?3P^}?VjBTvHDJBJuiM$S4*ohEsKr_G1o&8MDC7g&MIE=6_!_aYkSprGowt^*aM1iJ9tfD%!fiUz -YWRx@x;1{G98b&SzR#LI`P~GL|H$imWNeIax;Y48>MI3j`gS?wiG>BZG*`XR58*Z4SvgD41zrGuYh0cV^bA%~H|u>-?5~L -=BcpUU9sFm9iI@GTX@p4bY5U$HwFT7(j_>O*omIcz^0mE$RVwQ|5}WMdVW34dt0<0cBiIh7Ti~LyP$@ -ehHqd3Y{65X0_|+Yr21=CHblk6S)!*P!S`=2i7TkU(O0Jpp*<@*Y>^bq&TfDf$lqZAC}#PWu$Ili2ri9+NniHu*2unXzv%S -sw@rh?#|Z$Q8%CxWfH&g^pj_(DU@h@6e?z_<7lAwfXIf=yx(t>KN9W`U&cw@?j47R -N6phYy5E8-TShCylUv5T=u&nEBsu1g$&P{tiMQ~Kg4addfSDNo6`sX4z^+&4 -Oun`QBT)J->5?xn2V<=t>>%Kn0j6@y|7I@cJr<*CSIEi={kkCq;(1*TVIzeHLRB3&wH!u!RQ@Sd&#QN -~AJzHUoN&QsIR9W%;d&H#thUrGjP*p}aRUp)HS41r8q^3cZPI)ust4h8Lv}n -W3~S$~cf$qN(k%VIF0E?1ZzR*?(W`%dw>oisR+2&DDO3zcsxF7{9Nv(xaR1zsi06<9B}-{QBXY -Kk+JQjA1AiV990#d37AZQR -@mnXKRHBR3w4Hg)eA#YM8j)F1*n!aZxDZr~t-USdgeM`!-?*lV`vW~M9SopJd%>#SusDfS@4#L7W0kH -^l*|7IyXY}S2EZ`NwIL!@Q^-s>)!g1wK6I?*d=mY -*ris^y$t0hT%R06n@@#uK3dz0$+DSNIoMBSi_JlP)yL4dR{%uuhPpqQv9^g*|_>lFWe%!ockF)_J`W_ -ZpkN^Gk^^DA6Nrvc&ExIMBL}Eh9n;TdQG5$rjwCnh?}xZr(<~Ok -+JKJ(1n#qx=TbfmbA;dM9=~kimrOgMr+8v&UqPac!vJ02UyEkF8p7Ls$pA>ReuJMaB_RUqJONW5*=0b -T8NA6skOqs^JRvvsM9ydmd31dRM`cf%8GLGF7*_UQEo3mn%C{u9^+`$u`-m49)pCOmgjt6gqU-Pru(L -Sy}oi#%qSC?1ny)2mA+FS|WxY7J6q>E;E&`qt{!|Ik7*m%Fn5Kp>DfXjnEsn0W6@P?HtEOlA=X)>qPt{_)Wr&U%_YOrh%~I@s)s0zI%MHwBr2Nt+(O4 -%oQi77@{86Uu0C3u>xmEmpHf~9-c3Wnt1DgFZ&zryw=ujp{ii`?NQCBI4+V8K8wBhq?jdiRuE)IiMB-_d~hI=BB>1A-jIw#n$YCOPqS- -M%y{e-GHHiQ{iHV(2StAm3(#K3>;e+*^BH4y5LGRo9#HkVN#N+$UJk>&V&pY#r**6c?|9*t$xX!X&aR -Fs(a*hLAn??8Q|)7rAKd>-O=Q_>hVps+hr28^DL_DZWvmWI;HeZHd?@GE(Ft?ed(bj;5F0X=S5H-AVV -sD5u>8g_~zr^2g^6yX^X#Gn9j!9IKtCL8dqc*lFfh-yx?hUoE@qtMulv*slT(Q)hoZQ@Z}d7d@BVY7( -B6tSGJdx{b1M)hrS^+T2SaRO6(=(omlRIVSE!H^8W#C3YQ9GI1We(MftoC7qh_3*iy=vc7!Eo0RD-~DRVKfne}!fy&_`1W7iUq4g?W -K#6!e%lTA_7J#kQDOH=E~eA1o|&#TH?HQTC((nG@SNnMlO_BlCSFSbowdYlfCig?gh)VUrGuX*7}I)$ -=r(Oj-cu(Z3(CWxJ;5(j>OYkzO!&ump2_;#^aHpb8$TovS{8&Iyjkfky{GD%4OCc)|WKgBJk{SR9(0F -j8>5>rkIfBW3_BbxflJwK7tufO_lIyUeM&1yrK*PzS0N*($o}x; -|ml>UZL-X&IUk0f=PoBU6TH@k(3SMkniyoz}~??(z)#p%z3c4+&czFQZ}qZz6GjS7HF1kIqUWlL;eIh -fn@wmuHBH`hO&@133$VC6b-W44IH5u$Y%j-2?NtA$h+@Dp@0Gf+-PYqShFF)_;j@a^Nub!>{ukKsVv=k%$03D_2PF4fS+i-Mj7~H2818Wu7g|Gp^ -oERH1Xp|FF}WO*$?dFlxKmU)>9(G~! -!NV5+FU4aUqov^ixrb1`B1$`#G?DbR8aFMhi&!PEAfkaL1$S^#*_buM~nCLtD85A)*-E}@a^<8xVt2s -Tl`5sajUnKEQvx=1)c5OeF@B|SVU;#_m}9fC5?wYMdHaNn*zPU{P<)xkvC50GbE+g3xC`!PngwcO}9V -JK@I5JvrqCF4k4T-D%0~au71H|RK|^Si7rp0oL?0o+<*Qreo|d^b+)nQg>?a=};3tZ!c#rHAp8NW53%88b -#M3fsAWj-5}k>A=0JufsRX_Fy^xT*w$kTTW3Y~TE36^EK%tMKTP}f++Bdrg#9AW#}Zp%K}KX}p_#xAj{d!Qp^l+eh7G0&EfjgZ$XDk;H -|O>{Z6UfWAxTpzQm#$pteNQ{0Wple{v*WiyO1L$wp3{EM#cI?;LiS~;_os3-8 -F<(;uo>@eAxrEA`KiwBbFWQD7~kOmp4Lw+?yA=VQ�}n8&6+ic(-ex^E&r=4EKCrwVbP@8_UWu|%z4 -5$|s&GxQG%?Tf)~3V<%LTxgchTq62@q;5yX&LNssUUhK@MyB3SMOAc^o4`dyBJ}JwubMLThim0e%ILa -&TqjAun*C9y&9Wr)M8ix-z3Y?w^mq+8DBiO;o`g=aXG#eML%siI8a4&-(EY8Pf@ -aJpgbhoggHjqa|^lDffA1l@)VV08I}=$5DxN%6r<3*yr$<77J0^9mWe+cV>k_HWvT8E)zP-=MJD4uZ_ -&_G@Os3XT_18z9i7E)BzCPATSW6n#L3j>73O9UZq60<8u06?-yw8dR%3^zOewHwHCI?!;oEoMaXz~~F -0yN0?wME6pf@QsgSOkbJ(6yV4V*o#P8?YtVsGVkH_6GnG{ZrAdNgM?WYf=6B{|lO@1NDfO(wB7(KGYl -F@MDBg1H^-^tdfcb9aO6{-8YAII`{LjEY8jCTx;1_P7nhdc}CsQbnygWuKp_QUs2Hf)vA|6h) -E@Nij47hMZ6gM`;X45RxEq2B)?qiuh7u6n_(2@_$7cs0HO2pvwRkYf!@he$x~KDAsubrh+o+Yl+eHE# -Aq3!ae|7*}M4vmf1pbQ2eJdAm5e0tqhX{RIY%WR`xIS&w30@2FNbi`vQm@Xo)dzXtlwq4W>nJebEF5r -`a~*Z)Fygdi(mkg-N$_0OgpsyLA%3Ewd?bgCC?G>aRzdtT(V|J^_}?H*5YPn_b0qB=O{l@^)(KDvZ}J -bX}lr(Img90-XRN`&I>#tTS3<4Lce3Z5BUEPYch-XOV&cS@{RM>gD$;zqgtdH-B@b2Fh5(dtCSRecOC -=4?6T~W$btIN(VY0V{o}Y+X)gmW%ue9XwSx~ -4%$-FBUV-7{bFCtD=)mL2(+O3glLULL9M`WaG0PKxD+b=9>7j&_5+G$(I=m2pjzkA6i=R -Leyc6HVnM+*~wKVV@%k@{dzBlQQX;uN{(IXZ?bV>Gs)2iR+Ce>BIR<(Fu`Um`as2z1YK#B<+VDVeZUr -U!pq1;$m`X+8uTGg!NTwkD4Q5_DSn!C0>#w^N%7RY7fvGdj5(1`5BP$dNY1pEqbG@3SaePccH&G -9w)=1^P=XcU>zE$3YteSLTAMuj4dj;~ylOYII)d-i9Lb)Vf%5JWB>cgX=)O`p7)~lHu9_*#4V+G}_YT -Px$6B(n_LT7J)O!&HYDEuBooDe@RD`T8j+MjUz)O!~>%MO&k^Lor@o~3(aDg7cowR5e;fyQ_&@_a(wZ -ptmy9}VAStnnn<1yeoJ+sToI2)p=1l8USKveCFs!}+QvYQx=Ms}YJFrC8L(gGggg;MK4#xY%nKwd|rg -y<98rrcnfD5Z*lUKGVh6qMG{@3yWEAJ1fmDnZ)hm+kJ%|{l(7X&T6}Gkcgfr>^mcmIAWl#nuw(x>bB*S7Pf^6YtdyQlGml-<<6C~(1CmBeriMP`&@B=|W_kv9RMJH -gq273n`>g#|)Mj)Zia?oW?>2GvQ^4*}I-@jsFpfd(K7$oo)NpesGAmS}7{7FDTq?v!f%=3Rfpsar$P(a)Gr)~e~fKvUFo&|PpS1fUEiw0dUwcTW^wqoPevyY5>Mx>q2DOHMu -2k9ZJ*BQkO{;4QiI;u-?VV(A8cGM`NB5raVLT6-GxyP$y-f&~Xl@OFRqu~aXisTYoPJ6eOz4t(5TnV$E^(V|Yg>IP -3%gP3-LP3wF=RBpv!HWHLG%N^=SI}xkBp@01BwOo6kvD*We*@wxlqJKLuCt9NfB4i&B=3U%r$L9r%F# -5icuxgjlvg%WKvn^@QG}i@6HfRRFF=#q4Cs@AbQ5D*DnHFcb$)MLxDE$k{sKNcI)2{d;tV!D;rf2g5j -56_)AK@h;=!QEiw+0sJM<3~Y -7dc4yvZRya#ACmAsjz|?Z>?dJeky01QbcwL70+K^`90X;t5(Db=MXDakvba^6kDWReT1`{RZ8%Kta`C -~L9{U<7I`6KsdmgExyQT3=g>KaNtm_aXX|*GFCdhvTx*p$`Gx%4J|^9LjXOTvp$P@S7jNwlGN+G77mT -%;>~!O5r&l_`AGkTSTRsnS4}A5x!rR5xC^+-QKlB0OyM=d76bPBnDQ}n^QeynsshgGL$l5++sgT2XHv -Q%7F!a^%Fn5)HnH_fK{fRe>lO>)xRoS_x+Ur@pIGPRQ{Q-5(-xKS;FS!l25FIR(sDU?ZSWri}<2YKl? -C(eB+*cT+E6Z9?&9al(*Y0dCnRb@X2{RKGVhx2E#et4SQ^d6tCkj|~v$3ZfjWD*mBx^Ex0R&%Lq*IOI -l4?d8_*fWjw~9Bo;h5FqQtpKy>jWi#3`1;(y+943j`NgTWBu-* -=R>Odf#?hoAc#UyR$hnK};i=lHp1iBh4tXHfxrXRzF^o1t+U0R~P~^I#4^~!^^Kv_Ns6I5!&7Uv*O*h -d~X}3eW%Xo?D8vJ$8uywsQP&_vE>OK_9Hm@uy7-B@NvEBJnof70->9OoGK_3(74y0)%@1G-@4RX -X0Aom@lH!)8RCKd$j1Peq1cYq@WB-Ov@X*E>in-OkH{R*#8=bLT^Rj;vVs7+^Lz@-I(>q1>BKxvY{|- -I|wMcYLVRy^&2a*IneLHv~Vg>jqAU1%s6?6k1k$kWVb3SibXvg2JJeCfLDgo*{K`nEGl-zOgs>iIBP$ -Yjy0x5mY7QMp~}&GMc-aY)W}(DH2t`&IkHzQQFPYG+CzBjmL+{D5!o^=ddY;&eu!zcHC) -caDe5fdQ*)gcp&u7CJ7m0E5E**hUPzasEFAEOvd5uqtJ;h^mwi?9eyQ5Z|m8~DMubb3p!5q3+mneEpki+@S_01mkXz%U!8$Y -}snQs&LpBLNNqsrI`M0nFaeExY}CCM5+hCrtrl!IN(`aNB<*1I9!s0=)HO#s$m3QNgSV4q77ApJ|1>= -U>3^bN<%E%F(wM$6NL~!vTnj8NlGk-g*C)I^!sqb_Pmd@!K~f0@OZ~1OqAC^&>donZzF;2;b1qU*RBr -1o7XWe!@ZM#krVGushCEgk@!xUQer2{YvWN$gdpT{x${z5D5AK1HJw!2Ks|O_dmrz00Kd84D{l+os6F -dYM+FyEtQiwMB#X$x!jqM&l%2a;43eovBcEcw(6AFdYCFlA9HF=E^}HDh$L}^C#gVALy}2CW09>m8J3_}Lc&eErB>Hh{cImg`5?yf1t0I6Cyto`1*@&dCNt-$- -yQ#nq{A;?c;as^9>m{RJczFr50)kwgxMAkoTUl$ZMIF};C~sK-U0^35DfjL5+BePdb4O#@-2B!gM>06C>+lP45cayK%o;d|H6Bq)tJyQx~H`{lZdiz2m2_O@1dD*tQfEO_+j-l_2i`u@=f3|pRD+HM -WLKyKDI06d;0;p#|iSMlph%=yU2XZGC{3PCa;FfnK@1eQ;?Ys>LWEhxc1MA{j?ti-x`Yqz{SBnP&7LQ -B$^Wwos^x-hyE!f{aU&FBS4}Sma;_>s0TD(LTrh|*j -y}1s&JHaWScUlnSDK7vW~qc4d3@>tf+-}vEz7`U9C7fCdBc`UI@EnaQ+4v)LvHwcAmPj(0U$)6=@2t@ -nKtI$hd4~`Poeu?a!-J(3hR6U#nE+X;@zOIv!pH)<%*4oDzlzM;|`(&>vObubd%yg0b&)C70N|kVfRl -26eeRQzQ!C6y)*3LVsRgm8R7*B;1lCvrogrlNp=P>fG{vGCkyVzA6iMyrbNKpqG8`9qzJvK18Wvo9mq -@lX9{RXPnLus;zp2jq0H`UXL`tJxiAvtviNlXXe2DgVo6Oc*W(k-?XTieshf997q36>uz8b0dg+4Xef -XCAKSY0n3{KEz?~kqa?O6@%eriatp4qp{pMyjpbAr!x8Jx&G>qk=iGI_-Tc+*3pJzCF|MTM{-;ca*OP -7&7ZrKZ*nNw)tCvCV#7*#&40B^li9?zBT2))^*#E( -uRdLOvb)zNXc95CIh;r065`q9LVHga3doCzS<790lO^wSMp~yE8;DzpWpzBeF)*F?+FUxEgZMut!;TH -qPG-H`nKDB*R_}!)Ydjgmqnl_g0bKA6FFcP^j4jWosUONgT!R -Z3GEm3B;q~;QqVdH8MkSu_sj7bvb;ChsNc(i`SZzHxqbQ&Of77IYYzH90qVAr-S$!&cduogYIFN@R3n -2AEpTt|;w|(nYdzLqBmoJW~!@KVG&qHQ#JC9!ud_z$61elboq=9gLXzF$4Y%p%+#mfLxmm+X3Fvv}U- -SHN4#KAAjbL=LEUH|9EeG2DQ-_eZlc<-dXw2zlyp2b6o-4&hYbrvD+2e?$dq$jX@*q9|*rbaBnuKo`x -d!80x%&7eHr}%s2$2+Z{PtwM$vG9}4JFGiv9Uw`a%8Zg(OYix`QOp_Ga&*A4LM{RuT;o2!azodqT;zn -;5TtHh;_iSdYOwsw5PhZiHK`-H|y_60lr>&g2pr68zcJ|GjHlle)Z9K2j!j};k{%gAx8y9E}LJut>~H -%Tw%30DV-Ep|;?uHvPYA329*s;*)eD2Nhk63_#{Qg80f+SBT@D*;AN?GPUO!GrecJ -Eu6WQ=g0f14tG%LC@&q3MB#zeJwIUhcuI5$p_k>zo*iQ#r}K?vuR5LemUVEtI-XoK6*yB5rHmtTh*M3 -8$mlzqEhq8k;o6_(WkYu-mt8EKOoZ{p8HM+c(Yr1(Ua#Ftz>xDTErmCAL-cPBgUn+-XW#c}>NF#;|EQ -m+#tl*ZjR{0#Ca!5IyNCGxC^u8vwSsY!)e28?8CsR3w)e%+wI$AKXO>UN-B+Zyf9!+RqZ5d!4y!-iZ*bP5tsOR2 -tG{ygxES7vxhuqlIU`k1+6}DX^nNZTwM2K~oTx+hqCG>%p}NCQ;}hXpzw??0BiN@4Ki`@1(krJf`v?3 -6X}{$>Z#g;6bLHP`^3!@o@;FoaZGYT;{BVfhz+OjNaf9E4y1V~X_4Pk;z)y7W^}&9G0W5-S=^0 -Cr2u&a;hM-?N+-%uUk^nssU{Oi{4k`Jbl_YVH#{hCF19BIF`4^glHqf6aqJ!BS1~3en -wr3bJ;5FIHzmsjg}rG%{HU?I!*I^m^21Q#n5;s1yiq)wOlwplu!%`C&|VzLY^gw(;v#D6U%&O5A;bt+N4Bb%YK}hW_9YhHEk -RT=F^dGue)W)A9vdn{M)Nwq45B+x2i0CtviQ< -sP&>VpC?3eqIrsjS+pvajv4bL(8a>KF^)Nn5?g5)iZO3x#PBvGVj%Md>yPjTxK>2F9;L+^@TiQb(Phe -M>4)c@e5mY1;O5Dz7zvd$;1?I`fGa=pdX1XKUD#ay1M=0%-2*#-Q{)KS8TmFjS>~L{Ud0A{<47i1+fL -l+-$$L9Y4Q9cV_9%ddKhAA$$ec9C+v9kfD_)wSO0rJZZ4af{i@Sq)}5w|FN@-G417eo=`!UH?uFQqkZ^3ARKZc3)gDJSrZXu#nk -`OJp?>F0nsv@6Ce8;h3C&hVQf=H2tX$q-$sw4Z=wsbJ2Te@`$Od(qHF#x)iJiqnx+mwkUZ)7HPP&}Jr -+Iz8GKtiuVy+q -I30PY=_1r7F1rs}WSG%_1=*BEeAi`E_5#hyX=^1C6NlF;&*i>ohTzpG(&M>16vtF8gvVMx_2wbNIB -tj4p?oO;mp9RVf6$Sq>p1iB=pmQ6!^sWN6J>22eQG+}1;TuX#&)LuI=NBA-Bquz*Y%l}O(2Wy)%Wp3O -rLzYI32SsGNlxHVQ!DiVRkug#NDaeYb9=-XBm$Xrno0h27ui0Ulw`{fa -jL)b#;|9`Ne_Cv%^u8WQvR%KyuINkDGvFY_XuzX -5bJM<3u9O4qrh&z-wd>Vb@y}TJD834c=rYls{{7wk@&Vqbd%M1ZQCk=hwgunYCil>;lCPu4YVx8F>nt -X4E?xWexCKuX9O_q`x4bXSAK$G3H|*N711PtEOGqSJtnT9JbS*^dv<`d&&gi*$R#&jy -S?0q36{;)j~XTekyrJCMIsc7ZD8O>r5BaLVXxZD_i1K>(QpKETP&dd)bqxBPwvsR4EQ7n4aT!mU -1ss$R2fm4auXl62rc#UQ+3IvKB^s7Gxz-?iw{jPED&(u}|Esh(Rqr6RgLo;&*2!;65~DJyMnwKM_np7m7y8?hB*7n~eBb(K&_|8N3s6-$9boDt7l`e#-DnH9u;a;x5t8PXeT*l6;b -YQ!sG3MN`;IW56CK`31=^8ykI4WRej=Kori6Tdkd5ujqh*(c>ZgjZQ6 -kT)Zmce#O=Lvm|$`?U4M|#bVSN*E8$hk2DALaTRsYp>8T4<~CdAU!dhu`?ZV{eD75khO%wnp7y@}3fU -v3H+CY=x?Xz1Rkmj9r|MYTZ%sp(>JP&PO;MpKg(v!O*5uT8#swqg+C=Pb|c5IU8txbIn>&gHKz|T!eG -$pf@y<`C9@cQ)be-om}LLb<(aYdGCq{d^Mdq|V>|7lS|c|3&csPn_hx4gN -n-mN6PdDV88n1ZCOn2gQEvZij(!ko;{(|DkdP*u~_(5*qZgvFJ^4p@F?0YRojpTgY@`bbY2a@i)mILzN&k17ann72_d<5dF-gWIpXf`5#Ipidz5@8T -fn6A1mgIOz9>_y-*H_dE}vZ>9&WBGH1@tEH-*t#r5&dAE0ZMv6o0?6Jl{JD8sEIAZyY$>de%S`AT*lh -whH<@Z^dV&*ytF)dx!yVN+5GV521Ja>B{!kxJm73Ep8=FNWEUZ2jCFCdFXHUcx=dI*Kth10LgT_-7(% -lB5fU(3iQ9^;GG5bjaE3}LBRb(W;l?)gl`t~Yf=h)3LviTZl24q~| -+6fwHnyol2%hRD%9gQ6Fu8_z)2(d2L&9_a3l3shFVHo&QKl^l}$MY)zaE-5PJ?C;B9AGh4pn-y$ayBH%DlZ1Ib~ua;XKv!iPo(3O2%4l1kfl9;d_7?sP0K%7|id2i$QabJO{SX}`gNeJ#6(db&?d?Glx%SL;$KeJq=bn_( -UEC%+mUA>6Uua@U3y3ihwRiT)^V-}HnLNz2GCNh-_t_k5QCQH}iD>z9#3o)6sn_Z9vk~*pe#ux)6qZD -J?PHBk;lefo7m~p|2M^^Bpz3p9=&POo38;epR8>|b#r8VWx$G%{_=O5?w_!uMyD=0)bUZ7 -M<28OGG%zs?YougsAw!!|Iy&TYai7sRhpQ|!xQ!alDc;4P`_dFgBp}??a+21cPWSkQ(@=HtTJDskQYC -(B>!)tImnKTQ#hE*w}W4-hpax!8y*3j}VCvQ=0x -O*_l0hjIAU1`!m>Y`k|3m4BHuUorMwT;`K<;a>33>J<}*$7izyOBXJDd-s)*F`Tf%;T>{*mZO)SAuJW -d#>2d3X7wr~xbrPZ57u$8?DARA>2tsDPwTKtI7TXkq^frTpRE!vaP|;+Xiq~X72!|4KTtL~NTYqjMti -@zA9ZK9tt)n5p{k*m3S3}H;BA*DH|zCAqp9Q8i_mHh9CEU`r4C#+P?4&%TEbe$YZS}M*gsQLx_dX8h} -`_>)~B2)xM5ca{Puw{4@=sQPwv4(+`wdH=!OhI#@OLCx7kvN^xzq_WpHKV%6Cm-+uf5S6>(p;X=7a{{ -n;m+sJqKKxI^Ryv2D#dYRbVilM5DOZet~`uQM}ZJC~DX3Fnj7P4hhpT!hqGHN&w5c8sCg?NM=p&}mlx -Ib1#b@2pY%rw;xHczXD?CdHBjgAo`@YNaT^#!%twX=>5sc6MWl2f_C8_y`l9b{Iy2vEK2-wSCmZ -XyZ3rkYsi}SymRsK|x0>Y-C^zzZP#EiW%f51=WWuTyEsgU1#mbg(}XA|w_YdHU32+c1B?|nk^<4@4s_ -C88+f8P>wf2v^49z(cG+c@3;5$n;oS!sbb+DueMTXeX*PK1TZcd0tshMiqg!}ad7+zfXGj_&xlf7VEI -*t@6s$U%Ika+EHYcT{TSz-S`snZZS7YiuPwcxq{j8;^!rLtQa^5xrc+Uyfkt|v}&R^+jG|s;%UQw=Moy#-G%%oy(h=f|10U5Zxa$j|K!s1dw-f6fkk4_kYPpYbgQ68z5YQ -{tNq>Jsi{jiekXzLEfP}ivY2Qra_eo-NGsIRz8V9gDFn`6}>&22^R2twq@>5BveR1CZZxxr@}HIJsfA -CFO|IwIujIt3Wf!c1DFm`pjky{U^}oLN&%gS%-<$Q5okGqx%V85du-Q%Z`gwUOOg-{Cf=Fz_rg-Pt}( -JioN>Q>Sy;;VzmSC9V-gi-d~c%ocAZJ$%dokRKL0yp^u~NbvGdW&`6U4V!3$FnRoD7L -Ne}wd!Ti(hgh$3BPo9?cq=%3=H{?phQ=1pW?)?8U_g+nJqU*NkJ-=ezQ>R1@vua-uB!UPM8ScnANC** -r{QFw-atjJQ;8DD#Nx)05Z5NLoA52G5k^0>3N%eyCin<{eiHsQj!a{ex-fu*C>7 -*1ir!CsNHs$~hM+CGTj5nWTVGl6UX0W#Zkb{`QpQ;0i@uUoNLS?Nfb4gY)uO$ArCsjhWw3fbiW~U -EehJ3LH(GgW){%3wiA!GTYxLT_PyKdrKQGCUseG2DHp~I(*baO>NKV@-Bc=Lp6`e@K^O*IWiQrtjO!~ -0^a;!9PTtzbTda^X3knG<=F{)V17#K2{UBNdz_T#1@L(^$k@smADxwWIUkqGRUg%iT(?GfbVOIKh;2v -obH2Gm%l1TXyIMP42!mus8a)HDwldfL!bZUzTyb!5T}f?rS>ZM%30p&WAoOzM6r4vy7?ColM0 -F`HvQ!}F<_fmd_}1+E~}1FJR?yf50}9gi|dHJ+3<iHBTmnT-lG+}b@GWU@O)eQ3E_AV(PaNG!e+g -fS*=M!g#L+K1FCBN2gD_sZlp89*oEhPmnui(bLRjTNu8W}r(>24>zZUImomKFuAQ)P6;nFxr}x}{9L# -mdkQUGx&r+f#Vh+QLbeBpWVQV`FqCmQxJIT=Xab72G%DUm_SQVVPR&-wu&EvUMJ=4q26qd`DW>`lZ0| -mlh;xzWXX0G8YXxbN95Qy@9qH)vO0^(j}(h!yq^S4Dh!ROnzo0Ha8lsBjo{##R8xGOmKjB&=&a$_cdJ -V>Vt|#l;QU`^O;EQ{pJ-9T4|Lbh{=~x8q-2_pv^{g);MiQrRRi=0WnNkj1+8ko>x7L9sszIIHt7aTLDGBPs>PjleoNcCncL1 -4yaf_0fEb;j243t1Z{;DH-hAXgS$R!Kn@bKqGd|Ew*7h;M#aug$on69`upTapi(NBfI0Nm8*SM)gRac -L<0lrjpSlehvJiC>`bjQX5ZAS^gwS>GnomCKTf1^)h<*8%Pxm^Vqj^J4^Q6pMBHS69|a~M5m=v7Z;W0 -^0wrlc6XjhHM)2OI+q(-Mbk@)?urP;Hgv)yp`025B3Uo5_fQImC|Ni`tw;%Bb@`LTADaB$_kz=upyPv -u8`6H|e(nV(k0JxZbW~$*ymHmN4c^0_4_xUCmfKBcE7QG9!|WRUntHYJ>WdQ(%hD~PN8~D>mDfdop|T -HQwbf+!`Ejbea(PWar_5u2c{^dwy}d0f;HhoTK-x&ua7S8BCH+Wji9VH;}Ll=*gucZ|G# -+J#{9sNA99zo=h0KcENtBI9EX1pAonU>|AW=;-{}QR9xvX#D8&PLWTWQF?TBL&%Q(egO^9kJ@k)9d*h ->jt}~b2#3dtG;!pLXyh}k7JjCS(_`A~@X$n#rLpkneBU2E+#$Z)!Qol)X^HxX8~=69k*f}{QJCMLVUk -AKN?m%F$Y(D1r2~L$6?BBj?_lA93W5Iy79OY&_-|n0feL}2z{1NNQh$Jj`J(a6_B|~8at!!yVBvuZf& -T^;9;gubTd?p*L2W;uHU_?p8=sx&;qd37RFSTs`h6czno_QB^g>hxs&a~6#->SBb&Ip?OKh6*sRW(`k -O3xXao!PFtJ-k&^!q1BUB+9uT}&T3lVyyKq!MaEqCzaal1m<(=Gt{g^>uo1w;bTomIdFM2oYMP?r-7u -I(Lduc`A^oPwdsr2^K7O;7b;6LV}9ZS6*0wG` -X(2gB=MGDp0%$Xj2wQj{mDn@*B-XquZj -sr6C?0@3*=`^^^f`Y+-{EH8|kYc-l2Vcq|`Chx^LPi&3<2j&q4m%!S7z*-+6h!zk7Xu=j8$a?)Ckhmk -0c6kmzS~MAa5FcU^R?nD<_KBOvYj0jN->S+|DHB7#;dbVkssC>~xg<&78Wuy=d#ckV3k_*$?sd#d8Xy -EDd<^g5>6LrVte>Fu`Iq)@j|yL1yd(tX$69|GZ@Q8pvz*b~Qj*#@7Gyo-#!1thZy$L5$7MBTdtu -jH27y19l+sQQ@R+|eoy4OLp~CUPMAx33(6T}iEG80z5#?m_9&wG*5of`J@bXF^iw&$Q6BG090fydxoK -1lS>Y-gvpSd5<08;|*zeS#(C#qj@t-M%9I_9jpu4_tw1`g?0u7g(o;}q$Wu&cjW -aJfg?f)+y#vBP6^ck>FT}(Uy=-Z*+?;qiLzQw)uS8WLVzT9h^-Ndk#Cmm`qwT&0pj*A(CidR;TOD>McqAjb3`Fw_~hLs*uQ>e{72XUJ -+qmzo(qJ~l6CCV0g&bKO8z@U0}pWg&SbGdV=*L3uI8l7dt3m5Oj9l`A -8|lA|AAUy}d!>>eE$8m(atx@A!_eit>a5W{Zm6+ws77*x$h`Xv`F{B=qA&zu>u!n~dxh|5Wsfv*Vxas -*P9c_U4yVM5}HHnH-1}=Db818b7jB$`M*!9ib9TQ=U{%X>}JFCiRx(K9|J&CL%&U@mH2f3|q@i^~+WP -l70vs-gyL>zC&HY<-sIEB|YWz?UA-I?YHS9r_M^~N=;rdldi|-O+F3dncwt_xdEpr=~wM3RPdP^-;;r -|Ti4=f@tWba0>Y%DjrnfuJBbK?MA-mUinnucx?ej_={o>F|aPR4li;^dWEgUeGhiG> -uWtk=;P2jO;QVoM9ouM0MLtkZJoxdpBnDcG$*jNa`u&ufgk%cJ2bd#xF_@vY4b+tGuTqDD|dr`EE$&* -ji2oxu?}l3cIAJd?df=R%f@Sw-gPke7>32xIc --IPjmSZ2euB_D=}@f4bH`g^oYad=%bcBews06C{q|IF3;G&u}A7A1Dz)KKd)@XTTahpkoXjq`e_t7Iw;^z+cI&iP5i2dW51seIVw7b{9tlu$s -D8V@o^+2k2{R;1C<_bjUO!;iaO@PcdUqibd{5jq#*XGL}m0RcR?P|7Wv`^N&O|wZ;p~d@y)1LQn)sDm -*~X?_Md6~_J4!s@9ca1M)Tp{X};n3f4c(obE)p=U~O2{%=%(AeEQCQvK&2D?k^g{F_yvpU{2a -PwHaV-ZXH|7f$c@3^8K9vN~mPT%ShS+qeF)}<}mf>WU6@by*H6X14i$W91IU4?mlG4eJ13EjWEuioUPP%k{TFnK*^d0^ig+etyRHf{HLn5(EL0 -G>KvuMjuM_dr*c@2qs_}N6DXhn`B2w-AQqZ9hCcs&!0@}&hep-LCGObA0E;6V-NCkZxiSk;vhZ~n$ai -nh49Dc{L>c)f1cqmRnHD>k0a@de!Nh2;t&5SEXPOEc7NV1{iK4SgV*nY`j|lZxTqh&9Xg^s`Z4yUsiO ->!BOjBykHXk~&KI}dLs;zNA{Qo~cq9{laG-=ga=d-2sgj+wvM?cNvQy -Mq<0swOjw`EOEROCm-BUHa}~g>LdqIq?uqR7}>?sAVMz#jGRrG+f6`7^UL5M4=4D;d)vu-8Sw8d447W{1o6 -mn=Gq$*a@zIAfL=!9nNT{+typ}N{_y!f-0@7e2;9oRUiaU%|f$_$5rS#RPfJwHk#MBV5pL@@Ia`=^i6 -tR#x`b~hbX0kh{$RlP?J$QzN@l`lC6K{@T2xtOoou&rS0;4S)CS}O4Tv$_1$T7qFSudZ6RED -^Os1?J_49tJio;=iigoC-3$1n2gRkLQ8;Oh2D@J)?ao=A#awih*0YJH8qDtR=FEW|NcN}wqnuAGr)Wi -xH;?h|6T$x9d}H8K+=W*O3eSGBLy$+`c6QQL4}raNDT48?oOLl9U>)Gv3!*#k2N=2qBB?hhJ7p>>;zd -kt=561=+`FxagKyEA!kxQIFZld+qMq0^?Toax42OE8%5xmlJzhg~aOlF -AV&50&Y&gzd8Ar8u$6?y$DUD8%NQAZe-5Ad>Qa&yB8W6KSTLOoD&RgUH{=s{Y^?JrhgjIGj?Mz$mWab -!=4GwFfB1qYQKf{4H64y;99TYvY>+^bhwwn!(_q^!S?0nx6TzwKSfaCL -MDGPrMT3yxjQA+tr%$`2GX^67}r|YxPBo3cL?b+C;mG?9~q2BbFKN~IeQYzqW`;5>++*CSA6`mJ6fo- -E$Gz4#5a_M9CvbL9$#xSu1y<`L*_2Qg@-g&sEVtBtZAm;gD264`qP_CX`8SLOH-A?z|zfg=``p+E4G* -xXtg1UAq`$VnLs+OyY)#uO@hYje(WLS2xnqi70zHwhz^XEfYUtWtcY$B5{aAHoSjh^yr6kZq3i*FMhZ -!vXYVW`@{a;FC*tI-qNwg{T{vUzDm0v&B%9O_5g@FXsZmOlHayS?odQQP#AQk?{DuqD0SYy<{|R*mdr -O%_wJ(0V&7pwPV9zW2Ts2c6I{TXDs9p4Y(F^znWZ6Ea*PNd~g2j^|%cR#Hs98u -3)9qHjCFK&*3st>!U5@KFi_`dep1S+~)i~!_M;ZWCQ=;pDiehUf0r_g9i*QgUctSh2yMQm5&lJNM^!{ -u}t5(i!Y&!+hA#mNuv*2O?UJOh0;Cjkedc(p;I9EKbO?lRN$^*;%eK@8|rgi=wS2ELUy8h1>c=QDt3E -Y8>^#Akqu^nH1Ir-90UGjy@p1Y)fj%o4(MEhS`^eb%piv_=P|HU8*Lou8{U|^E|e#-FBhgPRY$tQ`9F}D-sFF;!0d -QPbfCrx>{pXo=W=H>U!h)L?Z*#QGoz(pAZm@T)rQOd_jlZB%^og$mGi%Xr|jzm-xf64-;mk-O-Wn4uP -lH6O&?X;7+B@&S-0*x7B#-;qgG#!+50gqR0Zfq17S`2Lqgzso)gb>w8li7Jw`~g#C*kt&22w!8zw76s -51e9@Ri#;Q?L`@7;$RV%x5|OD*R1q;QCAJyfNJRQ!8?CkWQnYy0mvFxbVL&mNwpD4_86YE5hr?vEgN^}z{dEeWItVkZ -_0t2Gop{lb-Kf%1Eba|MGG%LP^V-zEXrVSEt*T9f=H^J!P`)pU=&l>_?O=5qMEdMV5ZA!8I)Ngz@u(| -%qu4PJEz|&tLTllzaG@ReHJ7NhCK*W%Q?#&howr1(8WPy$h^Ud -@ae8CP#_AxeTq?TTB0aa%`Dj!kTf+jR}39H|ZB~$s@kK%QzkXM^U&R8S&q~>KhII{fh6YFM(4eOyczZ -gTSHv2fPPUn#4&8h7jV&N<#Ec`7ebWVJFQF@_YEChoAIgc2tdbYDtqv{|}5EA&W%*Mg6>-eK=^+hu%O -+94qY{dXK(XeB=l*{BvFOnO}pBh?sl~3l5Hq{wt+^#ec((EYZhNZ4ZwydJMcBZU`gw}oQI!hbd=lak0=uPmo5Sq_uz8S^;__a>U3D_m&h~dsM4G~85@NCN$ -Pq>pFAu6%the$Kv}4Pfza;&S(>kkj$gE)kH#Tqlg^6@+_&E)fc8MC81Qk6Uuddb{oY%yRnq!B_x*AV_ -yhM9|C74`{&+iobvHko{s(>>|Nm|JA35Kzia6;-f{!GsfcEW~Is?Q|eTHzL2d!)`FZ4T9f$a3|5psDb -L+bU|qJZWb8M96=SY!cX*Fz@|ryjTA&0b~ikv{Cl89+^89yxOj`3$cSv^0ar+t6JFcj#^ -C)yfv532qb@@LA{H2ia7`KC;Z4iRYMlGC4mbfz7UFD^|F)FRv5%ytzi_J~41+NiJ10ft%wU>^*{4#Mb -&NDL}axF3g6^X=vKlD|7?0HEJGA1vXPog|cChy-Jka=rnn|V&X$pI?wI&sdHNM*3@+WtPpSR&D*Rj%* -?!E;GKoyxH;pKE$$g+<(7(=(8>=gxtMK8tuM3PWb*;-m#1QMsGM54Px=H6NV|T*t?XC`-F(?QQPAHY;0SrJEXq8FO8uw-1d0tW@J4&bmhl0 -OX86J9FVoDP(;qNK^?M_Q;j#>1UVQ{bR95a8ku#Nxt?H)C%F!`Ms4&TB|~G&GhR@lrODeX%4$o|;o_Ml-wk3cX*tJ;e)uG95#kWQBL*>jk;cH8N0h;@FQr15;QU7=QBk -*;D#IMv-?#|&A%Dcj(&7j=glvG=>h5am<_GO@-FI|9}F#09?sRx2d$BbLIzVr2snpNIsch79H>*EaT- -YQN$YFF2oqc4RRQT-eR=d0zwK!TTRrnPi(U9X|859+-h7?<5JD4}ekyqjhAHt960!IaZRA`F?8!>N;f -W`nmk69M4e{4Dm+H;In#Z0ZqsNM>&FCKz7au+ke0sxe+EXb?j#gK`PHxADLdq@Y{l{G0*<$k$7|6laj -4aFHD5UR=HKL@aHSKrjz)Z;4yVQy>tJc%$55wQ^q_8fc*0?h5G%hXM)p!cT5Z)K&J1s-iJEa_|)xFXb -fDSp^~=bd-;!0H;C_?RbOgLc+{~iEyFRBlw;BVKQ>Rl`RApF~2SxQY%7=<Q(#jE)H@usWfOu%rr8m)weBu3Gub^Zb9yd7+nbx%4`i^OP6&S2?BN9@G_*JOu_TH6w9tpgtPCk@RT5ywlW8UwMIJdF$m`)AJ6E2IXo6rQ+= -!ztmfd-LPc6Hs#IcAM0pC%+s7oKi{-u9)UA@^W~Fxk0%_~S0!zQqIFNA;6sTcDvyS{T;QS3|9&Ik?|= -sRkATx(UG-<+g!~LR5fF}(1PL9!Z5T$z)AZ56>$2wY|<})6R)Fhqy@okyzu+hGY4UG=}^J)5}FbcCwy9)HPtn$yaDb#yt*u!3!ja -8yD+=0ySzZGf9fYCX>)r@z!&4Lfk@p;F*t#7m*vW3dgF|Fve0V|2$ks*eAAP%-K1z(;BAW+JE<@I4Sc -3Mo9J}vgx$&&MOkRXuOkLsy8b2C^oez8b^^RNGpQWGoo)~6#l}}tccqqcqmU-%^?Bzh?FrRN(FC_7wy -tQOwL#h@DK=N61hIMoJX5kZyh(Pl^eQ5I0Dhtn -}FNo<{51iJbY1ZJg6emWlpq;3$G$R-?yPp<wDrC>RUqbblYsH&a>-ldxqreJjUY|Te9#Z;447+Tc7Zc5nuW;#&}b`#m#+;OMM&7XW&o -Es39!T=daC?9k4acv_LMMv;^zqX8ofA7Tj>9C;c!{jFlp(QeUUKt&NxKyb}7(<)Zu+QaRP?8yKzE2lQ -MnhVGC7h@>yr84aMbuAxAp&eTlJ8jnrrXpRhT`C3IvDTt)_%OeVr>G2$7%#d_Dg3cnD%cE$TzNnGm+hZDucXTQ%*wsRFOw;N>3jJ_7MUIVZBe+f8Er_;46^~}P%D -+0>>@UR_uiBshMZ-A2$3;=Zv(9=Lp945T5m>ZT;4U0C%JwX5b(oPD!K)3wFf@cWPDxIvL7h$%Dg^lZWk!e+&nUVnpxiqm^aG6KXkv&B&$>qgW>QR}%E%@ -%f=TYoKBgV(K>`CVSX=j{dT|l`b!{z*rfME$xmgKc0E!O)hbP5>}@{>~6DkK}UsW2!Xx}(qE-_}bblv -#jT+nhXIoYa?xy$hF*)1R1gIo!l;RKv&gj9qn;&L=E8FT&djCjNO#iK++yaj%jMdM{$y2GSu;ASTRP# -8RIQOdRCo`6N~*|o)1^U#M>S041t_;(Vp7@|-TA`d^ypJ$xl@Gu#}qa!B+VV@C*_y8^ON4FY9j}fz@r6D{LILOa4PUy!t7r~CiIYb^#C -rR|NUZanRv>o6aVwvG&*q2VQNDBE5(0hdi&A&jHp9UVLuQ4B5II)I`lrimmzVqVH|CC*a5}T -j}&J}9}^!(8VWxA+Cu0+O$TC&j#)brJ`(;>d_3!4rR({lIUo?e2TsU3#H+!ScZzosL=&w)rR&8X)Aj! -tG#w}f_%%#X{}MDEzXSgbXgcl&_ms!T2?xw)(nc+KF)?YcjoZS>O%Akm$d>Fbh}r_;j|51^`5umGFGm-4Z -&g_~L3{$>vjYz-ym1+=DU%BY*UiMwSpL9LEh7T9Q)M^b4(vNN`GZo2y5WcYgD180ZReug&*iXY3g3u@ -qVSB8C2^^*|f}#5oApe6TJ!{tS)5A8&xvpHjKD*pS$^2`Id^yo)~hh(pYv^9PP! -jj+27qbK3r+GhPwSssl0MQh)B-)PvE7?+3o6;-NXd1`>=`Zh%W@!y6old-huncQeud)yr4w!*j3c~J5 -_ss0?kx;=c=OvOIziwpsrYRssN-xE&kE3YqR2y~;uGo;EXl&qID5DTIZjmB}I+0BA|wjN)W6+|n;sf@ -M&WAvzeW)jGtm%_p6JMg+;fmUZ1!Wv#QuK36W!>yYH!^?KN&Q=nEZCu(9&n>ZkGQMDQ%-3!P0r?VO^# -5abgN%QI?&jD7W~0RJGj{~7fcu8|BKJBZYeu^Du?av)0N35l&Biijjl0tTb^|`a~1Htx#e?75k91&| -JzC|oA0T-lsRHTD|ZfobkUB8om%2XY0whaAari!muYC -^2CViPI;J-;q(@y{jopFo6eZ#lQS9y`}ads3LJ4cbS&&gE6~ZNbo~Hy^U2u-NNxr7qoNm69un;#a@5` -mUsbx}EZVM#^k_SR)Y`74JDoR(teFUzXG%NHMi~iK?DC7BVOZ!W#cly6I_@T69{s7I4IeJ#)Q7sjarN -U{cmaFVv;w#`v4@4D53lHp(j7*CyAPyRv|VV+6>?fUgu0(31f;ef}1zho+MgcTQPxfAwZTyvd@&ZnE% -VI?L$Z5-KWw@J=m4e^|3;qTt-7`W(A_3~(o>o++Gv3-B@}N-D$CmC!2TIbDJ*rh3J4vBvR3Dw2JZj7^ -Oys1byfTo*L3k}BZUf~YCm(r6oc;m-uq+;fEnPYy(p`oI)0b#681o|9^PGQjQaK4~Q#g_pi0cTZ4!fQ -MdJlzS7=bJ^+<9T%AI??L1}Jp6^|by8sucydZ}svqWcUfh$nM -xv3k{SZA754)C>muhKh`-+5~^O+o;rRE}iFjbJhl*gVJjBI|}0cGi<=*V`=+hSUi4=ex3f0cwJaEB6% -7fc(VR&AfFtKqu}{8726+q{SsohX(1Wp-Z|~LX(s?G?&yUoYv<4Xe0N>X$|17jAp;rjS$b3y1_WlpN9 -J^dD!d#!Fqw1QE -e@ZQhoG0GxWa|`W(Yo55tBYR80kdS>?N( -hL1nCv>$-Y0B9b*)7NgSzFj}{t=i-5D>V?q@O-YWOEz5+Ty!(U{6kE1US4UJq{;s{VN?Fr7W&u -d=D{V?o#BZh$%#mDWC}Y7`|ag9T55SaHi5fAGjRhR~Ns8@64* -yK}kRPvM`eX98F9Z>v?keh_j3o47q4B?V@{bwY -zpL&2t-AsKcsqY}H~*w5YT)j1f1a;9tYG(d4(Bi3u#G#JPAsAaClzDF=UBS^9$v8bWt7K_fgi%slmZ+ -JmkBxv-I>+aCpm>dh&}!D+;*$UrsL&`4-%vl$Zd!uNqL*VcoS~Ob-5UC@DU&!l%V)S+~#mcap&7Triw -dqhFBWm-pS*l(JQtYlmp=|W8pXz_5+|J8v#o6%ZhUtCCDerSyO7eT@m@0QX?eKbf^X~IxcBXZed@Fw< -?R%;_v?g28AXyFp7SLvkZJ$-YfsSj05+m;?pdP3$_Z5YT$IcDIAXMyHkaB_@iXHp32iJs3_W5&q^SM_ -NSaH;|7Wphnt(6($w(Ej3<6NHNz9Gy~*d$%+97#ja?iaLQhPDKhMGSDFxb4Ww0 -vcQ8`ZV+GdO_~WfM(k52iMIkEIATXfy-Jm!3M=!%3DHwo`2@lO?!v=Yj0|+TM4Kz=(Gz@SP>`S!|*r9 -Qv$cs`Bv2 -p^Q#|SM9EO6i5QTO0l_rnx~V9QWedK@{@@`vK -b%XHN6=gtFL&+G^NpjC+xm65#WVXa1x@oR~DVl9?DUi**udQ(evv7HfTJA{M)#iAUstK&g$+39fez^y -cROy-eOn*h+t#aEr)IMtn)23X{^Rz=Bwic_an1%T8p8hnZ96KbJgp -myC%F9R?JvD7V;s0o_I2BaAwm7xN4JJM+*3E7a(q5!?s?}93tJGS{*R5StiwHE5Y-{%Gir-rMm`8ap6 -gk40`HPiK7NCl^cwT=tU}!RoAfGIh@v9Nwf>Hq;BM=2hxGbt!sRKCPjgCaJc+!B=r%V$h+{{sI&fm_@ -Zpr{#B00$e<9lV;l(man|}jTj49h`tj=TjPwYagfR@JC=$YV9ED*7y~8RP!Z8%xVHN_BI -065(@CSYH2nrp!Cxkr8a(Hx9$9BvTrpLi3{HT!Ohf@ei{yYzr{0mBsnjwrGpy{x?{p5mngayGz{SbjZ -Nu>0cb*Av+dG3TcOi6TP!9wit(@pUs0Zx;jJb!#FbQA|aZYyMTwd7W|{4E2!fTHQO4TPIX= -=}`w>EBZ3_9d>-R+e-VM-AO%y;d<9U5bo5bg*<4<3oEbAW{$M9M^FZTcxF{Me%!mX3UDR+>Q;?-sZpr -t_e9aw?W!>rRWCYIw}o@&Qhc&6J%^mv8|X(G|168gnPUkw8L2u81BgQyzDxVX2^SnkNQw-;`)!*AXVXL; -wxWU$2?C(C(&Yxl{lgPQM2p1Uu(eZYVM+;^GTKR@|%@6$HPBYW`yT4|QHq-Ny3T74Gw8bRU@JUx%8{f -bNNJJFD+t&pS -_$y2#@@Jk*W2aZpC>PQk7)S}G6H6XiFE4ghHzF^35Coio9`mtnq%_dT{MYxi97X&08h3&B52oXkf>G3 -L1Tb%VsPRD^_uDFHimIm`5*E3osDjzP=7NOv^xWJt*Um8eFhSSMnUr4eQ;UrStS0si>EFc^d&G=s`C(<(pC`rSY8&yq7d^O2n8xKY@@g -%@@YdpmRJ6VaICt$zawn(Y6_lmC0vnSxGw`k)AV+Bdl$ -i>cJPq&l4rL_%gquD0T7*4#NaNyzl7)^5^b3vH&LzUe1gbMMH#~A^6-^&iIqO-?cQHyab=m|rlndg=O -O_>te}F%mc$?;}jDlM?8WSQBJ128rNF+eHztT2STJ?tQi%^tnwa -$M8Xydm}|zD{FB<#YbLBK|*cs?zGl0kl&X2j$19ZEbsRN(yy%^T&V^uvS13eVHb~y(fG -VqbWCb0$%OA@97O>VO-L)=v!GULktnJPFr_F6-4X%8Y_4`H*Q7i?R&EO;fBBH#*h{BwQR)bduutaL`>RV0vtl(>^9aXCW2#O`@eKdRO5>vIn?5g(292^UUukl{(BH1QU8NuJ ->;J-XU%~88mii9QqBxDh6hROag~Id>hj&yAVLz4rrQ@TC{umM`k91ue9i3(&c{JD4AAOyOIP!+cr{^p -DxeXr`9*u5?RQjjQKa7uzT>Q~lBk==Gh97gk?32)ovqKMVe~3!|Ma91Wu*ccNA@&ZTN9S5dAFXqT08w -%@nc(<=Pxt58Z$AE@?EUGpj~n%VGW5Z``wB;=+((yg2f{IR{7F9YLIn9&0G9tqxOMAS0DDz4ulDn0ba -m84ex45Oezf6}tv?9saEp2kT=+M29#%1}bE9(V*CvcOuwgh5iq$t+8wgyjk6L<+kYorvHMjO)9eTzwZ -2k@H?mLe4`-0!e{fL128R3ZKW$Tm8l8tQ!h&Dife4^8BJ6pC{D{E}7Eo~7Ta -vgc)KEYGP!QQq;X(fCL)Mac370;Fl;l~s43e(Y|wYRt3nZOB~veZjBT+hktSIbQZRpFJwJz)wrI_fN@ -|{giC)XQqZGl5oQ-IlvKYnHI#3=?tdnB-}S3Lo_T@EKTVyFpQ7+QbWUA33^|8qEaxpn)BR}=MJ)h=c$ -GRWpHYt4^-%yK&~b_IzaUTwBUjMG-}7LpWsbo;aEl9S7LP9N~Io8U3rW!f6BZ^d^^3ikKPnDZFvNT5jXz-n86e5bd2#H^_xy1aAZ!H3M$1sq?%V7^se*FQ7PpRUh=FI3=V)o=v%e356lQcHbz-o)Hf`2Z045<}|;S^j9 -2I&stR&|%W!s0eXK%YrM#nN+M?hF0`ewGRYK}stIV#a7>n6mS}OHttI#-i7y|C3%E@b4;+KTn1281B- -YsD6VB6kdQ^sAmHFHjsB^b;5|egK6;7cX}xo=oXM|l03cXky7^}>u!Pg#62{*4coHe*D*R*DlnJQDYV -{~S7E>V%@e|XFLDS9Co%M{#j4MXBjXgCRxS;MKC#<*;_r{g`NUM_601Z42%0Z3b0d%~pJ&hLY~Bqc^V -s}-eXJ+6S<{D~+#Kows?YLdwWvXM&+J8=CE`SMj4uL2_Nwatx4Ji5avMpuMc?ri{dlkO?oG@?o1F*DG -eBY_@rHRIKoA5t0AGI*kWwY7Q&p<&eay}&Q>Bz37>r;h-Iu#BUygI^ltv@pi2YK|#X^~lb>_GxTto|d -a0bp-M^Tr^?1DFWUHLT3J<)3)mdOk`$H#FuP}P&b=6jpcx0sxRr)xyMaNBz_XB>_MpEZw|%;8%F2e+u -f))zikCv5S9_ZzA$l3chQTU`3T?f!tm=y#3=`yX(D|LKxHxxt^8`@t2`6ivf84kIu^PzX$u3{D^f`I# -$RUCHYED0GuUDK@2)9JmZ(^BOq~%3KKz8vjY^pZMo$reD~HMGPcP3UqU-=|&&I0B3RaORHZc=#7U>gP -F0QC5{Aa#q^h&Dc0-XZG8|-M=qGLH~&x1YQvOg&QnC^!Qdcc>1;=Q1YCA)Z>Gk -<%8{A0)Itb-{XYUY^Af;rY&3 -_EoRq;q44C5kJmXRXl}mm>W8tDxIj()K^$gMnR%j}hAEquEF}$Y;$@X$WaNw=4lfTz-m?o8&$vC)26D -pjhewKM`KaE_a^NEc4lj)Sgr>syL -evDZ5qM9kQJ(kccom?XmRJs1^K=yj+3f7ZiVrw`ZvOpng8v@>tJn1JMGt@Z>|X{8{13qbjS>U`W_^+f -h9M*j;|xK-#HSpBY_owx2J+G<0?gcM#a1Yuz#zT7+Mf*FY+MX@2IS|g%Y2J1ifwH78V;;B5N1F@e~k- ->Z9+)44f4h)z#k_N5Rt4Va5bm!uPh`O5lVtp;*I^i8o<@y#wg%SCL67jMgggEU5MN)|%u#NK?_MSu-^q7)tb0N`3E`6pC~H7R=6Xn1Gnv)B-R|bcQS!38vYJ5%6UJL`vxbq -D2KxpxOe&vjsa#R&%fWXp{E$#dIUjbpL>o?6o?ShV)8$C*%e|W2p9&-&ObI?GOO<2SM|PR-L8vZ6j9w -D%a98j^B@*v7%NnUDapPYi^Ul^vh-Jh!hS$=&#!O9+2b3f~V(nR58RF0C70^xa95rM#*K$V>cB1fzc+|3lvb0 -8`V0XCJ7ivF{((RwjG5VqQE+v-Q(^i^8QY)3< -Va+S={nLA$pybhT=V&Q&>856%|^wXL)VK~G#kh*W>cu|Q=Lj1|o8CJZmyI&z(AnkE~#dfuw%SizO-8SQDU1nX9%0R9vF94(l0|g532UJ%HptcQCQL7^% -f8o25tvd>cZ71Lf2)z|zX;88SDqtDl<`vr<0tyT^+`3FN5D<_Xx{ryiQFBYCtv9dFf^*>3;0!SO66`P -0y$*a=@~y{7&oLP-+ZY$Gb2|Jhx{rTG_n@2T&*1U5#-SA+8{ffWE$PfRv>KWGLkwF&zd1ZGYT#$zwfr -sL^>YpRKl5FGC~dF4EBofV9N!Y4pK@=4`HRVc-zEth(Dob?lvc4BnWQyj>bT6P@-q6`yY)I6MvUf8?g -{#qB9|tTg+33O^jSSit;D;%8EuK|HVIJ%Y%b}MjBa7~}_YQy6I0gOCIrZao0O7mo05Hnad|jZZC+p-9 -#=T0>k^2Ov5H`gKCdG$P^~3#N{rjEOG_7J9?>GYz&336zD*5s<@Mss83{^UP3QcQ*bhB -dL5w771|z$zQ5snOSIa-4|Q48+_D@hVF}TPy6m@W5V&Z{^iLIl%J`tNfVqC+tKD8r6(? -|%?~a#x&`;+JP44(%@2%~4==P-2ml@Ev^+VLJJlhjHB -s%AezirRhjmrH@LgUh}vV7 -2Hiej~wT!-myVlix?k1@J@w-o=bNIJRWSx4DgzQsV<=Cr@~DAJLBt)XkCr*#rOR1J9$KTToGb>?kMDV -K)U1>KuqX4XO>)Qzr*XAmf+rzbY(uo66@xN*J|w##_Lw5m2T&wfj2knp3eLlt8|2<^xYXkpBL6Blbaw -+FC<{wTDuy{$toGXUaq(1`vJPxo0abKwa4PGvN3=hXE@KSNK$lXEijK!M#+r8C1SM9!*GkdptMkq6Mwq(^qsZv!4!xmpvrM#gp0HdDDB -VtsdC?B_^AdZ{eOiZatB(@sjWPEc@e_CS%d>|*W<;oXVc3l-(;Nfy#Y-2u;}Go8*-k$8M_=amw3XBCI -X|@YX$Q4v&$YTmhq#~V&4q*|w}QR)eJ$W>m#jY!+bG$dd9?MhHFP#N^hT`X;z>mp*`Urk{SL(!^h -cwnmkResrra5^e1#->4KO3nJfy~>>scH8yB5^U_B -_n0@m`WO9o6U67JKojbT?|h2-`FWKsQAg89s6{L%7}dSS~oq13m1(eu6RpveD7f|B;iMu$$JH3DqJGs -5?+LT|J-pdQ5sg}#ls0Nt`|r)PdMV$rq(PBT{kt=-n5!uirho(>y4$KzNFg|k}$UcUK+YJ6?!gWRcI| -C%?HVau#WT^r|kAYI6lw21Ri%!0zZ%Qo7NK2dJbpLPbtRgPshZot&$#J_Hf-@uB)XT46TFgrP-s=@x@ -$q@d>DM>|RdiR~Sd8vcF3bl|1So9A4->(AnC*R#}cscqB@FJC^*oeiq0sMNUNEnMv+AY)U>Z)b(X~)P -o?|qZ;Ox*T3$Bob{!5n03nK)XXn=n7!haT#+fH72a|P@EoodVw_QQwaw{!94qfGV4a_yt5m!{+VH_W? -njO?(t+Xm_Ik46R@ilUaexeBf6XST(w}4XSd`;%W0aer)^l|xeW?&b*t)*Mpl0CU6}+xaI%`G4BpK5*-A@9W2c9D~sqi8C~TgOHsjS0Ia`Fh=1NLlOi@QY8L4Rf -XQB4X*L-*MR~QAd=8q;~Kb_0&OCU-qeaf_3l#yi{KlO%t1~WCATay4F0i(^#lWIWJC&3Cq)5>yT;Whv -&}akf1P~>kvakJCm3Ex0%#3{FE<7?$UdiF&p^SO0-{c9_@3uLq=14!i`)u*6MW;#pqmcn7u}UjbG(2- -LmU0qTx%C_t%dKn)>elcvE6g~mkIu_Bb|Q)qEd4Gq6=d1Th#veZeD-^iEqY>Lcaw -3MxzT>Yri#^J(4bf4fNecs5BZUr%gL#F}=&ndVM98ENp+CFD101(YNJt|MDuJ`W1D|tjgb}5Ry@NEZ2 -Klb;XT|a(S=MeSJ`+J>CEI>i;s+@bi&|8{-6qz9tqBQ}AbN5#Oc<64W5CU}C1HZr7|WY2Cj*d%vK+^M --x)enEfd4g2iqQ{u+-Ds)jvbe~UB)uQB1#xu+z(V?q){ujF71av4FWz -7rFVd!0_yVoaLX<;qS$sL0isOvJHdkD7~@nJjx>#GNI|yyg(0+6P$OE&Bo!A#Ya?_^`%uDY}ngbH=h3 -7L6;$$c_JCcm;`XMqS^Ydg&tLkSM)!?_B-q!ok%0ALAs)H62CK+{zCR74c+4493hxzr?c?i<;AOUrT>dnqaGmo$d~5ygjvV -Z~r*HGKrZ5i@CeJ^0q;lWIE-iQO4W(C@A&0VaM+C<6@93f0@m=Qhk0oBCtLT;Q3^~>HiiyXDIK3^iQbVitZ(=e=ot>Ykj>KUWLW5x-uZRA&{se1T6pbsn@=3t9L~b}WCY;Vx93a9a;cicVFQ$wW6E7!f1I^ZQPy#*+K_p$^=J*^3B~g#`jv7ps9%`0} -Hw!r$bbL*G;tG#YZAqM`Yz9Dn}`IJE -0}|T1=U0u@*S$A0M78Es3F?Dx-2%9wC$crqm+X3%;q@#R6D}{tO^FWE9^xp= -%MD*YKegpZ6P%7qgVFn8D;@k8S*_GCIficptTsnahNN0yI_;x7QjJq+BM%i~^MKaHQP}yNP#D_2un$u -+Nc*#7+d+gJElxd5L`EfQraN|lB>Bu*d+scUgdQu&3sMN=Lv&8J(rf+FNC|y;**?aIXVhiAd>j-#NNZ58ycWcb~&VKuuuej -V+d$E9Pdz-&8i)&qL=JrEP`}wYduSE0?*0DEmgAuh8V|zE7tjq**<=t~($kQr>y7k70#C9x>J~B;o~o0uXTyZJ2V%k6M|Mk4=|EV=Uu+1^SR-^)iw!a)(!-rtzSN6xuujr{Vcf81JO47;leKL;Un>wWFy6T}&@;?SBC%z8%G<5u_imTdjf(bKJuSDEbpI9XayUy$jgU-@SMeu=o -*m@lh2B47At>T5-p;2IFgg2U#^w!hys^zUr@`&~o-&bGm>KWJyr=e#q|e+n>vyat>&AFPsfS9~KrdQlPjTCaK;&&rcd0}En9-p7f{b{G}zP-g`Psyej-LClVse2-Os!F%waXRW5`< -y_P%;|N!pYkJ3El&k?4nCKgd=m(q`&oXh`bpLg`dQcSt178F6YZQzs=2e{-B>y&-Mt@U=RSc4j;tBjG8$nGIgRf>vnVr -xt6#=O<|C(ayunf5!| -vF8e=jhX1oQ|J4lt#(F;#%wUEhaEhWC3MFxdA>q{~GZ@a02#KR#G7i|M%7TCrP;5gl3cyKQty@8FI?g -dDQ-SDxtG2J#;bOI>pITwi1Vel^<5&V#qA{T52NvE;Uz!5(96AQ2uGJXg`8Ho;HL&=vW?)eN#F2j%)b -^qYNHMHNnWlknSZyv)N=3j8=r;6%z`)n_AbGNJkBg7pY<3ylI&lyhw31^mNLb{5Jp*F^4KW1&%?c}%e -d2@tc`_^|<;dZAWu)=*85r$nGcf*^NrQg2X&)xdZ&w)j8zv3*J1R~L2!Sra2)%&w(Q)sVos6CcWJgs_Ve%iV4#v`5k -w**4`)(OW&LnkO3b{=H27#fW($KfzFx31;G4&9-Q%yEypwBbB?bnN_dc6^S+6M~{eo^k^b)$B{Z0zIM -c;fJ@hRgqZpeffU0(kya#KvwGIxaVi`Kej%yk%sfx@~SSoK`OjDd62jn&|`dCh*^JZK`(H%xoHB8H@-7|3 -VNR1-&>ECz~3Q6@G1*v;QYXaedduuv3_13`VPMCIqY##$bvqT2H=nHL|${AnX5x%p1+>dVa3)dlE9=* -r#I#|eniT7{?21Iyo)4H0j8ayc{Kez8T9R+&_w_)t4!`U#9U5B@GeQ;N_1??nFu%DhDc>Xx*(eTn1g6 -@?{?Cz|SwbzlR_A04seCzp=aTx}y7i%&$}ZO5+(6wOZgSQ_d)}+w~uLLpN#ALrknF!6b}7rT -qmDSQGv&Es?zZqbvG~TdV5lnHP+@2(>kH=$94X4+J-(q4=u)vQLHt?;d+_kla!QRKSVral!hghL8Q@r -Ng4xAa`(}T>r*fg?U9lXtTwqza9Tscb~;~XLkK3?xVZcB%^zsQ=AqKG4)&NmL~q~W@7Sph(^M%moav} -`qk(RBUR1K{u27)5A6w64um}IR>He8`2JwT0rpS@+{daPaCKM+=uvU@3#?MkT=?G)ZzbjZq+{?0Vwlo+odj_f91U+FSlBH6<;#_ -X32g}hiUb~2nR*@2`EPuN+1JW0C8!rZSlOubi6>-1QJNfWWO2x6+I4!EUs+A9}kwo@?Z_Iw>4@7IYZ2 -@XBYj7A<9qq#d5!hNT2_)?QhqOPCB3C+5^@X7ZOhvuH}E@LH+j_g41Tf1-QYZx_Rd31QiI45jZ`F|?tK494WfIqvqFvzCnQ~#5n-4Quk!Zm{nQf@vV$FDTB$5Pn?-Xu&SB{p^oi#4Hm%_&|$s3s2@j^4X< -37%7R!$svS2o?29gj7}HK@3i~yhO5J1q;8au(Yi63J=G>41p(oGjCB9Cr+~h^@isOib9Cjy<{Or6NY` -B*@@%Q#*vDeJ!C7?C-1^PJH)?2*E?W_?qP6HAq7#_AM7_K+O45-koI0^_4 -rr>3>UzLE898{6u1i-0vT_yp4)|eViL8&LlH&PPwRZs^eHzbFGAbs67XmZ%P%s@!afaWq{1BN-eNlC9 -uF@G5%9|1Va!w+y~vVo&gv%<8<#bS;}{U=TyZz|%qDhBkG@e_O}wyX$j#b=>YrSc}W{0FJ0d|4l;Cko -BdQ=AKAG~&tR{OyMG@nr`W$#*4xTCo&j3rE=Y(znvE>4&C`6#A2o-GJ1@6QCgI8)*rYHvS+k0e}W77M -S@5ap{L^AIJD^EcU;53<#X#KRLz^EYL5<;3AVVe_(-r`~+6VrLeHda$1re&iC`EOi$=t=Q~H^-y?Ef0 -S6&y3LIC`^>Ie)`Q4HV%mu14)W>^*c>Q$G?Hk{nC8js;p?u7C3KY(7>Rk|YJ`K%z;i_Mf?mr{wuTe4d -M_BACqT{P@eCKj@e&1=YCkg5LsuNvi7Nk%-myP?I# -NiVwPw9iK&hTPTCE620WrqhQ>Uqq}?L2x&6A%YIp`GxPM?8$B6sdwjmHFi+uclA_VM-&0U~5c@(hV9XdT%44DFPUUbQ -7vy<2f)4ngZbf5zw=ZAOB^1;u;_RinqDG? -rIc^9F(xvCu7Cdd_@EO1(X2sXn_IS7o&iyiN)Z0kpg{Ic*aDLgIikVCBVX=O=_OXjUEY`od3kYoE$6c)NNBu9oX53dWdtiZ!D0_Ybwx%FKnbS -Fi@4%T_?1bhKVphqm5&Yv!C|4fc+xF{rldlVplRLiYlhdhZP9$SiVF42stiGUUD-2V)yVX|tFv3ekFd -`<41ary!@PtkYYpTTY1*27<6F%x66yInYnwH=ll?vQFf*$IGt6g!46Rv-I%O#O+GC^a??y(ms@xjD{J -MPn0@8>&r;=B8>gt2FPB5$6%&{JS{_33$S6QmVT&2zO<-v!;QnBNKV7F@UMF -6Q9OBut`&{^$|*M>0U*;WOmm#{+JyWWnTw$@21A1iwf(Og*MX`W75*tWzhF1?2|ouzP&XQMi0pxLhpk -#4l&g(FXW-KYqWYl>HcZLCDSYoY`=z@r%H^j400T*YiTs+c7M0lpy{C){h>h)(4C(tqfhD{iw{I(4ht -FHXKA+FSF#r`@tB*V&n>5N$aV%9(}DMnwUENlCXJ$dUrUfM${P7*u5UlI*9~G;J>gMrJH9(Idql#rPO -m6A-5q*az@_-+bM$IjyZf2ii4s=4A;EhV4DqhUB|O*7FjK-SwiagB5XJ#@R6nx%BU=UB9^Q-Odv4}ph -!{Az;Z75cNjXDCI{JbnoJ%wms5OpU=urwU3n@q09cf_?rnNLMUUN!vI8#WIGCqo192e@eIDSO(P#!v^ -?wGrNj~vo&xZ{)8K6ocEM8~N6O1zqb2+uvmma7M2zcw3x=iQ*+ac|#wH(qs-?mgut&YkYd<)uLx?UdK -nd9a_2#`vmrb++*MVHfjRH3D|Ax%n0Aw5w@k-VD&?w3khU=;fm=+px(kuk1yzWgeYFhp5DQ+WWkUlaG -f(FbYPD#2s#t$dBnV?C!YFLkUUYNTckvwAE)b*N3btT)0cbAdfB=)4}fN4$THzNUM`fQqIgtbEidPG#uAO(UzF%|2K|TD{BowVjtv8Tv7~7hk#A@^`h=s?1!|`Zj^yd>l`1{-r$yB*!9GPvA_=?h_VSg^_v1#gPCJEc>T@rkq8PXxdp={s$uh9rfY_Ja8Y7PC%j6GwJfOz=nhCHk?I+ -)T7Yzhs7bXcOZFWoBxH`w@Yl)nuKUQORJ?y%YQug=TDLcm}r7K@OM)#2x-wA@(1eC3!3v_s#Vo$+M%e -)dNDqeI+zTW1?;1+`wxvh<(qjw|R#t5V-XW!z?>~mh;+db;uVImYE#Aw|>(WtgQnNRuJxH4|RX1)gE! -?5FQ7jvlMOwh>SoKZ@h@p6A;>hs>3xGYB~^8_6oF4I<9UIm$^mg(sSY+P#VB8d<*pm1^~5~0NMLB+^{X<*o1xv?g -W%Nnt5ii>5(MVvQ(QJctwEHXH^QzkCbBn}$BJ{euLQ!}aTW3MBp~nrsSOKo{#Tp%x0D1^rDT-{gwauB -Mwt!)L^}5A&yROO@5n3b20&(yyzz;d_ij;tAAI#jmq;Id;W6u+@Wfc!bh#NcFyi96KRl$2$mW4h+7sJQ-5FI1y4>++l580 -Ay}+mC3XQMFlV@2iJnb#r9n=e+o@7;+YD0&oiY<&RDuP(`PMIQ;uPCg~&F(Jf**;hVF3lbg1sc}-Qn; -Sfs=D!y=4H2-wo`TU(OfQ<17)!XyhB6}=Z10eu04D6*krIe7_CoSzp(v6O4X$OeC;x<#Yddfs0ce -@tHvbFG=Uv2f=JYgIg#r -FV)sVTF9A}#}Zy^@4QoV5r_GOI!IPWVM%oC1_VR6Ylv2ZI*WLsVW;z0Ht&0Hz8;QfFX!R~RVo~$*SVt -TWv*qJWaN$#)R&P3srV4_LE>>nc)xOUh-&LWba<`foX<5PZ!G2;fuXeTN5;F{dTYhpI4>Hh&)_in-aE -JFqw^ITX~yHl?{-WRYbQfwO8%{0I|j$z(fKl@5Es(S@<>7lwWD|KJk!ch@5=5tu@5J;YmBJQ$J8lotc -(t>C^42lG<9KUE;eyuh+LuRRi8cEcjTDhOKYJn?8)Crg8qEC)0@_P3l^^a)@+o43{&WtKb}i*Fw -a(Loj!e%yq-VeP4c9!9$_LK?`l%7;mx!@btQUS4Jj%O{o-9Ozqs!8p3?bOAd|j9>hAVeF4GBf`rXKvg -a;UFK64XK$ok5QaNH|>yI_Tw=*(N@E0#A4M2}fmi8P^ -8p8n9s_4-SK5&f$)#N+Zl%E;Ga`HX6Armsd{v3Qao3l7CW#1*hU703F& -<+$j4&$MdyVz*DtjEIawgythSYi9>9f`|a2q`@;Tv-W20bg<6g}L72bnS7?UyE7X6`@+RcLpG02gu8M -JQ?AW7fbc#lz#hBMdAdr0MN`A6lYxVAZJ|^q51#gJ7SF`@X7-jTgG>y>~WEkSFYEcX>Ey>uSl`@=L?JIz3P56}dQUx7*d>wtoFQ6dLml)wQU -1QbOO&rc7KX0hwTfem_gtvkh=>8- -SPMa~=zmzIe+4)&m^+$xonZE*(-p>FF`cQcI4IoLHLiy3C{Qdw~&`${Ki%^B2B3Au-pc48(l`DWmOpp -5+RBqS4Kl9H=hW_rEe?BtwchCIuk)hu|^XD}X=!YVRLQ#o*Zg9+;dGl5ht(`uut|c2Bevxz*^BUHzFl -R7l@1~`)ZT1!S0m7Y -up6;_j?uxx~O%_7|VwHOxLicJgWdSFAWTEfZ)8?m&2+hw~KtVB+KxwKg4LKypv=fXL$R3*5&kS7RST~ ->{V8fAf&v?!yQYq(ldNIOuOJwI?G97rJMQySyroZ=^k`VXx#M&tjxtn$CT^q*VhKUwyNc0vl -q8HQp|l7KN9Lr4mtXqrYyg#L71OCAGTMQ(G0fr92%^Z+B|U=Zc6p?1E>@1PW@mSmq#I?pLk-H5SGRJs -6Kaw!JXHdk{=W`N)amZTn%GlaKI%q;N4Ib;0Sqp7P;7%cJSqP0=5`VlGv?KF9XBJC)Ur -o#s@78fLZ5=27onRMenvneEmjl~b3}PewGC$_c{(MtzPDJ5&Wzmz<>A?eX|Gbgr{|8V@0|XQR000O84rez~`Jp-*-U9#t3kd)K8vpEE@ErJ6#P^@!#?k#mim?=v_M+1dlX -&8-Vr*+6Gd_DALY?aZP%09W+XissVd&9yA3GXbCNaD#p?M;5>l~ML~Z0TmV0vcRi#HqqmjE;6~qI$ZI -et+Jg$PL#pL{&8euiCVZzN0@RNWk6-_OsUKhdg)i{US-e<&et7w7UXL3sc5vLI$JKqxK%P5@#qwV;db -cMt0ipMLYj6$Qk>H4MRF;4o0~j>{$M>osrZaNVX@h5I+AIr$~8*4aLF>I`aU -+*TPlD6bXMR4rS1<4l*2wnUp{Pj{D^u@)lQNuv*RdR6vqTBpXm(MAu?Pm!AdlN*_!E4W@+wTqQPV^G; -~5LQTn2z8McuDx{_gyltwG!JKlB)HU}d|;jzl}6y5awN~#iq+E0^iCfzWyR6u3b=J`+4t7%iYLt0+{%}=9EVP8#M;J!kQ~+-G#uymP~={v#qeVD -8H31Xq++F5Vj)wwHTPNVsdFFqLM1jS?+AZxJK;ih{jwNdg)WMovq424^@3Y+d5xmBQDoap1icYzloEL -Es$TGL03$Ac|6!_lYK=2gD=BxM4r)kSm)^VqARr8h#KRW*g9sBz8M0?hl2@I@tfWd2 -CWr2RL{z#k{ImE1Fuv=r9uNAQ{k4E!~OZ~(R6QZmBh}QH2y3sb$R2fWsDjJ?@TZR)a2%{LS=6eF|L3? -L=xpKhhH{@i$zw1{2oChzNWkAYsbuA5C*AhPE6sqN#SZ-DEhqhnTxw$W9lOJB@UnX -c^>wwAmr!UEFHVGh(Ld`FF$|B_BNrRNfw)8%h=b -15ir?1QY-O00;mMXE##t&ks}N0ssIP1^@sb0001RX>c!Jc4cm4Z*nhVXkl_>WppoJUukY>bYEXCaCwz -eO>^2X5WVv&cETYr1U~kU& -xeawcV;jiVDmc!JsNM$gKHu8_r;aTGQDr3REnINwvy(LgW!oP-q0Ep|pE?jVY|^hBvfEqSgouCCM|xr -MLj(bZ+l{M5Sp5PTj%wwpP&rsi4P<^{+sdme?oLHRO!kZJBQ8tqAs&rocrbyOt%DwI)F-^oi#=tPm=V -S(Q7aKv=jB;=A!I1}~h$y*HhDVLZPetXWGs#YfyI@uJK*2~$;y2~(4C68Pp%ukVQAT?L~co?G|BAP)T -~g5h`y9!$Jx99+*v-V`RY>0})FE-@EGm=CKW3Gzp>#~_ -hq{a-!IrFdxSCCWa~3*Z?DX&iV`oMy+!*WD$ReSaMYMB+N|Wk4V%e&*DIi0DI}k@PT^QaNxXwXx7|9& -t}j2ZNJOgR_$Xz$~Jj_ZIl!%?Dpbx6|olN*3TIvM6oei&82BlliGbA7|}hCAb|WmQ$*j7|OWC&9(X^SzO6qC}C<8>H;pW<78_YnBIgj>Uu9 -X(;C=ik;JMwS*~b=&zbaB{8idcR-~!zZ&D15nV8L=}H}rC8Cw243&U3w79=P1Jp57D}+AvbzmE*v -U(^mEoy#5DkmtveIFD8S&Qd0Gf{pXTmq4|}oA2uHw$=1HMUU#=T@F2}O93SYtT*tpp{v5mXbP8sAR%q -Xjet*ZrT;rjyEebC87w)MIbT=@UuV -PVf7J2{x9{>OVaA|NaUv_0~WN&gWV`yP=WMyvA=%pc`RysrD3F9E|RR1=Xm&sx!G&4z3%6Czx(a~wvRvk^OG;O -&!2qq=@(yrx_$ilm!JIi?LT?%?{0p#J^SHq`||PrZ}+dCzuG=|czL(ozuErs@W1X~y?P%1{_)43U*Er -Y{`TQynY -k^eEjL*(SJn4+gA^d`TC2;yXSB3UT)w0YK#BzQO_S~>!)AiQ9r!h-uvYDTRG1on)uDPf3SV@>ecp?_r -BSl-o3ed{QKR@9LXmSuirl2fA@0?^Sw8}|3kd8ZGUm+}{uVuayS;tbzWVj;4-c=e@ -yArXy8rI+`Qxw5+V_ulciWqX@8A9s9sA?<>%-66i|4Pm$GeyJZ?gHAh_~DG*DpVOc#O~g`0(=n`(JtK -=hrV|IQ07M-Q$mM-p%2kzxZbR{O(Qkbo=w&>$}Go%~wBv_v-#deE9SG7k97U+-=X_Y(MeZn;-r$Q=ie -1udj}5pFKqL&h8(#yZiV%&;I+}2Y(-({&jm5tMT~mlOO!%6#Q -ePFSq;GHv2=&ef$y)#z21wv)aD9+kSp?_x;bWZli^G@Aj`xp8d<0-#pts`r@zKzkc-e=|^8Y`|BU$y) -o1A*I2)7>Hf!`!USJ#F{;PsuiyR}9ghb7^6Ar0{v|%~(Z^3dfAZ|F^!~Fa&%XHd>#w)ZzI?iUw0-r_( -`QdU`R4PFo^D@#^Yp7Pzy9=tZTtG}?%fnKnZGs3|7VK7k0yV7h?#tO_xAbyt2a6HzsB;ui4MMcx&83` -?{~4xFYfNcqPFL;MSlAA|7#6jJ-q&#MPI`}pFO|-<@xLX8crrQ!t=-I;#ZFkKR(d^*oQyAesTXQ-uT~sc>DIJKY -aM%FTecq!QIQBKY07gACB_jkMWVm5C7TuFZI~A_uv2LZU3OxI!nA%$9(tFSjXU{QR=&wR?nBpUi8eJA3yo?`1aX -fzk2e?N1uQDrzc-Od-~+#Z=OB*@{4bueiZ-9A&gk4Pkwm*h+&0M{ri`XdLfr88~Ets&p-Y4>nH#7Q@Y -;Pyc&-E_Vn9lUw-@9(@+1$w_iT})2C14@9*7&(=4~;*yG38=WTR(+?L+TZMfy*HvW3XkE8P2ydC=#~rypC72iIE0?bi6`IHMme9$3!FW443-^4mCWqs5(poblIIv)z8g -Jj@m^`?nHLZzXy(?d6JgYmK*-=vzFn-PX=u`{A3TCnF}U?PuYAoyoY`o&6@}$jNIAccj2`vq`4Ml~VtX@lu^6Q`x>I@9H4n#r6T^s^*$2bjSr2~WS@Evubm=u(V@674_IGD`u_B%R#?< -DFFhP^wX!o2q@$u-)z#h(6=lH>jV-zRjn|<&j{yKN;p}0oz=+7gP#A}_#<1M{og)`>sjQNW7E!l33bt@}g-p?={XSLA%Jtnjq-SO=#`_3mBN -Q^#u6;C*#wQa>e@ -p!;TKqh#q0EI|C^gQHv*R?Z8F`%M#WSQxNa#?A1}P{+{(FY|yF2D}?=oIkQco@o0!8X5UZRJ;J(6J!6 -*I9-VG!XNxz}{c7)q?bbckZPB-GkLbdTZpCad=2*s3Vt!*~79Zj*-3`Xf9nr=S>l>RE#}UgN7Cy7x+H -Yduv|D3VSB){(cz?mBW7+96txb1S?Bn=rp@U(2@oRLNg=!4*C~o?+v)cEY7)zKgJ2l?ln73G{5^EG4) -YKa*&TBEX(N(rE{he&TuyHk_IG}?`BtrOFo@nE)E?73LW!9E@iyz-dd@D%aeL01b~ -$2mO0&O5eeyDRovXG1Q$)5)5aiCxC>#IrEslktV2G$uLr4|X1}#XB_ngT;%1jA%F3{A%|&ZsH9@3HK2 -m=seth`s8RR)*VABd=e+YZftC;IayFV%EaQ`HMQnEv^~~sMh9aAEG*;e#hK<^v+{(Kd0>(o1K(`})7| -kD@l?Vzrod>{)o$IxpH;R?OkO3vG*&AH6y4G>+vL%)k$6lPyK8yGE{kOe19V&m%Z+m{x!+owH_M_1pSObLno}EW)gtmD8!AuiS^^;pX|2zpF)o_>lt&JM}ZM;kXj$ImVpgJu&AAP6Oh&voO_fC_`x -5RIwyDy9|VLbb_k7K;duPYu4aIBcJ5l;wHh)$RA8R2>dJ*QpFv=CoM%t$ySf>x|x{Il`HXI?Ov72Z||;vDWnK9b7V_TQML34!#ykUd#9UBi8MV?w5lVtS&7U7lY-mcu|1@Yq`$c7d>!EG|4 -;=$pe_PQ!$Ulk}Z~OVudVd)8!E7BVfcpVuaE2f`1Y)5l!$YvE7FG2QC^8LXh5f_4L!ge?=iSkrmnMevDJH^7P$d%;Cm7k(Xk?Dz*L*SAyQ -2K`H3|5P7#T1-)EOswl$WVOf8Vo#m1$<&}SnXkxgFoax?tx1p*kU@wvURY*aN5o3X2}NN0AC+C0~2S% -47|sp@iOtc(TQ+K2K%(L0WPT^uz~L?toWKX9z&ZEhr-w531ji1HKKJaRMRrfShs+I7)2+v8N6HKvk|z -Y(S?r3h^W`t2teiNbZ1A$V+gk52f*Trsp|AMS_5>2!4~E)I^oX0`rGl7?uKqJK}rD5&Lm?LZ2~MNE7; -*)o$RD0^p1-42C9D;Nc6vJC+z1br8;{TZbq?>^1Du=~yzta~Hob;63B!0G -9wAwo|u31dGQ5&43ex?tKt64ki@H$D?B);P2&(I83_Ah7DWHb_17GTVp_BL=33u8W??aHJ&hWLk>JXN -i2&I67FKE0#;)WyRWfpE?hmqB{3|ZJ-r;RE|7rt3;Yj~l8TAP(lBuRLv`kGZ_6+aNUP3Q+HYWho6c^J -g(4r)1DL!RVFoS&}?}o>I7inR5q6k6k9>*6|dioTsel~%n_8YxEbCt`~z07K>7*7n#OXXPK+%&*xjjmFNes@c7*|@E2X>zM@$88oR^XBiA5)2Vb-8CXH -lB|8$MzfK1_a7!%FQ&gFOH@2VQ@sXiBZn|Y8PC>9*FmA`JHTxQJFs#04xBqF(h*4SWtY7u?hGy;$yMg -jWOVFkGi@dP1*mRY6QAxW70d)gehG(rT8S(htJOnN&xpATkF%NntHe}KUJi$zPvRbEx-ErTfOozLH5YN -Piui>|}vjbc*3^HNF-SnWJ?g7SEbR{@C)6bnJ7(AKMpG>qAhXMTAC9J<= -W!}jkxR7Jj{LYfQA`j24T}^@ufz%lFv@lVmk{J|xB&X9!^1TIFK6y8 -$FNv?m?5U+WLjFsDB0VsyZspT%zbqGX(=qDh(<{@x -NuO@ix_5)NlI!!h}otQLZ@4;&6cNp^m6HgYoW7yNDR%R*lri9?kWKU0*o=z)dsah78Z>#2BM{8m&rfzb(rtY^baR|$xMGjyu -inFmN5h60M8xF{(%*Ox0ddh4zdxO^bL-q;zGhTC4M-;B^YcY>{cc(J`N=4Hp%iZ(#pi21J@upI*l;&v -S~LkEQe7&?JQDQ)@?y|$admVP30j02z=d4N(9)+GQ+(2E0C|d82SJ*E^KLDdCLi3(kE|i#HhwD(_^wZ -U_cAtAezLcPBubkMq~#B(%L9#3DGPNhW?Bl7~u!cKwcw43_L9KYO1$|p#glGth9I86h8Zj}$bB<$rrkz8fb4Zn$s377sX=-~YB2$X%u+PO?q!$n -yGF^ZCal85fyhVJ13-K551q&9omjWdYJt=$uGiULaO0%>8{WAV!CaSh#&-(Bi?sYTzky4l4cOeGuVpM -GTa6vnT=Au|g!=*{!DB`zm{p)8Ua6Vo!Y9<)uK5jIQo1jjvhd&qErKI&?rTZh6MB{v=YFf0M74{5T50&H+R5Qw>xyEptpF?+R&H&?D(3tUnR>{x99!w!>bTvYfj=` -M`?SOOsYdWT~iFyaHMx@H}+kSzh#7jz}o)!@a4&SfVL0L;LbRMSdIX~k+mac@JXk?%&rHfd7qA>q8T-AR1wi~x`}PGbpO0HLrlgISHP -Qoh4Q8YA^_BqJ3{qms%G3EYcMrG!JfxauklBmKi_@ss7W)5DDbQj=(v_`z8hw~3Ap9F_U;k^7>7OJHJ -S9zbPaCdix8l9MHMtCF>Jf4K92-cw>tCa>^Rmc?>h@;k7;;U_^r!tL$U17MOQ)nKu@Tvcnzg9d@ -8)2fKgOpUFgL9P08Va71vI(U9*V&%x;DP8-X~Ff#!dFXkL?XK4tWQAHQxS?Ckn4O~*ei6b%griR -Ww_fQ2Jx#bdZ`VZ#FHJ;_s<%r5~agTUn#VNa0^-Iomzo8ps5fWY&cvB%M?>6 -Yy=>4?VVNgbCL#-El7rT;}zyXFER<;E>s6FKtaQBlxYmny*Uu9+hlJ_cmUjRw1*YZo_02<;}ln1f&#X -l3Pphkt5#6AVhsi-p`C-2tWcA|RANYT6YYl43#UeE8hD4)6i?rFCzSXyMegK7OPY?05E#h)#?e@( -&9y6{ZU<#z&~1g;jvk-FhhV^=eJ*xYGM$4^3373h-&rlI-I}TkwV -ZR3YBSHJ{eqON$uYI2M_tPx>`MtkQQPjpej7wfav!x3lwzazrj>Nx9Rgy6xQwm}x_Dr>)9fkz)1ib~t&E-1;+;)Cub<;D(eBFNP6k3QdWlnK_UpfEjh0hnw@v`JL2px>j(QSV5K^VjEWc5HB-6%kcOj -Yn}&B09X_%hlTz|%rMej?FKICNI?2-X;WeV_qN#gQwzmAQ;)4hf}Ds1wcqr~K*<;gwHgw}yOV3PO4QMKgZo52V;GZR0|z$Jy!X5?#xtS -puRL=GayA-70cKr#uGjKBy|gFA>#z+2$qNk*DQ;VWJ&>o^#e^FZ3s=~1WM4R2nc@LC41#VomkK88J8t -@6N5;H+D{;_(8PP@5~&B<{2%g27nw$qo)ax%k1-p8kPE&|NMmc3>3NQfK3VC$uyGXlmeTUS}sdog6O^fbeS5RyR6)x8|bs*uesN-a&iac=rohuU3(u*PA4ZTR -0qewrXZu>S$-n-+W{^?@KDh|bjyOQ_^3JrSSSiYoepl!YM1_l|CN!)3gR^?I=P_N{Gu-*m9K^yo;j$Q -;5g_JTUg$aGLRw@>L)!(^W|G$f`QpE{r#$6gu@CvS(h(2R)JuI+Q~}!A$<%!Bd|9-#lQeNH1pOFL8v; -LtRUs@_>uiRspB-YbTEbMw7<4%8?*~tf(EU0dSio^nGzd95J9;E1@OP)oqsq3msH|QYz|}82_NqhKzm -(=mmmWS#Kanf&jw#J*d~=aZ#74=mN2jQcEXpCXSH4Ak)pN2({V32FwLW@IF!MshPO*$0=m>};bR9&*7 -plPobV-t^QPz2Qxw4}oGjGUfXyxz%T8D`ma$5&uIwNfVQJVv!*}z5z68^WJ!2xcSRNJ%OX_l#V4!AE> -o79fxbpx5u*-E|`@`Ls_Isi)S@7HHf{I9=&TP3__LpFb$OP}Pksvh7+RZW_5x=SrWTn#u{d77p`{Iy;jw+IEg6&qnAcdGS%a7ld@rG5+L97MW-^iG+ibhwOP-+5CL`M7t+m8{Hl4SH^F -@kE#D?-vB}`z+*c07QoD0Q^Z|Eb;%$F75AY?B9PuIWJxP?7WDx<-(Ww^HA($a}6=OeENJXhDm0JJ>0Y -FP09BE0kD;Z+K#8#tr-@0YNT_q20ep$J5|0wJ9fjG{$CRruKhj$7loeduSp -sNKhhNDaUCUBT^vQb@V77yw*zvy0TNxbax;CIv?(5~=(PxFUAt0EfqMb}W=+qhC3c(bOGx;C_m=sgd* -1>|BL4l+bEe+6gRRW8%tCP59GQL|t?i3G~*>y|zP!L2k`T2K5>7vOCX`C8<~`S{FvF^x}Z -G#}^F}_gYjS99O&OUV$~+VrZ%Z*r^>gPOsM8T|tFNl&K}n9sMCZkbNPpAasbZcxJnSOWM-g?Cwt+$A= -qQGQq?XQ|JODb=Ma@x9-AhszM;ZVQP#S*)IALl;`n&mW*0O6@HxZ@z!A2e(Xj#;Wo_YaS{NWVa}mEr) -JpCbwl^ss})*>Y=8(@vr4CnJC&THpadJFV$pN01!4;+jtocB!6>@F>v+(IejUE1e%rU0df^rOA4B8MX{N`!l3|b45-ARQC;cXn2>gc?zL63VzPx<^;k>`Ns%=Tz|58sVOc1 -)pL8(st?#<+X@6BLTrO()0>09Li|NrdS$&j;YKZW_R)H49 -#e1|WQO1Jh-<4v8X9Z`Twe;i82u?j-)I4y2E(-Aa6GdMw6*D;fIh<;MYTZfn>H?4iqb?0V>uy#`Wp0sN3nGCmw$&DY3Lh -DPjT7`RTDfOZ(h^>*0atXI2%ONP$4QO(1Zb;=GKE~=vtDsHeY6M&mFkL_|Z#f*R&G4*R*S{ghP^_pwH&r&QQXq;Aq)M^S5mYykoRq__?DTfgQZa7mXw;NwO93|pxRF~KpFFuFku7v^hJb2^Cc-7 -TSd)lTphAf)XEF6n49wywaQfiIqUP!&4$G5SfmO3|g7jUMXMtazwXqW}$Fulr>W=w7#G?bRXzF$$4KW -7!+tu{AB(MS(HEg;Z#=TI7VQ+8_T4D7bJ*w~j*`f@JA@vgB!%)Cz%#iDgjmolgQ~2s~_^(;s3mU8JOA -&M&&x+B|}SA+p%9C{VO!a$ps9!)Pfx^rVS}WfF3unusIyTb!6m&jE&G=g1~vV}+0;uw3Ul3Y|7rP -8FzHv-=;dqDSENQf&Cu|f)MVq+NpfQXpFE~SAG$unC`<)@9ippb)ZwPo*e9?-oOb6muv6{$vBcHsckO -Tn;EyEd|vSMk2)e7Pk+Z%Ve^SUvXzy4Py{CY8CToQ7p*zk#*}I^^z&kRjxRP%pLt8nW0c_eD3`9^mP27~(OKb2;GR -q&cWa1*V){0k=OpA+09ddd1I2DbMA^ty`+ngEbg!L_P$f`7--T_`NHS2T@kydzw{fUvHLfTHR26O%B` -A@#-LWQrM%_L3F#;}?u!w$|4tme0gR9BQl*D5N8|t1~RCrMO<6LNmW{$)IRw;SUs_qpwd84+nEhU^Dr -zA~WC@*EuPwRTafv^YJFj!pkI1})odZcb%_KWVdG^>B72QfjB)$=Wbd1F?qBju@{$Lx0BA3h8E1e-qG -{;Bt5p&|~+ai;$RKnnM#3Q0e12Yrp$i#A%D+Vu}vWW@``#)Q8Bs2W8P=o$gSfdEv7|TmlA2c1u -oasP-q=TPA@}qRLZc^hgkf!YM4S4t)TtrRaZu*I(*5xbFeSxLLn7f$tvB!xuEU#ff8_E+|>e5SQ?YEO -xNwq1L=SCWxLVySD*MtE+*%-1A^_gu1j2ys=^ldH-BEZCmUcAxb<9ZdO3PT2`xxEpXl_ -lC9n7hLgty_r$}};cB$?bYM{+Z>%TtPexS2H`cIdd;MPK4sRF&ienIbh*XRFg+Dcwo -Z!30gGTMiw%hwhyF)!)-~0|^Q>mU=ZA8 -Q3CnR>}?#nMm*y73dSy!s=EOau8%)f~B3oCx$;;Yy>D;E1mK|3RRM_$2i%NL;4tQagb0HP+2=X1eb5d -D6(GI)V(Uf;FxBED=P$GfheM)PAd -<1b$3=ZfZ{E=}Nn&aGT23F5a`Ldp(pMXp$znl)B{(JRV7+U#GjF$WurZ`97W{JZKgivG~+;HFU3)EU4 -ojHc2cg1rngb@!q!d=2V4LCPIF0XeA5&cQaQ!ti~J$s3Y42m#{Aeh;8I44M3d?uSG*#L-jDAwakpA`uRW>iAvkvV53m5+RhHZ1^v7=Vc -#)Rbd>v2$Z-LS#rh>rQ!}LPPgD$d5PAaHyEg%mg6NrOxyj1V!cV&^T4+g9g9v9>-H7t{fxpt7zz68?& -{ckg3HK{gBY{L?D5r%IdSXPol8GB@Y>r7K}v4?DtbPCH(`s*D9Nvf!);NG(Ca-Tbe1$E~_u+LqjDMc} -%j5BIiFm*I`+Sb~z`k!q$_CFkZE&3_R?clT7we{SY~l$GyAyELQdKL>IygSb>)H*oN-4K(GxpVaoF); ->@CJZfj=R7y`zFx2iylt|if66iF-OmOY(w{2ac)KFt*PnsR3Y>+Rz8qZ4py+MAtt-)XkTio&UW)W -u@ZarxaODhIItfL71!t<5%UN?QX>;$-oHVjb%1nbBQ(hS!HggzA@h|%!h6+~?Q$N+8uauuyxJlUop!T -bu$2NxNq~%-l-^8X33t1yGnJ84a7)HbfcH%;mbq9rcUkuW8Lt&E1ZAciyEo6(VICY~87TT2Wsg47GMV -3Z?FKHXlKs6XEn!DfN9nrA;%_!dF!IRl^7$m>U8{AMQI7?}?a5a+b+4WP*z>|2J7Z0ktcip%Q6cuzmH -K<`3r(X38YP3&?h?a#t5>_6$2s%ZEM5c%bEG5X3Dw3ODIus>H&tE>cMEBfhf|?hx+b3I$>5>kqX5}_25N>1HJGsy3 -RtCD~qP$^Q#S5pG_2bI2+kD%`xT0IYP)gSuBmmxrZL%p_O5`%myaF$B)CkO9}-P?1MU42vv*09J --M?^EDDftyx^HC_bOHFeUS)60_x1_~)8RoTaCu08KhDqjHM&9lRxq0!qlzt(ZcRur-+(bfN=IT=~xlu -gDpjg-eYtKvSbz-h4o!v4JG_h7$yQIgp-JjmjJJ}Q(#EG>0z;Mg_!gxRU#l^4v=*P -dXlQs{6euXa8Z+?plZ9#b+a?@+q(^!Q-KDE?p=`YMzG9BZaL)Ts#zH800{Qz=$ZG!G<2_>w7Ge_6`jH -mKBJ=DocJ@z5af37VMr0TQw*(tQrqNFG9uEt@H)EJ(Ji!lETdRV@kl1{*<$+XeF^|Q6V4ExEfET(LcOThiA*DsV}NzoRk*>2UF}ZqFX4RFu5}S)R#HJ&a` -jo9+`~x>Bd!~a+OGw9q^XVEx_dHmB!5Qiy(wzYhj$D}Z<<*b*Ufog=OMm=wCKryfJ-({3ZzQf5fWkYJ -bF|23Io}|56B2%U2!0)O1uy(l?AF&2{$@xNNANYWF(!0s+%Reix=u%rDsuaSYj#*FJS^X@j_^@;9$aLYH=tEgoGf;h&2-Cy3Ux`@{|5Hc?@y8n8zwHH{z$CME5$B1rsBSC!a_On@ -R{(D9!aCyQ3J{EmL@Hmr|8!H$O?(RasEoy&x(oeAMDQL92L$f#OW3&k{cFt -(1!=NZqUFfAO5j_>&)#2h=6T1cdHhG-fi}tmCVNJ$MYu4e1D9-S^aGHgvC*KsCH;jBK#NofhxWN>&Gc -1vJu8P#4{|+;lgC%CWi_qJ?W7(3dD1=$^9AIAniW_Cu#FI;P#?EV&2$C;LqdhN13R07-j5_qwU#I&6r -{x|_^OfiL4X$$(ehWS)gr5GNDMyll_8Df+$C8#Q&WdE0;|n!NeM-GduC6uW4@2nt!U(LJ1cXo~m@W22 -TyW;EN?-@qjuR1z3`ZomX%=T-@iytxQWEMNVuU2q9hTcvE(bf0MBs)zAFG` -*N8pk(25soSUEgw5}8m-T#fFvQW9>5d{AEE2O1e(*MjL%%pu1g -#G&q8TvjboB1YvK{m>xG?d9q(y4Nj(%#g1(atIb#EwVN=%!3rKqZR5+$@p+wUetsVx%!raAGt5kz1HR -V7B75&oKxJ;^XWd2L>myHNOh>~BqDKhMsG6Alrx5Mwd+nagro@13fj4;T7~n*%SAG!tIlT&`(k( -C(%UG29tDqs`57nr&i|!Q+U8^UO6NhMmTYmcaQQu_ejp4yrofSUO+Y`0(DY-m-i$lU86>DKD+eKf(gB!<}i#l&b5F>9%;|R9J -CvSj(^Evcl@C4klH8>U9Jkx|+s$V+1uI_cWj%~Ip!+{&}Knp0N7n3covf=0(Ia1}^*(OZ~89s)<(JJM -B%`bJF;fZg!Qv`jLqCk=2sxD8}hjXpK?lrhPI%`aJ6^8I|=Ez%eUvzb^dRT95^2iFEsZv+oCwAsB01u -d|_vCc4Mhxp~80SDu6);^o5WppIQ_B-qGX;hl88V2=EWMEtfINz)h?)Jy)OM6}L+sH^_EHbi(Y?0i{4 -x(}BNQHcG)kGyq2HmbLsT1V=BA)!s&>uk^Ex(g$z{LlUdiZs^DLIJw|Y8_@;-6iOIMJn6;xTh3FfSZ) -6lf!g~dZm_m%uvNB3HhbC02e?%EXl(+TxPS9T4YWhwa>->hZod{|Yl?XixZ@uH)99bB$3yyt^z+E74c -AsUp^W#$ztNLmQwOa5@7z+mS1B%&+prrrBqhiB3dNRX8DJZ8LnR-iI3^4Tm1;ZLpq4KG>*Q4K)>jc3p -p*Zit4@hFVh0=vh1XK~+kss9B>A*|_CRBF$QngBvzQnj$EIS@+Lp7nWd#Ed-4O9HBW^9EWfuBY86UKG -cN!-s99zB;^tLAd~_J(~L(lP40kUDucW}aSk3DEP_yu5=zoq0FsC&RC2-{8-hR!-nyzfo=4)S{k7X0%1hO -<<4)G)ISx8>F8@$rnWd+eKfZc1wAanigdl%i>7!pH3rQv`g!e0+36nt~v7(Vggyws?yHTz1E)ZA{%sv -X#Ptd&I~#a6rEuMYd1!EDHKU0i!nHjIyi{h*X4KAz2aFmqSfG(XP2#kvF#+2<#cNGKro6Rs^LlK;eA0 -~Y3vOQ#IQ5ZSwg#$XUSY>Se!09C3M>(^96e1EfQI8fxO{fVZAQFRyl4}@J0 -QN#4ero;bnJt56}HdE|c_nN^hjG1LVs!57coyci^qyMbqIxs%KLa#6ozq3>rF1OG9?m)8gKI*wkWrG+~MLGj5`L9kM{kg(?YVttLBoEbnx(gxv+9c -!0b;MqZE(;x0H9%%h21smtu@UZFJlQgmsmX=QYI^R^d5`d1#qu?270qEFB_c=O`_<9C)?_8sdBYBL9hkNXh#-)33!2OH9ui_ -&`O$^w74k9Ec2c*}(Y;n=NZZU?S$qR=NcIK(ReF`9Ko$OO!Eafc`qO_hqB;M-whx`Gs|n7h9cGgrs^u!x^Ygp2<2oCyV@RgL|(tmw$4k%>E??{zhDxLKm)ER&?Zmp;c_tqqfrFC#yGP6 -RQVhhqk$M*gT^hy9=3PoM^N`_HQA)MSZD{k(7%;A!yEk -WEI)2U&-wbl9A%zHWIAHm@MFDJeC@gpMo)RHYR*%EM=l11cE(;rUr)0g5b9*=4?;BWI0>pm2$nx-lK? -no_ga~&kOLpt%EOGPRnM=}Hy}fp1y_>TR(O>c*vqz1{d#OhL=3+BG(>Wq2HeGkO3D8ig#Pc=eGU%Y?@-GvLq_Ghs>1PzauKy03h%r^3xt&4wShCa@T9u -e(~a)2IG7WOQQYhh;CP)L-lKcr&*^2Lc@Wj~%(#MVm$dJ?{|xH&rg<@=Cz?o4`tmM0a7nku?>(G=6PE -|cc=J0v4o?c4_KCWPx5Op?K$^t5*%|ML0gHJoaQf8@b`VG+k>ZUX=B(_ClH+n2)q(+ME`NsZwQy2tc; -fO)9{7q#z+QTVl>DL5Q|3E`|WRmEvr~&4Y^ -4dVs);u%YFT8{9wZdezrpAd=rc+1b=Ex`D^@kzb75C;Kt49tKq-NuIJ8z|--Glq^bVnpbd1XE197Uqu -&28EIkSrTIs&;z8H*x4xd<*%?1|NP40h|c!qI+!~h4h9qws-e_@NT&An;ME2$3kIxzMNxCQq|t|p7G5 -EqM&f;Y&yEv0o-mquZHEpOS~LUS3q!@UQ1yvw+TM6dEYDbRdQQFm-2$^{+*8QwPc(Hu6TW=m+&@k=%W -q^)M?0Adhtd@YQLWqoDR=Rn)4Y5UG$H|Ih1_y|_sdIQrt<4JGQ -O#MojH2;fCV9EYpEpnN+=J;xn#`w@~`YmQlTk9PDX+yxB70~xK|A&!kD6rt_lz$!|?0_55JNCXy*5NP -_y^jbEXbS?5YE2;@7(7f$zsb!!TyPAJtc09*V23x)L^c^OOpv=(%yfuVZ;oQu`%Gb2nb`0^Ms(!K7G| -OpYRbJB^3b1C~VrZ#nczl;#8RKoqAfgnK^0D^_RThu6`)HfcQ%3wQa{Q~2zd{X!FM1c2jwLDZ{V@Jhm -w+@|-vcn|&6E_}%@dhwE4kNdei764>yt>_p*QpXvfbox?N -@)fS52f(qAXOUYs>CI(Y2-y%hoAL_{$Z$lU1{4VFJk~yNH`$ZygrIfNDUTKb}bjG#+}5r^7`anCOi--hDt(y#Mv7B^Mv -lJNn^4!@?qg4OO?%|C*df&0Wh|D -=u7^&UjFNHl>MwO1Tv>q}>z+CB{I3!s#Te)p%k>pO`hTLT1*~ps1ZqiW9ap>h8@OahK8~C>h*1wHPiG -Lzcd^w_cmSedhZi-;RN@ApKE`tPH6uft2Q3mu -ab;cfSK~zGv%F^?@4sAZ&mG`iOp?8^+*{v0o_IPqPYrpV*wRVzsoX>sxQ}1}Yt^yKYWgR+Yhva7h|0` -l?XaoF`OyJl?%tjyvztof(;t|V36Qk3%c%UQ`&2w2A^S{!#+^8kZw{ -Z%ly$#wjU^`AT`snJn{(JDpAels6o;yb&?{K$^K^aI1GorCGhTng`C~IKM}JbrvL#4qE)X`%NGAoPm>PkywqT>s1FrOvuC7uxl&tUF2qgh?`8_q3lT*+W_9Ow1*d!qVBo$4;)y(>4&d?24Hvl{_tnhGQQ)jhd;!XgPU)DV0{>g(<9ReqSDeWN2}`87fMSL4E2<9)?4VH{0oVV0i#WUcq}Jb?#m -Y?dd}Y?l;7AzgWv@ffQ>_hBw#ygzRtgoG=wc&aZbbNd=}Jhfyha0nHN-$bzUtu}zie=7*m^*>q$Fvc-{cU@O|4#msdA09QW=)YBN&<9bCz6j%Y -ue%=hyz)RfeQbzTz9Y*WcgV{BKZ80|XQR000O84rez~%jaiiJOcm#-39;vApigXaA|NaUv_0~WN&gWV -`yP=WMyAWpXZXd6iUMZ`(K!eD|+d#4irux^asD*9!_%R_xTMzhK!Y@?_A`$|g#Y21zAQ -fBg;RuUu*acY2bRJHy%8)i#@#AL{j=h7%eMjnqO>Y%(V4Xl#BX -~;=T*W6u3d$zww_w?Ep@+q`3n>m(>oL?Me~sBXwHu93upUEVxzs4>k?(Q-0k0p5RHZXMKh^3Ru=Supw -N>yG^_m9=tKRmO3AeqwhFH0mYJN%{VRk$P-RL=g(l0HbbERj;YsN1qp`pjCX;y;LZ!}7PEhUH7VhZb( -_~2_c2G)Btl6TPS-Dm+1$ZP=){aRy+J%_go}C&5A<01q4GidOcOQr)&cod=Y#k!>snb2)c3^B1dfgH} -=tnnq0eB116)AMX9+91k7Mv^1Na~t)3-9p)LKOOnv7$9o={PS{8w|*$pTouX>2g8QqnV_vi6)v)b#>#HuQmHPTKf3y;_Oc!S -wynU9g<{+s4qRoi^QfktFmlg%%`$4`dGNfilLnsb`!IspAOPyHDNj-G}byyDrf(LFC#){mJ8hTq?~*B -e$lYPO(n6!aDXlYu2bA{R=6#b;h~!=Eed -{LrDb1QO*i4Hn`;D0=uIg$SHW?p(D6;<}YBme*>0001RX>c!Jc4 -cm4Z*nhVXkl_>WppoNXkl_>X>)XPX<~JBX>V>WaCzlfZFAa468`RA(HGa%!7aw%IJa?LwhG(ekl5hkr -Bc4FluAegOd=#!Gla0eexDu*kdVNJTx$2~s8nobdY+!?e)?s`$H(~}x~$(cTXfsJs<*mzy1Z>)eV{F} -$4AH18w+ZOawL7*qpQFbBo*BSze~@v@qIFx`O>j<5R&6b;cIdrQ$AWQZTeD6th^Rqg%?akNWqYF4kqM -VLMz9fiUh0-e1)&!GziTX0MmUCM&nK>Y%N?GEDT~+l^rtHbOBXkO@*r>RWB}H0wPzuOf}D=4$CU)2qn -U=!i`RH75F-ogBgxlP{mgmA-c1}FLW=xQ79*LLfD}u9nk$kj{`qGKTPGxL1>2yw%RZhf>bcnb8PH2Er -J<2wojpOrHbHT2u-%{o(3V-PXbpC7d$lcT^xsZtwlIdOB>#_`gAK4c1kzG7a>k_KO1<`!Qxx#2ww@Z6 --{|ejn|fH@J71vMyL@0-dOiF35j{u{Z)htBXm}-F15voC4#RDw&wlAn^Rs`#HJVI!5iUnWjWUb>yx@9 -eFHm&?ePl$anLzvMFT-IC5AJv1O&*^$7b(cyWgW)>w!MjI-Odp_wX9Bury}jzX(ZArl6opI8|u-dV!4 -t;I7`edWRLY%jRvf_rSYvG<&Ujw@Zz7hiY_R>-3se{o7iH?)#nlcDG(8>I$(mF&i__$SV^M0XYd^Nmp -oFdMY~l1Kg{yLC>YJ{Z+utj*ws!*$9#8VlN+hfj=_m#ger_Uy~e?ALtUzLkaGHeHrfpW$oV*Nbi(O^r -8wO+yCOh1zjv}$RVH`UJ!&Ox(t+N(YqSfR?e!`%1QNkrApNAVr1Kg>aFW1CY9r(qhT0Ks4QlVo+BuJW -6yE;6zct}-bV}W>R7$D)#%j!ZM8es^-hVR894E_Zgrdgsh5su%O{q6xNlz7ZmsKPx7TT2_Iu5C%j(qd -qqx@oCEV2hp|edpW}c{>B_Gv38k{|^o~6{^T=Gz^{&?ys8(7Icx`lxpy-01~vU&3&SG}2dg7Qf2QN^F -7O6h&y?B=TF@yE3qsU13xjvUWcs3K!Kyk4ds1VatQXQ8Aj1cT4Q(a7q?f30@^=ACt2>(#8@yH36Pu6= -t=Z>d^2J2wK|ey46d)Vmm~lrJvUW39Fss#ML;U9;7^>)&O8o*$WcR}9IrBx;al6_oIXv3~v_XW7%KM9 -6D<;F-7{3C-o>x0&!Aq>hlwfib3oQ^ns4kx(#60Nn`P=E*{_xEf_`Ws4VDIJu+up{$5Hzp$?cr;nQwsLJMH_DYn1IVBb3nBLSvFk)>u!x1RCe -{;Vk5e7^n7f+BkYKMU&!LZh}^pX;kuU>9YCqtsH3JuuoLJfN|6I`4H`jE)>_?iUu}__3YU*GmdJ_+!x -69jwe7MuHJBz7LZ67pgD}{&Cs()>`-0`NA39NxYm7dt{7MnC|Pw -h5J#ZZff4C!qL&4wb-0Obw83OB_-LH=wqh}zAB_CDD1>WFTrw)6| -1D4WX_K=U$HHyd3cm?gCB$wuoyKmL4*RkIA9OYxgsKu;+|8jRQ^tC7K*j%j -47cu!N5RU!VhMnvBf;fwhm3rL4;cYSl}S3@x=?eR;7gl*sd|sN)M!uzYIZV&QTKvgiF -#GIIEu2~(gk&{56XkY#(>aZM=^Is(BxiN{KKpGn)9_6KvpT+w9aX*tE-mT>0oZm0SlHRe>#WpGuO5@; -sZl{XEG#JlWk&3z}gvEA13##Y?bf~wgR#@`BEGF~i}SIeK&U2ePG?dmu;?|pkTV2@n{_oN$lgSa!E^g -gbfS>m+K&XcACQ99Lx5DjIhG#R)kSHGglH|LyAPVjRmQnE^be(r{>UCoj8gQ!MEHNZ!A0TwbN%ec&=h -eMa;j3wxV1}tjK_;qCkU^ZnO1RE_+`fKG=GF>NRxSW5xI?qk_7w1T-g@o{lkuB0sYvAf9Gg@2M`)oUr -OX?4uA4ckY=z~d}`)Ke8sZ-Ah`;mI*`@(^w{?Pe8QV%Nsd!)XsJe|~+mHz^%qnDW7D+Br%hWFJviSG`I9Z63figs>OYyA&GH7G+fHjiyspU+mH -{7ge|Y4yW(Kuy>yQ#c;p53fEeIc-tWup_8tw(c^oc33o893Lt--`Y8#!6xvOSkW9zlA`r_xD_^6%d#| -H-g^*jZY4U_}H&ntTcU-x~p`(uJ{8}ebnm;a}MU9p$`qro1bxBKr12SlFwoVZ3F6nQV>@VOY8XcBugS -?fS7(F!T}3k71PHodIIwJ9;dZ&Tkc8XKi)Nsj8vmpSnPoJ1((X{uMYXsYk0sa`=KKCkY2C|yV1CS>$; -XCQCpB6erv(TCVrrI|_Ir{3THu=`X#^#5PP^G)jg{dZQ|KlvuL`wo>Tio0%4iJF&pZ?d1(DgFUaO9KQ -H0000801jt2Qi)k4h;jq~0Lu;l04V?f0B~t=FJE?LZe(wAFJow7a%5$6FJow7a&u*LXL4_KaBy;OVr6 -nJaCy~LZENF35dQ98F%XV(I7hXw6q@D&bsRfq>e$9F9HA7kmPYn+>s_G3O&FaPSi&Wx%DHVapvo -p^=^URB`uBsn+=syj|FdFvy<9Qz*Mw8wjP~&^mxPrw7VWRn(OD3SFLIiH$S^dq0VDx*tjU^A5RT=`pQ -CbMd$7>X!L&+_t$VYrdp?0W2MPMs1$$yO21Z;-~uv|$)KlM)O^alaMRO!qfXk->cSS2aq`Bh9itX)D^ -Z7ei<*U-7W{gogp-96|E0W;@oV1@?uD~4GnJteK?tC-Skn(N=l0`ScAcbIaq)_e;$KnyKd1=GZCl+5! -dsRUnXrW2=Hq!GcW$i5M=J4jRv0h6FHn#F=6lQaX;cMZGnJhEL-qjL;BMctV -MqvYEy!!2=2&@c^YkU4g9((Kl)EfqdcHaPf7rTtIjH0^ho`S$Dj6xg%dvnog;H8 -4};_s0BlytTdB0A>st^+@JNnQbhM*I2tZq9Q(m=G49XjFqq7s3)AjwG3+fz-5E@mv*~2s_W2#OFk>=miZ0dndnU^F7T<(+6G)e(8`ClivlEU{2u!9uf3FD5YEQpp12{&s~abf9`bJH=Uo`9f0MWEOig`$B*w^Dp!q0q}3 -KYlri-(Rn3jgRI3%2>$#;S%Flxh(+2I1PDq{HuSdo?+G%QRG#Y_m#uU~kt>RsF)I4&enWd4X0!85aoF -?D*n+8SHqNbH=KjMN~_kOG-=AP~`@vg)4$@M$gNEe&z#ml?Qmu!ot8fNoV2Yj4k>a-@HK*@-QC<8o6^Aa@oXtc4G8Tk`i4Tg7^OkKjRLu0o -7|0i1{QVv3d80K@mN-X;Hu{lWaf+lv<>zGo?mdlgwJc`M?_?@A~tvqVdJT}c?&%RPq7w~>wIsX08iuD -GQ<@nJbF3xf4$0&QLD_t6wUUuYxqL#yWvhbh#wX0&k3kFP>cPxXO!)0(Nz^UUGT5adImY79FD#%tw)e -CTbvhUTC={eorIfV+$3rm_)XnVJ}d;5ho*+aBTebfGM{M~oLJNcT`FX6)Nzn{hQPNCLo@(FPjubUq~m -^3hp_}GGqrF#D1s-%z$lLP$YqO9gYe`N$AeK6I0_Qqlvw$iw>y-}9yOX_g0$6-O;zkk0ME?NC$Yn{%_ -o=@WkP)h>@6aWAK2mlUeH&Wo2VOqZj008zA001Na003}la4%nWWo~3|axY_OVRB?;bT4CQVRCb2bZ~N -SVr6nJaCwziYjfI468-L9(G`C%Y(NXSb!&IYW0w$!sf)1-aHX<|R~FI;W-UhAkz`x<*YD{WfdqzBLRC -^`rl%jLyH7Xg=f^+vark*WrO9|OoX&^zadJKQgHFhvpPkcUE$CXyl~i6tgE$Z*Q@V=(lu_i-t&)#Ir? -~Ogo=!zZfyjiP#hQGGI%iuAV -rfMlsYI_}`L{xM$m(ew@%7r@OUQYHT4^YIqs@k8~&eunDINijXe7ed!#9po%mgsf^k+l7l~>5P?3S{A -ejCPeqtVEogu&eHkwBDNU+r;H%TO+7*T0YWd$6Ef~(-@($t(=tCfitPbxs)k_<`3S&N>uMD3tFUt||rs{FRl6~5D=-@6d<)I)?6%<+6AL#Q4 -_ajaYPF-|iUz3Ss_=S{cUX?K6?bct@~I63v9;q=o_lF#|s88XHF6vZnv&1(A<-kyaT?c@lRqsq(U8yz -npHP299XJ==Ayc0^X7JrfO5e -QppZ)f~?{>m_F7)=ln)G` -6QuEJE&VkGG1E8?JsOsot}^Bvts$!x4!t*3!xOJ)G%MTX=+$B+o=H3>U=%aY?K{MoGeS{OhtiBGFKh4 -ct7$ulB-a7!0Bo4>%8zpFdyKt>u@bFk$gXHY1yyj?57VS*jQ}8_QMXn8ms-`nt`1+6=RYr6JB3F+rok -%+F}988Qd#T0y|-J09r2vO(*}!t>$SUgH5E3Nv7O`*qgI7mt~b^~imI`Iw6?Wm*B#7V??BzQthR+%ZV -~DNt06kgM{2NmdB{VNLU99D3R9%0pWsjz+AQ)k^6dFK#@yuM;~|xMD^w#^O_R55jV3VZFCQGJ!RBfj1 -QpzL_U<@nmxD&?3_|U0?`}`R?kJU@BU3|TjixbQDR>7O=2TwvUgWTDg}M5NiP{O*5>>MKR`e$*om1nM -yz53HN7^iId7sPJ>;=yKmyw2iADd(J_h2)dK4*c%JQQGK -7X}oh_crZy$n~<9gewbifM@7ZbBIG?c_WfMzo%s>cwD -<}nO_MoY~9L$u>qPJ0&(s1-QQ1;aMiV2`eq+l$WBxUD?+)w@*1~__&U_LVu -<6Gep7~}bg!}_ZFx&GHtX?jzCWMF&o4T^cJ^A5C*PcL%KbZfA8s7a#!$Rlc2uPW|(>FYT`CqJ;5@-wsh970!GGpYGt%VulFhWk>rRsV+&Nqt50LJrtW9Tlt -ge#pn?;JJ~kP^f@ADt^eUTvzO{sjIu@2@}_O#%rNh4l)#Ux$fcj0cZ$K|0L)^B-zi|1l_;1RCe38zUz -C>I6RVpdb-PjbPViY1^EEZ16{|#JqhaF59ZbX0Z>Z=1QY-O00;mMXE#z@`!`6W1pojB4gdft0001RX> -c!Jc4cm4Z*nhVXkl_>WppoNZ)9n1XLEF6bY*Q}V`yn^WiD`el~?a?+cpsW?!V&De2BBUTHIp5njpZO) -M11=IM31DLdVl>MDapT+bw+{K$GgY7cXyBO(b3@#U3NeB`gGH~>h_0Sy1co&`jcMp -J!%}$XvTDBpjp~*5J?q4O0$C@v3)yz@z>V(=KKmHDggYFS^l%j$6wKQPMX2D5W$(7EXk(0 -t{)3hgNun^q}^PTRcni`qWJ3@wzoTmGwo9Vo&AJiy0F~Tf8OQ~Tdt5f%k#Lj7{3yMWfh7)N^co5-8F&IZ-o7ZW981mDP*bIT+w&ArXe)=XXdM21x&bgcm&* -gYqfIQMri*jQNTeblaRs}NhH4K;=H`J!Y_24LQI!$7TOx4)+;#_7Ul7r`?A`Q6k3ReB-l*R -l4(a-CKpnd83`V`HhnvoT?jHvCcf)Q(G-R$R_GBI+c|~yw$V`LDgq@JemZd+Uy%q_ogl1yFXmiXG6GZ -|mGGG3$9x9zrL%j%D6M9ZErChrfJsXMH!SwBQ7bxrgwlMT@)S}U -I`NT2U~UC)RVtBcGyX*B)xg_Cj8wY>wPFIojfxbOTSD4JAebre;1s`W$y&d1tcXdlrRKqxFiB^CV(+O -$|%n+dW`!JRrS-hR&$#&x*I0B^wxefG4~>Na12=6X^92KMNE|6DSQo4h!*5z#!=AE?SObD@+pHOXE)# -`!s22qE6g-EypX!E)fvPjq#dx4Xq|OH$H;mC_^`&Zek;W;d%h&^h>?{!cARaHI%t=GB)+RDIco%<;Rp -*=LY$QXfIn_k3j*;E_hp+z&qEZ{ -TGyJt;CqDhLfIW5<}@{dHa -(b^phAf#Ij-yrriPI0$d_kO?STWcC9Ua#l6nnR`RW97JKr?!%`HRPvyw*xHyh*gnraN37kwIXO2x?oX -Q`6Hz?g)aJc(0kXylyFMpvBXc0@wjPOr7f~qC0=F0Dvic?_*u~fj&=^>!kDqAYK%_7;q=hCAGxu@{J( -Hsw&Q~O(46gaug75Kq88?8%I+rEn&WXUG9Hglwj&?~?3yQyRdJ=kpY2t(b@`^eM?o>x7&-rNrDH`=yn -%HT8n@QuXQpY`FZ>?#Z^VWpUdM9nQfX`{$}R6Nl+__90D!5fo2|kEyX9+hvDuDq$H6#uUayazzQs?g5 -Ztq0;h_@Gw#MkcTKaNZx6`WZtIXCFJZ-Y(XVM=XS40K<3CWg`txYO@3(CV4#8&&7dj@6aWAK2mlUeH&T3t2^Op7)ST<9J6>5&65b@*<$h&pX7EsT}+JjR%W#~w&$+Cvj?~n8e=7NU -I|+qJTZGF#umcmrqjaGN;)W+Sz#OSZ)u6(OzB^Qr4braBWH}ILb@YAL3#*Xd^MKwTT{rgX5I%7bw~Ut>njaqONnS)s73GbM8d&ty*85ro68^|^`)WX%CLZG|K!A($Gb7hW1Y0!fayckjtM_Tai -dJl}R=3}7sJ!ngV@%&rAqvFHX$u(~s{|6vO*l@^ftKwFs|msK$#7y2TVLPn?^m9+|(fphT`rw@yDig3 -QcQ@C1%^K>)fTwfWE(w>e?a=TNKiMc8(v~O5A6Ff$%$pa(8aXgFDO{;zyr}HRDFkP$=Vi~T|c(R^_D= -gQmG?fvP|y_QYe(N$y#mKyG%;f6Y)C{p(OKLoN*+L -6*?Q2Y9iP-;Ou$r^_st`38t}-Vg9?$Vo!~Ry=});Zs>M^;8*S1B{LHZR%sl*unL1IQTNW84Q7S!k*6# -qWRrFE>ySE;Yk_m;TqRrqilcrr+4!#b!qSey_*07-Zfqpwb6ONwwU9q#rpMcj -z=BA*lL)6nB|LhxnWVh!)hZy>n`oeYOe!c1~b=G)t0oZy^%+AhVP)h>@6aWAK2mlUeH&VSqnlWet002 -J+001HY003}la4%nWWo~3|axY_OVRB?;bT4CYIW#$Na&KZ~axQRrl~he{+c*%t`&SI&ivu{?xVr^54G -OHH*r^eJL9$WgWY7|26QxLlq!OsVejg>-PFfq-eePo*U9RxicJypK)hXw&ySvMX5x}oY2bR -*X*^ae?UwNZ5n%OICDIsO;t1geibvGYhU52ougiKO@q6;zd>;}JfKiYihZo5m|JdMdDc`CY2}RAlunz -Tz5W6V(Uh4Vv=DM@L_s%%3>`U5i^}b^YU_tIQfv$}l~*Y@oRihLdqZOPROymZrpWM2*oGcLIASXMLmS -`=or%2ircz}n$7k)hDeOVRr`d`o+#*wY;))wovnV%GqySGu%9Z8BEbYC`?oLXLd?HDk2#qx8Yjy953; -6xruiRKz=uhB+XEvl5&t%}A)4b_eb80YVh|hB2ZIr_%DglzlKDm -cEad-{z|&g|ip>9>#GvTfW>Q7D~g5{xwXZ*h>LoRArcQ6%q%*bQnk9fCwMPlkxJ!XFnP*XTv0+(LAP* -7Gb;`N2^H~(_$4b=E*Q1N;p4A?8Q7M@=@X(l!bCFht4yNz7?tEUA36j43n@1KGRxiG=nbT9E}YOsbKjJ5S2G!NOj>L_U2)U{# --|5a4OU1=0u)x}<2VvtO2OSZj;e#X0I>Z@6aWAK2mlUeH&R3dtjWLv004ak000~S003}la4% -nWWo~3|axY_OVRB?;bT4IYb!~GlaCxniO>g2b5Qgvh6{DWo3o5jgR!A!~K%g!mK_slyQ!vQ@*&3UTop -zD><9FgfD696ctL6fJ?HNDw;kmfDa9klkt-x#$JXvlv{o@9BflzA9XjQ0ky-}sHN74;1GBmK`=`&wr% -W=BAG#gcPVZbHy1ef**TxMLhmdEA&ddqXsO4attxu8oOCly?4U~*TQ$Z&&~YWWjWbJcZ#zUoZ%8*g$A -NLWzdu0V~_Xv>l1s}&Zs1YKEc;84o^1q;mu5Foiy1*C+uM95|9%9NfUl`qA);7MAaJVh=_Ex1JV@`7x-$A*RLRJeK|g3%tlnA~u=&Y{< -Mp71QtQ_StSca|bMDVc`1pcE@f%x>L8>ueDpNjl-Ge2DS3dDnS?|{l~GD+I6~IzxLA}zQ2Z~4{+W-qN -vTR)1&d*3FqxV(WHG^sAVqKU(_i(@`j&w$H0rde$0YV(;UNa9t;u|H@y*raWXk?j0sOSxx_Cbw0~e*` -}_fqTdoHc|jj{YW$@K=d4ML&N=k#CgB{*hBOhSk8}b{6oI+80(z2=z(@vggR?C0C^eCGng% -@J4RTes~S^Jn-4r^Pd{-W?47rG>q86;Ks4ay$xoIG;=a5WVnJgnuLIpl(M!~MUMJ175Wg@0iau;DGRB -)6d(efu3CWNco)^loN{eLsnXCo(pO*Y1a6zG_K!*E*T(z*F8;gQoAIz!846ALEe`V_q9hCK?G08JYcx -~a%ZmljAU##23c#pVoibPM&88}jKyAmngnk&rv(N{EN|n@kMhF>|RG=a2^P*AjdqaAn)nMt|-5tslcu -9|*=-7(&fj-CdG$zrM46!8n+^+_nA!%+5SJ^UO1YFE5)PxO3lmQy6~2s6c -3T(A^|GDhGUHu5u1Q|3suf{1KRt911QH=I20@d;D8MFlbe(||$#Q#3kaTO`wFvlBdGhD)L8r`k%D{UB -hNOO@Lrh0I_K%YBA;dKFU^YrChb)&|&{!U08 -E(r3+6msDZYU>Kp7e^66SlemZGSis7d)!F}1fWB?=L=Ow2PSb_094gNO-G7;~M&6A=cOh<}ud;x{tp$ -=;fFBBpX|)&|u^mmI#EKEN0?WeV?5prUH#yJgBF3Lf(ag+^c+w$`TC6;mUdNKhmKBT4WXyElNG&h6b# -s5DvN%ITN46^LDs3fj!r{HdE;8`zy8FMRS -A?`IDS7)&4G)4=x!)5YTr`4ZD~O8v``_-31O0;Z}I6J}3|6Trmvhwmw3aOaJ^#iPxBxDG&oSW;}sY$EwUaYB$ANleCQ7*BOx`XjYhQ-Wy>YxacH<_I|{3K)&ZcK=O1Or -=<5^-@Sh=ne1$gfv}vR-Cj$>O1K!p;Z0tlISC+3qSYCiHW~bYC%BZBc2fSD3wxm;ZAB}T_*#I?OpZzy -*K@zdVPS0fGp=8aHsdLTq2jPR-)tvoM_FIMzd9NN!3&L>49VK50NvwL?;3@ypynuDDfP13rs>lbvi#tmKo+Y-4{UM5jeCq{~f(`6A2b^Psqwk#xhx`jIh1A|#_~XyR8BJ1ld -=v;jybz8veDBfTaKpfx%*WoybMN2Q`dq)jA@)(k?Nf~&E2`7^K8RBt9wEJ|nh%5dz?So!HJpn6TNC&= -^WDMpzg>SkOD{UjNbFBYC}Bh!&``gvuIfHvJ`@;-#WMPeS6Woi?3Qh)#v?`3VA`EZ{kb7i@N0!$VwB! -?rYkkmDz9@_=QaPQfHSA|iRc}NiygM=#zQAEHmSIUI_vW?!!vD2QMBv1cK+Y4WPZQV>LWVM{=j(w77D -h(m((jXJ0;Fse-5y`_jO>UcO`-qB}23)c56l_DCG>Dq*L!*aaqr~zCPG7)p*9M*Q@SN5aVL~F879dWY -p39nZB&9%CkD+H_5N4rzS!Br&2Q%QaO#xRn{QS{2&i6X0JjM_>alW?Wog~O+E6q_9Ec8zCZKNrE)S9B -SwrjIycV1n_K8NdY3(a8Sv{Z^qP}7+;L#w`0d7-&KBXsJsWwf)GYqQlm6kq!j!iN=!)j-zL42y_AtE< -y~P*e8rDF?eLg%@USaWS*goxb1LD!js2~p$`Z}r_=RH6A7f?$B1QY-O00;mMXE##83SgoX1^@sKDF6T -*0001RX>c!Jc4cm4Z*nhVXkl_>WppoPb7OODE^vA6nQc?zND#;0^C`O47itx75T4h%7s#Tr@>B`dmix -vU!bDOV5^56M;;!zyUpFKRk&c4M>Rkz1=yd;kW_lj_SK;W0f5Cb4vekultI_NlO*n7&8rP8Edz3nY!B -|31+4r_99B6nW3APUt?=RbNMAlRHU}9S~6}h%tJFwC7i+qrdH9)wkZPJb -A9|*O+B^v2LnUjQ_FT!NfF2q4Cjl8n_US-v8HqEY8=2x;}r6>S`|aE?pdfi4(R0TgD!ok9^_~_lZNL8 -${x-FPo4OupRom?Bh(M*+s?hRCy)UgVE};#{dq9<+;IMw8pj?gq2`n&OGyd7X9YiTU}rG*W?%{zlpNX -qGCU?C0O5}Q@D%DN-pID*)HHKPI2{^wAl1Z=a(LOjfwuHk2wZp=ev#cXkT%+>?+2-TYymBsk9rFuromHiA_5veuI7}4r#R?2IJg=rQfAo{tY$g_+g*emWA -5<}42To`iQ5Q<5@x=%W=)pZa8Tw+T(TeN0jAT!yj*WqFR!X?R90!g8I -!(QCg^K!ltKAyh(&#T*gKpC>;G(BP9r|^B&}!VY>pJvr^nTB1W&sQ-qZCszxg`Hev4tTg9%gbR17SP< -a_YCZygm-l8NpaQNL*%9+PI@Y;1QY5cUnWobMF`PMae3mXJA|4dO;d~DjW9>?!JxH#VD)wP2;9FvuP; -h(Mh;J99#ke{TH$S^t -Ma-U>1w>LM!FiW6QmQoPLNLUx*_R?ylzOkA+Iw@XYx9ebSAGGk#5B6Mx-0@I!QXo>m=zUud_&J@j8oi -mX$hPoJM1?IE?G3G;0j-=1j+$n!4W8QI4-d`Z?$AnwBA%Cb|YPcnNIh{eq^}z_{x)_iCf-D1(>Li(+g -y%ET-#R-wpejxO~|YT;2zT)}dpr4;)}>Z6*$>onOTw8TG>{n$RVTt=&~eQ*hV@gCfzi7G-yi_Q(Ahkn -;?cJGis+D$q`css^^!t>R+>-4@f+vxH4vFQlkzYE0Bk;k85Sqsz4S*~88mnBT3QgkbCdiXS~^*F|W2{ -RVz&XI1czu2fZHLjSD=clXhnalHxR>*6gHk};d-p|B6IUYACOTIk*CzWa$JuRncjqa}suf3}ZUpP>OF -a8fI{3Baf;k9)9yJF~T&8e99)I~XqI;xJ%@iKpch3XbI;pMQlgYpqBb*H`O2D^TqGO!m)^F#ZqcI?*>-I*MbDDJvi@yL0-N6~J_!PgbG$PMY)o@|5V+R21A%K -#N#PO(r2Yj^O9KQH0000801jt2QXn_P&?*H00HqE903rYY0B~t=FJE?LZe(wAFJow7a%5$6FJ*OOYH) -CJZ(?O~E^v9RR)25WND%#>Pcdp#6?B9Ptxmco>gfoOgqB~zMpaZr)?yaetJy`n>$LRK-&@-lY@pZbYD -Eg(ee-7K&Fri%E>1sm+r94%so!gNhhCR%`=j;;I)lBaT#&!wG}2-zB#Wr6=A49~wfZKah&7a6Qi!!iW -e4p^VFi#K{>&q_;hNNf>sX4AS)ruCtKKM`ynvX-N~i0g=FIXr&9({Su`8w>*JcY> -D@)aOjhb)Y{t1ec@CLP_h$aqeXu=KG&wQR{(pJ)HF^jFzRa3jh3ekY+&oma%Qj0ZR5+bx@6^*xcrDT> -rq>02#Gre^xEi~t3)WUv2U^lc?F@;Q$=5t|EdI({O$@%X}!+x#iVzG5gv793v7q#VjZFU;o52w`U29e -S|ms}&8aXgDe2;;s8xip-Zp^aNJtG!ZpE)XvZgzgmR6LoKh3+y}J&s-a<(CbEX=PhHblhRaW*2Rx%Zk -%BaL2oHSHT2H1aZ-YPrgIW9pm{em{48K>CrMI6<^04#m%`46M1Pp#o2eQZr8t)c&T11yxrF -6x&uiS;HDAVyZ2NxMbhAQ*Hf?FU%2ZhQTn|LCH>>-od3=h5A0LM5CTV9dzG -Ob-}W)Zyik^HtO_86Cfr(M<{^@^E4YwO0p;l%$h$Aa*x0biD>v20yb~78yB5)eVvQ -8OyX6^SOhA)&sXGCgL3i4IKkgiCv@pE327@cL`)3nM`?Y{}Q-goCB_Q%JW?cXV-XIu^I^BMyQ -VAnwOuC$=Qazm^rVxe@T5dr>ATY~b#z -OZgj$^zOWF$IcVAj%-URmd!K6|g~Jio7>@j4&^@x4;hW}jVU%FcJIUr(09l6UqZq#)|yNF2g)_)v3PJRoUf~6>V0;YmMO=l<`W#{ -?R52Y-stFf=O^iaub#($99hnEa_Idu9ghtEPL8L;-5(r$d^WEI{YK5FA8F*`^Z%0kMM0DzDGuX<5?>W -ceA#^3L(wb=I`7azyLY;Nx9#_a_t)haQ#~#5QrUn@6)#r-KAl+Aec;Z^d8M{VGb_0eb1p*;qd-ot -3(x2JyKKTNuK>37O=cc0?-&uIBF*eANb3`$XyZjoJn4zWLu<(x~2c!Jc4cm4Z*nhVXkl_>WppoPbz^ICW^!e5E -^v93nrn|0N0NrW_peBaFGgyZ%BZYMuC*%x22X1+unlPB{el`en4@X>u%{b)*`8fi_Tb@@=MT&M$4?*pt^AX*w@z-A7w>oF>2d$d{_5hgJUG1FmHl=3>G0q -C%gc-W{o%u>tNojco5QiZx!murZpxb+bNA%y)U&Jo%|2)Tu={m)dHA?HmczSp^9`Cg{>kp<`pw11-Tx -xHKU`hs&*R6#(H}{;JUbk>_iv87i<{ls^7^wB|Gd=25n3NV=Th%)%6AWLm)iT9B)&QPZn<}PSih -eJy8?e6Ace|f!a{pVEgbuxJQw!FXib(d;>v)iXdm5X$dkDvcvI=nnw{o;Oe${zy#zU<$XtHaG{`R%w* -+ez#DlXjEJANoB_qknVvv`jSzU0nU+GF9+Ar$5@iOVW=n4~OGvxqrC6Vdziya_$hd4tMG})KXqP&o}? -3<0p -*mX7}d()#38+%V&tzSWCHc=ikb3cj@^%rupmd9{GE!@%!&}X2KBd>xojths_|*?*&tIIM-GBMw?CFzN=lAk|Nol@2{66m9{l^bqJwN-8hxtBN3xxIH{lyWJNptzn -r$_PS;`QaOoPL>uFtT&quy1W2~oT9{Op -C8oaBgWf_(nH{{poj*HV$*5&jhDJ=Yk>d?|S$N99@n(ty5`OxyOIVaES#9v8z8dg3`JZ2seSYc+BpbP -LwHuI6o*OreNMnB?+|ClhRu*1@HNL$}ufR_W`~Z-@(I}@0KMu5lyNqyG -;p&B32NEt2@ETM&E3RYpvggzz~nOI~>`t$bAaZs3`FvIl>*K^KYbKFT8Wo~Bl ->|aoT!?JcnmCLo7LR$w|A13w)!5PvjD)o_?n32!qmRSk~)XL|jB6}8H5Y@s;i#qaM5}efN0(~uHf%M| -s&X!k9S3TzD(?m1}ESX2R?-f&8RDY5|{kgH^YwgTfpt@q%bt9P49k-VaOJK`s#7VHTNJH~EdQxbZ$UH -(7vyTCRqr9aKu)atz8R?kdTIGg$ePA>Lk>-ROEO4{*;DbMrMQ28bg%0Ts!KR0G$8=n8WZxaWWG+Y7)L -#CD&|q%Oozx*ERabm@L{jVEBkeGsBY!p?u(^Gic`Q6uwAJ~mL)z`7Xxid(45=anhS2ep6{lZok^yZBt -K__ucbFD?)P)pC8_*W~uhnTFNx(vtG~lqhJYK%~1soc;cd4zZgFv{@nz&OSllvBn9O4JWyy&)Qc?fs_ -f}%Xhp@B`K(&XKU3w8IHiWye%XX#@ytGr= -ZUiS6NV1OCwfjK;=V>L|Aix~-sF!%;`1IfNV{fwbDP=`j~BpmWi30gQYn!`N68>jnXqJz_RQpmaDk51 -zyV+-qro-8#u8prR~R_yGDQO#%rID_dUip>^_sbx*Jf{$j})IzVE8W)&1?$FT??(s|bq?uZ}pA-AlVq -Wa2Xz^_&?bDiNq3bXGfOvDfD5j53m$K+M-hM -{?KfQmf=!<(asltva)E2L$BCCA|)mQRb{xk9Q57T3S!q#nQUc6;`$I)v?9KO2aI40;8W)22MiC%%@gj -3onxE%0dObD&R&f<>7&Q`F)8SCrdS}c -T+e&mz5#@y~vLSxf)pP;ZGjHmszC)`5f -WvHd1m;3Bb{2QPdNzfuRXES$X%}zS978z$1C5PnGNmZZ$r5Mw?Y -9&66j)pHStqJN_5nmfv$4>G=Wk5QYo&y*`A#j5Uv)oK;QOoefMx7E(rI3G`zMFNj+p28}uruZ`5F;xn -Rhbg{yHm&wrdiZrx!JNvhGh=j5>EOep2J}!i3lsa(JY;LgNZ7t=#ECDZcje~WoPXPcr>PTWoVAw$s9X -i5n4AJXxm><*pka!sj~0YL_bOJU;GC2y2I$%I`HT0<{xzX@Q=~Z=-2|Wt`E(FiON%E0VFQ1J+jhiG(CibS~IXXX(Qfza)3WzBtV1eq65ZES!q0pe90HM;Nc9&HCBo{f$=`C`y;t{{ln*q*6WtRQ -7kU07|}6JobQ1uGgZTJ4!wTi7SSEa!zinfk+Fv633hUa-(=sz4a6-D+197j2w}tQDH-Z=%0{@fA3pQMYU2_mKsEQbwDtILrBYj^oIx4bEnRTe&Pj>P9h-6F3AJz|1|El+l-HmMsg -v?mE{Vbm$Me~3Ut&F*A~~R>64~)sFB1f;FF$}l-Mza6IA?+gA9H~MOJfkWa#V``23i_eg4n2PyA -Z?sknI}%8o+-=<{R-A;mWxpc*JCcFSjupg2Vuj}?#K1?6k_n`az5Z@4?jIoi% -a#$26D?=vSOIqNPwrP@XX?5g0lSb4A$aE*_{KS!7qpk466zf_^NJiW7u~P1fQy_&nz -tDXO|r>uL7>|0lLKGIq8SvV;?AGMVA#Z4OH-MqV -4xHd$VdpJS)@@1E#@O+tfPew;Xd6!rJ!X~@Wqua00@r&cvTEtBSrxl-Yj#uyC5SY&pXK{o`Pm*{1$T5 --~=FI%gDeOqc)j4{t@(sgC15`4$c-)L}+qx2(kbW6!uMR-VkRRWM~!zO|hWk6|{tcMom!p*S39yG^j* -DnFIkI>a(Dn3i9GGLnGRU5eJaZ$#k4Ye=-@90MY_n2z)Ydx+FL<+3ZMRIE7SX6N_gjnA?ak2Do7L<3S -ER*h1?*X!hsBEt7yu^aR>!w#xEA0--!YAONLk4rUl-Fq#K^3SF>tM^VXXo=F)s7Clp&Mhn&Kg1lStHB -8ktEu!qVZoWosWIaw%fRAL5T4V%E+jIj4@rhR}2@uGm!WizE&rI0r* -HgMg%W(w$zwrmK3K^C=Y9VSrCMHUFMQJn($FIz>AVN{PlnrL9Vmnn5d`rnw&oyU8WvGdu!quAwT)|yb|b@@fCK!8;4n3PnKX*VLxkL{enwHcp6z5kjC_jXF(?m0m6f -o-z}79C#R!7Z86 -%-^6-!*3E6fLre~sFzLW=q0lsU3BY-~2p#;HEjzofPN&s4c&xdIM$F5wQz~aF}PaPV%3!^pVri3HcOum3^0@pZE>zTcbW@F~l#N|=hkcW9{W+qB!I?am@vt^{HB!-!z03r*8&*)ZW- -B@3+5kxSMDv~osj%H+*mUbY81bX7l8pJ;NrW68_w-4I3JYTAvM1T5#SI%%+_b#NUCUA0O1rqI8h9ap2CugzC__dL~!^Wwmv -!kOVOzL#vYxkcCO6kLCeBDpkndh -S)AQuaT%jMNpC`Elj$$&F~giB%}>CG)?1Lt1>LMr3mkWa?HD^TwnJ%JWO<9w#4t*Tl#+X7H0IW}6J*< -$AS$qp-v(=@cS0XiA|e#v9W7gLni#17!P@Mel_yC{!Jq6*fhcPNqg`mbvCCj1$XyV$s4c_XhT=4+EsM ->FFDDq56_jD7V6&^+KO#HTA2|LfW+BvA)z%)#Mo`++NjcB{BqcU(+Hh%3)@b2_;5@6OBrgSoTBC -7B?QRa%qPju+7^Hq8@kCRtK6CTPH_A|3Q#PY)CghYQ6MEbF>vH7Bj@c7unr| -j$sTX@(8e1!n4iENpp;X@xeSGL;BC6i%38a-Ia80#tFr7t>bJvz<|6XPjpNT%*bal!S9jYau=AYm -lMtwad*-$KcLH&`-(-RKcQ2S=-q664c_o$iZsV!%FKLT#xL|#zQe#vJ>7cQ;D>bw5&_*xw2*>;q-=+D -dl7-NIo)ecb(XLvti+A_#y}rxGFuFx^3PH)e~0hWgGVMV9U|ZOrD^H?RfZ22q@l4nLW9o)8|ppM2=PM -1>^kyaiR^dN=rMqG8No}%7@)K5A7t)N`RY3nZ+|w;BP&vXa4_f^J?AQn1$eBdoELoKPuB-g}9&S8R1V%VMI1fY72iUL1uYtugpB0>^06EZdQsKf -k_KtF1Da=5Bn@Wake^WKSMum;aY2hXM_ug4HxyvA58ZD52LNxQnxq%Nz?09AO_DM)WAXsYyUGyc_F6HF&g6#_3Bf^LaF`KV -Je5?zh{Lpod(XjDm~>nAjiN|igQK}52x!re46i}Z5DQ)J%l$y_EMZjkv9S}}CA^9|d0f~0$x7Zb9b69 -#<9c(CZOj?|v=)XV@6aWAK2mlUeH& -P}Am-sjX007hm001HY003}la4%nWWo~3|axY_OVRB?;bT4IfV{3A7a&KZ~axQRrl~mhq+c*$?_g4(!7 -YA^(aTg10Hz=^OVy8xYgJh$~lR!%&nRP^o>>;2b6V9q#NV$Hw!zxgxN7666Wvnp^XI<-aWOogP$`O=SVu8Cwy&J;D~X -KuR<0^yrFsRH%1@ohcrsAtgv;XQem0NnZmz;*aOw3qD*MAoJ+TdhY -+5G&i^nL`K8HaQ8%Va=P0LP?b(*@sNvIeNn>_kN>8lWqMCWNQZhsGSZ1splW??cY;JQ_YS<7-4n$~Z0 -KZfBfmp)d-2KYd!9t&c-to2rVwa4ij_?hCbaUGz-hy;Z3f-{B%;2H~=Sp*udI!6K_V@rG3Vp*E(Tb^Z -TvVzH1jN#}(cWRgy1kArcm)ykA`Zg1W* ->|7>}b%AYx*(fMYC6-Q_b{wnXU~i7Auzou4pt`h+2u=yN=U6xnDx_fd@6aWAK2ml -UeH&V>oN!2qt004!1001BW003}la4%nWWo~3|axY_OVRB?;bT4IfV{~_Ba%FKYaCw!T-Hs;3wWiPODp -EqDv84iM{AEPi<1IB9yjvRs(=@U?C#dNzOvz0bySg!Au71|@L?j-`-qH*QMOS^9k&zMW_g(Lb@4ff_^ -?%!kAOG>`XWOSwKl=EyFF)Qs{PgpW{$u+uu6^(3z3usTciZQW_kX>A^WydP(Zj2|?f&idr-%Q2|N8Zd -`2G9ue|&TQ^2NJ{$L;0o`@1*qwwH0u2RGNPPv6|XyN^5naQFAS*AGA3J#G)*ZtwoZm~s7QckkZ5eDTB -G|26FW!<)D9>*Eg(kNy$^Z(lq-&cDBWynFHP?$!3q&yM)dk9zUQSU>z6kNWQ2_N$M6y`}RUF~q;T{Db -Yu>(|>eu6?^byL)^0`1iY4^G!Z_c=PV@{+l1;HGlQ?*T0RwY}=n+JpOI_;{NqtAMd~4-rr(|@3waj+Z -R8-`|jb*djD9e*Z1E%zIgnZRr~hw?rwYg@a?;wVq(ABet!6Id->wc_IUT|{_Pw-7UJFZ;?1kyJUqtz- -#@&%|MqA8^y8aX@jA@<-QDB&Z?84{<7Z!OpWeNVnQni)dvo^~Z}Y{E-@Lwm88?4=|MKq5+q><>+wBMb -_V&Aftkfq=cuB{#*6+GVzqs9xBd9`?%N+<-^K`W?e^!V&;R}NubyvDKKsk|=O@peJ^A -eUUw#+Y#!APhv43-<`|p1U5q!19TRpyb^X})Ecnt8TkDq2&b;?3V)#}<4Uw|{c~Z4CX%>xYNO+wH@Lx9_<0Pfz0BJ*Tw4pUR%L?W-^2FaOnl+sB{%;s4R -7ymu1=fBe-)&;N`@{O6B%Z(fF2zWC<#-PE)YAjIR_$A|B?Z|?uvwx1pz|Ar*|ygh$$|I>>%|2+&)D9M -Y*nEn@W)dTMqcmDY1<^Aip@PB;w?%fZ+eeb8Ae){0<)sG*%`{}nM{pS0)o>nj@2`LUd -i#C;K%?|5W*D#h&-cBF8)G)V`BkfXdO!a4>)-Dmq`gfI`}v13l&}BQ<6eA&dgS)skTvG?dV6>i`up}B -TK4^qFTdNq3u~uk2|M)c56^CH+?TJP|K*FPA3gc>>pwjG^7*r;AAa@x>F1w){p?BnZ@xog89(~&#UnB -o^7fyfKWd=Z#O?MP9Pyg4)%)j*G8a>qU+1JlM|N4_>AOFv3*9#rE`?Z%QvMek9sA@#q|b-fkr(w -zV_<7Sp>;=fSPpV8%86)y8ejr?0}Nyr={B8cPw^#@{nP;;xeVZ8{Qn^>~$>W8f6Cizmj6Yh0J=*txjg -mKG~mcBY+kWj)R{@VVc_M0oAZH;&6jkJYZ7N9XgFXUDt8YUR-~bBbF>kBh?suz2yel%0<=YjfbSA2;z -P{Wk9{Mru2o68CS%@UnPf;?|QFNHM2a09Tv6EY3LH#w#+ZBR)M`9tO_&rt|K(o-wgAHYI*^-aU5vWMz --q_z??u>@MYCqvCI+bXF@KQRfFr&ytE!#!W17{Fck$(G{6H5sjDxubuWYv)eI~9#WNR-T7N(^mw0I87 -?+HHt=MV*XE5Do0oe0eLrIou55~R%6q(LNS3e2Bw7f`*%9IRAm$a1P||w*8W%U7!;Ahho(gLZ@P*&cZ^Ec*TsQ#e2qP#j`uJNW4IcbzR9uo=Pmrb||jM@yYD= -GlpxdcI;kkNMTpe#unR{dSZ=p;sx>?_}ueN3av*-;|hhm#;vj14ibxk7=;~UB&9qav6X?Ou)K&{tip( -g9r4O7uNj|d+=MI^mKO_AJL=zgK5CKJcV==h@CYeS%4R-!Vhj@EhFBuUDLcKT(r1ay>u#@eYRDIQotf -Acdzn(mS8R`WA4|Y(i(b)Lmz;SK8DcY*6M#cTH?TPz4x5gtv1Q3_Rtq1lLfj}6KgI&eC97w+Elk+u -jiOoA=it!RLS!J=tt+8y_xsdI6#9%3WHt)VW2-XE>wuj@ve`_H#!xB|qz*l6Xki&R3|LQItmZ+*A1)mclv@ew|VOUvX_q}5YW1||6#x8_t> -v$V;SGm!=m|fA+oV$Lk^Q)q9^04WeP>XP;SSSq%QjxGa8%rKDQMck{-I>n5^})k1mLbwCiq5@ayJBX2 -EU5^~5r&@M5`LqGZpEU+4M&)`Fo#}?_hh$tsaSFK06U3!Zz^nPbHR_sM(t~00+u7Y?2L});yhxrkh$V -+#Rn(CJg^_x{YCJ?c=9RU%lILDR;X@W14qCTW1<2$cuYdPAwm+*3DHu+c|<5k#%{;IG8+=_-shrrj1| -LS=kOGBU;-9wRZLq2O*jgjKH<;|QoJr*D(TqPTy2-HfwR5}x|L=X^yf`SoJL;yP& -JvQ{f&PC{fRI&KR0Ekd8D#%HU=u)WvCm~K*14qCTm$^MeEnzT1BVs*>F{?p#kKKy<**6?)AJ~tCe+sJ -;K^+psw2y8$vNSKWDO6guh@i0Q>MITn<6n4zf(OdP$AuU%8GN20Glj{P5o=U+SH5F8mQ>^jSQ7DQXfu -k8^T>srX*f=t+!)w+{mbx2!F~`i;UM>c)6NDq81LnpVv8bRA*9$&tvw-0&7>sAEG9o<6#|LDt;B;oJ6 -c-oW$3qb&vm7Z(h2v{n*6}zQzKt2p9bP7ZxwHk;Jv4t$f6bYPn -W$xtJWN{7GfPf$MT8ao*BKlxc2`PHj*oLI{>Tbsl8bn1Z7sH_fSf`9K)MAX+Fj37r6v1oYL8{Q4C$@? -_fKV`mjBto4wu(`1>MItP#b+rK2B#1tM{uNhN9#ir9 -Fm&if$Ih&m}j{EDmYYv9=EuoXmSon)Y6fC*zOfe48!p|t@q_6w6xD~nGmnFzp;()g6?cy?YXZxAk1D3-`-HcJ0!Pv6K1D{9im$1UI_-HLA7r~3{Y8j!}@|#d0b~~mRKRP?hlFwK;p@=wGjSI_T8 -coEt8AF`Auh&WO*pTxYn1H3vgkBXO#G3H}N_IC%?<;^j=M0n0(MNjOz> -L&OjX>E(l1D0AGzn3z}OxZ_X;nUJml4-ipD#z|e9cd~iN0)k(X$@jrLhZ!&%&3X`?CSzvunp~!kxvNM -YtDQCe`&x>S%9|L2tzh43Qohv9j^L?{Y)?0V)afFJ=I0?t1(k|Vu|Li0u7L?y8gGJwu7+s!R2i@}NxO -pm(&Fvt7TTC~x-m#5N$zHmy%Ktq~U*sv>}P%W!BmgZuGT9Jt=gvDCrm*n|+s7r_FEfsaEeyTh3RxUPY%P9-?@*6WtBjCjkTJx -vVjV#)LK$N2s7hEOg2#bajU{f8NZo|e;tGhBh=gJ`SVs(wd)$>Tkf5Y|pr(5T -EL>`_w78~JE8kiaV;u8oB@LfB1$x=TU+(_MVmP30!gJ63#rfUq1ImqMgYPG(eXu!hBryWArNLEgLOnJ -FSd1@9G#U>eLqT|wbNz=A6Xkpar8*ou>wsQ52-73s??{%HVav>HG1sUIy$&xr_Yx7SjH(O~n4smShxW -KO*_A?x1IWZfC}lqW&1N#XnzFMYC5 -Cwobyhz!o!JOL*)i4{hYP*QKDx$=#gD`fUjWd -9Xky#^ps-r(o2e6kFK!k50Q2g=#QVQ2MFcEeUliec40kFYn8<{JfCQP7i8*ekVeEk^RUD!qb$*e-8aEdNBR%$w+twOfgOWLBO(+H+Ow*v#KDfC-lpY9m5nlTtSUD%=?DtPegW+nexNPzu+X -UXfsm3aQ`ztCwMIe$tE2bdL){Kj`tw|V@wdRO5zEB!fg%U_QoV&0luBp@|$0q?x5^T~*g5i>jXJ)rq-#CW4& -MKG+3LJpd443Q_G+-MD+eW%(+^8zd$W*|GeM5{6l)Hh;f{?^gD18UB^Ixpz!McfI;Hj*Qj8#<#yH;;9 -9xxs#LabCFt`<|+?X#;E{K<_;o-W!l6o9PtM-!s*Z(C&o? ->EP4NoXlj%(JjHFUzXvk8UqQ&f{Y~y&05J*nUfRBZ3hGPiLtHy4C!(BTIpw}%!CSf?Sb9{R?LBOUUbJ -VYDnRhr@R;Khda0D!2x_CQds)ni+t|iV&y5*#e*UX@FgGI?y5D1J&gS-BkN>on2EJbJYLd&WfjXBNu+ -%i`TJU(Nn!Gw}EhoqX5Ak2Plmu$1{g^!hYG&<|5-5Qw#oa${roo|Hz(_OF#eSTZxFrJ?!UD=%8?p$<$LJtIO__C#u^N<6(El>E87 -vLIo{3*Ndl^5Lf+R{p#Cdt4@Yqh_0*e&cMRj7@A7IJiOM#-3#m$(R2$D(?3F#WxfaMU|v_f_811&R@1 -Lb7x!c!84qBH|^n<%c9xs4W_I@e*M&go3U9aOR=6BHeqc_Qf;F8BoWtl*1)D;v_gY00W(`>yFArC`QI -h3#weas({pv`%M?3To6Cv#H!9zs$2x-zcQFS&Y7c)ET$-q{YNHgJRWQ*1(j6s^yZyzvD7c&H -kb7cim*f(OQa~RQMr*x}B!1fwA0+z7CY`H-x%WD`bsJ@0H%b1^%s1lnS<#+LHbbz^UX76?Rys-al9)*VA?m8s%EjS-Hc_;J%My73Du;Nnve=hk$ocNsEpGcNZ*h$;IC~B905x{1oYf3h -9kgFNM)=iDnJp-TK6CnYr1cY-&m370 -SH7HQheMwO_5+GOE0<>fjetd-0T5N -m6K8iT$iMK-t(iQ#_!zbmZN{PW5aEhpEB*^uv76>Na0DzJ^AXcVNDpPsl$+eMlG*Yq1WO4KtRNCa`U= -QaZQCSw2;QTWnw%NW|+-gAO!E3iS -CjdPhxfg+Kzco*4|D^C|K)o9z>AR%5;21DTiZu*@^=W3!&3?%z804vFJ>h=PWc@9kW1;&%~Z;?J>m}w -m~+gNsE;%*2JnWY@OgD{k&V}r&}iVI-f&@z)0)?%gL8aM)$Le!P9jwu_J6Fx|P -IZkH>OYZOy1Q*rfAq)f~>ZH3GJPZ@Js3uj??U@iVd^6gUlGT^wuNVyQL8|+m`x7Eq()51PLa;xUMF}+ -f!rkg5-DbJDpdnS=a&{*gg%M(9DPa_t35BXetSozJyiTMGVqGXgmwMq9kZ$8Ht1m1i@Q2u_;;KeuUqI -BS8p|RYRk9BgFrGWzbHw^wt_jj@hbk9$0S8$O7A>QA*#w}dE8|wPDUlUK>l0*6<(#BSiOG(>HV@Kmr| -?m-k!6znS$HSeJr-C9>wU$hB2lH)Q!!7_=@4P$Fyk8PHE;whX%Z^rVi5(J)Hb1pq787%Sio*(8hO;&f%EkZv<%v;sG+@a`Qmlko>J36fGx0xI1F`F2D||I$@+f~DPb2v+EojzPLjNO~<3c_rmO -&_N^(q@dz=C_ls-gRwzJ&a=o6mZ+NUSL4&BOTU&P0+zUeR6%B?si=eq!Zry^z_$@+GNxoSv_x(PXl$q -U-ocME;ZRLw*$PRwLoR3)jzX3YO=}j~=w`imXh|ppQ)HO2Fh$BXSsqxd3F5ASA>9_xwnB)Ph0WV!$ap -^{QU@)S5~Zagl4MKm#tP^F=A<`S9#>oe={AE2Rf-{6!J;Vl^?axM -vfnZ$dhN!ed2}+s-~w1v42di7!xULZlTriZPux2cEnaqLif6*&a{yu?;f-<)d{T@(-Cn0nRL!CuxIoCGxyqE6qHN} -Hs?y-`O(W#P*hWQt1uPBHEvNHSnS4Y1ps}QjDc>(_|)bop4AM;QDefn -iT>whANH~SQ@0;1P3Q&T`>P@iVTK80u!)PrGid#Sfl%tbr -*B5i+CQ7)zguj~E7ptexC?N&Dn^B5Om4hp1oB~NHc4vV+G^s?mz-ED0^D0P)8#s2Ky=+CcB-H#9U_^5%h<2+rLZY4|IP0f~0V<8=cDPXe5DLdj -599R}csEG5*^IL%t$}*YoG2q4;^}}Z^eZJs-@24uH4iXSO5T|4F~QX(6_Rds#y|*N$e)gl1j3Wh=8EU -;fV;5csC1CbCkIhTTplj2l9!ednxtFOXaTHq*06yANg7z0jk;qIY5=<~hp?s<$gXwreb6Rb*4nkk5wK -KgM^t_i-nT;>>A<&L*34;m2m}eRldvg;LSv;_E3_27&e$Jd$+ob~2I)2*cEHH~Ac{+RegOtwHjC=v5r -sAJo~KBkNHUT(tIkyt%~EMdw{g>f9ssW$W<$g(-2jrmp)@*EYqJs^PJvl9CjmF^fgB%aL*IG -BlMvAC5f9!OfHMJ*&y8(QmTGTajz$g?JU$-A)E|keEok6`Nvj5GmS5lT0 -N%Ea{R8NVjQ-;VP9F%VaKYYfd(bQ+-)&u&2{xvD(GKEJ##~apSI}EUAEWThlBAL0{p9!}9Tv$(*^BQX -X&;#MNTyoAunJGR8}Di6X=+Uuz8MHX&qn_Kw+zU`oVD#BPcG=!cH$6lTF<$|0HQzDg(QAFW?Z(m5Ryu>0c(eDX?uMi@wxdo -_SayknVnf+Wj>1$(jeUyl7T`UB^wmxIWbZIs)ZPbYJ3gTG*P}Ok_As*lRkW)Q#)`;)TMR_5@{#1;K8<2zYds=+dL&Q)t_kZ!XLj__(a+?Ed2q>I7MWRDJBRJBu1@74_=MHW -e~_k -@1ePJ6GdhgLK<%FgV>jdFR;|aA2a5DyYS}13y^RJnY^h964ocXAx^W?@H1eq}vREpk%!?!5*n~CHCtR -Wt| -it+`vc(c#Qe+E8*Gdfoza&`(Y7_ow2&MI3wC#@+Uk94C5lJN_w~8M$^eP^#uVZ{-~=xzd^d~wlFt^Oa -tDQ1oPFbt81PyzzD9@x?Q_%sDHVCNVkd5I+F<&b5}I4+rHQ}LN**&7qW06Y}EaLyw^Tr< -aoAju98rLbX%*XL_NzPbA^4kVn%vvBBa?RkKghHLdgB(p`9|_p$IjXY$=GOTO#ewOiGs=csd>a21qEf -KV5CtN3fw2A_8Wi4tnYlZO~cm`AyQT%zw%lWi~AlzW^;JYgJij&qD^L=5Z@k0SQ238cS0&BJu^AHb}R -Hp5uNPUkg~XWry+TWS|2PNdvDWW~>KAlWbtLlf2p|DaM%+Ja@Q)g<@N$nw<|hEK- -aJFKxS^Xi^N3=#|QNuYNJ6TenMyjC -gxb$$2oFhS(9$Y<$~f~(StiXb --|;2QyO0V1N(xDJZYUO$U(;+z5id1|=-0rVJnujS48nltccT$S(1eND{xHc;vXgnNARQmT8!wbq3gB% -0$5KGLtr8$*797O<^2^jW9lX*N5XV*JgusTcpL|U$eZcX@pQA8=UPzl`aZ*x7lI9;<|u~GoC0Z84fcpRfaI@ZoeX~q0Vf=BB%NBs{Oaqwq_&%_@rPfauTyd8{yE^Y8FanDS65sf -ZYVaNXDqeZhf75UxpsiZ6Y9#Ir#&qc0K|Lm>O<~B$`3Pw&5i?ZqgE<`gVsCM)rOgdPuh!@Gk9Q8)AlH -U%(2qRd+hkyG_?n@_JVhWmfV;Dh;{X2kc%hjQ)UhTUeNad+3DL$pYRiY#}b>X&c~MHAfwWcSL)z{t`> -RNkYat)vKl8fOK1{MH@Y8H|$f6&5Q}V_?J*Rm{77BZA&C>sO-9B37PKdGW5r8Nl05m8V$3uQ%*}@?|C -MbQX^21?%_6bJy=g0iG<87b#yQ3Yv2f2GI3rPZal25V1SKUfNna7L?_)YcI66$6k#|lo{UxqSw*9KE_ --}Px;1y*=K(^DN%~`k^<98sNhoM53G3P_mW+(rw9->`@RBgglvZ!;NOi?Srni*V;A -Z6bU)OHaSG6ck@?~Yn|qqO)hFP5&3FhJs{l{DwrE)DtRQ1d^xC|MTGD -{mW>=L=u?4`Lf*NiC%W%Y=(vzs(%gotapAdb3)b!+zbX;UoJ6)gdJO;&5`_gL}q0qHhd8a10i+{=(pi -3>b!$MVDudE-f`a*Z6FeXC5$JWt!TAjl&dun?!&^(Bp>&7?sB6Uqcd@t6k)kx3oWC@|D4wEP{^CwHyO -VnH5|Zu5+B4I2%fl?wAW6{Kp!FbOmbA%fd!C}-*-XTx?~^W(*hJs{l{4>UO~bDzE)q)H(fN=n^YMDbs -MQp}F>O|s3}t`^yj`oZ(E6_9SLWLSd2BumAnlEWr0-M4Mpr>lUS6ov9w75FNrb#f{d#p6oWaVZC++uk -J$oHm76mhrGLax&8~l)(tYPT}2?nqWcOPCnz#({hD7wbmHYZL!!_b&be^u_G8t2EfXek8H&kX!F!93{ -D=?mstD*?B)QCv0#Oxcn*sZ+YBYu2m)dPrYu*-SCP}B9|mp&_)A^2z@_hITuytjAP-2lNpMCwp{+`us -6f%T!T~N~y@yP%)7SQ7Ak3~rw$oy&JBZI&^}GYpZG}EuY~Jgp#~$F(-7V}-v3S5+07ec8*l@uq;cmsLV`1h|C^JIa&E6?9JnnguVUX8u&!>G}{7~?7}&_CMfDnq`-a -iJ%OE60d1Plu_rG8Yj%y$Wh)@vb_p45Z-;4-n*B=V&8Qmiev%m7J#$4U%QJQ4LmGe?x!c!x`8-IsnVk55!wGL#vXMBEG&^ceh=&tG(|qM;luE_6aU4Q0XxleHgHJPR(qd~zv#fZVmC;)Nu9C9Lwo?@S -rxy|GJ!zhCycjyyqWVf^`dshJI)4UTabTQW6xm`F0iXlG?-u0oC%4tp$kr1GhqWf0mlXzKAmzA^dNRk -uER$TNVf&pJqyWtWB?IL_AG+QUBcK(#H;g%ZdEV=j+BvV_g=lv+B`_Nl)W(@;%NXrq!ly>^sWR@h6K1 -Q6QDd@C`x_;%Ptf(I^e#vFPQg$bi1{A;vqt&s%Y)!Tj=@0OC`SBdal#A_U6%UIJs&~TvpX$=pB%5H+) -|5SUZu*d5+8JBa9prQl#RP7VB%1y9sG@yQ|1r^acG|V-Jo)j)i=7$_KOk?mR3bmrW* -o`A_GM?~XnAQ!x17+&9(kx4;fJJb8R+1$!|E+B;4u@X%-Nnh>uK|VJN4gabJ+?>w>n8W8aHy2Voi+PF -L$K^5tQBI5gS;{txp4rrxQG@KC$v+tudtAKI}i0>1z4M0|Qw*eFO=88J3@k&3B6j7$#08DmER?voVLG -FP{hLHp!6?&$ld7CKRSrDNC3xk{hD$Za@n7mUcmd-P6*X51(G*cF1AD{^)!pt;p}NUqD8_&<$}`CjhJ -Xw>py(k1_EyJlzdiGS(?m2c+9R#N!V6wk8dP4^t}W@OHO|=j^B( -Y`MWT@a527K}=(g<2N-yHv#Jt(pR+};ThwtNUOWYvc_PI0Fqda6QXkBSQBM}lK>z?M&^n{a3o=-reok8m -}7+IAS;n5RKp&!=s>7F5p(l-)9=X%A*kZw15k`g*ZZtZmdYE1^O@UA+=*xKgYu}(6*X4Q%~K1<ARMBJY>qtpg$!Qp-H=@fs&9KLU_dVNgbv9RODcvXAwrt$k)*rPx26M*1J)o(Y8 -pNp@UHlJn%BWwpvY3~<%V1-FQnVT_9WFG%rfmZ&v*#wsqJJ;4I^bp**#NIris#aQH-zwbsb-INV=s~R -ZZhZk5_As)R>sHYB!4YXdcTV&g|cC>0L#-2JXURtZen2kbYLoL(QsZ*|J;qiGj9vsgUrL%Mi!_ -x|J=dN30iK0qK^rz4?&4z{+l66dFQ1WN -dKWPaigjE9p4oiYA3IXlX?bOtBBTc<6%%n-U6gokc;Cf-{l -vCryI^e)g0fw*bs>A#!Ae@Y2Bu5Mitw(a&sJKC&ISU!#o-5zgg|&KH{}8nneIu~9+5gcqihjE4@kFFr -E4}md-jke5GcVOtprk7xU1SPM5|Ak>PH?gDPSmv-A`9s0qM3|B(cti5vtb7`gE(vygX^yuhl~)kxe}^ -;4UR;JRC-VJ61Z@A>C&CKZlLFzPmpp459+rPlvMuGBdcaH&F~$$shi}9xrFwCEbb;H(dcKCQ*3@)vNO -?0>uFTMB$W1Xnyr#fgQ_C?0$2}${N^%Q%LsKyw;8EO)TNT83D5rE?6C}jS9iIftg)R`o( ->3N)jdd0UO#|Z*)8fXjJ`v<&4*{@n1n&W_f!-CV^7aK)#l;>F?229!Z@j<%#*Sugu~g|<#DaRyF^}F0nE91lp*UjLl0ENW^*cYvr%?||6S7UFxC-MBB5vBH;GO{6+}{4e68fcL_bZYjH!*jm|CSZ{S1f*L -;DM+Kcz2dWWS6pLM5@emidOFN?^r-gE569GsUIWwCoagz49x&q-9+-|ZoqGv=Zuh{5%BPsftdKYXaZ% -oa&a{gs)FIs_$bmJ_Qv(wpf(bbYhRK8BVPO~W@D5bDQ3A&#^b`f{?W4t2styf*2)^^J|Bj$BE3X?lE?Pg;CwF1REKn1J>b_PSgbHX9n3a8 -0;P3uqDq%hB}B^E#$zN!dK9ozZF4?^E_G=hq}#gN+vu^pW)zkwL01xiH1%z+j2B-6)7E^>``Pm1quFwJ!PKAn>7md{ntf|sgq5VDxMi9iyJu9SrFoEUt7 -w~tbju3MrgOtQK&ZiTr>8H0t17sjNjjz6qrNp5L|luw!5PLeW8z+qYq1g1G6WTbOsisDKX?@qcUlemq ->Fa%@B=lB@bH&`4>!-4rl>yb3f`}KsOoNu#FFD;Nl3Dz2WgQ5k*_4bTY!YVdM?H8*$g5d1Th|R(mh19dH$9 -{PcFQ=ggE>y6a+`%p$#NQS>~>oGVoXj9?Mpfh>t6oei_`l!DJI_lkC#<7zqX>e`0T~un1&f1b9 -D{OIV>b+37&O74P(Lcn_r(WPi4XxdqAB%rPT902Q%p^NsXlvopXR|U=S8Cp-#a)dAoGHEg_BDWhmf6GwCM9df#xU44#l91ewW>E)qCKZ{o>aR#`WhJ0 -Z6?OdbFsQxf&Ebt#U}kW7{ZxmCxr|f+X^kUN&=?F?jp_H8P;{0brW -h>keSf5*zeQpHDfp|-LmpLFx~T53y(mDn-5dLm@EODXRTXxveOT4#}JDXE#Hr8;0Ra-*=~_xLpD? -Gowa=3L{Aws!Uq`H5JROjI -re%a12JMx?9HKo{8@HNLOYG>9$I -D_kb7+w?IeP(+_OvK6Ivy1@xp9OeuxFvD;85NT|iKo%1rAkZy~Ix}NIBKzKwIhZ01gao*}TDw!IKw!7 -U}7fDHGLL%F%)(Cna^D0QwUY-At7a(3wybu+cMYxQhw5&uG_0dXfvKsP+BYMw*oFyDj= -^A5#}qa8vA!|eI1tO~B}mjf1-bhwwX+c=mkR{#i#-wZ#nn^KsCz4Ti_Dy!{5R6;Mm4 -D2~9TBzo0L-h0*TOJ1DUEwN^T{}m!z+w7in3-mlZs9JLI?8^jirN~hw?GF!T -7v(%z0Hs$gX)d%sY&N|H=HNI0!9k)t%#4R3Y(A@}ay_RogC1ywXVpn?*UFk-&f*sjEn5NUwq|(-hV`d -yR&0LK{`j)2;$cfBig^0HcB}`-2-unLN&7Orez9(lZj+$L{PqFY!(?K9xr+ni%fL`~msgy5z6A-BszN -LaXFZSAFHK$(fwwy|Cr0Pf!P*_%>cl#q;#J6>YMVc7D>UU~-MV6Jlzk0Mz+xyVT4&x{Wo22|_grK5Nc -oxvZeb=)M`s(gY1uEkqAI!QJj987Js4dEa(WEBJ6k?c7tb|z#%!&dJa`LL-$U3vhbj9lfPQeTF>TGnW -EH5RPDv%=vvLFUJ3L9Tl$Icr>*1tCQrILi&fzJYdEV*|M`v -q>-(FPt8EY;p;E%!&g8q6f1px~ru`SO)#Ay>4C6 -D&Ux}83eB8SX3&mcFjVOKc2aLjchut^I_XBBULeRK1F08mQ<1QY-O00;mMXE#!yL5&zV0{{Ti1^@se0 -001RX>c!Jc4cm4Z*nhVXkl_>WppoPbz^jQaB^>AWpXZXd6iUMZ{kQ0eCJoR!V8gzFYM{0+ly9O<3JW2 -U&2OFp3q>oVYK5JYi69t`|GdFXEqDcEl<$hRa0Hvbh~}|L;bN%>W^p9zjURx-D*>^Wtv& -Jkyvg#r%rTBz0aTj2F1nlfI_8c(bPIxuw(nm*}jv=Xm91Z^2T=D?LUYRO@ -#eUbE!5~7Ia5Y=*b(J*M4jCp?_GTCWUF(BQm&X!MW3nq~6hP;XS^95RJZJjcCnOInFE91p{j7d6aycEfWf --FZ3KP7U48`c|a|kMi%qiGs&V<62$1r3hiqM2f<{ph`s?4_DADU^3tduj*{shj%hesP)PG|k&L3{I9$ -+txtP!5K|mBUA1!Xoykzpp;vAHPfs+|~A(h*={(|v32viwu#VcdXDNAe=3H(LM`nP7NjNa_}1>|h#1I -e7U@m+ee61#)#`(?UdInTF?rB8z{{nbN}(BBnC5CcAxIjD!q7~7@3alR>?guvc^>hJ293dOCpYO5<46cjR8|SfVg-Ewj^AQ&9GI5ic ->@!CQXij_A?DPRJSVqb7L@$qqs%jgl@MZaQn5bx -_#lZTP6v?%yvqn3STHQnH?yX5)i8if*iQ;E%0cp~JR&^N9B08mQ<1QY-O00;mMXE#zAMbg(}CjbEJPy -hfS0001RX>c!Jc4cm4Z*nhVXkl_>WppoRVlp!^GG=mRaV~Iqm7HyFWmR^qzx!7#30(;!L+|yn-)<|B3 -Me|I&_JpRMcgmQRGBU-rc7+pt;(;z<9SvQA~lf`J`}dkIcu+%ImaAx%(>17AN>A*<#g`R?9dGI0 -6k?tcFL)&2F=A)!-tRlZ~juspRex!t$cHH`h|V``>XqR?Anj_* -VpCY?#IW!WnzCU@9usnudd#f`|H;?4|Diz#ACU7`}z-e_xb!!cdu`Le8-=DdHXucVb+h=_dh-Sx`%)I ->f7?=^+RS_{&fBJ`aY}q=9eFCZ(ilYU*5dBe*17;t{%$I{O#e*Z#(q`6M6A|BIS#_4Das#v0UHeb)Nm -#>-&fNrL<4#uTOhF;$_KMe|YuC{BxQ=^TCfY>38Ker*Z%5CqMb!E%q#pJRfrOICG%_4e^yCY -}NQ{Pg)}|CCQW`SjVB&t87V?7w*S@~fvWUX(AseqNrGZ=O7V`RucAzkKq%eDm$|Z@zx<^pjFvTwnjX# -cby9ZSsF^@sAnur@QRr>+8p>o7;!E^zU-K51HWY>+I`r1-u}h)<|Dst -=pW0?kLB&%<7N5V{Y`8q*7tX(n^Ar{-^&>Nt4}V=TJxr>xBqsVBY2UIe{u6;hW_IA?(Y7we0ulr$Xoy -XB%fVct;@%?FSV3!U*s?U-GAljSD*h6LFI#s4E(20TdytK_V9>b{QEC~j@x&f`|I-R&DH(YD{SfU>WA -Cw>4Eth3(VsF{pv%A5b#_N_DUno-NgAOB-nKG{!x@`t=omp0zNaJKg^)SegGGLBzgIN -raoYVGI7_ -I+IgDEaLphpX#8ed*oLfyCc^>eUZ8LRwKKuHs@1H-(|9trQ+Z&&J`sLH_Up)JNPg%~sE&usS-0S)GFTei&i|0@O<@>L -nfBy7&-tpl@-S&D}_Hka;G5Tfe+qmp!%Rk4m=hwdQYrU-dlD~~DZ`scLx>o;LW2bw&>@|ODZCNibGC~ -Gy8KJG~aaqQmq4&JIocVCCTg%_Zaygc5xvXbC(#~zmKV!e_>#<~femXNsKSs-dIr__TZ0F@@nNm4--m -@Q<>(=~So^-BT=AS2xm|x)svYM40M^@X8Ez?{x!kT%t-m)H7+cHeABYUwiem&MqY0rcEmW3T_ -US*mW*{^KNXa}3oGQyG>?mhdw!6i#>;zlVQ|Y$jUmik^S;Ksy0ZgI7LfDK@*4J=M -_rB_BnQm7WgB7wjn8&ADQ=a$$7~LU(R4F(U2-ymDdl)J3@=aSSlfHY%$uu**D!3hCcBi+=1DQ^97;}s -)9ZPBWxuwQ&Dik(ymiaA^fN#8t;HI8UWi9!5eM6FX8U5Bd0cHcMa_VX^T{q@#3xJHoLm+#&g@0OhzC# -dfOme%`SZS&VKUZ=KP)kzvN=OcGLVot>}>XN@~i%h-)=;{=zMspG6cfb77690g0%s#1&ciKnI+a1U -&g_6AUOTb4D-*xt5-~`1EzKNKMmRi_;K#x->dT37odaMg9ZSoA@h}{Mh3?tN7>vVIFmmuXyr1!R3}Ig#nrX(ZVu!%e%0gHCagAx -!Gp7(ss|2b1ZB$W1ykeWPRoSGBS~>KMjXaH6*kRm*Ih|n2%aMg{+ibdj%cx; -@obBr0VgZVKV!QsSjS;_)(?RX+j9!qv$?V58&<#+~$7f%G{Sjoxaj}ACwPB9yefCcEI+aUnPz7`H;bl -hwKz}cFO=+)VpgY(#Pf@8tUwgX?ToX@soM|uu3DAkFZ*aY@ld13Eha$Kkb>Rp>_i9La$%C5(D2A^HlA -$(;i?ki7EasHG --hjEzlk!LGWFzkLJ|bp?iu4@_-Bu2OGb6ghi;4Rn5<48fV#ypP?jJ}4N!Zr~s&hhKfUBSez6|Xs;A7e -2Io0!rKsCZiZ#cx^c>}AJhv0vWHH|Y?T8S>z5U{!AX8gcO2J-?|1K`B&)BVaDU0DOM34)0dE0_<$5jo -Bnc9rx%V=}`P_EibBi8ht<&M7bgQ{o7-P(laBSjvLyNm+=m6#x%3#fSi@nA}CI(P$t@5*+a04tj1J&w -0q&I0Y63ipTQ~Fh5V?q%VO^lD7}5EKvC5gUm^Waj`pATwr)&%gjSfH<#S1 -c`|n7&!FJ;YALHSutfzd^?Q*bp@~0%Hb@87*KFrwlLafXYtf-3ZtXWGNk=Y*;tDvgrW$1H`d6=;)y_V%T -AY99-~yVB!gBV#PufCo%$1En@{xL5S5iH%91$R@}C-*9Uwjuf`6sr8Sn2}y?g#! -8caVCQ@+f6GSlQ`VGI#B4ai!d4|BFhe7RS;sDAWx^*!dt>o2w|tg`ZrT{MlJKF6!a6UyUJiB?)?KS?m -BWPERyHK_2SR00xa_$=`!EhtpgI7SyeD>Op0WaLD>&W2p?N&G{is8QI&_|Ol -WWz5i|0eEZ_lF@3_F~q=TsQ11AOH{$H87jq03je@zF>Ez#i;ml140`KLE(+zN`&pIdjhpCic`?KHv+x -kBwh%rrlf-2V4+;}U+A-`L@X;}6Lb*tP%FT9@N9Ib9T36N$(=~oCCPRy8Lw4HPSlM>v0M5 -Wy;va!>0U>e}A$z2Ujf`S76~OEAiNs|X?H!N|Z@HP(@Df+7_j(@p(O5)*ul1SU?HUj-GtLYlE)hx_i(KCY7Zu`#sq+d06U-7ThmyVN;%GOOg`qW^w?I4K#fgR(730ezcZ~Sp&3y;i0lb4Z4`i0obb9odRd -zI05t!m(uwf6e+U_==GLw!>1jgggP^7GrTyl`>aY%#k-iN}&P|i?80i8jv95~0ygGu7cf#GWSV@0b!SlZJ%Fs6kC -R$r4PDj=uC2t2^E7iND<;R?55g#HwWA^xc~}Epc9F}SBiDnTjsqw^J8q0D#ik`*06uz#^ua(6Bj~tsZ -!-5q_eb0Wj=L5~{8&|Rz^l5LO%tI9N}@0{X+}I{oC;@JAN+8z+KpHwkv|c;7HoP4r?=pA3}}OBqpNIc -OfVB5ZLEZVv+ACbAUr@}3$$rwH8V%xS4UuLaPp$X99>opE&u@tco5Eoln!gxYTdMX-rymks3|Y*(v*B -BftVrrTpn*mlHl&*Xn0fR(4q~^NsUg_z16 -5?l)e)Wwxs4` -*)WnRI#%@oSS^G^IC21z~GI0$W9k%8FTl#O7_B8!y*&XH5DM8eTMZ-fAFt*}$IPfa6;-9WsKu -AQeq!2mlY;L{Lra^Aao4_lS3iA4aEAp42P4$aRf`0hZuFYGg9wxIzwc0AEN-a1Wifl5QSmTtDIfkL-b -p($G(YF&o9fni(XQAGlGvUtNZNKf$Dcq69TP(VV^EU{sDM(9JugMScCHuDsCOh?aO@st5I>}WJ~Q=kG -ztAUd9ZUoew;J=^vks^k9ueG;K2EwV%MKUol2LB*PA@#IFl^EvRRV^AxAX{2wArKDqq-s5Ds>$t|E=6d4a2RJ<-V+6_$ryCIFj?U2~uMNZQne|!)2eQ#dglLK~ -y~)D?PCS2Qz#ZX)WWF!@qzaTUXQ_sA8V=Avh>M2tG+0R``AS@)Sh6Wnvsz4PMLQ?E4qB4OK_SUigKdf -=5ZZ1^N`Z!0Q7J$qbRfNP{`;nnA_Vz2+{M}tk)+mHz$Dx@WeE!***L;N@@0kb9fyOSve~t%Pj2S32(e -S`g}mYrq%Eta)MtVZE@1XURb)jRY*f({YN!M^f^&>fnV!W1K44MTNkE%M&7c%O5po(4p&YLeuZ%c|_+x0L2+6wzOCV4eE}_U7D5gy9Spc&uyWvYN<#2_btsd -Sra2QM<)2FYFkNfHh&&y)>L@X>{h0--3&BAE;kA$oW~$QKzb^=Z-;+gG|9l?da5j!It-vi@whc1RQWj0JMij`(N -%cJKpGJV>@cm!c3UgbA!1j@4l4rW5Mn6xlBX<`0g#Q{IlFVvLR1^gXE&J1G-r+ZWlJnq+Rlx#f -Ea{Hn5cH=6wkTXuCRrxh4BHv#9k72v<;o@l%kBuVWKspSv>{wKxKlBqr2LpXjzrfY-2oo%NLQ9lE1*~ -otw>b_PiZz&pz6U%=^ZFYHtkfwfl)e5(x*Xqx)|MpY$2Wtp>Wh{n+P(+AbZE`t5q|ErY6ZHyBg4kkco -vP%81j{4CF#k1o9RR?3Yc!B*kT@R73t8H75p(CVj^260$1ss}uIiAVqlrs*=0B2;ys% -ngOY>=0dW$gS7c0taex5~zaFz0&y3hi3dw -&}YPB~(9^RBZ1b)tznA>bc61GkAb~78p4rREZtcvN{@jyz~HuYTl_aI|a>Ei$fZ2JH(Y>J>-Q8?v#x? -L0(nw^i`#DO)E^*5?7tDb1HQMGD~WCO{nVC(3DRI~DkA1xNJnoUpyEghAQh$lpncFZP3i3`|-6lPt|n -$b`>25m@I3NlWkN%LY@Oe7Fzd{i;}Nf1q7zQYnI1f(b+Ax#!EzjaJ`OkLCdF!R!xRxlAy!KBm5fk`?& -Q8q^&mgY|LY|IiusJqyzcUlA4B|VfsC^1wr)&Ym?Lvt`voi_Q{No#$}niTMI+SRCKf!OohfMim$ZmD0 -|j2clkyNhg!!4eeo!`f2!3x3mWQ9r#(>zu6J1bv!cJ-Cm`b>DWKXm%-&G~28OrVhGO|tR*0 -ge7)UQ$HH=osYYg3Tt)dcY3W2zrY93bk?boC)ByS$pCGGzepJ;KY?g}x4_88cU4Rpp*LySE+o5o0_0? -O@yQ#3B4;Y* --Sdyf}j|%92-Fhtz)+b&JM|96BMb;qROorr+R{6PljnlgJ?6$qEihrbnpU6C&EB6d#85NG;s)Fl}K2$ -SYFGc&j7FDo>CgO{!LauBOm(Lhh(sI4uDHqs0WG?0Xbcvia!{wBBCEUL*uAylO1q#8 -*uOu3A3916U0D2KYkG_sg98HdSfL*EIbr&gsp4i2r8waL{eyzG{!Y;lK5&vq_@r)6n&ZrFBf=(gx@k2 -8DNwMhC-h#w8SElNGZOr>enHWcd-gb9o| -j)j2|kjV0fNew};sMv{0&`NwJd5SjCd?RGWy$3KPJ@fJb6p5^_s3ueIEzLGF4!tTWA@ax%tBPv38K_X -TRv~P*JrH-KI(F+@%fLT~LfHnIhMKYjAhH=YyPdkO5o&@tFN+eFIynwuZ;*ST=^}MEi;jpX7V7cDMuD -clKQEf;l?@BaOaKH}toBgb!DXwZIWb9cU{y`Pf`7g>677 -}D+q!sp+HLF-09$i%p2G~w7HsIBUZEU9@u$I%tKBb=3&Q@v&!k67evxAhkkTDWk6Qm3swqO#mPuoM4g -e=vu*|u4bWfbZ#jU%gv9fd5^rd*S)#a1^nR;YA=Up1=T1NEud%ZYcUr|p{=sD%OKxbL19DN$nY(~%Jo99 -lRM*Dr39feaS35Dh>;T+@t<9J+dtME5AhtR=kr1hE(8*qH)*xN$u)=y6BGJAosq(5Y3#Jv6>T1zux3Y -~LN-5NHl>i6rl&rR|HeZU+9D-MJD%}AgY-9zC3LEBtiSIU$AByG7#@2|{QosE$8X9}8@Sx&&U^YW#W3 -{%3c-l-H?B=y!%(g$pKx7d5Z8oRG)M+6sv%JFUxZ9Kgtx&JtzfdfIZO_^}8S&1xTe2VypzpLpF8~q>v -N_jUhP@~xzZc#1d^)weT^FEkC9+pSQ=yz%tym%sjm>hMeR5!{(k`fV -yKCp*gX#wIek$TL688%0}F#g#rC;9fi#k2wWp&h=bu0dBTCSSW=L172)>2_u-gYe-7D;$gM@?N^IpMc -~V7fO0NI}N;_1f#J;2{@QAQJ6|-7+mi$gb|!=60;N7`$9v-pVH+nSt7hZste_hw$A+Ds~5II5!@tyyF -Q~s*bQk(65!{b)hk|=r54$`GN?f2(4p~r@?NO2E!JF#>JE{%+mbW211T`&50Y|3U3dVx=`g?oC0=CE9h*9ES5Uyx2wVtMg}%$ -eWyrqRL#9@1$2cXcdfKI_4h2#YCYqf-UcTdV%@%Z)Q<}1eI`(X3r7Hy%h1N_TECyvm-Ap0ub~ni(rhp -Z;_)(kbNZn2Ub`MPo=wn*t#bg;Vn^~kqg9Rq2<91?XZQ|9T*-QQiqc$_y;zwvgV5=rD^w~D58W*){ze -aY_kz%tddVtB#_F{Pg=IBGZ|*H#L`1W+o7yftDn6AGQdM0x8Qx@ -_791v68&g!I>^Opv?e?pOtX4d1`42)k9z$L@$J1u2{q`W9E)ybpNakyK(=_s!}mE1+Xe=l00xJ53x{3zv#ZJ`2Gwf=y^B&vv8|2ps|IUT+)5Pt>M -bP9x1)+wc-TcF7cce#dimxu4J-h_hCdJUTB*kC?oot^AnD0!4Nd4!ivO}Uz)j5SEepQZOz`55rDu46+@qo=mHh|{YOUdOOI -KqEkU1A$PfIvdp1Swn|-S(5Z}i={ubk7iZT`+0|rWL}fpZA$?mBxh1qgp^gD(e)$StmQk%qd5K{kO}! -vL3m!+*CY`(t?){>a}&yHB-y;gWm!fXC03)JsBn?%jbZubG!oLy!iS5}A&1nc4)^X@)^WWiXPYva2+D -Cc$)O}!--|Fz*m{c6{jMtAyfd%D4Q$I7?6u$J9^5kBr7Q~2UPn_bhka3yJ0`QTXURs8-Bw`IVhr}QAF -Z090?by9u->O{-tIDW1V|b$H-?4G9ne$!%7Mch*7Iu)2t!uRH-#F -g?P@y_>7dexO8DumAg`DZeXX8vyNweSArlP(fU*JrO&MXYU4F^;2ArgA`*5aPSR0RvaD?o9XPU+QKN8Uo>p|FcKwPDEEBp|!Jt -1Pd2kqjt21VCClx_J;a5O}2G7R~4JWg+_XwwI-NWdwWrsL`7l?p`iaceGK|Mi#fhK5nyc)K8r&ju4k7@Noe6fVx%|3=VdPo4p44u0mG(wNQ!-tUQ;%aqt&J_HkH^)&_p1zWMGxlsaEfx8jk=<6 -kx73fmh(km@&-$RzN*UQ4NbEdF%wP -V)P~P9P7OL$^5z2RK(<292?#k2d`YzW`DnVFhO_NeeMMd@3<rLof@ZyuL=@s{wt!c2;e} -zU88Hn!&3BtFSg*ma*e@Hein`-4rN$rNmS_yU+NI|=P7s|-v&mpacAJRUL(05X{&)MI6i=(7l{bgHFw -W$Z#||5!7q2LqEz&_Q^;Dd&LwVj%<)$vEVW&Javk{W(IeQ-{XZzhUXm@BDWC0em=$Wu4W!H$`@c^WeR -rdE727tQ=@NjlKbcqnFo3VkkVt&bkH8vKY>{abn^LS`&q}QqM^R6n1qWw=e`6AKAMQ2OrY2|U^i4|nO -L&Oe7ixPf$4eK%T!Vl5A8`q_q#n9#+dcT|7R`#@4TZa_EXZ4oV(wH;6wdJkM!*B99Ub#jU^^Sg4qNeRX;HgqW6&JHuL2F;78YK4>|PgN@RS&gIGAg#d74Qo -3EvGX>+v&k><;FSHAmf`&es%D3sv^GKlwL?jMUhSvOV=uf>0){zzmh!%h?x>Aew^4@Kz~#*%NBQ9P>f -w7F6X4ncZ2i>a~&WO|<>>J?1k_Np&wz -Ff-@)%$Z@D&C4I^_8taf8V-`)IPFn)I7zY@ayacaj+Gtz1>!*p|Egj0n+4*dH{NYHejn?+6M#c|+6MZ;U?l4{MZMSz -+toQem0NnZiFq*d5iTqD*MAoJ+T-hY_BH&i^qM_|oLEs6(jIIob)TJ=@Y9J$x81Xvhvq>47y{bTh41N -@f5LWyabu2}j!ybDOhM{U9Vg2%)|K{m$JxVu^fs`-!bXgl?nG@wEeEn~bHF@IgPOxedT;h^|Rt8uo~c -E?RKzG$*Ndv>SMjFCavt&sZZ`F;$L>O0~g&TKYbif1NDm6ptV2dpw)Pp$fU-1jGG{ -NOa{JaFFb^3@wyA5J52d3R*qhr<=jL7K{Y{5xks|WehkE1t|9C{2jYeTjNm04VHo`jgTWeP6A -M*=;qEV&1?AD$WWK;IjUG{*%b&-1QJXWm~*+yzU!jfGk4VlqCbA*8Aw0B{r4}gd6?fcH{{fkVDdsI8z -qLV)7%HPYE>1a8c-1ml!My7;whwxrw>#}ql4BQKBM?uS_#MxOcTaHz6h=-4>aDZAbx!SZViB5>?b1@P -JBbLzj_l_6?6I9@GI=u|h=e586saRfE9zh0X -LkV-lxQb+(|JA9o=pOa{k_jFn1h4vANA(!-FTud#;0eK+cWj%;_CDl^~BnPy#sZ(FzTvE=1Hbgb(+UU -C01SL|4GtRs}EW7XbOur(Lxv2lqxo*iORfC5ta`3JcV(VlnIu-HIF9ESEf+;OqCs^vA+JfU2O0_o#sn -Cz0Qj=$up~>!syb(YPw+pyOecdKy9@FgBVqyF=&&nd1RuH -FWk6tlrm%4aR*GW1rlBF7`6}VDmuC6!bBF~(-P*9po3tenTSF^$xW%F6N24g>|O}e -&ZMSBRo2X^v=0hct3HnJ-d}yVQ=`cz^>K7_Gn(9e`Uz{HX}pE~gi^9xr3nZ_szPVw28@Hi<=M^Yd+Zp -!8DEU=J`wllZpZ_)PgAg! -8kgjnS}jaUS;NsHtCBk5ir!Z5&9pFUic6EaWp4@AK0f?**y+aRK$(u=X=!1#?a%7T~7Ve5113m4sj?}l!31z5qog;J1X4sXLq< -Auut?>VRI)^zF4km(QhAO0u*qkMqftll&P2egOJOxyIE<#YuDP)en{&+k%{`$9bN}o1g8nsMpghZN=W -3dI7NdJ~zuMJX`UnZ&=*p-Qr8OLy(=m^o7M3$usjz9dA;19bvL_E)RSwT=}Z-*T)6A?4S6b58Y^y%8OpD5J-}(Mkr52fw)viR|N%%Gkj^jIs#c9%7dVZ@+>k%X5v1QREn6XsCd+ -VLB?xbfk_mGl*6U6Wvol1GjJo7z{MUjSw{j+SS|F_l+9Tr18d4^DF0EX6|@1$^!~+P{XVBvQ0paGlvX -jFGh?jbUL7^~B+i$312^-kiVO-;xi(T{$j7{NkRMMHq@4t@Es9Ud4Vh_QVswA&m0ChdD>6zo|H`>1FH -qm9G+0XMYh(Y{h!flAR3q7~aR%+1 -B?bOMRl@rf!io@!KjDk|yk6v~k=LH7`Zb7Acy(2NKAj! -2Q|%;(zC!7uGQr%PWpe^zqGPE2QS{`zfb3lBSf@5u`;X3xXmf|b*lG7&ntsyPcHL~hJ_n?u2#-1Pa)* -q08Tp7a^w3pE@k_e`_D-e=pOJ5QYe@;hu2Q{mwD@RdT|hV%kPPH6?8UY3(g7$VF|ELUM4j^+5c(}@b* -YnncR`KcIHR^wC&iLZmpPSM;0gQ`?4kV -Xyb(|&KX>Ma5I)U;)vxosla1h0jcl&U!*DqWUDXXL+%Ev+nyC5bnwyL@dVQQrinvQFNH`tnI00-2*1? -UNF&YBC6RllMFH>8IRI)~i=qL2cd9}!k7C?G(pvb-Br4#2Plui5mWU_jzH2@fR`Nh6y{JMx -+NoB(vt@zWUJbjxYI(6&t}wekTn4|XXGOk@ry(}f{;JeOlelsfk*Z9tR@R>Ql^L-6ah4Q`=-_BIBe+r -Q=U=t>+%3XEn2WFI3K_aX~xYy5F4P3?oK1~WWQDkqX=?7LrC0r{2+xBZ{HPpwG!&C*mtqwylt}!QxXa -`Qo4AXK6EN?$51KTR?iLA#>q##gK?(#qZC1r3H0V&2Xt*p&)vUlM$pP+|P9x2Cq0nXB*^egdaI5VU;Qhk7HDRQk@ -4He3Nfl~Nx(J+lMeT~qJRr0{WQz=*Y^UOTt=9PniG$la58&$#otIJV`j}*t<}T@PPgxM$7Hz@~f>7iL -$>#*5L^ZjaYi)0%B;993RZj}S{Mtt~hAkujxdaLMHFvMmDoGt|cF=H}JfWsMWz8=2gNVA)NioQ0&Vxa -QU@?^I)ZJD>2(dYrV%3Uln!wEFD}I5D=>IAjzOjdRRM{F*CU>*(tgef>hnnh4@sx+2T -`%rwC(GC@m(TC`>40gaKQ_CR@$tR4W``KF7!ea+@=Rn}`K+?|mUi?7yjbG!7d##&`bJ_lUJh%dMe|8! -sL3Xw67!l?F657OHNEuG6*NQ2YZL08t+gkB`Z%VDOp90ySJQM&E_u>n4%35nv28@zK-_N0NM4p=9M%U5jWkZGjg2 -Tr8uroKn4n0h&=`dF9STVk!u~5TvOkY>Cp}5sr>>$dt~YV%V*sFuK~+hBUon_P(Q0mn2_$!d|E$Hta{xlYBWEbT-{uTPp84s%d<;)7>7&irzTiB`7n`(vv -8?@Iy(-QUZ2UcAHtRX;h%$rcef+-nf&-=xHfqHmp!MEOCXFTS}@l#J=P6cYg{DO4F*I*x81pXFgb$Jr -v~+%Yeyf+ks5-6CZsk`=|8U1+$HZw(uIkxkGLF9?nSE8_oJKpx8vKp(d3kbe)(+?#6$lVyaN_8GR=aJ -eV*ydtG8ztA-_nXC&Kc-#rmZWdjm)dm=I -jdT>Ro|l}@6w|6RnB)reb(B; -8U0I(tt`);WKCR98U=M{b)0yRtJOTuV+xqTd6<}E89l6dKt^NifYxDZqD5Ys@=*2YZUepZk)OQ?WL6q -zt1R*rVS-udFZAhP!Sw^Z$M)V1Nb{YB4sFoS~P22MB^f66xU20jPoeGFaPa$-~=O|D7TG3rUDQ@^olr@0Ng-8Rto{OsnakaNyp9OI> -GbVQNG~JZu9-i6?t5(ct{Jyb?^bIc63|xy^qx4|&h3gxeMzJ14)n8D!k;PNpVnD6#8-3Tf<&v{JO=Wg -TUMvcZ7AATyaVXKrks3)z(3cn-xd@gMCu5(yCGlTq=oXmsU3(ai_|a72V&84;4BAqi#N-{Vo0{4k+N4 -_0u`n|9;Fz|)ih;eM`r}Dx0>NvcI$r!H8FvG3oVEFKiPaAW#eqX2h@-x`G|Rr4R9W8z7w6%Ao09vAhS -ESCmhEKLG*Waw;}|;o8X5jNX-oIq+fg@GrM~meXc_f$blE~dlvogF+P$ONgs@th(s!9K7~nV)xJgD^# -u`4$qaVIu4FK$-eA4Hb^Y#IC6Wb`W$^1J|M+(6IpX7lfZbhgIUqO(R!CMY2_jplM38F)RTohEK_$I6s -DgF+ecd)h)Coa^Lo})?whVt}NE(hQQ?@Z|$XPT?P5dw0PTsHGS8j`g>C-Bv9nZ$9*UA=feT?Wv&i6gm -HSm~aI%cuh&t@OazP!iqFh<&@z22?*nGgX-{b?NS!W(*hDG}ONRbudj@$h%hpsy*H$(OLa&+xV2m8%T%8I40x76#`t*^OIZ0=B?UbX6z``~D6yrOB8c3 -5MO<&X?Q-xQHU=8U_NtP0$Ueq5F8II>~T7c^j9W>j=`PxI}2ewSzIrdOA}W+NFXs@QM*+qNJOo!-CZP -N4m&wimU{eEaM{-oQh#e^-{XpBtiV5#H@L{_w;xa#RMV8I<{;?!9QB?Vzt53^NDajd#l@$oaIytah&P -JhnOoA%4`&q)_Id=%M_69=v!(EHHOpJ`YY_g%S7VGgSLZ-aSd}8-45_U#pYOz32%W?%NH;cT4c1OM>k -h`sMR8bky&Wu+@I=2xwAkx*TyrT#_epF{quf%kg@>j#igl?}$G*dWzHDlitAlRF6VMeE8@I^?KF*AgX -=NF&edZQu>W*>uT;B0XmktHQ;0~NT}!7PFDpkcV=_+67==618kJyD`c@0S#~G?NhS-3b>uYF17e6%k7 -}B^R#zH)dv(zmwx*05&bK7sk>9JehzlIkz?m*RR)MsG2I7wC -Zo#Umk}gQ?Ss0dlmH4-c`&(mxhxW7k-3hTVQcbM)WKVz2RUb=-Ute#HO2L#F-oVVQ -jNMj!U&N0bV5mC~QBmfd~C_Pr)}BFFd}6dHB?J#+19c>BjIk#B^o;$p0LM|1pLCEMV4krO -G`8EpKVP+wGr2vQo?bFSJju%m1IH(P`c;4Ex-YCcpm|P)h>@6aWAK2mlUeH&VhHIbjtr006OM0015U0 -03}la4%nWWo~3|axY_OVRB?;bT4XYb7pd7aV~Iqm7HIX9mkR7-}_S}AS__PElov4{#|1ipk&HJuPkXv -3Ip$p&>~w_V_Myu?xww*Pe1WHSzIq*4X~?+RNu>+Syh=QBTk%%tWQ4q_5aEj&;Rh^oAULGFQ0$&>UsI -%>uSZa_YdXG?alSwQ+b -oW`TXKz*B5s;PdC}~_t$^DzP*2U{ZQ_IDo?*MX8!)0>!-&zSMRR>uVHWQ?;i8x!@K(jeaL~!clQtb`! -^5QS5Mb(%a0#4;y+&M>VdJ|eaK7w{8WDP<)_8gnmNR;{`~Xu?Dn?2n7?`a^uOjerTppY;a|&lH@AOzxcQ}gR`L#?%F})M?!(j1_jl*>=TzO^{P=M7@PS$T>EZgiJl_BG -^tZgR-<1#d@5`I3yYg`T_U3U9pA+#^uI}Fc)BQvC|Kiyl@d>roj>H6W9$B%RPhi|?wUtd4 -wot8gb-(5fC(|q^-$J?7X+4<|6H`jNM*X8Q5yyLsapZ`8nUvVR^&KoIT-RJO{-QSh#oBVgK{nzV<$NZ --F=l1bx=ZKdj*ZMbCPuzd5<~urmnm7HS+~#ULeC+x8uTH_=pY(0Hxzn&e=iKKXIbc5M-x5~k$LsR`@% -pFtx0g9W{AcTXSk#&du_J -%9P-KWC3;U%dGG#p^$F_g}qu{mt`NugX{7zAVqmch6qFe(~k^Uq5?UzWe^=ci+Bx{&^{{uCG5%F_Zag -ll*_C_@^B5m;0Q_x7SZsH@A=b(f^#w``5&*|UEN)?BoEjB_Wt_rP2&CP$J@m0)w_+2oTDG_^ -I>0o_Qw~mG}iO)zx?cv-)(dCK_=rdxAMm4{X_1%&$(aoS;}Xh{r7TwKE|&8~g11@M(T;{&~Ziz0AkRN&LsYcljf -3DLeY=?YG^3JL9*rf0kcwl^S=Pr7r%dbagmeu!|OkP_u|WEU;ps?7q4EweDT -HiuU~xo%?~f1<^OWX`21kHzWn*>fw@jB{@b??GG44hx!fZ>`{L{8KfHSJzn*808h!48bDO^W;q|vaeD -(7A|NPV(%t)IJI29xGcPmj(%0&j<~1*qm*u;~Px78-%YW$I_PF5}=H2!2|j-{bnc$ -Pd9cm8Q{jnn5#Z=*cvi(K9hpHLe-mjBZ9ZqnnLAZml`4(cS3oba%QZoU@^))6?k*oIznW^l*9vJ%S!V -4{*b{J=e{Go(R18J&qmK&s9Z9-H@Y{vH@Y{vH@Y{ -vH!j%e*6GH^vQCd)_qZ$9jh&qhJv%)+Jv%)IJqJApJ;AhrX&XXeu2EyZb$0a3Im~(7IP+s(=|=o;4#-C_Y~LHxLz+3_>G+{sAC2aSUJ53*p)X}RxX*>gDu?IuG -+#m1-T4t;o!~}-{r#Rl5ad@ha9&vF6N~s#PU}w_ds5u3ZVw_4dffh&tKE<42k&kWybGT+Q}R;A7;;Qe -vjQ*>?3WVg%t}7o<`&M9pjoa7}%~{w(QPmfh}s5n<&6&u3f_dZTsNEFY@;?AUWD#jE;R6d0Y7%cgfB( -P5073HRlU6TN2K}WTZK8Ob!;%w_W!+F9Q3J<}j@S8?ux}W3t@2+e^-14uS2I)5vwmAIqgQzN`F&J!M? -xi*eJJTwsOsYYlGt3nQHPEwMCiV6?fJLK9pNn0D^1INfspq=%3r+c*n9F0c{|$=6MPaYu#G)C_W~&KRai<{z{hmc}*wF}s0T&0C=x+XUNbvT-LK-~jm{dpb7Mv7w$eG@GEQG>wLt)+EaX4#v$5m -b-)*;Vv;!g)3;>nd|1bX<4Gea^mL;rmu|7T~-arOtY4q`O1IE31V=pc|IU_t{IsdXZ2v+@M^&lV|vrN -F-Fd1!bb~*CkJd8#>BcDH8YYk9S7JegGuXLFt(r1$AIs!_ACWVBG;cE(7gdMHbQpdrgLB96Xjnr1Ge$ -VJZP4<>DD(M(gEi@h%RA?!t_)Ek)EFKxc#E3V%Oj*a$M$%eSw3@+tI&b&+0i3$xHG|+))$2HJYA2*#H -!(U~L==o3^W`ecHQWg4+BTZ2F^V;RnseLrq?iANU&2=y*oQUpP*Y+sXz!n9PO#qB|bZ@raH`bUdQt5# -6_ctMC%XGdiA8M9=YzFtBXs2|^vu2sO)w3*r%3%WOIpP#@_Q=lv!x$q#hLJz})8p*!x;(>*$bCDCl$F -RUe>E96Z);So^D{ENXc)*_mpFsXi#zaP*>5lC(!9cu-bm1V3T}o3xsC4OSo8QCY1Vk{iSOdfPZ_ -@DgwQ6bI}$V2EJ@6xr}-IAGVx;DA~CCT8oHe(&_a@j8yz`+2|c5{zp$^uz(X9t{WVIAF&CW2dsACvMb -nqmJPKquJ17(qry*Yw!|iaf3i+LrjroM%H1KoPe0TZ5Mbj4i-rfXe`v0WNU?+0YZF7T__!V}Qp1j{zP7JO -+4-(>`Q8lH-EQ0G9zS16&47Er4Xe)B-35Pz<0LKrw(~z|;b!7BICqan_TUzyH`si`*=IwKvDd9P)(xx> -?-gCHS4DEU%Vz#G|5B42h;;}yv$GgMc$5wXQ5q&9*xuc}aetCy=Z_62_ -VhJ%MD!X5b#Pp(jwRJWb_6Dp0IIu>!^Fo9~R|CHaA#K(YeK3M4C#tU!{8wh`Dh5j|!#8+ri63KT0)tU -$4z{$eCA$q)1dk`+i+AW5i~4Lu1SDp0IIu>!>k6k*fZ&;uw|pjg}X^CNjlexN6itU$5?$qFPZkgS-k3 -KT0)tU$2>#R?QFP^>_a;I!3~uMc=h1(Fp=LZPyuCy=Z_vSPL>P^_4(irK1g?FvRJ7^z^Sf{{AUb(^dk -SgBwILZ1yi!AJ!o6^v9cQo%?CBT)L*z(@ll4U9A}(oViUlb7U&#y6d2&`cV7f)P}Yh7!>r@=d->ex-q -t21XhfX<($Cym}@t$q)1dD-EnP%vJ*<(9vw@2}T+iX<(#*kp@PfF4@onjI`M6Hj|g+2YP~)238totAU -XQMj9AtV5EVO21X!Q+0X-wG%(V@NNaoDX7ZB!Ku@sJz)HhxH89e^NCP7cj1aA4!?nOj10xWpZ0G?-TH -ot7;Ux{MG_caZO2ce5Fw($C10xNLG%(V@NCP9t9NEwVj5ILP&iG=&OBz^dV1*zm8+w9~21a1>+0YY=G -%(V@NCP7cjEFkO+4tjIH+V@0D;=zKu+p(79gLuhHRy0d=W0kmO@a<;N>hAJc-9n;iDf}u70qRT5wt9g3oq$lrGu3YRyy{igOLtKpt;%56O42)(!odvBM5xi&;yM0Q-4_Sk`7inSm|J;V^2C5>0q -RTkq$;W80lc7gOLtKIvD9-q=S)u#up1-(!ojxD+DDCaV{Hrf)QzOs9TNDyb(P&BHt!b*}+H$BOQ$NGa -g#-k`7inSm|H|88REAahjm1G>xXy44O$p4=^&o$k=gVMhv-b=xy216RZsE$p9k*j0`X`z{mh21B?tXG -Qh|HBLj>KFfz7|hfRO=41{gs-%*{v-Ffzc%03)N;JubXtfRzDO23Q%` -6ZDeY!SnKFfzc%03)Lxdt7+Q04oEm46rh=Cxn^}nIju|f{_761{fJ&WPp(YMg|x -eU}TKG$4y?6ALt2I23Q%`lL1Bs7#Uz>fDzQ}hLF-=Lk%L-AVO({=mAE?I@b+ef&i5bJ;BPro(wQDz{m -h26O2qSGQr3MBWOg~G@4E`X!g1pykvrv305Xpnb?yFMkW}UU}S=k2}ULunP3DVE*pA)kqJiT<|P^6=e -i*kXG2f0GO;J98EH}J2}ULunP6mskqJg77@1&Xf{_VE=H?}4@RA8uCRmwZWnxbz7$L^ahMr(#f{_VEC -K#DuWP*_iMkW}Uo0piuOD0%BLd=Gq*pmrHCK#DuWP%a&yKJ}?7@1&Xf{_VECK#EUmzcpzCRjnGXef%= -&=ZWnf3u+{7@1&Xf{_VECK#DuWP*_iM&>-%4PG+A$^b`$^t73d$PdD0wW8IEHJXb$O0n^j4Uv+z{mn4=$`2Y_qsW}WPz0hRu))U*b`LLZ0HF_$V) -Vo!UofCF#HC?Z({fhjG(NxwRwp-ykvou1y&YVS=f^WMhF?Qp(hwwU}S-j1x6MaSzu&=kp)K9<|XFvk_ -A>4SXp3YVNVtqSzu&=5d`0C=m|y^7+GLsfsqA978qHZmzcv#7FbzeWr3B2JwZ~=hMr(#fsqA978qGzW -PygnBtID6I8D%0 -nnu%U2F;|QXJVuiwPiyOqleMM=&^Z;WjLPW8a<7kMo*`w)6?nc^mKYUJ)LVgJ)9m+kDy1;WAhTra6HE -idImj%oDlPn=-KGm=-KGm=-KGm=-IedqerJlr$? -tpr^n_cY0i!ux6`xJv(vNFv(t0XbI^0pbI@~etwE1Lk3o+?k3o;kODx0j9Cy-l(sR;t(sR;t(sR;t(s -R;tajiv~MUO>~b*|fD-4;C;J;4exWJl-fXj&aPt0QN1vS=NRvy(;ZWYIdBbVsD@WYM~vyd>k~i -%ue~lSp%x!kM=UPc1tiibP9@XQtc(>Nn;k5F9$Gw@&JykVS`s1XiSzJqa9Nfwl(f -VIej!a2Bw#AV_w$WFR~_dQ`QYce0F=FA8qNF+NVrT96H#xWNhF3o#P$?j@TuFP*q?!q1|-sWK#rwxMf -AsG@O`mlSxa6HFSU$I!}*NG`N1NvRnDLc!CS6el7xW0ndbY$1{~p21NOG;Z<|!{j(BYQgas(rZCrGxk -xzDiyf4!>CZ2@-B1SKyhuu>ha -)&rn4S4?;9^cJ>{wApSaTdhMfB6S$x8wQ;_LxKVKy9uq -f~bCU%^(Z=!1?#Y-pi|Jq@Mwh)WA;$wDMoFu58xRHpzGattQ|H?*9V8G)FF^6LYU5;H|tt*$h_20zXya)uK&XA4{ZtQV -`jykwB;(5bI7aWg42p#pkKxLia#h@;Q5Wv=nv*cXl_4EYXbmiZg_HiRy3D_n%+D2}WDgty0!#x)kv@E -4P$giS$IK+{0J9!*JZdY~{&CYN}hNCn>(@sX+(T(g-_J~VE%PSGBD+w2RnhtJGyOWr@a5BV>H8teILK -Na8j16_m$VQuH)s=8Nl!MXkRi2K$%1$Ea^t$t8c}L`N$bFJ0v#MGLRLn!!ro0bt${Fp;bZR1)Wb6aMY -=QlkCPmYgPTuw*p9sHK?NoUpM -kCR(Ammz=E}qE$slnh&P!-3Iep51-psDz1J-_$%QMEt871&2&HduVjsA3k_hhde(8z}d4?dLMUE{e&6 -uS_&JcmTZv1APeBtPsFk!YgIbgOGNv(o*YLEyw3GZx}A+RqJQX#hl#B%>QfdO!I6ySmtPutmF -5?s-81BwlXD4I|L@b9j1YFFKs%zgeK86T@9;DMV;a9@0qrIsrmKfiyC{M$Bxg>>`9UxPFO~r%viiAXTo4w2-G -ea9R2E6Er -ncSQ9TT-p|l|^8FfL{#fo;l#$16++Z?36XUF-&JiTnq+jrGmc*gr# -LBd;~JIaMST+EeGa)R(A+0X@n3kvC?PLZ9Va1=CpN13uI1ImLyr0r1sj>ULL5Mqr{W>1)GD^w5BVmMFEt02jmH%LtN84I -d@42=!XC6^9eZ5rUP^O8!6E6&1tylDx(^ETr#xoN_8ZmQ0=Qm`h;0g{Q3$)N8DoZ(~BT*FmmHTndZ}O6u3RH+F5yMTv4g -|xg*D%ph#Z*X*PQt|Cc*YJbGVaKKjsWLik8!Dc4I~&tj5d|Sl7lwX1QS=F^uf`KtBEUM3G22f06^9mN -dwE%Cgkpw}+~y<~eT1P7alNvX7@c&A~LXH4VPLgA6Pz=;}K%f;oXg@LMIhmL=?u>m0fkOq?{aQVAn6x&Y&Cq5JmP&Srm3DX9{Vp9A?>XA9$_@(YOHvd!{i52MzS*UyBuOk0ex -7Edm$oOdDK>1r)UcFRY<3TH_0J~xT`qO#u;_51vvSV{3S^)q?+kugU(+l43@=$h!93lu~ -3lZD;B;e7!f?%={I-XD^E`{GEi__2Ej!-uxy8-TsA5CdKn5?AQ6~;KNNr=?^2&?zR!!`H>lIa5)oa&p -`Bc2P#IIGSSVct9To{$>{9vUQmA?}Ce)!iWp1v&_c3*^&c1LN(%6-_NK9;3OsWm-du~Q5*id*+Z6|yu -wsJ#sB_9Hu8JD_Oms3OpFtSY{&xi(R3K^&iGBP?wWlHH1E0%l+%Z)rn!H^xotq30zaXoLabfnMDT@87X1j&#b -!N}%&~eD!eiz`C%ZUiVM~YAf|DRJd9Y&z(@RRv&ht8TuO$?$!~3X2Ai0k7)B(HW$_HSToSkQ(O)rvmXs_(~rS8?3s2V%yL;oe#mjFbGSfH1fHm>d$(q-DA?6N`>WZ0~ -NmkNc|jGMfqP^jW_CtY+BLd1n=g-5IVzy-Eo31XmSWb>gc3nCozJ3}Kg2un^Gm06c^kA|XW+F%=OJdIQ+ZiYAu-3>_ChJj6xZffDXufLH#<(< -h`QHM-9LuZTv6td+#(Ky-O(93=A0B+m0LgoHSLC}k^_YFt@)gBEOoCWBe7Fj8GgEDCyr}@I8i=f4!uC9;;s*GlZ<3WyPNLg62(Pb(WBZyP>W|NJ!?Jsq&CYA -xMFjr3M&@I3um|E#Zcva)LloJu~m`G7P7jX-hc9klhb&gKms|~4ErbIBQ4pBJ;f)GfhHYtHNWD%!syQ -&=5bvw#eHbsr%&U@Xcdo9Y!$V6%F@lmFH_ueL2cAOlgyhRZ(CdAG}KRg-r5(TTYogZ@QUJG?)CV$LdP -K8;Qn7H#GmsMh1^b%r5(-QBayqbr -mas*7ZvLQ+avJoKu0SyaCnoY?en(3xk>bzg_I27uYwsR1AAf{GjEQb)bceNOjuRo7^`b&N4o!J@1tn3nJk+0fCUHqUX*%%$%V8{iBvq>jI652 -A}z+v!GXB9xHFvMwdRw4*Uiifun3pi>-xe^Uk?YNU+1^hr2Kp{m7IPenlsm3wG)dUu2BK-j|UJZ0)B5 -Yf1t6Lv970yfN+?L()ShESpa+ZB2mIck|wZWX3PB^mAA!NoSkAu-R%3%$MMvR2tLThMp6&)n8 -g}clfDGo6&l_{~R6iylXL)DgKT=bH$-$;RrZ_4%~w`h4V9GW*9bQ(uPaFZeqYR;?>=}uQ*rA?%9F@E?#>Tbi8d8y~P%HwotfoKy_AV -W&Gs&>#lr|3TJj%OfS>dM(jUz!rl_dMWhc3j9Qxx|C)q~i3=!)0*Agq5q7+@fTT4vORW^cs(@9fI%I3 -QlQydw!{V^{#D&^dM1QHJd{#LoBXN5&~U#l&*|&eaL-4HtH@Qb4bK_zwi>y2o`Z6O8cCguJO#qK?5^! -1s$obV)`)bq4zFm1)->21u9zU*yAQI>B`^Y1%q0;!pgYdETfIu8k|XU+^B0?!^O-c!BovTPL`SW&8vA -E3URlz3291;PFiu^0T}KUxz?cSYcRTcRg)T_Znm?UA -m)qA|Y8|jyvOqkkrHwh%J@BKu0u%{3IL7Qhf;~#C9AI)V&rQyQ^o@QFJAu0isL;SMaU^$g0U8B*em#t -}1osfJh#QQvQ+z+uY+)_o_7U5DBglfcOjhpvb -Q&!HupF((SPnQ^)D`0wyA5Ndyx8#>q>ldyTmn1prs%xg=0SdRQYuCu<6)T*4vp1^)HW`YIoQX`r;*$G -MNGdo9YpaqiZZNRJ|RunOKouOOn7p-^>ZRY&rbm%(4@PB@idrnJLp*QtATB@Zb~a23lcOULQEqAFp{8 -}C9el@@YRAe4(b6un{cB{-s=8~F>g^uV`$Y6qq{OzS(Vo?-K$Z%EEb(we8pku_X!)azs$GZ)1}$n6Tb-fxl3pHZn(75s|WP(j+KNjbq1!LEW -p7D<~>erf#~Zq_~T8Otb?f=Bk{Ayo72Zl=013nv$ow_9_9&$y2F&HMFuaWY;lZDp6pQ#?WrS!d8|4Oo -5nyoXUIEq)EkfmFNm~CmvMyD&bqyUNWR~8>-ntuk4WO%gHBidNEJeeDO%T{7J#TlvR?l=YFH^)i@U7Q -vs&3H_8%r8C-1rF0fbSB^+Mm1$s|TQ*uuwS8M=RO8gv`JkHWaADSbeBLOIs{Ab;O4&qT@6+*!&npP~y -+#JWyi`+O7Xzkp`)V7$TYE6LZhMgxg<Qhk#y8#ZQVouvBd>u$2NLIpHw!ArA%>d#&$hSQ1@!2t797`1@Op~DpY}>SJi=3nNrQ5M4p{0)Ej=ZP2@bugYLXuQ1@D -<)>Kj^l^c3v8M)NhiYdUJq93BUD&ynm5E7<=$7tFs6xznFHwx9gN*hrHiCCP@$mk_Fl+YKw?nrSYr^w -<^fu81T?*<%6)9lM%?fadoFHv}XNGX)`paU>?4rT-o=8Cq(X9?Y$Dx8?Rh==Vba}1+9&#A@Kc^p|W{J -_}nS<>ypcT^G5Wh}`S5SsIT8b6D)P{v$DUZoeH<=k)7y%v>ypCv)arkk&8-zamLyOU6W?_eLEWn#s-orJly};xP~~)|3Su!nO^YHQtuqE<|mZi8wZ-Ct -Uc!`&Y+N*|5HSl`d3$YKufFD}7F1D%AM(QQR4flb#5vst|`>xu~J8?t;9fn9;p+AYgs**vK)3|bdL~S -|*p*(u%RdGs_AjVLOpcgf%FhgP+7kEZ$^kzkcss4!R2wvI?h_f!=k25HNn1j$sHvi+hf6}-;-g_ofB8OnUf4=H+-wx^IqM-jyWLVn1k- ->ITi43tC+6P$iYVqq3kNN*UzDbkKBSn&zGo(xCRQ>d2 -Q0FG$?Gj(`OlA4me#K%-4MQoj*Quk_< -Kq-M6=f(ccCjwO>kvpRG+FUS{+#wkHXe3Rh{WUbc3v_fUUSm)#B`*GfzfoU)o<4CP+Hd0TGF?yQ&%Ys -6?K8h>rAirBU(eLn5$h0iZ6Z$ZglfGnbri(Mc(svUn=K7uC!qcdIseZE7awu2&5TXUe0qiBJy_72-Tk -R!w=Fo&3Q9xE#A)Uny`R5>{Ohx1ic{)a)wVp5$#)Re;7dxZsYv>#locowe2G-m@6~uJkBILLO9_yN-M -*Ht4FJBEIOV@&u@Q@#ud4SvA#{sBB7po@g+({nP0LYyqdIRF__sR!c?={;eoir3~DdNvW*o{i2uX4Zp -kKV92pbB88o*Hl&L-N}E9lRP`w8EHu=b3T3upfaoIv@r6qN84lT4Q6hVh}-Ky}Q8f -_h~5U4O9xT)#%b1k=ie%IudZO71ZY)#p -ZE?HhoKNl=O0w*d~B^(=j!yvYtbLAIrAl!wa#(jC7kndLQUTXBZf*E1OV{E8V$)_c)y)G!BLWo4AVIy -B_nl?YS+bAz3&xEUkKo<%KKG2OGT4$rpNI%*3rYk{T-e=_;R-njYu4e -U|dc?bYLxUUB*9#l^*c08mQ<1QY-O00;mMXE#y?c_nI26953aOaK5K0001RX>c!Jc4cm4Z*nhVXkl_> -WppoUaAR(CcrI{x)m&{;+(?rC&abE)e>k`ktV%C?^RlzC3%ZHD{xTW?Q -gmZZk^%}m6N+YQ}Py<}xR`D9i~;@Pw5f8vMZ7pG_9)#=gk+10W5;nn%kPhv~kXFJct^{N!-ZFO7K#ab -LSi&9jbc-{POwO$wM``z89uI5GGv|_%l%DNYG)#hLaT~F((uT;D9cMGY)2n${klw`I|n3vu&kMjTI7w0f-jM>W-|7rRG$LVokj*J_B#<_F?%y%v|cZ6_|vu -53S+3%in|rtaJ7W}}w5+wFa;jtKF(Xg`RHYJJ;QcVb^C3475u;^MJiHMLv6Qq{V;X^ZwzYi-$PCPanF)wP-mW!&h!z)GfqNo>tZCcg;u31#eM}25hFVu3h)P33BbZ*(piIi?S|TwVI2 -~&AOVa&abL@S$Cx`2w!y@KFEs8zK^-9IY9)c~)LFOOcT9)~}izB;{rtEE3Vy*@j>x)LYnm*P-d99~|Z9 -=&;WcquO4Twa`C9UlmBRhCe(R_2tFy^5D=$h$^qa#8k0weIZF-zxKVO2G9(tcs7NGV{Ew6rx0-T;%@o -i)^@V>RYp3)rA!Lov4q(DDEh(s<`qoV$>RwlSo-A}5e8v112G;Jh)Xu4i -EeSN6<#)*{izD#2&#G5O1WZOS+eD?e^N#)tj4v?Y#ud24VE$Tuf`}0-Nimv?ErmW{`HO0+ZflaTd-rU -_N{U~Y6V!jgdQh}r`?_1@gwer=fH@;>1Jt~*#%iE@X-1+4`IZ`8P-z|Ub#rI-&XE%=YD~aOYjK|0_gfnMTRX*0$NHxoH8Jf;qjtpHyzNo_ -(`)qq{mTkU*u>}DX>F`I(rM;iIn#9RbdekU<_v|>V=?nbayLUBaUUU@S&T}K(ck*|qcIv2MoF8o*HB` -Rl$bS1uVK4h>2!gW>z}X#>D?kt8uZzpiTfOz_I3u$FTF-#iv;ZO`(yME(k)?>JWqNKmF_qAG>r(kl5w -i-ABYN=$qtZ8|4%}&AP;w@m!va9~i6<5!89QF$78QHgBz{pA9@ -fw?b4W;IAZ0bmIdtfGSTFZ>(rD(+=T83+F!kpU!w}C>Cr&z=fiq6#Flr-{1V&Q^Xi#$&m^TaF2&vKyD -hK41`;cl!N!-uGX%|5?kA{FE%F8@x5^|;_BCnGULpDi)hbCSpm=->oIHpUzo?uc;6S^5selj<QQp;Wr|i5oxjN1if$&P?wKKVd@JRVR+Y$V=%h{W?j@X_T^asdED -Od8pSkBDm%1AP+u)*s>vyl3((jCWZ%IphYq{@=-gXbVsEV5H{fY1?_RT5OcZZ12Tf&xwqW#-_~VFDZ*nHuF!Gdpz@sq}H1 -ux59Cc-C!F-ZaV*?GBrbhM`hrP_Pmy88OnDPmJ@0}88*22m-I1B$TvK?O6O&@SIP6X`%3oVpN*NuQL`< -PkE1uu7BrajnYIu%t80V0eDROXUzN4g>|YWXy+2P!w~hz(K$X1*Hun#rgr^^BR60XfGcKnt3gABBJ6! -?vPIW$`MLimyj`&U{pA-2?8PE=TYnp!?XI>k$xPJ@pwiRCeBnc%%dzK{Dv7mh08Re{bn3dILSPI9gl{ -ayKxAmcfzy`U0|C`)StTrCK0dUlj{)eV=OKxtcj&N79x!DonUx*i^NKp>7~~lw8t?D%0fMW(i{*x&+s -uKK2vD$k&WnSoMpoZJgr5hA4jNAfx;2HFd=d&+KYjISt`M=!*kb289l){!0jD(Gh@^`*KWL3DLM-EM{NS-rrCc-LKMFj^!QW~_zaR`GlI2J)7j`fWw2OD}rdp1FTCMc% -}Kz@kav7Zh}8d{&CrO$^4#$uv}dnU>Y!)p}$LKyZmi8nOAjKgmz;Jbbv)8mMoFRbBXCy&eN*fdU5^N6 -01yNB03d8$FX9?6z6+(c6#k?gbe0Bj8jP>Ju!mzWI&C7S1KNSll#LO~Wt=8*~dknA&pX_$(TUdb&%Ri -Q0>s2yKo45t{TdsH=zovBlQE{SMcl1EgZo+^#ww#@N`Oe%EH4lCt%>4bYGo@`Le;dedSY3MlJ%Y)lDa -2Xt7A-qe3HY8J95vT+E`oVoqJdE*TRv2qQDKOmlDhHJvXy-{>kTOlt{ZL>WUUny98|;~|9f3Q9HG9%5 -)}HuVZ(?lVU#!zYoyyVrD;A5nR8oo|B_dL?63eq7fc8vlr>6ba(FQkGVC| -QrGbtTrbUEBid|_Gik5ntu%Hq~rhGI7niGP;)zVEcgs?b5eg3IkC{JgG8c#+oScZ?t1e}0yC~>nImVy -3pi93%F>w#*@YVCM*8JsKu7bC`uJzHcE@vR&da>=Q}LJbe02yvYJaa$&)$l34QbH;RGhl_+Od$zB&ls -%r0DpWS+AHhI;M;=cXbi$~}>#vE^>!0y~0lr<9%%su<$M70*?$%BT3g2Rr%Teh -Zfs{5VafG`dp*tk)b_Oay$WPzi9>y8E@=LiT?v3Dql(v9R7an;IOgx(TaoOC{f=*XWrp~3oM6}U`_TW -I<)Q}ET5wlVFD;Z}`+$HEf&haHix<4P39|z2kMw}&NMEpCvmw9+CG~`jcP{yO-o{7^_c)f|lpb&to8= -xj|A=sFhBP^f|6K7mv_j}*&2=(vm&Fk6u$ -?WLx`uN594AQ&fmOvIlDZ5HM@R!d3^Qq{MB=HR>rY8{rd2Krp~#O -r)Q_H)l|<9uMdM3*^W8CD3@Y3tLmzs&33zTy>#N~fBNgetZ({aJ!{Lg>U7rB<>0hBG3$!E`*k^ezAnp -!8e`UdsP1R_dBRz}xtngPl-JuPO{<@-oouvFhbGVHXAk?`JzADM@X0mBLOc`Z06po5CqsR=XZ|5ZF>f -}?tZf(BM;|NoT|esUK}s3N7YJ;)sp*Pzr4r{ebF+x_J;Q^}f?j4C{WKKCJDf=c)CRns$=Uv~2uIv+heRgMJv@9 -#L}Mx8=vG*>px+Cg|zXK480C7q@zm%A{Jl>vmH{`srTfQ2L>0{UEajMo}-6CF=QlW1f{>6&)MvrYvi< -%EcB)ofPY?B={`V@(g++qm)_Kw~>DCb!Jq=Af+rr(Q*@zN&B8CpuX&t>#8vb*ybZm -g2r_mrbiQIWG?gKMH$Kc$9DVu&NYYRO0W1!Vqo7nIa?5Y^|W~hP^F&>v_At@w@8VO8l2d-tPtd)v@n= -@9@l0o&3kPdC8NuQ9>p5sq>b;Q#27YEtPwYCsv~E+75rwJ@$;gcc+K6EyiPz5EK}cD&%BC@9xz0ANI& -75KqrUvpM3?WVW^COm7+dOy9uZKg24i5nGf&C0sj+^%MeqA!L)*3#ZKHBF -^6Y-oj6#o)_op&f8IGX0f;Up9{09uzxjDk|3VjsANVf_f`9?8QUVe&{T9m_G}_J#V`yC)1`WatGFEi2 -bo;;`e*vufw_gU}Io&1^R?A)RFb*Fg}eO_WrQ-OkF77n^zq)#PdU8Ee1AS$e_)kTaYV7{e%fNd)2{zvFi}YpxZihcJX%4GQg5t7LRHOgi334$# -`+vA_t|;`jU-{O{s&zi4R_u8=e$NHijeq@Giobu)8>?^euiu>PnLqIo|9Tuxoj*AmkQxgC$&ko*xhT5 -#*Z+;tPYyq8^zD{By7(qdzIp=KOfbpQBBx=UFT<2d9u0l6wP -*TgMW<3z=HY2IHil>V`S3iHpAFBQe*;iU0|XQR000O84rez~@My`(APWEhCo%v4DF6TfaA|NaUv_0~W -N&gWV`yP=WMy5QNlACdrlaSE64>SuiXlXz| -Yt&E3Bn4Pw?5yo{54+m`zUSI0*DZg9(6G`z43TEvC;oc$|Kk_gWa534kuM`f0ac@pci6mzWE@r>wk8kaF7|E|C3BwO -lSWVfR1(TVk^x-90=QZu!2mKJ!-mswstK(RQ_@_Kxp>!{QVar0Pd?3#*l(zSeqsrypAJ9sbTY&M08-s -L-DKS{&|tu4fbE_D7)FKSN?vb4)4(}jrBO6@(k#}_Dsqu-HM;zo;Ap>J1-4-Hr=emlPU_3X=)*gyR$e%rse*gw -7c`VnivG-eUMT2uV6L<%khyvn1rd<1YP_PITajj^FTUq7atGPhi7vF*`1(lt`HnBf5{shr_XHuhg!oZ>3)M$SmgT&MM?4~7MU){L81RZ-cZ6&nw9#GveGb -u2823}?)1+Wx?JUHH5~4V;_=}IdfzQq>AYM;b&6K18h!iU3dz?x&mY-J1T?A|?X}ZeJa#S!>`Dg&pk)?1iT|L~uz+WdLQdF#vLE -oYzUU=RKAgAN&0UhFR;++Qq{q62i?{^^(-QXE&`fpMrNloa#c^UK{Vqvnh7jTAi4`A -6Ihzi*c76K3g2h=gmoE^YC?rIP%U<4rDj5CV6mFQJtGma9Ab>d@qGq$a8|+DAvC*CLsp=sR}8!;aG`) -m0f`FWSTMo8i+hTDR;ii7DR6_{fE&w!LP;zq9)MCwESFdgu9U($g>?$+6xJ!MQ+3|V0*}~N3L*+33L* -+3A!sMdA?8Aeg%ArN7Sb4a8PO-!hto<;1T|PHuvB1)7{OOeixH@#3?0#T&^`uus1hTnAkj({$pw{~8& -ZQMil#^uQzLvIVT|Y-lL{J#x(Ok}_yj0O^@Qdom6|!!2#87oN9r&oDTq)3|Ai#qffP;)aEIc-4Yh*A@ -hR&_El3S42~q+8j;!>jfR>D4bu%8D^5W3h;oQNLH&rFpzol5Ot~Yg -Y&UgAYHkDXz2|N2Y=3s8KfBToccpfhX}1?iZDd1>FsIGkyDz^HD -|J^ZANkCkPabH!brdO7Cj8)GY%)eBx3YN4%%R%@s7lYW-VQzo9@5*lCM)N0Hb*T -*{$N^v9&97TnsDK4(TX>XrX&1Y2^z>t8V(rj1A -zg>@qJ`KFlHvaz*w9)#=ox2v>%G6>`*4#FOrTX4|M0sG1EY*h<={%)NI28~>EFMZPy6mzYEKsuIwFca -;TQG04ogliOP?Y(rG?rYY9^)zfOOE#+-RJIldcBU6qV>=p(<%C-cua^hGnsc}NnfxO`6BX4|$rDl7WV -3yFHroAHutvZuLp{Yof8`AzP|OzhUovKbraJ0e;qJXo9&9=x$fh3MzOb{Z}&k_R!^iz -AzIz21wwc&t1V7Al%h^16AAbt4GzwTn;FV*U{9guWTrZ{_= -xmvY*-W&v)LDic1vxd;BpYMBsCl;hRIE=H3!@t4;@e1zW*mQd0>08IsLf1lnJe?vO&3eb3LHUiN3#9Ms0^94c3Y`GJ${T*Y?<35cu-qy-42-jSapQ?vtnZmfpSE -H)*=@}4+0)Q-b}ew`@bz$$!na_4D-CktPR}J9m0nhq2o&C+VCl6e@-0<dJLsY>%jo`|u%8+W%yAFW2iQ5QHt>+Z?!O7S05#M%P>EyUq+Ea63@D_ql!8P5Ctk-5lW2= -yt>&4(iFUHQfifZ|voNwed5t%Q%PKpNT=82lnjiQq|4-4SB%Jmv5^aRX;0U;1B0PcXR^>swL3>eGox6 -+I@{}0D*<;CXX8%x3sOoRwnlGutgq7$5z|RCpqX7*ghM7cxP%9yiA-`O9^ -&`&%ooQRNt@qQEn-ZL=?^8%cal2%Yl*PhY->Z@EKN;tjLEWf)&3&hlXR;+sr&<9qpk^WK{`O`G=<%)1 -Hy_Jnv#ujO8s*>y&5cwIk4%eQ-C^P8zYi7n|(=LNk20huz7|A1Kc1&C^C`M8YdQF6V^ikM!WxUSyv$N -FGrHlg=2s#U*hy}Z`x9lgYUo#?XEIhGtnNuhm%v(V*r8a-%C{B(SI_F+05&pwQQs^$~eTt#;@_qGBO= -TZ9B_x|H~zqMXzd(!_W-tPUs@E;f#+4tfD0Ucm~pi~U}7f?$B1QY-O00;mMXE##F@m8Ax3;+NeMgRaP -0001RX>c!Jc4cm4Z*nhVXkl_>WppoWVQyz*d2(rNY-wX{Z)9a`E^vA6Ty0O>Iu`z(UtwLeYAdCz?T~q -CwI3)KdQo{3P*wee!c2guLo%C$_Oh$}@B5r2j_t(5FlDYTsvvSnoa5v3@|?%cFzLpI`-gql{kVU`4)% -9;kIr`4hlAstPi%qghPT1aZ(??wC)Y_D&Dc&hjagE#!|XrFY!>1A_VzAKCQ+H?Y%)vYv}6;=Y@do|v6EzWohP^KErW$6D>HU- -U*2SC<3B<*OD^*$zo)2O<#Ei4?5g|$!``#|?2b*Ml;!a>DQfiyM9HFb`p+!K_}grnT-{UGT{?w3WOW( -mw}pz~$D_~eATD4j`xvKj4sTBGE@#OEgAbBPoE9;Q3O1*{;zmbmj|@3$3}Jg2)K}4c&*B94Y3}cFUZ9 -7`O`&FMH2Ms=ejSx$Ke9Qefp1{+J)0pLxf;3Y41xA^%96BFdxO~H1PbBk55S6D#_X<$ukL0(G(eVp*+ -2i|`13j2KKjbOY@eQPADw@F4_QPScagtZQ*t{81g8vM>uo(e9Zes0_*^Nz3f7Z&aV&9Pd0rP3J68%w;57!hT(h36;$u -dvMl%6hpZ?`^l%$vxfFuG6#*BFeLh3aq93+<^!p=8Wy6EwPsjVCx2J$idVLpN$AtBGMwNCG<tbbCh(uqNR1>l(tliAtR -|?f5nB?Ces7_LXalq%+6Zmzi;$xUH0iS;WN7#ha)=SB+2WoE=@P?23=1(V#ION|4KQo~^#iCMVCW!RX -iZpK!-g0##7qOI8{!&61ZHJJx<(jDO?5s*A2p~Sj?h1@)C{=C2C!m?OX`LSF@hx{fpb_jg7}E~pk}n# -njxGT!;&$?#}FSwd<;v*n0XBKV>me;`;v1sfre0X4ClZNhgv?U)QsR1AL4R^25|v#0dWCw0dWCw0dX- -vgPeezfSiP!gq)O>nlaQ!h)ak|iUGtVhDZ#NbdDhbh6ETAKy?7w0I~s82apSfm6`}@0*D6?--7rS#F2 -c7rHGYRQ9U71g=mJ~3Qgg+K@dg!g*c3GtG!;7)Jrz1}%obUoXs_a@v8F! -aEaIt$Xity@U9t-rz9b$cVk4p>k|Q`1`4I_L#5b(Sk_ZNy=_Czb_~nIPUiii2mlt}dIkx7}pV{Jt6~E -j@lb!nk;SrjV_=T9h`ZTD&i6MR&3|{!M`|NAaZCvou(8RGvy|5cI~CBPxgd*k8eV8DgGFSy(?1>|NBjK*|7k8#_)RsHZyfq2mUG`^0?k5OZ3P6V95cD80YnG*)*VV*>LmV)i8B%98xKe&H=I+=CZQ30qZRH%|rTp#i -O;rWy4|%WD}9~SfC@iD0GW5h5B_{AXbmTq8V1QKs+T2rq((m!Z(qp^2FQw_53Sl!4(^?@3T3hG`y|hD --1BNj6~PnM;4Q`VxVn$v<2dE7ASouOM -F6K?NMbo2dK{VE^Xu;ALD2%CDbTrIb5Y5#}NL(=su4+_yS7(76i9eMEjr{IWM}fp#$XwUT)Muf(>V?m -ZEY$94($~0H2M%~MXWvhid)~%L<3icB4hv*!fo#yP5Xswl>}nLv)w&o-bYfsuWYESyS`p%Hbi7q(bXd -^GfnNXWz-mq~um2i8=thG3nk7_TL}P{1f`^Ysu1vc6RmOvshcqA5crYw@jQ36pY`=x2UG0z56uJ%#1# -8HHY*zv0zc5%&BT=+QU&Vu>oqeGNKe;m52vpHf8Mm>ov -hY(eSg=#ok?!I^)gEu-V(wF&Pb^R31JQb`u~{qCyFxXIzIr+*D$E6K3U%yN9XzOD4HoG9DkRu7!F}Gw -KpN-unPLb!kewcT3my+%S3|xag)k|ijr&<^|IiC?&7N|3;MaFTkE>|14 -k6B7`Th2n|B=@Q;pYOn@yZ`L2ie6y-zGAok(MbItJb3>5w-#FsrPtU -}Mc3B0CDYOyMcEvDr{pKey~s_|qOLYi?b&wa{IUOoL@lf#xE0-_x^nH}@tdbt7WnK(C -25+o%~9C$MqB^vz6IH`;wQLg7HKh)R_WZ5#g%3;LLIBeFlZiGh9+?Q){&fVq1z6W!YCCs~pC&vl|8Oh?qUz ->YLl11?Kii+2E>+en2Y=e%^n>0^YNN8-3jv*a`OftDif3i;f-++;MlCUnzLwd7rXml&fzf{MTdbRqvZ -xuimi*Z}!qxKwi!1t?4O!;Q?J`p8N^?`w%xV%WC+ZZ=~tKU-ot-7aPRYw1-#)MbC_dn13QojnQzD>W>--WLZJ_nCs+% -)@9yd?{l_T<1QY-O00;mMXE##*yRRu~2><|)F#rH10001RX>c!Jc4cm4Z*nhV -Xkl_>WppoWVQyzb6+?w=;~ -h3SsLDjaS+i#vJezz^db327)1d-KRm4Ba317IO7kcbaZYp0*>P&o<2cMiNd7LqiYQr%l#*M@J1{Z-RO -Hz_SPBg`OyUe5(`Awt9{^0}Nm};LQxW81K{x9Hv8^gdCDw8cRrfi)I(SWNHk$&XbNUYLM-g4fxfxxEO -r&4MqV(h-iSsnPS;5U$+3P*@5Pb;JFLWM8cWL-QZwMCVlqYn)&hL}B@*h-1;Y}K(YsuPeDg}aNg@A`EW+Eh>{`VOxFfC3Mf#A{9KJvONGBqLrSx9JB84~StD7jCL--_ -|i#QV$WVDoh*}Y=wNE&ik8A3-1;0t!&k_a&_b$=CUh92TOtkzZ`x`bH23UX;bqPdiUuVM6>B19vtC3i -Y0P@XO*j0@O%aE}K7!qG>h72OD0W#V=fxj?{N`gDBt$Jxg#+CTkFpY|^<_D`=qzr|cIjZws}L<%34NW -lfct2Bu7H4F#9hr^45KOnLH?)c>R>a(=|==kdN@bZ$5&Ms)5&i5~_jt@Sb>|fCN$BXl`%flU_OCf5CC -7E3$Hx%Cj@*x3}3y}w5l$EZ3MtCzA7%k{N_$m(bM-who`@9SyWy -)0OsTIUb(E2i01b}8qASAS(yl{Y!yV&nih%3q=O{BA#Y^D$TZ8vx4b|Y0Rf>7gFErtg~(TFTy*<;l&v -3bfct8>is$(%C{wh6ZXj<&K`Jy&Gp~Z1NbET$K#M2W(&XzrxrVGruO -EUX{f%BZ@XFn;jXIx+K)Lq>nC>QFn1u1&=QIh!B@B1BYyB{OX$?)e%RCQloEV|boUa -Gzj|V?M^2lq;PYc@9lx=#paSnqp{IP9LGoAcDRb#yvEM_E|HoteHT=!~=|M3{bewcG09p!0kc}mwm8i -f;Pq2F8V8qccnGbKz!Vl4a4Iprb=gIlQ6K(lNNUKBVi`P1bjLS%&f{AAI8nR?Q>-^GMoxJ(r+|D13$Z -<+6Px7vLvtbmy#Qa=0}$() -dIm@XY0p>HgsCKEu4Pl|vu4rrNz$TQ-AXC*faSi>=mFwB80b3;xgsZ~zHoy)0cOhN!!T2Hw9@;)kH1g -s%x7|@yQf+mvUXk2QPmdR&~?V?R2oKy!GK4~bv^_oYLSM$=!N_c$VdISJys(o|U~J@h3k8Ue$QO&@#2YJySdG4ctmmZ8K|52pnFoVdz$+H&DCjypw~oGNL~9reJW -G$#qQ*Q|)dOxv!OpKAu1MVV4A0xuio5zs9F7AW*{ni!wbC`$EO50N?dypgn6cOM+&9L!(Zj1YL`8Zwi -BH$s5rs`PQSqZ^C99+0cc4Bi6ZO5?9AmCtk9oBKhB_bEHLoiVl>Yj2@A;sMmmi2icP1(eHmrpwT2R(r -`-Gs^B%OoWSzbsDvl`8ssMnsZ+|;YG?+#s+bpmyt?Wp*!uLC^W0=pua)^KfXV@1;Uh96#ydZhKtGqaE -XWgOUhacvE2v~z9$=9Qzv=7C=M{YL*^p9kvXy=gV_>Nv_Z4tmc>Ke#vYhKaiJ`v#cr>W5-hTtlDIn5( -Y~^Sq*>P)q{Gy`HfEAaKbfahUCBuo~}>rnssA3z_Tq-m#_J(>VjgVyjW9>s!UWL>l9ImYT -rF=PGdp+UEJh=8JsI&-!<(SDi3O=x#f^)ff=Fl$*D=HJJh#0=6Wqr`x|EELOr?WUyr=XP~L#lFub(Dj -zXJ#o&WM~L_zJxX51A(?Idf!dN|P8&|z51f}TwL!7x4>fNKmW5`EXKh_yp@jyO8|da+WI+Au8(^z)y& -_jN5K6U`4wMa_U}RoSG58D=Y9`rI(W*#3#d7U=vD#$F3vWrrS(eiodXd2ZDjJ&d~ -Vo%=#pJ?Lk@BM-QdiM7u5KGZHJL#+kU;O9te;vHiCdc5E|| -&GL8AGU>w5<-$M)COTjwP2Omr)e{ASUZYf#sgsHc-pYeb-nY%(z(JRX{q>+8aTIyF@BJWl)o888_OfByaL~W|bng)c2Rh~^#(UR7d%fG*+ -E!T>bVtFgLw%RVfgR!cfB%+iSzvD&c8Tq#()j&=w?H;$K?Crdt9N()9(gT*?F8D%rmcnVFC(RlHBXMM -p(~hMbFeuA-Htll@zqxc?-kyX#LaFzF%Q)GFe=jbv}_u+>VaK-zJCpu%9}JZ>q&RIWkFvm_3a%06<>M -&=K)?j)vKk&y9xDs3IBA6UbbHCdbvk^uc5k9U@6}b4auO0+qg9|o -H(G8AAkFjXN1j}+Ii2L1By#(fEV$ns<7X@-gGAdKC>k7yh!Csq@Bm?u1{%$-ny;dBn>&oS+vd?aaEZLp{%Kc -K$n(U55)8mdTzKh-3~egfg4`!It>`_adv1l@%b{-A5udkWnb`b1NpqBx-IdHfvs3B}Fx9NqB(o)4B9C -N^0R1ktnO`_40+2H}H>s&usfua67!!Qh_z5IW(UZT}c5MN#k=ze3B;G!JGpc68tWp2ng4+2hSa2@wq!zex%5WXv$;Jb8hxi26D3i0zJU -qVgGz418C{~?DpH$-7WPmzteqxIP72Ee*X+wxDB%ihLn^0GWA?AhE}2D$8!J&gNwoNkI&A}Zo -f17)3e*l!OabwUJa>F*Ztw`*~#5`e@NGN!|SV?!2$fNRAyo}W}T6jCVm9VmjIST3OTM9rK*32dm{k!C -iLw5RB-cHA?GIKAWEk5t$gSO{!^kamgENgOztE3L2S}%=puFy$`$W|OYUD288kjHsVzX{_&+?j;0DW2 --AAxK^@1QY={SgDCcWrmttEx9J_*|rM0YnBY5JqV<(Cah(+2~LWxIWp=4gYnF)hYB -xQDl>)l1lPfTq)dB#Sc+!ys!hJ6yZ0BrDa$wGB4iMl^?(AtYh|N=N{g7T-fsi`inC)j>Z*=lh;1Ar48 -44tfE4C~QcY#6c))gT-QSYHgZ*tt9jA{!EHNWx+QGqS-Hoj -OnpLZrEC$1{NzY8%913quhsO>7{+%%B3tD~w2l&e1{~nkh1BPI-Gi28weoqSMys&+pxx^Vo(~nK^{M2~Ig%tmtRL0S6>F_N%^x(yQaz7(R3X8qa#Al;Q`xZ7U_dXrumwZ$fSuylgq2Mm}5$#Uefv|7tI -h0NI7R~*~Aj4K2m(z8G&6yU?IfiPu*%qp6l;~)?61c9XuG)a2*NMu`BIs)AbQj=1RM7b$~rh1Uh3C$mGh=ayRlpCNBW@h|~4 -fIH8&c+<=hF*}RXv_Plxt#Qi9oDuR^itw{3ZpZY};~8T-SEW1-&hDA+Jc=w6$>{v}&Mx -BinXFeKxL&gQ9iTAP@_$m!lw4w;>zL2&yvIBB;*^xx|yAv(5jV7m6O&t)JK9yeh7&i5up^D*c6KgA7x -?CltIO)*vV+Q7r;ll2;t7%LJi&Vckx+0fKT4)K#Q(E)Tzj4RQqA?9Q?YfsVyqT0O(1Zv?Vf6IaPAo}l -tp8wXY)4r~oYeiW!wr0U6_DfZUHK{*GqebCl0NNy8yIYdp!SWWT4{5S>#u#q* -T3w2GkNjM!$Oy`-Wo|93>4@|fP*JtPw#`^2vD%6+WttaOXTTZ+cB8yzbZI^cJq~t8P+yTUwe)PL -7qOKW>R1?-R&k0RDDMDyH0YR&`kj9(86ujy1!Fyh;qQLg*tow_W$HW!MfvCM -Mfls8>Vds-ee^;a)x>W4o)2C6Cb9yVA{v??Mhr!@V{&Ne7!qrSV9Cw?P#_wzcH8 -$wn)2@NQlx#z9efjTdr=b!nTktw-9Bjhn0V{yS6szL3}LN-n%Rg8vT&vdBOz2aBg*%Pgl(ab$7Oe6tG -Gnz&tdY?upGrL^WAT)ilm=Z^{i~#n>X5>-=xCU4C)5UC#L#yVtU7)Pu#mcf1mYDJ%s -8t{gUEO`r9Dd<8RPLaWD$Pi3&$A&UEjH8o%b^k3sgP{6*h{zkL9C9J;@-qVnNGLK)Ae?%450(;#yBql -r<-pQM4@I_P!zgN%gghf>p#@}Kxy&5@_#ScM=tb-YNK8Nx`#Bj0&ZnE35g`$X-xgd+P+4YPZxihHK{$8?e9)%|HMqf*Z3cDeG{T`J0zulW*7J(Tq3@GbGlWDFNx^F2C961r5j1zpNQ=HKP4isUd$%RIhaA -j~(#+kM<2`W)qd&_$fw=kX)GBOolP%;;iSK4fVfKd4IL+dRsbinY63N-DCu@(IA+(=uDoG)gI#v$&|- -gNTx%boN`8WBy|{i|>}|)*_uD9EG}+`D39u{CM_-PGte4^iifVM>H3U+a#W1@@YJkX(1^pXs+%R4~D5 -@1>~v*LdO~0uh@N0GRC-C`@75w+##{Y^=h@p9wFCnqEg{UHs@;MTYz3tf^6h^=AM@V6X}fNbmjH|+~W -ie5$F?SMYoa`g}hrNJ$QgEeLcDUbpGX<4$i*O*MrN;gR|>z?_mq3F^c?Ep5n(jBse2Pl}Bm01aLU`d~ -|vE2{R5poSdFqe^cm>Pp;37uCD0#{E`mn;^6Z7fqMz>d -Xux3>UpoC;D=QJL~?@(b?}?HkDTa9E-tVzbdONq3J` -EM^lKWsD!X67EzKcX_m=C1xWG-bfW~LWLC-_<;p`J9+2udx|hFQ%5ssXtJ~o|70bt4_ypVISWB8Va1_xq^0_x-D2siu6Kpi6(-~#g5d~ -;BN&chIELXEhGQ6x;cyJQG3>^$8^dl4y9tAX2@EGNoWO7b!wC#0Fq|MP<$MC;$)qP3!+|gu$Yg-epi( -vf2O~8*A##(`__AymvDQGhVPVa%aLa3Mgl0O0~02@o6zMc4obAPdDb!Vn-<2uu=~q%zZ2=a?wem? -9UpAr=Wa96&Sz`4>tY0~jcQfII@Z0>Tl{g-~Jw(KJ+(l`X~~JONP!G*)TCWH2iF3IPnqY7prJ+XAZ-; -L})LgO{;VA#6ZAf!IJmx&mqxkR`eY24JWhsSuz>0XYjL>rjP?NkU!orb>dhLGTo(95(;&CjZfHBL1hl -$)D^Zx`_nsE}}|NbrMxIJLo3EExL(n0=wxZVbx7k9sk?9iE0$xZql#2$)N5g3XQ0{NoaKw)hMt!h^)G -a>MSE)H|f8)n_#nxA5)3ms^E7{R$@O{$iFRQI+evfM8`unxbefE84r9nh3Af_-SO3V^-<@68T -3u&*0ph=zS-&w5@5YQ{}DJ=2>2QV+(8gp2*hp>@Ct#Sd$Tro?rTa}jn<1Gd?s%D;~)^ucQ-dxzC_JIb -?rsaUZoxPS`K`A;Pr~aQibLqT*tw-2s#|Jh1*4D&RC5s(0*;to3gMKg0NOuwI;Xt*XO+EV2u*nt2~3i -jo4N{cj`oE;zhNv3Co&VXm1e48Frg~6LZcY&Z=iK5 -9$Rdsd-!uqkk%Pjcf7tS-l=+dqQrz>w>WfQuf`f3xTk*ZJrRO8o9M@ -wJ+gKS6<7(3zcZ%G1V3}IcHYvULBaJqH)8T2Zw1i+Ks_bKU}qET?edDzBab8@h*a&)`6)7)9uXfBE4S -dtSoklz;u37b7AxR(fwI#L?bYdo?Rg@iPSnU9Eirk#boKg{5`;xsXMVdeI;d^eOvLYnaZq5#*KCx2nV -9O8n?#6)`)f(82zzE5qedFt>VJQVj<|R$gKal6U-I}>>Tsfm8-`3(I#4}uVde2sD(i9{!Q(LO|)))>^ -d<0(#wIHtS%!qCxK|Ma*KOZ#$ZaoF{ZvmqNgTM`kHOmDyNSk3hELTLGEEs>n@ -!qaRwea>3(_#Y*cAD2%V`;7P{r?>cH^BTH|#sv=P|6Z_0wF7F-Ux?aakcXF&@` -?*#1~x!H}m)EO*4-<5?Eb(;f|1+%)Ti8>42o@nCqb6`s=Fn&!H*iT~SOf^YuLa^C4RUn-8+?LYeAapp -;fV-32-N}Zo?0b9|JRKd_yN`A)gx)N;kGH^A1M54q9avKf25P&JvCf)ZZnk(jyB{~ftlJaYO0@ISZgQ -<^zZ2_+RsLd#O*(xXCv<*5Do%YqwQTnT})k;-LmnkkQoPh(5(R%$J%N%4= -FoNVNG=Vb~~+sungNOYjfc0z)E9V^Xod&#%g4qRfU5<_d;P^d33;9|F_$k=h>*E*MB4NSDjlzM%aPNa -(6%IB5+YTS#Y^-r;B$+oBe^W7Pi|Tw2H~yhuHjg!P{rM_|?`W&Bf5ogpDTf?E%}0d!`orQgOBEZu=Yr -zGp)Ff$B%lgwRfn`*&k^y{=XQU#!eI>&kj90(%ADpGAH5f;M~`f$e%Nf^Jk@Ep8N&`=s%6uo1z!pAyV -Dv$Nse-_>6*eC>mIuQq0(tpmeJTi%v~w?X}8XY+o7emCJC0nuyqhU!h3-DK*`teeMZ{(7G_zX{q?)8^ -`>-2JM7usq_5t~SXuoc<@`pb_v(G_n?#nS%wck!FJ -w={EM$3;MvoHre>u52e>WZvChx>AtMLR&E~0xi_PW9Gx)=O22)?%7M0+;;&9AQgSA-9Uv+SvOr*J+;z -`p=cO9KQH0000801jt2QX&u1Kk^Cy02(X+03-ka0B~t=FJE?LZe(wAFJow7a%5$6FKl6MXLM*`X>D(0 -Wo#~RdBs|7Z=*;O{?4yx?dUX##CYk(vEz*HLnfQdMwd4w8Lj41MC?w27K0D)%=k|C-|s1)>1vDLSCtcm4mwr{mA37vk*n==kF1SbRFWJo<;&F!r7IPTW3eahb=DaT+D!D4S^!7venoSDY -jfp6Byr8c(A#%f&Q_by|uk#tb|&^)!vk7&Cv<-*l2KbS|<7QTE8h_zPVY(`ccY*f>iIJm!lmuO1*+Tx -EIPKFxJh>Y2D-RT9@#MLEe@tf1TWSKf4AU6# -VagsrN#qLL;WAu~mZ#pl~BGf<{ZH+`g{HetdoOJ7 -yeyIz2nR{YvOhPH!)cZ*IiN<+V5zSBKZPr$=AT4zI=4m+Py`o8y5HH(DEtiOfEdTZ$hba-M<7nJ%L^D -QeTd!o39mCNuFAebaFBRL6)Y5n+ieRw-e9f$xcdEzy>>mf^$?0bw+xh|GTSveX~Vni6S4|?^K0{J1&=J09~&trNlBE+E2(mBVeckDg{Ieh!jvLNo^Rbh!fl^j91F{l!8136DEWKy7%cB6BQ;ZOjI --&6GJEoF)4(S5Mx3p2=^c$903d_Rs#TBQ3t?}DV%VHAOR-}Oh6ifb|@NR+#dS&#=a+pXdsIy{)V^$qN -oO80+Bn!K!J85Q;{O{jYuGv!xDf1(u77yNYF7t2iZ;o!HF2si9Shah;AAO!6RHpAq0R3ggqM3N#-chh -I5EEa3Dg`M%;iCw5cI@fKUarYDfqu%0QGD(iK{XAVReV0mO+Qjku0*j!7Unm&TAl;$TE%5K&|sCXVQe -$zzIDxBxeiw=A(Wx2}Wh=H4pqNJ4a -?Y8TOlSA-xIWjyuyv=^&;3$k@GPjXMPa;eBb4hlanqV$^>rgrF>+-iMm6G1n`f+7jnuBsWjl5KkcNYG -1Sa04V{x!80?s_=f1?*{WEsgJ`?V1fwD%U7XE+ZS0)xXK2{*8?#)0c?zO;-#y73U2NDP@y<1&k&Uw@6 -;GfRf&AJf9u1`n!`3Gw>awK*zmHQDEm7ZlUYC%fr&Ju91g&y{PU!2*>`?0QBDY(D5_McI(+`rWKf6Q% -8HE7N`G98zn`F6gdu{gx6Cj2My9(`Yp`O9uM50acJV)6`2s&7*N -DLV$H!H8l;yNqN-l%-LH(RreW8Jopn;?Cg%=xbToaJjASmrI6mg%si)Y5DY&kVL(w_P+Z>u*R@twy&p -aQ8;z5v#7_1-nSPUf3!QY$h^d?nv@1X$UMM -nWnM9veZ$5h&2jbxUK>fruwVn4#*JZXv%3$=rd_sn+Z^GLXpJy*Q0DKdS+?ZX -4fy9W2BzrS$la#vhPQBzgXY$s(r!LW|oiLuln9x*5bg8c3vxUUX;^sjM#E5$acbpIN)`nNv-xZ)DG`1 -`oPwSo8O9Fj02;^W+uA}x(VNC=Sj}%*DBkITOlwj!T8o{u`hr&>GK$A-dy{%TTY(m!LxGhyRp^H%W!K -HPrTmq8n*TVe*w0|o-KOaBAmaTcHUU5)|aEA+1jjDx7ap5S8SqwehuzR>;!L;0@epu@h6!|uy*6N#$T$=}ku8L^iG%X=5HVo&ui_fQ9caU_@Bjg -9_TY2RFHo!zR;M!m~{X_NJvE0_M-nDk^%?5*eCuI2WbEvC2CN}l~Yo|Ve80T=yDi4!;jWG5QBX7Coz) -;_Y;#%l#@w`D$Hy)W#I&li~$0#k!nfL&ko`Nt9PT=y1UP>h3q(w^Vm94~CQ7j*>uOp&>U;7tOIZ|#oA -V{lW^r?>#q!7J5QnXsNx`AXn_FIg{xLS8HXB_yuLgd^aMk;n@h#eQYSD}m2Lt*z2F?Ks;R;QVEKn`7N -$KOc#I`C91G>TO=_ebn}3q@U)%{qK==ur8tvuRQ-F1aB1Z+6lJU_@K74wC?87;{Ac>`+m!(!3+A;^;RT682uu&7-1=JbsAND50Zlt|%_(efCG3BoXePo|b7mi^?pgSr -V(X)TXFi&rCf{<1)s~U({!nWDAv3c28xGPRO6DvY15+#ni@GTHrQcWO;Q1#dMkF>+xBxqEgN2ZdGaQE -*0fk*J6dG9!q+4^qRzUI)RE_@m)Gh61vi|1zo8^<)77j?a5J=mU(=)gqyF5*9RCOdLQMV=rT?o^7x5% -2o{!9W^}nKAG5TQ`14P# -BmtWw;8(L*cnnfw)Y91GBTYy?gQ9A!Q%Q62647gwEp=COU@7l#uKeHDr~q+&eRYkyXGff16s!mL(n^a;dx6_wh4gnpqXzJ}2&N) -Wo-%-rpTzh7Qj^((i{?SBK{}AKyS0VZl=bd -#x#cT7a)}f>(KzmMa(z1@Diqj()|A!?&krr#Bz9^(Ut{=f~IAbaHV;hje*(b#r?3;q35=EI6D-ChcluNKR6RxYD8MJv^f$~#qo3e3J_`MjDa4=6xJPqlqV#v~Ml#R7$xZlb$H9e8KZmX2=gw -AW%c*+q`@gdF{yUU~4$|B>_mMFGjsr*Pk=J)Geb_c%uq*JF&~`3TR)flor;>*u)M)7R4XXm5gt7~I># -1PF&h(-xn497@I*+k=A9c!LFm2~wY!Bru6^3S3KAB=vJBkXS%qWx~C{J?VQWAPG~(xFHA=CK0R=+8QV -sVQi$8YUQ%u0x=1Eu|LH*!MTrfjB|u@4`+x|;uJU`2Uo=ya%0GiAve|vu(}vS5dMlW1Ob*9K`_8IRu` -~Bz<+_�atgQ~+QBoJ25&f)OSFSphHwq9A~-0P+H$ia`%n0#Or)l1Eec3pZ#AK} -10WI73Vhb?EdMCL=Pa557Qn1%MU+R{%R9wF^?O1SRm7rT`Fl&;&{}H?+wBkEQ@}3Pp&N&>Wa*^PyZ!V -Sxrk=o5%fp&4WmLX$@eVpT*$2rUc+IvP6caEIUyO|%OWy((@-`V%VwahhP&39hvphztR7nrK(GBFG|2 -1i)#k6~H&rVF|PXEu^nCjd4AN;6$6N6+_9sCYa_6u7!@&zVE&Eyt-KE7NP16syY$+(hsXc)Svc%Gxg~ -DZ@``f^{BTN3vh_~Ghp|2%pBmUBU34m9sTR|!%A$}f?#dIdKJ-V4H`Q(Szu;(X00I$_}ZeutH*-CvA| -d*d!9+3Tj{mebPrLF2X#zj^>=N-TA8=@N%$Puw%>fkfMLcgkR2bb1+tEXtepyd8~VzEq4kFCkPHcLZB -8E(MJ*&Nk7ez*ta-DJg4kric8Ax--8};KDQi0nUNr`x!)-U#eYP2P8VM%~HU`qMV6D=u88SLIJowh(v -USjcE+=jLZFP`s9t`_C%*9R=Hd|ouw>)4N*u>c00-HS@9vJ;@jSzJn8VhXbQ4fNK6x-q8V$g|#$$4&p -SVc_{vT<9i(|LOqxRLngzF=yR-50C{O;zsCgiRK?&pbJ3fuWe -G$|fe3qhhlK!eN{_diF+Mk2$2)TLT#{rsld~qF^hylrhO9m<+=}u)W63Mr*XG%A)x+QK+)O%vwC^VS_a%ma)N*%rh|AJh#1(XoUM%DY -yl^2Jwnu%Z-fh#4rdO?V_m& -cJnu@hE6>Qo|g-~J(6@{!7Xs7nSRBLIlJ?7@bFxJ-CoHuK>D`mxH;hkjfgGaqJhfhLbo?zZ*BHn!JsX -hohW4D_R}izek>CL^WGTvc3b7Uv#Haz#kV!Gu1K~IFeOAbswA7po4Xz++AcisdBw34?XJN0M)@2JgcA -!dWE?Qn$n=GriR~AT#)W>*z9R}jgShRA_*;<$+1O%x*Lrv6-aV5CVZ(N#pLfO9a}y)`x8i|G6kGZEE^ -YIq3!oDP(PEuhg^%&c&C56M6L}ZTy9Lh30Ss*CX=}b6w*|-j!lv#}EKy}ki0_DQB@o;K(+_qj+x>E+7 -X!EVb48`^VzU7Q`)+Eda2|w>I%`3L0pB`g%V^uVa~E0|@Hazy*sh_E>Q0{+3<&Z2J{C40+L)W}z&1NU -U7Ps3vyGBizc0A_x0?sw#4IyA7MMC@b|zj{?a3`L@3VC_a+F15T;N#HM#71L*%v~;9R=A^z{%9&0cWB -cRJT?PFtPnLjLk;bvA~kNv4F4EeYLTh3vcdvG2jt4`;TzSO}hX$OzhIt&HN!2HWq|zZSJw{6Wu7-4VM -v#``gY$UKa-}ut3?VVXp;-aGi?evXM8`JV)FNZCM~&jF25}w!c4M$<&6h{T{h73jDhQu84ncw=oy`_X -5jB4qnhv+FR&0Txdn1-Qc)hyL4V34G;J_qJ@FWh#n?d#NCkDX!J9&cENpjefHjHyFc#h&~#Q*-M1mWGr1$d -5C+m&*IjkEN3zenwxMlLhu3y2a0AI#*{q&1aoeM9iPvtRy2W!Su-|2YTP^swXS{VcQTL4{@ZAlVkAF7 -?ZJRvl^Ih46tG%6VpmP7Nv(4d|XL_t5k+x|2o0^GT|Q{(M$b{tlKiX&GavuZl9vX%LCf<%O_t?TIip+%~d*6m{I2OS4?XE^q~?gSBrQSCAW*Lh| -Bo1x~+Z*3h7{Xx*y1CP)U7KYH_R52mRZ{+eDS6%C*9LseEH%p~~AddQuqw>Gb+yXEGU0ccwp8&y)HGn -RxcHw&JDl{nPs&P)h>@6aWAK2mlUeH&W#6@T8Xp008AWpXZXd6iggZ`w!@{_bBfDql!TD25~?&7E}M;1(Uh9EMg=R9TK$U=`!#)=MJp*WZlac?}@ -p*t7G@GjD5lQY!8LK)dt3+lOA)==ALlw0oBEHyqF{X(brV8Ca6fc;NbAhzSE8!lU?)`@Rd~fWI*r;)* -wSWylmvm|~t15^8z!gWe2lmE%v1Ag&6x1HmsNZKQ^xP#w(PFU*xaTS^f)F3&Qpo554Z}dlSn -f&YDmHEDnCk~Ue!~!#9{?wg|e&2e=PTsfEVcW8hk95Op(>SDaa$801qOwb1V+tpg|1u9or -9H7_34zUHKKXfV%LjJNjXbN6_j&!LQbE*y@j-?ok&@fvZ^H*b-kXeU64PD(MDljgF&%$Ij6BfrwVS+v -|>=$a}Lp>UV4#Olt@&7_^3?t}*VlhA!{=guRfN*M!3nR -Xxj9JkQHc)P?73m3$eAjuGcR0MokA8+bB8oflmM7#FtM=)20$PO*MJ9ETwqC=&^dV#|#wOObsGoqR4_ -3HhrQ%D?FIl3cF3y%wgvr$7qe5{`e98gey%OKbUw^11Lq?X37IL(X7!A6zU`tQHQr|0|j*wxS_{6?!+ -Zmn0%ip6|LL2-pJR(h3n_5#!n)PRz0kd%HVI}o%y(K;rjKS^^~3PH-+`se1f(K-P~D?u|^MlOTxV+9V -N)H=eyWMp{Dh))Pe3$9!J6;DJqsVd|?4*p>oQFtk!DyR;xA7$K4XnJR7GIpME}{PJH_Le0AchpU+n(z -WVum4dQE@&(|QnMu87I_oEBpu88j{<~sqBdOQeAgTC*&kg9cSC$PDc^^X97lXN -=GnL=@iq7I9gVL^e9c09_%5*7^IPMSQLE`P#(SKA*2meC?!PjGvWbmttNF;xn2j;nGWlBR(VLvof;>Aeo;J#P{$apSA -7h1Mxki`+;;0U##RpxDN4knkV7XON1l7PReIxW)DEJ_)Ow6KjgEv{WOWsG_?zjjx+EL@Px@`u8&VTKH -+I~jpqcPzcPP~vO3BFAs3NCBUMP2(G$}hP@enc+UD#yQ(l}xj7< -Xa-H6E)GJy_$OREo#~aHS2}HC5rA;cEj4x)VJ960{hRSnngb?Dy0@3cOWiEd{!)PoE&kABZGMU1IOVw -3p!3YWd1af(jdBvlR_TOBVsSoKA~wv=$p``7XC&`s0OJ`IV(r$XDAhp}M -Wy#tJC^$!w0*M7riC?1S6{f!h=3$(E>f8kLabE4LnXUP%W3ETzSc2F|4k^y|`+ScXm?e*QI{^^hz-wk -FfcXrUkr#u%^#wL+k1*cWT9Gn*mfK-HGMzK%1k3l;$8aXVO(U|MRXY{a~!80@sY97s<=~8Z(J{xJ?Jw -`u!zc+C=lt=cgsrn$ -ly@V%DAL8Me?$hhx+L?G#>{FhTV#I7j;NORP(C+)@6aW -AK2mlUeH&Qlr7){*-0031D001Tc003}la4%nWWo~3|axY_OVRB?;bT4gUV`yP=b7gdJa&KZ~axQRrty -b@E;zkht&R;RQs5($N3aR?#qEsaW5>x`n7@eY1WEp!5t24W3z0Q^U>-*M#4cMd?saB%k-I+J@-uwtxS -Je;Q^&f^~8V!5>@vKjGqe<^?x?p=%yCQeRG|^%yq#sjHg-jx$C-pTakO5iQUtycN+x*K8>O=s0Mk_I-FcwdHyqMpn<17%`PyP -_wg|N{RPQzDy4~&oqSCxY-8d%4+9u?1!uplN9h07tMvFxXe)XjB87D+fzWzp25ihk^(0SHpUp9F%_;&uPR7_|XGP*2rm^E@BbDc_ads36r1D#-1gsLf?T+WVTO)1`6<5O ->T$cu3jl+a_NCb(aR5B^o!%onx_86T(0#Vq4~FizKbz5 -D;!u~SUB?~v=A*7d)44O9%=#@ipjB5Y1;ex%5zfeE*Xh>8e(XG$yIFUpO1B7GRI+*}?1KaK>hu9qtWTrfB-TfxQuOIWy=sWa$ShA -vt@i)oMZPC)jOiY{cEx@CjJ`D`L&y<%p1`*8yn4cM)I`h6r5A}9jek2>XaS#8T^Pjn# -bt%oaBFm+u9#t`T#%Z@C5Z_rUcCz%C$R_bG-N@G;AJZq+!|>L9qC7qCAog5-b9?k)%TDqb2V2q?@c$n -D7xw)&1UaZZEg%ExNCL{&mwq|5rpUlPL4e*9P1{%lDT{u9{Xxck^F!IYmJg`+w(_p$bBH%T*Uk$9Iio2vYPszUFm43;LBhFF(_R<)=vR((Zv -0$GUv#ywpm|FE8s!kKFg&e$O3_A3mQCX8jF@OJzKkDqXHTd>ioV_B&fx$!&*{^@5U-2w4UU^FMbv%^o -L?+nc+d`{?xXGP*zCF$LMTTfA6+Y*HM+GEQ|BadE|J3^%;xWzfem91QY-O00;mMXE#!<(-Ek00{ -{Tr2LJ#j0001RX>c!Jc4cm4Z*nhVXkl_>WppoXVqa&L8TaB^>AWpXZXd6iXNkJ>mCedkwPX^BOxXCo_l=nIkvgGyZumqFd9#3G7bjQctHKh -Ecijc!QR#GXujbzGh!_ilN9Kbld$xle+elWEtGiS#v+q!n6cbZ${kOfHk1I`svQ}|N;m=7SN_7K&bc9 --k-I?+{FFPJu$&{b-4;qD%n7Y5K25I8?gPXWYO{|ghBL=gT9rG->!q0STzQG5Hje5+gSzc@2NXBqE$T -^0k;ht!xaH=Br~63)t(+070`t{v<8MTW9+-KiP{_3rTY5+6(2>&=mTsff4iRrk{Fu}}uixg~DYOHGM( -ZrsLb)c|Nsg*PXDL>OnbJ$18P3V-%)Mfqdn$E72~%WvD(t=~$mfWu^u0Ey-|AFkr4JP9aoC?dcLN>twEIp3r-)4(B^`=ks*o&gxbpCV -?Ec`(huJ4(|HkSg#n94BaN;D3Fhd~s4Lq)GYo{Z;DzWd>LJ{`m{4QCPcDC|Y^aj=;5A_^B#IEx1@IL` -S|VlU<`k>4cFK)KaW5+{cVY4@W)!Cs37Wl9_N!eMj5anw>`*fx3jzdV#$t#|XHZl}|J*ZI)y5G`Uve)rH|`t=WQq`O)zG -dM}D!-capy2x{*SC9Y}`qLL66LUB6nQ)gmloT%eRD~|)!%r26{V8k}5`Q1Z6$meqpBF0*7Qy$h0$Q)S -A3EJCYSj0!ORi^g#q}eqfRg<4U!N~V3=yh;R$~3Jis>VAxtM#sT5SG!0M%-VWEOXOKZwt?t6$5Bn-8} -ZHf%=ArNI5UT-Gg@Srdm?t(TdQILcq9TJZzYKeoW#TE8G~lCNvD-e}GV&fXg*8sJ;|AuN5Nf8G-QIoV -lnG%J~ti=O%`#E#Y0(v$m?zahq{T_`=bxc==DsoXr)=eISc(+^Z*6>$QJ&b*_OuwK6OHwJv2nbEN}WRKLGx%KXqmcku>+FP#sa~hzGY}+J;}wF4=&GP -*V1Vdpv;JT+An~V*`2M*xU;_vqE+!(!!fnOC5`XjFN(|V;{1QTlXX54&dV0_dEz8g*EC%dbA|R8uJ78 --ik!|;cVUs;s+@7g1K-uf|OY&n_yMbDRaCy+Z$+m_yaP8iatO$ViV5hA)n3N8sq@`vhOG3KhH16?BMJ -N`+hJS9-NJTe1v_Wr2&QWCv$Rc?_38mhFS%d7cHRRkiltxc=RVQ4h~NSC*vQY^v5UTv;Jtrj?ahefL$ -C6$0tXZgM%TvxEx-bkNS1SMx3WjEE_RT9^IL;XZ`W(AZNN^J_m>N&U>J19qX;@t1&(}p@}*s= -i2tvS1|#-~y|2JU$BbI`!x$7&hwD%83b<;yuK&RFpO6MU-{sfPp7)kJ=LNP7pO|e5_Dq?(A#yjm2-mZ -?;2UawL+~42H7@uKHNPqNO*OwM_)W=g)UqFew*@1>aQjdxGCn^Lv8dOZm;rN8py=Taw?TaKX1`N_-;t6E%M#_!BkX7JOUHw* -}u;^QVG8Rr9BUKUMR&;Bz&f3qDu#XM#VY_<9Tr`fOJDkPH^1@p7!dLrT3r9G(wrnWWJeMt&-Z$zyHeZ -_MbN`EvKm^gW=B2_q<6}AxPcj`37wtUJd$ZS0M0%zBu@od?cZ(CL{?tUx^u$5#0)FrK^N_`tK -l`-BkSPzhanN5cPc6A=Q`yL(*PxU|_O24NM@jj5#i_-5y@Y5!Q(C@;GI`fiS591aJ}KMCxfto6w;C^! -B=l#WJyQ8X#Y!j~$4atjI~OaF;{ghm$e(7$TsBFM`AF}8A|cP`L!ZEdp-9MXzOr09J -+?JvG-TJ-eB{xSUP6}3)RKXosrPzu7g%lRTBEzV0E%Xzk-CFs>=g9XwW2l%OK~k@5IQCNL3(wT^9NK_ -*7^f!3RVW;+c2)=x8a6ZQqCd#>Q7TB96JOOM-G9)u|ptnn;Twf3v7!bA)m -`$2PY+6tMF#d(^Q&msmUv4fyxjRL42l|o$;_Ysdvp1vUL$hbQdsfyuxfw0fa0fjd -Qx`YRt4n*Wk&$L#vythRF*5N$Qqss2>aoVi{M7i|)}jY#WxgCXnnt5ik=wEp6aNu6%hXtoy-YJ!D)r6 -s@8xBvaJp)Khvbv}5zCc^L}FUWUYxm!WX%Wk?)(84AZXVFNE~??3dd -e1ix#|0G9o<1?8DukgUajl&G0<$Z9WdUiyzWrzP#^2CTEM_{Zm -5N@ctr*HhwJD@tk{UH3G2k`c3?NTT!uBoqLP+an{+sjm$5jZSeL;(Zu2k{OJ5>iEPb&9=hpEcTi`|yJ -Xy99J@_niJX@^QklcC5r}3(iS-}4@=bpV_mS?$(5HR0!7d5d)h&}Llfz!R^I%0W;cMW_Fm5WzkvB2`K -<0ULXyawojyKbG0{NxCsHH+7aggh>9Bq|N`1{3?&m;OdQw|4p4K!cy!?yU?H^~M -|St**Ex<5&g-fwi{%%ZEWC!^p~{3x=S0SddHGco2y3$P -ccad+ybht@b<3;3ywHTZI>Q3!lZ|%MaLcCWFu~x!UD5rg*%>Fx1P6e!>e -w!yNg+xYq`6WtUWTnEp6kDmimq(+9cG#~}#2<(KjP_DNeyqKEteblL7>LqdijTEdrZ%%U(q4*> -wO6lYuj9P-QhcnvB#yL~!m;*}IMQAU$J$HcNP8(9YcGi-?WJ(6y(GR@vlNOrRzVU+DoEj21xXyKAcbQ -UBypsI6pmGp#9wJ1V@u3q%m!YP5dnlSH)+doCyN{d^(bBErP4MJpNBdXk}Ovy -qN<`J&Tu*4}x(TGepF*jG2JZ=&?*jTq|-|qEO6#hFcm`DS~nJ_={7u1r>r+obswd68CpS6G^e?j5cUyyjtU%ciVko3(bCVB% -3_7^Lpx5AOXFyPWMh~K==Fd8+Znf|tFMq6CX0?678F?c*KK>tYBz>>nss$p*;etHRRWYjRLlx^&Sn%l -e`>a~(o(^2=Ti1bX2J$w;~YVyWj7Io>JcClXBP014}tweRvHz -g0**0uJYw@Ta8+D|{y@6=iyUF+<5YjsSmvvnWp(VLQo?CM%~&s(KyYTXxc3){7vscYt*x14Ee=C=Jw8 -olDCy*4y(|>6u#Z#rjkEma}xt+VhsPOwD?9f7<=<6J49^c?(TUZL)LUdXe{|Rc&3f_qr8X)iyPI -b@Qv5tE8h}`KA^58^7w6#cx*?H=v#6P4t>5V-le&5o0vU1R3Q$d$|x}v5K1ljOM$)EB^;jO9KQH0000 -801jt2QXX~h9-jvQ02vkl044wc0B~t=FJE?LZe(wAFJow7a%5$6FLPpJXkl`5Wpr?IZ(?O~E^v9ZSpR -R@N)rE_zhb1Qg1qNapiNJ0FHc8^lb}Zc@#S7~5oZ~DfmMu`dhPJIzy3bEw!y}ROLcchNyF~U?969oK0 -Disi}DZMnD^a2^|~FiKQ`&6H|YFMCuA=w7c^Nh8U%dFecPjsa2at)kK$k4^K6>>{FMa~JI=}uBn!!9A -#*|zkOR?rCAHA?dB`Dl%U+o$HY^~qps>U=q< -PFpMdqVAteY_f>1Ry}_@p)heJB98dV2q?#gj;z2jdmg;$Mz{;E|>B7Kq@5LcRz ->#`fK6x#ZE0nzKeKOSRo76G6ng*Kcya%2!-yM&jK7jjOHG9pxomQ^Ccr&(nhVx)d9*o<;Xa3gzf~)Yx -utrgnT4K>atW>i@>|OjCBEKx9EK59VEf??j>EvCIqEz>qkYrubtg~C`@8O> -Z;r=wHyBZyhV9X$+nM&-BN|Re!@=0BBe{&F5GydtK;A>VfXTH0l4uf}dom9F3F(z^&~s^JzcQrRVdyH -CY*ff*_ft9agum4BLgfJHH{uKOMQG4A;HVvxXCb?=a>%cNu5juGT{R(O`!60+FoyaaU%>R8Cq!V-jgX --deQZOw(P}mu@0%YRO`_=-E2lnW_HW-vJ{OhBB0$sB6K>fAVvgvMJ=J3!ERIgj=ap9M6`L#*p&Z%`RlQV`{l?AOKSB-F_VQOl#czhe_A;` -BS`jW10QI^!~vbnLTUrFfzvvgWfF!nvK>cBJe_^-nyb+vg-eAXdoXZwuSsXNHSvASLg`o(8c?K#?^&oSv?`%)?t8cHF6{CFJ7d}e@R390E8EYqCF-V!ctnW{ -`Jm_JgZt3&jl>T?Whprz@O;wv)Mm|Huqc9VnRI`E!HZ~8^{*R5I_FkgRk^M9f9FhK+Ic1=!2mNA4e{z -p2hDl0EHKYm}7&%;#(UIK@ATXWzb|iv)a%cBdBb4vs%J^}5JH -Ra#A}jlPh!=F$elo|YsRO+F)Hrxhm4ZSq>DD`kQ|s#LJWS7xnd*;1m)4gow9x666E`+zvQTk3JR9f0Y -#fE6{g&}Xv#@c?p#0PYCT(?VfL=j}%X9EIVwnGiN&%kXZV!4wW4fx2u}2dWO75_$J^>4(z%NSGvu5`i -3=MroU-!~;HLF^ko$}j5z>&TDU;3Py{3(A`-fPuVwVEmC1;`_zwmAyd!t9Xu6PI5;@)yQ77DJ_D-myF -uBIngv-htE-QmR!K+=CP-4!?anrW9+7YL>PAp~q*Y8>d5)>Mq*vs)V3C;~ufr_9i_%o3We#(v~VKHsc -04s$$hmh#4VdwGu$o=Yqa}|Na%@w`xX=3eeGoP0jb8KcU$LfkkMm#}dpE{)-~%Ev6-Ey#M@>F#Iv&$Y -6{b1})t?9BCJOsgdGfg)Cg_${7Icbe=-{M%FH4Bwf&-}b;lEGc1vcj -{WCz7lONXgBT4u$j!}LAaKU(G234#pre<$7pQ;jr6Ph!jxa4@T;8lPHyiQf-vUorWdva5wNbI>Vs2bL{ZODq|>d(jh9x2OITTa8|SRs&TRgjsnX7ZDi~g<2fWX -K|c@v-C)|kwYrmn9%jiL5(!b9c~t#ZNX(fhws_<$F*pE_>Kk#W$`zinj=ocIYpzxT*YP`9HS!3(71h0 -0Z`JrunEZ4;`h$t}Xdb$)I125Dx}#D)8a{*gjoU0VVZNUlN0XQ0tXi|)NGU7N8YORyv^8dz^r0AR;lv -Ml!U%U8?qCo1Dp!fO^nYJgXO{)9_9U9Qq7@sd+j*$*3{{~P?0|XQR000O84r -ez~ivCZag#-Wq+6@2zCIA2caA|NaUv_0~WN&gWV`yP=WMyU25FH}&4+mFIIXC8uk%%eh6AR5+IrkDFvcB~_A>Iifs(#Pq40?JTt_qOFn3DlhGZnu=NjIlzI -80$Zldu@RwbUFf#t9Y=zGd)#_OM5Ed5btmuE`%ZT&Thm@+45R6IG<4 -ez7MIdpifuCUlKh$C04Y}zGl@e&7}rVY?^s@q4ssusWJ9sc9>uBhfnbNMqnm2TrC7xAB4nS?Ctv{xY0 -9uw40{LL^Q5}SvafF$r^0i}P_Lp95g!~&;3B-k0;KM6DODMoQX6a9Zy>f(t5z%b)o+z5z|=*_xdrXP^ -Oc9sU7-*t92zG*TNX-&>$Q?|OaYeA4q6K}E;TP!Gm14SM9))D*4|}e!D%xxG(~1WoQQ>orv%5W;!IJ# -gB9PHsMhM$R;uh3tB)o-!$BEY9He2pNa~4ng6>kw+SDywjn=!nLX0xKEJV@ns=@ -4(F;t^FDVk_qpRNC94!bzgh@B@Bjn(E91xrjc8JvwD>s?g!FZ~*-M`71emX6fnkBXjT^3^kVvdXb8vERVr6nJaCxm(e{b4I5dEJ|F=})w=m-~5opf!~(-9yEJ$?xrRZ$gL#$I5rW*6{X2-s`sD9|Se?J)0aM10Koj%?TfOp#oYslb5$m>C`TTL#l+6AK>rhD)LGQ*EV6egK%JQl<7lG2gI|7P|!TG?lL -`)^>+fYeV&JgWB)k{{e_f_ZD@ch-TJT(~N1Ro>`bO=}KV~U&KbLx^8@cg=plfuQcV+O7RU{5-K!gBu# -f_Ek(v3(nNfre6_PGEfr&=<+1P^(@gl6Px+FF}l7fRjPLY%A+x|4uU)V(3bac*-zGo@jn>sEW8EkkUQR8;qkt -smXo+Q0^i-cf{ZsC{IsQi6hMNL(baYiN%@00^SrFh;as6l=DOqb3mGOP>es!({GKXZ%Q?JF{75>^|PW -7fRz4{Y#PfW*cz;gO&1y*`aU%jQX?g10p)NgW=J2RTjXVZz(ZxK0 -+?IpHiR*9TTyaeP%LdlRBpGP{S{)qN!6c~lH_MaKr959ZFA|F>|yZfmgMpCR2z6dD6i2?4NBQ%=fah-2&{pIr0Mwtv6*q&l!26Nv}W5JeY`aXEO)OW?v^nPAg4* -)oQgM^0iJdQquKmEwF*GfG}=L@;r_`=6Q9^qGe{ckB+g?>IG7h5{Fjq-zZ#hkm>4y$j1sL>j$)sLd)8 -Ez7^*On)&gpzNe`ZS&u`H)IN?T#3~1N*VUiFBWo`<1b7pz|1bsm`$%I{0%!!teA -{6Vio(VbHHyt`CDJ0zBh#eOUA;)y@^F{ma6nqZa!Jl|fG -_;1ae#oubO`eCVANav*=#a9Oq#bLlB*R&3fUrF)!+W23IDPUvBoQcDFr5YUD)I}d)qvLIek(JCE1%w%R;|0Tu1bpUlni|Xumlli#k4cz}FzvJTlcbeXc3q=1ZOX^KjCYMsvOR?lPp=t~O7^F`@;WNlUS%= -O7vNZ=*$WC)lP#_t{YvdJQ)_tlvt;w90D5|<=GRD2D)ExqNnP!qZ$t7Fg&eNyQn#-TrsuN#RJdXe6Yq -TZ4{lPg@AkXyV0{1KczxBY^$wlJK7 -I^)$NRUS`119yeB0>sTf&;{OW~-BqqoVPpYC;$KeaA|NaUv_0~WN&gWV`yP=WMyH@0329WLZ$>pok3&`Xoq!Oqc$9BQ83^1ouRL*aq7Dy?r*Ab9NPonec3vo%$2bgk+cgZ^CtLcI% -0I9!QKhb32ecWD_28C-ej6fYjPcBy>Fy3Xq-gd+z#69x#8(LW5|~_jo8Bd&%)?v4}k3*rD(}iJ!sJ57 -Z9`X4ih8-#Y=fLq1{Sm6EtVl^u|*oAq#zWy$a{PrzraK75=kbpT_-kze+=~f}m1Yi~~DZk#?s6=S=$3@Bu4- -%T|8G9NS|7p9rbvho(Yidy~KV0r(gGL`+xoD)J`SFKsL2!9pfVKJVSK3ofx0cFsK>VEXH5>&I~~iSYo7UNINP6(pRNQ3c -sfCro%s>>P)KKOhhreSrC~F=vtF)5xts0%+NX?%@5^?SLKkKC%zTH#f(K3m=+<4v>G{Uzs4?1ymO8oRK)S -!B<6N4W6h8Y3=DszwuD=@e&aODCSFFbA+ec+Dc|g?d*YTZ|oPSo-D3X@7m)(oEbh5%0z3ux3kDfBY-{ -0Kfyi87Z6oPho5{S|f(#XfXWmVS;QLc@BA(k_Pa`$>Bg@At88d;92bH0P`sixEH2DRqq3 -Mp%>z_8D83$V+0ksI!%I#+*Oc6;5++sonL{Y|_7{_5fkqz$XpP=oKg=kJFn9| -!H>S$ohv9RQ`@!Qw5)Uo3^otK-V2&tKm(>Yu-MI$tV!>URHhBX#w2rFy2S8$7sHPwhQnP9 -Z%PcWb}{@^VtBcWp?O&1__6X$Th4?}*>FgJJseggcc(Sv9o}p>Rhadz2w~Ro#YODy^bol<1cVJ^4;;o -w@{aX3h-)SQCWUHg#^IbQFrNEWB11IM6gsR}0G< -o=t~wlgHhg_}P?~pc%i)9YGzb{yhBkNzBuI}*zo4<)86>bv4`t!uhPY247lS8ZU2+Ix+qsJq9g%G+iQ -h_Z(qcOA#6Jfjbly7}B~~*U)sTfN#PmIP#XJBUM5e-sN9S1+fut=23G$>d4<9%ZO&gJaCArGMGen>GP -PD)uz;e?@i`MdcC4q7nIq9*+DjAmJUBhbNl^dIKO!UoYU>)0)TP(~pTs}z?P0Y*i(g;MXr!+MX1+7URZimVw&oTzyZ@jdcf@o!NVYk@ZRjdi -4hZT(Y68}MuE4NrzEj1_o@b)+QK2E@ZfI%fRs_2B^9%)l8l6cd@Ui#=F4QG_!EH)W5XfGx%2!76e(Ai -D5Wr?qpDmgF`-AG4b{!Dk&LN03kU$qOD&>Iab^3g8)v%&K-f?K@K%*8=0x?z)e6XZZ~(W1PJtQnlTBE -fl{l-q60#s*2#z-;UFccc9d>fUPCAT)*59O4u90qm;ungw-tV5jFs3K@rwG_h0QOFf9G+Jy-wNd1-LU -o2-Va;Di}uc$;%ANZqgZ`_S^`{h&=&e_2D-7|943iH|xc1Y}bG4(edl!cHB&7G&f^;f5PMX(*(o>GhDw27`pwcX)9Y}UUhuY|r@;&g%J=X;UWmqa -Drm|vcBW|mBo0CM5cP@|@>YSVSxxNdL{GSmiPp&7-g&cfC5`JXV&3XgHl1LJq`KFvCQ~k!oKb5&|?~h --u+WBXrg(xBUE>5!Ka(VF=Q?mZZO^|$DylkspV)38q&7&_Rd(fvYsSqq5V2xVLD)lM1MB}D)PEsUQIi -Z?$Tvx3yE@v)0m9m%9wenO*a&yAo|3j&j;IGwawbDLeF2nQV43Ac)Og5!aH!sDNF&R1YY%=R9mYFJe% -`mgXaaSRjor$-S*Cg-NACP0vui5%Bx4C_)LXuK=;_K3un!hexN#nJ -0KM7Y*&33Bfqkt`N)}l_clDFlA5fu_;HIj6x)O98~oXe-7rSBLFbS1wdP1z2u8i6~o7ujv8x(}z-a=Q -OjC^6@$6BE90>^Cou#&b(f7Dm(1{o`Ux_Y-u%i{O^c8+m%-;tox#$xz`@As~$&TX11(4=1xJLtD0VU9 -^q}U)E$LHbqBI$4y6#U|&D|+b?+lRdBd=aBI>M4dmOee=c38S-q>?5aP|QW89l%FPF&Qs-+vQ>cNK8c -oTpA;;qd54Sxjc0zcBQ-7mSNH}hM(RU1Jv5B)T48@azj^5o_0C) -1>Ke|d_VM;x~=_Nat-f9L7}Z3Uu!NniqPvM(u}hzwNGxtw8!dNBV@> -!tnpG>FuX}3AcO-wR6dHYJd}@;)Axh{}TlZ*%zJkt0PhF!t4Zb%O99tZ?VoOH|^F3ekJgs=#SUAR5u0 -OL;dn6=R%dI6RL{>HCGSs1Y!Nc_{=>JMY(@2p+oAOl|Jq!Em&_vj<8XM?LQl5+4WP6+PZhDg2fwe)?k -~bji=7^DJ|Jkew^RhN6ZSCC-?v$mB!Z{K`ld5^bpS7mftjB=P`QU|FGkJxuw#MfA4>aYYm@P$Y(04&a -Ip&=Qwa;#m^Tapr**7O@8FWJdbflb-s!h77*T~7F{Xm}p8l>^BVPGfn>T<~)F%^zZ-%VDszWaO|E&W2 -k)MJb#7=q&Fa;2nZ#hd%sgY;EhU(#b+@Vn=HQj_!fHDdl-p{F$Ha+Z@NKRMvN@O6b0`%N~B)JTKqw;g -NK%vr}esJlI#awHP>{DQvRt*V?d`Ap%geR6wl?s=K}fm?ckYtc0+DCP*8sIkN%TF`wimvi5pRMroQ@K -=3~HheM)#|tMU&P&*0rkgN1mXy0a%nPg;J_6j}ILVH(z2pU1Teq@BuRlokgDj%a4|01}V0fNe4Xleut -oWJiW%yjT3VOIJHv}@6aWAK2mlUeH&XS#ygfw(007Pk001EX003}l -a4%nWWo~3|axY_OVRB?;bT4&uW;k$iZ(?O~E^v9RR$FiCMi74ISB#PuNQn!nPL)ejm4Hc5!A7>xQJyS -gk71SdF4|ourN6%83vdiXJ*TRl;+grr`R3vwmzU=sc(R`-4ooLQ+wpC9n!3Y3;gi_Q)+GdM1Xr;Y6A_ -1@Oc0ocO#aO{k1VNH5R=Vn?LsGl8Ag#Kd`B)fs6eJ*&Tvq?gGR^E2Fa9VxnOZ*m=u~`)kdoFg@|D;Rb -`JAMg|jDZcE0~RFNvUHd{)yHqah+pnrFFOB83rEf{bPUJI -pZtEGPnj(XuwFAZ_QeYx_)X6XG;~SZPBGvA%d2v`5<8ru$4K)kpP7W(-l26!ayXFpQR#vCKHx!3sWu< -DyL9wP-S}8!)Ip!Q`Dpso>8EpYUcTpvzWkB7NgJzk%moS)9XX0#)S~S76M~Q^ksJ+02%p<-0!F~S>VR -%@3Pg5U62aekty`kG&cpXL!!69X&P#Ww9dBRP-y~8l(cK=J^ew1ROkn-5iAjMjcLxi#6Yp|brQU|ivR -}BD|{Vz-oOc7A1IbOOemn^r+xKDYdN6?bzzZhB#d -P4oeBsSq-?jjJ#9fPvW}a*EzQrj~W|BIYpotjQRq3xZUQGgd0_*4wv<;#L73cZKN`a*Gypfwxgx -bMyzyU$tv%jyY!T?HLiwa%UJ7d7q$q-x1m1^XYR5|qSj_e$zj2}P9Qu^@#eR{}0_lV0Cme8#{dvC5;>r|64A*(qXDh -IQ#+8Vu=VeFG@I_P97+JKw=oJiCgEu~0=vT@d(}seJ9Y)4P!Eh0T!HZ|p%XIYLT6?_22c?H)KGJZs{kh -=m4a;kFcXv{BvoXKHuT7aX_^RIW<^jCAI>XU`*P{DYkN$nCxb}YJ8t>0V*Kz*@6aWAK2mlUeH& -RE(kk`2Y008m;0015U003}la4%nWWo~3|axY_OVRB?;bT4*ga&u{KZZ2?nO^-cG1VIo)^Z6CUBzKn#f -<^~|h!>bBsF*IjyS+P&^RdkIobJDOIZiOFsu#Sn)|wA56)}%3F!)ERR^${`XhxN|1esP8)*^hCG($b( -%%w_BNGlr4g6mN};xXq2Y^WuFjYvHTAh1@k9xafzk!Tex&63zxXg -mlHi6M55{iRrt7X2U59(vTX*B`tob~>y+6OcY|X#j)$N7ucW!quzfem91QY-O00;mMXE#!l2G=qJ000 -010000Z0001RX>c!Jc4cm4Z*nhVXkl_>WppoNY-ulFUukY>bYEXCaCzeb08mQ<1QY-O00;mMXE##!Cb -XZR1ONcm3IG5l0001RX>c!Jc4cm4Z*nhVXkl_>WppoNY-ulJXkl_>Wprg@bS`jtjaE%><2Dez>sL%2E -F`ry^8xHdfDUc99}8@^!8ScCvVlTNlubk;1(LFB1o`isAtl*P;$U^KC35&U^JeCeXFr_x)|@Y;Iu~jK --OjDGie|G}^iOGI=U}^*zY7Wv3Axn%&s;+lX8{L9+7z&F#L6ILRin@2b5k&#AB@Tcut!{cJits&0Sg -9PEsnSWU=FlsNl!&5{P8i-GG2=?J>bS9D{I)wg?9$1O6&r!k8#a(OZdc&Au?SogCv91&TMTnta{cw{v -?+Q=fV>Hb!F&&^{v9Vi3=>flRiegBTVE>Vg07QBDq-iKcq{VQ^A)F=PYjVp|6c?Wrhp@x$joX0Skfz| -jk2)hORR*kazNK;?27|8C4@#=N23A2vQSSMlE+){4rFkHQ2rI1h86Nf*awg-tZ}XrnXfngenczkuD9dntabBN_ip(@4ch -!(JKfAQnRQwEQhPcOvb@#-mNn2DCVgj|@v0yjU3_Pd`EXun&07n~N26(@W|kqYaMyh?}u -Yq?YjO2;Puj9GZrYk#6RBVia_+mcTEB0}RH>2pE4kyPxFH8m2JD&}5P#|=f;8GIUgZdyD?X(g&{CrVj -MQ4Qih?zN!3*h`vFb;;2=+}~493H|mmySu*!X{p>QtbNQcuMRsj_;AqoM^T=^AK2ip$LI~btQxGSQDW -K8!~C_MNhUWB)GVLfeDAS$eCENo*NbC13TNqoSBzIxF}jAqRnJpSjMeC6IFF~1lMW0PdHgQH!)BFQz&4wD>)=35!`2iM*3RI8|05r)@47Uagu5oyrU~Yg -m>p_l&7|ed?UM9ZC;jChnSIs0zk--vDaz%+%?Ri5Si;~oqS-OHMk%l`gP&drZ}#iWmrsii;Ig=zFZP)h>@6aWAK2mlUeH&TX(Yt^#=008d*001BW00 -3}la4%nWWo~3|axY_VY;SU5ZDB88UukY>bYEXCaCuFQv1-FW5JY=@#X<@-@?lGEUBrq_5<(goQXY%4w -wIi4#oj83{@yZ?Ak{FBdCUXU(vQlQtHG;8v@1qkHtANJFFqL}HB>Hb_^24zz7v*t -6C;7OeEc5=GG_geQVF&rzZQVA{Zcs}D1QY-O00;mMXE#z(*{z0(0{{Tp2><{b0001RX>c!Jc4cm4Z*n -hVZ)|UJVQpbAVQzD2E^v9ZR>6|mI1s)2D^xWHLoLhL;3SnvaRB4YkT8$}rY5QEmP=zdSQ{gIC9#CR-< -Isb7~)js5FY^b(|g@+y|%d`ewH5u+a!v7$T(FA<>ZbEmBNAa9Jk*kqve?N|MXM3lR#1y0hiDr5`au6e -lS}GWX)3OTDEOltAt6i&Ej1OWCI)oRUpZ5ww#bCp@K#V1c|a3gDNArU|cc2!AP136GD8;I89~OS_0gV -M5+Ad`Wkq5&%Uu7Vn(}}*j($?wbl(mMl^>|i<%NFACnD;{g>14f3>ao(tlq4ZCj&YYE~5YSuw0lEuqR -nU7c*{Rr|&wcnMHD!HE|8gGeO`41e2OyP!%?p<>vmmiesnbXwfoduQX9!SNfjmswMwB9xH;;4N$y40= -szx6f%m*r(i-arjl{M}4zVN+q5Im(17gZ)H#aK%`2p)(u0(nF_;}gmhiT^>sy50z~efi~=594ERd`DH -N$vf<5i@G4B%=B}7Afw|xSEXIP0msbaX=gHDV$QpO`VQR|$@nF8n*PUNUG(Tf`Jlk5e}( -J5rlRAP1+{}n#LQ~P%ZnChst&II8ojzy4|iSygn7h4maDYL7Kg$gCLbjuFyvyJ-tkET07lWjohx{O}O -aN8Gq<;9-PnInx_yInuPosgNhJi&)g&q4$Dq_7KPaN~-heI$dxoobnb(##}I!%snohD1TPTdnrbx42kfLLf^sbwPL$^Egh#XZdCi~HfUjP$BA2!~V -scf_$Q{p>OD@j=wKveNYC=mqXk7A5cpJ1QY-O00;mMXE##I#1YeR3jhEWDF6 -T?0001RX>c!Jc4cm4Z*nhVZ)|UJVQpbAVQzD2bZ>WQZZk42aCxm-ZFAeW5&rI9fu28zN+tQN(`lV*Qd -!o;P8{dPcE(L@mjhFf#4|@F71F2L-PDNi;<{Wgqm;C6r)Qy%eDT`8?X;potc!_7R32KY;p(3ec -eot+(vIVP7p2GbWtj)a25T&kzXI|Tj;Ni(q52mK(TLV&3$qwCw0CJ9SD{`fNsWM8ZGdOh`vF9o4QC{f -~xELagL;C{|C*&h%Z$S_{wBT8fnaY|^)Vo8#ezih~Yr-Vk4f}&EU;bSHl=mZRgrywec@_EhViqA>!IS -nQA`aSS>6~aj1&YVSTNhO;T$qCO=g*D~zHHU_Y$7RM6Q?}*oIJtd6cW5btB)m -Qe!J$6)C+IWX2@Pb=>W@BCe+kR_9CP3k*w)542;Q;iZI`}ZZK;@n1yd4b?vSOu^hZn5v*#MN& -$Uwvavm$twU(__7U{j(eUV{gIP_Xk(O0b1wbgk+l@kSb#>Z~D;DMNfqQyCeVv|7u0Hu^pRaFbr#)Ddz -?~x&e+yF{7f?prAUael@Y0A?wkQwbq8i`^!1~-jjrC~i2`@cih0RfwFaVCO@3pW3~Gf{K0H0Vf!eur-=lD1}GrMuy -`SfZLM#`!vl*cuiDR)n0;EjcJ!A0RaX#GF41tZY!Xz{W5klgsOK60B$nRfTD$7YtTD@Vn530tpq-$)q$a4K+w^45Z0+RDr~aCAakuit8ea17s5tKy?!3+JQ#+Q}}l^gIK2w=_i3+!Ry`c?;pIo-# -l36Ls8KTI5xF)VkaN7BXMyodjq~|>+BwdHclWP*` -T%3xQwP2H+a;eNcc==$^+rhWb;{Rkh>puWot1EmOK_m4z+BS|Sb_;A$11T)bbnK?X3BYpbMKGasuc9o -$FhY}I(#rT(M$VUExqZr`s#a|=5|907o$8V8tp{kpl$p)^r0ZBonGLBiR2z_ZR^%l|)s{9=Mhzs=+Kqb3i;cT8_wcvjo%0jnVIqAca95NI -0NiO(=VUK&6L?(aTbcxmA~!hSAHL&zUINADx2&)}n7jRa!Vv!-ej2zh1vNR~!bZa7Hno@7$`T6~LLIS -0KEVBcPsJNXt; -BJZ4lHlFSU~ -kvy*s3&dgG)6N`yjWijjDZ<3<5V+B9LgMJeQ0n4(QLXtF|GvKT51zI`lO990*PfnpvH4GWPZq7t@zYo -M$wj&P616P!@s9y_-*3ZdbO!lweNpz0MxyCDK-2CQ|6za}x=>|&;1C36za4Yu1k+Z@CqR4g}pS1AZMq -168?b`6NOZWZNY!XO`_tt8?DA&P4qybjFs5H89U;KCUD~&2=QkY=Km@;bPaZ6QntGSU1tzsh3V-&GSJG -ynSoc*lNRm!0c)ul*N|;V8C9x%%&Yn&6f{wqTS9-O1H{Q740r=Qu;M+ssMCylkvX9O*Q9Rxk+i)xv2us%}olU!c7%`4sKG~R -c@+Bu#KC{9!?SBR4fC-ZELyxHBD?~&#QMm0Odn-YtM?!8L<_rA8fjtrP8r-tI#6K#L8*mt&Mq -8-Y`Jk9;>fc*74$LcemaEh)urk_r2b_Hz3~rpzpc~2<{#jg4ez+el;MKw%>K39`MF_bhkOTsG|0W%Mj -0lP}F=ItDMW3Gd;E6qwz+aAUNCJj)PUZZG%0Zu}dAW+LKhh(JanzibK?@u|bv!^~q|#IHpE>$E6AKxd -Gj_BDhc(x3L~abv?DOHhxKn@yZKRh{atRGx%eaT4hCHm-|WmQW>= -godtu)h7sep)`+TUx|HH?1uP#)w9SOcBp?KZ}nw(5eUq!-bRco?->n?{P_Zl;*IhpXgK-Co$Xw)f!-5 -8Kurg}=+><=Eu`RY_{T+_HySP!jwppvWK?KjIA=tAz`xLMGg?TvL`lOM#6%jdH7$+O1PKZ)D7wdws(3 -9W6#SV{%+MUb*QE5R-NO!=BIwIM!s4iSYh`yU5Du2FAxZFNbw2-U~TA)$|gN10@eCSbFqReY;rZ22xj -^jc{#BxMnm(4LeGiF4AaCe1FHfKrwW$O-(;`ExuVQ@DcMhdG5sa|$=uFqgDm1_Zy||Js{?9k9U3Fzyd -X@5J1xn;N7bn7v$}b8y?yRGHi1s*~A8I~AFd5bz8N#t(0QP&|L|3c1#c32HX#>_Q10;{O(im(aR~GSdHzB! -nq|O%~JNE_jSBtRvHgbx>gC2y@5}Y-w|4E^v8` -R85c5Fc7`xSB%udrmGOa773|RB%lH8Z~#=f&7?Irb~Sb=`S;k)my_+%ja1d18IRwadE*(Z)UhV -MKN$F|Br^vl;S(bxu!ftLuNEo1zyAP>7c0RkjUf0ArN#s_B7C`Bt?%yFP;h~1#LJ^11I*xGZo1u0NxL -_KZ##>wbrcn(N=TX1+^7?miyLUY@2u%TeRHNLij)Pm(I!`wfeh}H#NLENohdpIJ03BgL*EB{d=LdOu)E735;74Mg|2*An0|IZmb8Zq_o+ -LoK3S^XMfaIVu*LG^lj|vo|lmGpd~!S1v#?Ehko>NT~6yGWMw?!HLiLBK||b``2?^d^gqCXx}OBx#5_ -858L*9e2H>!T!GMJt49o+%#%Ptl=h`5}{Rqq_A>F(>akaydqaTl9Rzr1!vwFUHLG(01Tkt0nG_@P4Gk -QC`bZNURnPht;4|b=7B381EbHvwnPILm-*S}A0)lqPCrY`R>R1Y9(jw1KFf=gSfz}1zcf6yisnh5rCk -;Vtkq#qJL0J0|XQR000O84rez~2pbF$Pz3-092Ecn9RL6TaA|NaUv_0~WN&gWV{dG4a$#*@FL!B -fGcqo4dCgZ_Z=*&Oe)q2!CE6Oc1m*G;H4lm7bX|Gv$as~ksujX;2(*~7W`;Q4U*9tfhQVC2Nn2@AWQ8 -;5_8rb`j>(8_b}W911o?xeo`}4ZeDat`U`NhR&n|3o}cRDZ|7f@-J_eg`DDm7}1o|1eWk3 -N)5=8ceb4WfAqb4gKsnS+qv%gxk*T)8Pd0r2rCU|hrsX_~I7 -t21b_L6Q6NmB^LA?=0=LDz@Wg={k2KpNjd!_qvf!!cEsyT5~QMDWSOS_M@KShV)vz*0yq&Taj;DPVi- -Nfn-+&1E9p%9K-S@vTLeVPzwqUVxvjXSdUFqpBC`DyX7JF4$fXRZ$w?|A~k$n`hOH$z36(;)mi%$y%AsD!a8srDDDS#7bi&}H_yZ-6C< -2Eo-cr1w_xkxepTHY5f&4$w@MEpp{IMDy`JKIPQEc(eQDm!{F<_VpX~p4#NJ*v%NQ5VhyHGmv$PAo5| -Zit=)qYoItpEB==C(8{Mrg-&MSXQ^G#kjBhPU$JFtWCi -FDIX#g#Sd7Is!mBO0o;ec<;7pP2y41N%;AI28kdnrWwKHpScx&dw*jX=TC8q)lf!m0s2LFVdSvq!nH} -yy7DGC4^5vQ7@2(`u%BA<(Nv-N+M2pG1WB7U41RzCMO}kWVc*hWxPsZ{7hITEkIh^jVdU -Wkb;`zBF6ATNVoeX_NU>FV`8xEk#70z#q(X{6ovZi8LJK$&}}^@yt<604DZ9oECOlNA204+FNQ%}^{-l=oCTq?84!rY!P{FN47!iceyqjd!GoS6? -fu?aq)VKXI1q%dsb{tr=1R{-HE!o4|6%GlcwYu0V}luwWeg15ir?1QY-O00;mMXE#!!DAwlg1pojh82 -|tu0001RX>c!Jc4cm4Z*nhVZ)|UJVQpbAcWG{PWpZsUaCz+*+in_1^qsFb5>gBa-h!Q`Q6(bTm^e-ys -K8O;C$yKrY_iOt+1X$!tKZ%;mtAI-1w#^7eJC&9Gjs0uaUFVWvEuRFOu&0aeKGSXyz{w8$O=x{ol_6a -#}{yV+)Ml{C6L4+p($xWN(fwE_4dk6l;-@KmifNA -}j5k>Dg@mH{dkye+etp*a1OIlRZQzf6P;f`Vm!p1vpx_e)_ioPy`u)t}LeI15l<+G$WetrmzPT8FylHyNGa+~!WP+qF%an+Tk9TRqkP2f={Mv&0uN)ureApCP8w2@zYSEm#r=80TyWVn*`NDsG;|Zp`r77i$)w%={F -58aXr&F`!I9n6Mx~>BJ9bz>qU;j;L=RIn4Xkg1s1%chTIA536H_aRI1w4AR`lS76(V>JomY6$uz~>(wwUHxhMPAn_~s`W*~nLuF6 -t7VVR5_HCQBOn{>>YB*{s0Ib0p`|$XkJD{Ph5(6RR*Sl{ryLCy7y+QDlwT#k&JWH+0{xFeFx}E3l!ky -F1IMB3RNzMj`pBbZLP??7sCA+2PlUssl^YSkudlk#y?|`EzR3F5v1QIX89am+NgAi&>tbW2aD23#G3s --nRImTMkiyO3 --Ob(2MDrgf5^=)FY)BU;&RQlf?BF<>p(n>1s4p861)JEva-@^!nSZ##9GDfUB__~AOJ{T$G?a6L4FC@ -E+H|hGLQGsC&i#_577nfpJXlPnvVAGv23zo(rX4LpVqgv+X_xmg>hS-aiy^N=f|7mEgGC3!q+Iv6gnU -BK|SA!V$WP$@68(8}|@KX}m6IzbcvVAUpAomMgz*6XFYHve(?=!r}w_fM`);%|)HNP%pixOJ)SPt%!I -E6DSa|bu2qq$yLGR_GV$x81gF}+h8QBIEaCU+pBM+RkJip49jvtn1|W1)T1LDq)<%USA1u}ITgMJrQ{ ->;33UmI~we`xdNr`TJ>X*y&SK00pwvmqZhbs$u7zw7||$xNjcntqmFZk#We{iG*WuOj1>~#)osQkm>q8J)O{v|thQ9Ji&q#T@r;i+7 -{b>O6G=4$~k$pha3HVFD>TXf~Ix6f`}Y;Tt3r2!td_Qu#zO&XP?50>y1DS>oVx(*zckkh)+G9>;$X%& -F%Nd|Q&dU1~toMwv@B?p%~xx)!gIO^4jBf}6ss0IF|3+X0bD3SC^cON%jP(L~LUwZJWNXRWAU6IBM1q -~y5cDqE}#%hIH?Lld0>z2R_l(ZI@TH}}zE51A)FTV`STjxDl|$%hZNI8titnizHYU#n!ZBJ~~|BtHF` -mRj3eBrtU{%)}xSy*ver=5_=}t&;vN%XGVrC|k-YtviV-k)u>?Jo^77;D@1FHSUttV|r|EPUUrOKc%) -u4`*{G>=w9G)0`3#k;uW^a|&ROgHCg!*(Wh2Puc1v|DVw4%WSr{c^C7))yto-RXOeS_|c~Mz0GP%n|` -dF9HPwuZS04%(Z2e>wf*GQ<~)c*EQ-go`nH@6aWAK2mlUeH&S}8Q#V}!002b-00 -18V003}la4%nWWo~3|axY|Qb98KJVlQ7`X>MtBUtcb8d4*BIPQx$^z2_?|?XVWHY8w}*vFN`i;=tf7eV9*Y^NDN^@L{Yz -L99Pb9SAKlDcS}zU -!87#M(-P`){eYbs!J5YGaRJ9|9(iMdmS1L)qks4`{B(Q+-G`I_9W2MqkHw`?QhD)}Ld_Vt^sA=|r8|OB0C}U0v#3<(Mt)>*88;}9qaO2;#Oex@#2-k3&a%r8* -8};!`UOx+0|XQR000O84rez~l!>J)HY)%Cz@Y#D9RL6TaA|NaUv_0~WN&gWWNCABY-wUIV{dJ6VRSBV -dF_4cdfYaa;D0>@rqrHdIVIY%yK~WYW!jPDj;0gKW64Q&6m^9nSrQ`_S>eTUwI|=Vud%PUPqOC%fB*< -qm7VEtr}rEEu&au|!NEBP=Y|7tUmQF<5OJAg#m$juo5jKB_{-k@-o7|4SL-Ufxot#nJP}VGA3i;Re?A -l6Wks|W=h4sEDuia=WN}*5X(F0ZG`FdEwQg?9LY$Y2=02)Y@uF;tBx*AF4L+omh+w>;sj};~DdF2qm8 -Q$IXb{$Unu>2uk568npM=f3Mnpv-j?Z3RygvQv&BfX4bNmt7?JcTuDdzJ<+q6|WpNnj{Dl2GyU6*;=q -;vkhwqv1nK$cITEkG+QJwNnQ+nK_?;3gt&)Om -bMy4HL?j)hU$nx|88%DKQz-Q`Z&V4?=ZnM0}3ZN&nkzZ=F$#GdMvYS^?RU;c~Ens01EtOItQH<2ii-0EPNcKD*5i1hTfoHHs*sZb@Ovh6m<~@|!aUKGd7b{!g7DDX%T)@5ee?PoIf<_?E?)7+L0V9oucA7O -pS8{H*RVA6RQ7xo)%AT@CEwm`>u+^?ohDh8#*O-MxGM@{GDoD-iphbitG=gebcFr-;@fZJBG4nLU+i&~Imk=atU)GtAyv^mXogkW0H5{e4szC{Ra2I^UbP -u4)rJ=vf7;%55#@E-b)c^-DDxH&Tvg?b(pgGeNrdrXa9h@mA(ErfsCzcXe=m<#$n50mPuLW`!N^zRi8 -wg;QrHc~Q!zH%gaAwfzRAn$DDN;b*GY$FRui7~66rL#`Kvj%Dh=auxdJ5@jQ<*h4<~=Ze||TX>jnRoQ -4`-nQ{643UwHl|GW7G2T6y#>ys64|6&y~*lit!qbf*HL?CqsM_${hGD|b=)@U^e);YS~w3utnB_I(wt -R$6TOy56VUd&+!RdBZvhEd?HI(coH$q)Ohf)alPu(>>L1sazMWij|y+80$LAE|{ut2Q#4lEOW56^>5X -e2AGdjoAU32w5LnKo)R_Nrf4$EmeQPbhQ((yU0oc4;)OOStsd3vpaqRgOK0hC1CUptJ9-@TGt2P~iaa -Dup2317G&gGYZCc&b%+!jN{7mWi&M&3@=w-^Dq=4qAUr1ubF+c{rA4g5fr1g2P0~#pKK@58kg72cd<& -TCTK%KtV`8V^Vs1boVYt5u!oyRyWqj&RrkhnOil6rP%o0D&`11L8U#WAb^`~-2s>ler3)59l!fTazBj -iJJ);qSwzoxVo7IC}Jms2FBxvk1%T<`J^tQMHJ%>%Q!Hz&(v2jY%}9PA{)a1z(hnNDAA;NM-(_Go9SM -qW(z{k^&0Gq2Zh5>7rSds8gzR8D$jd%(xGP0aN+u@aU=osEGs(Rd=vlZ2_Pkjx96PHT}}2uZ{S=IIU~ -&S@sV<`{MJ*MgjJtbZy{b2*K0s?(bh=+W$D<`eTd_tLVzjL;|jDU3zQ;^)P#5@>b8 -2Dt`R1z%IG@J>f1DNz^uwVi`ODrmN3lu`8O!VIR$$Z57uB?%6o_$vj&CW8oU+10GO$5C3GOMx5y%aYtymj$%nA{A9mVsP=K{s|NQ}fMFz%`Xsh$`f!#-G@6mV@lW`1mnxUhF6~$i!R -L#EJF}+SibjJa~q7`6$c04@q*#gJnKJpC$yD?PeZ52Z(^eZ>mK-$4)GC4oG!1^BmoFG1&{z>;IjkCQy -117^HIh*QratGZd}+482Me3(fjMvs`-3Q;~)@p -}4=lfA}GzgMYEgBM8l_@sAHNbU}FlC2Xz3C`pKjtl?32D#3z)KD#MEkqS%8bPiU@>Jyijwhu=;Ac&nz -B%qZY;Q+qR#;CH!KZfHF-R%G&P57sOAEP}APyhV#?Dfgj#E~HTA9&wP#A(SXvm*I -XFkiDm(UmlIxutvvg|HhPsLj#3ob9{?j#Hr*n$iVSb4|P$Oeu>OTfH>Zt;V-*?XjBr4};*o4D*%tz1Q -iYG2M6rK~LSHR$RTc#@zRC(8ulZG?TbLXAiC0Yd>lB#Sc -IH(D(6i!Sd1|+YcU9j3NtBB6(CjEIV+^7TSY{*ut6%y=@FOvx7#`;zv)m|0u4jzX9&6zwJ^05oDlRO~ -9`|^sV-ub34+D`hjmHj*>F1i?MW$)QSaL{h;nQejtJ_Y(t~R_G1~X0`!2VdJ>b#q~{r#$OF;;9@syqw -&1KVfCy`&|1g9NEFoY|Re~RjK|m)rsI@%k*$WE7^)v^)dY_V=X^Uipw$l#YtxcG73V^V0y#i+gtsy2z -z#T~aq5GEDUG)u0!pk@wN6urHh674q-Wg6((H4DXP`R=?%d}VC -YoPRw@9Sq9`H~s4`6551vK`3$wh2zw#48`3dJ40efkL-uy!G6C!1|V(+$wuNoHUjuN+|-ey%x_`U}PA0XfFzWG^am4CC=LlvDB -9PyH|B92TZ)wLZtKv3m*beh>qZL^y&!3@=p6LKDq+LGJw(HAXbIY)K?@5*}G_s`t+;uC`3AEyK4O%fF{1*s&z7V -EMFlA%kGc=8)DVM -i=U)DaN`r2&x^@4z8sFW`z%DS_R@Sn2HW)H97pm)v3B*yawa-DUZK~QIZ6*W#85yNTN%CuJ^(QrCVMdLX%HG=-|DLU05Z1MibV|VhdaS)Wh>=_Y5_iJ -D`GRW-l?6K@@7q1@M=^qW%&LAZ{2&Ug3!Y936@5~SbVgV|x^I;R`B`gD1rCXI5uv|&Y363c+KqzA}fC -+6Wkfz3fFuH;HIFvKV=B3#`=mZriSRtU$!02o+qC+;@A{%b#>!X7qha_8W7^qzrDc@`s=l1^LhirD^{ -JcN{JGgtz_(d{?Q(G!)a&x=tRvSj>q;JQs*00uMQn+13s8=4irQ_MM4xNed&(Ygx?Cd(RR0`6fmQOt4PPk>OsF)c3pGL(1-A0s6tf3>V}EIW1_9!nf|Co!VHQ^1Z*5BF7urC+aRL4j&&i -cf~RFejewaHgG!PLM(HLzpX&a0{-Wl(O*Vh(n|#FEAnFl+Q?q&2a5Z$gJ-5NT`(J!u{RyaOJ89-NYj2b9zxU22$ -+RZ?@m#EBn$8g-qv=YGpk#jQIc0ICc0G56Y@q}MZs77`o*b7A$DsG0P3Y`tAOuNZ#Pv~MjyV?n(c#P3 -Ux?{~G`E(EJk$5oZLgF9d*^vm`7uph-PfSAcg8dLe?nr_ih`9qxLW$phRYE!`@$xP$vcGBPHAx#7a;` -A{U~_^~k9CgytFv$CZ!TVZ&Z(?+Wtyx?xpeR(OXpSU?4^$wgUh4Y)sOYV;PT+d`|#?M$;gm}IV|=$21 --#*^9#xwO?_Lod6#d -Ldz;*ae1%9kn|0Y%amqPJDR-TP -hZb5}1aK9n-Y7$6P2MgzKR&YYFh>nYL?qhKJ1x-Co0EU4SFY?Px5dD#R*X9Xx*W=~JZm0{T<39KrAeR -If^n*K}0JbV8EVbg~U-B+l31l)dA^5h5(^tx@#|1GlCj0b{X2V%^L67b-KuD>Rrol9r+P!pV4uAF>An9j>;UN_|`aP&}bhWIB}i<+Sm%*&ab1GLiy*JU -qmG+!9U2aW6jhE>Ok0SbYB^#@`(m+|_HzA1mGcY@9!@*6&Y$J6(S5dJM|gg8>m50GAFH -5E%3a6)o{>G+`2DYxZhikx)vx1_tL6fDG}Vy$DOA=5hAzMk&d!S3!Ply5oIzBK6 -=*=L@zJrozEf^wkx0rhVk_3h&8{5T`TsvecxpIMm>t*OS)MkK_awq0Gy^Y>xU{8UO%Pg*~oDOF1K$$m -A`K%;_$;fR?9JR$=QQmi}hRe!(wnxvvyCbpzo)(cK@&4D55)&OWY;@E8M8v;cbIaDR~o0uX8+>J3EF~^#StE#-t)1^H4KKAw-X3YkO274H^%OU?Z$N>F&D5=ptfuYHS`}|)mZ2BQb5; -MnWnLa$VFuiaUOt}eQ!;D^3ty5YkhoS#3pB~wpf37{X@s|pRy7~`IaQ7(|jQVW1X#)w08};yV+(a;dO -+BrBy11mt4wDYi=4M;)c3}@7&#*oo`>Djn7|D-{(Qse9z>=P_c#D;CfYLvUKOTH3{yAE%{)b4LICKJe -Jb$G^YtBCTVs|4@zsa2DzDpC1p5Uzs!PBYuy%f8);O0Q0?tmUdxa#-4Zjtuz(rp~vjm)sl3g1Rq@olv -Fhy+9r*0;Pt4A5434O$kCI%1Wjad|KXEQ_fW&fjxqVRQ_W;IYTYI -2CL;)cmF}X`A4-DAo;I_*>F<4S|QHQ(*4r9pPc&c=d=2!m)DB6#QA^gL8eWeae%?j3{AkWO(3Dgc&% -58#ZAO?{wo^2UMPKP*DM(FXxjw7tc0PI+%=u9W_s17EA3LLM~IKsyz`Wj^eo@ulK>t45M-2*3?3!&n& -Oxhf8gP9@wXh+_n0PV@EM&my29i*g;w}7D*8)0znb0ZLLvJpyDfL-Ckl3RdTEyq)E3qAfFb4G%lp{$V5&T1fLdsol=CB{JzSXv{q!QIYF1Cd -CInl>cz?xCKhy!G5G)*n#91scM9Tw${f^9K+{2vU%vnKs%y6|qWnHu!|)(BX;f3S9U|otM;5O#yPY_Y$yeC~dHnt{h!)Are69`kufhAnUne?F?@24q-*-mJ -pr45+4X^}@RwfpP==TGq>LAYX&@g6ssgU%cr_O48tn8oGpt5RTDm`3z(nu!V28aS0dh-G>Zh-wljfsn -d!>zbnt$p+yzfA8t#P~cRdkGTB0-j@M^y82~cpV<^7%gg!E>?6Sh8In#0wkY0SpXm*VFX@!C%Xv7KpR -DOwI+`VKiKmDwC3?`mP=><$Yr(q+vhUj=RZfqO*!V%R#*nTYU^7kEU-yoOrIE}jv%A?i>UlA#dKFq1n -@J-nf?1;&B>Z#hNXNEtgo#Zt|BbxueZ!^!wjwDMt_1NX^QMSO<<5yylCsby_2U*ePxhR3|J}8xSb0To -SrQf)N2=^TYn5+vU%99Ip%!~pE##Q`LfLLx|B6NvXlLYszV`Q2+qd43SXzo@@;Bv#YUv&mmmgNW$+3X -j(BY$hdz>8m~;ySxKIu|H*I2BYf_=;P0jC4t(PUTs@_1YaNH-3DK=h3Dv9(ET0FE!V$v;x$b^KcPp5_ -KDyziRq(7ckfr0D)d-;mNrS;}V#>e+z^Nu>O|W}KK%DZzo4w2fpK%o5rgL -mCmsJmVB#5^HzMP4t;qO1_G-yBL2ICBlHI!W&1h2{GLc%LJZqd2CZg1xDY-H;5G0}0Y`1DtI)@B^8*5 -lqroDFPvv%_gOBV~v`%{N2zoC~2tFPN#1ZT|ZAM7rjs*CfzMsZV6H9n!I96$Hj<@*Ja!9W%1~`{Mok_ -v*GV+=&W7I>A@uI6N+wkHCG*R%!j{51)Pd=@(BQiJxG_8g150PM>NaawUuQ*JRx8Z6;K?HJ3~0|iqE<454+rG9x#h|jCY4T -CQqEX^+nO#WP)WO7uIIY}9KdECT_XckZ%|3~cUgKr<;zOs=Todx#*bUkGH#n=>YE%vm&(jHJ?}z(W>U -Ju>x?Qqe2R;UjzD1lPAK=qGu&CcO)*`Pu#-kP05Uz`nR1}zUaIBvkV%NzjMt|s_M2Ma6DMMzl?$@FNr -*!QPHzyp2N7PMZFcx7yE!-$D&^f|cykKn-huLFcU|%o@$)LZY4fP+k|TINcds`&y2vTlv3ImGvndvN@ -~pV4Ih~f2?R8EyTzEkVCD$Clbjp#2?==;?(@4ZY?Wdy~JabWiE0*S|eQlS#AH{hNt~RWGq;JjHE`T32 -xV2p4K@F@~;!Wi!zbS!(x66qM@&wd3p+!Yb9B)(2nyOL*j^5Cb^D4!2S(mR~pL{nJFHe5Bn2Nug{Lia -!bB3%t50h-klu1dI62_ztg*eY{iU_YdM+6=2I-0i6X+GWttiu~eb+ur3`w=L_atS{r&h>pN2@m7Z;X! -LHQBhEJoi!C=xH-ipZwnz;r+>`}q3skQkM-%=sNtJp4m-rB;s&dcld*Wv!QG*hM9OtlmUgmghiWpXJM -IJXf0tKoGy2=_B(zXRK&<&f@5>{MT`uwCRPeuO&##6C#`QQ8?|TEHXR4@_-RvUyq$JEV~KNjgb=845P726H;Wsd9q{Y -LmJ3xn>ndybbGB%e#>P{OxNCXP$KS$^@rsFKV>Tjqce}$~^ZX{}V`J^xXasYaKc;(KpL -UUfH$);HvZRAYVFTZKFkN@7YeSEcR=nd19v9mb%l8gghdnmI#=xo!uKk~n!=?pN>eXr1Unt^{|WZ70(%^Oi{M1ePr -@bg{?GyndBoPp_hM$y6XgK-Gg>ZNfWiUS$(+hI%u --p2B2qTjdD!iM+L)#mQ(QHP?0_Cl>=6Y7U#JD%*2?T~Dp$a -~jR&f^JIdB}SVh5vAZg-Dm$2_7U|Q8mFNNucqWI(ZU0b52(w!qbmJluMzy?2HH=tC8)YsA6VD1G&b1U -wn&Y#`qSdN*BG|r|=t=K-cYZ#oGdWBzi=Jb@ov!uC<$qptot#v0^s!@j~?^yd1l3pU0<`94`-FjZDe` -8~Xj|&alk5nP+=BH!hTtV`A}D?bdDkMpaAd;|KR%%+|a1dB-XCE1mnGP}k`-<_!i0w)s`o3+tTu17?I -$s~}8og2@(`0zw(Ou0Xob#Zj4B6YMgo?noy1PTgShZnLT%Q~icQhT!gUnp~02emhk$LU-U8x#%3Grpr -z1RawyC5Z;$|b*?N4)!V;-k9nFGMVMBjc`cy1`7ci)Z`Ejq+u_^cmi6YETfHXAf%QMN3&x$H)p?=J$Q -L1@w?;EV-mkY}uTC5J`;Ntd$X26M$6fdxOAPO(3510Zpp^)ljmL}_a;Gwjt{1VL&UQUwPrs^_qGq`3< -gKE)shFGP{zG%ueRT3=RY~QR+U~3gmaz(%imJJ$|uZx+G0FDd)^hBo?k*+R+U&&*x&EujT -$Zjqt_!_(9lTASTX&j1;-e7>qWrZ1?ElWgvl1mh9^3)9M&T|tWDJPJnLrI$x*7dchBQ5TE&tz_PPqPS -+}D$o8b=dak*SYRaRs6r350d-+K0(UJ*jo0ySPh+_=Z@Wd7Rjt+$Ew0RjaCcX=h4?M^}8IW`vB@Fm;1 -yeM)qo8d<$1#i(9>I?mK_G#r0UJ~)rQ)pP9umuxt?!~361scL;Fj= -FJF_LN@KppDkMM;+=DU9r*w7k5z!HQG9no?gd7S$=g3B9Fk5$V1xkrh%OaCZ3g`N_+R(-)^FuicjxUq -%Oin_uC-j}N|>Up@Ste2tg+YA$0?>rLZJ0M~`UN0YBP;M}5Cou07u4S@SXO4#& -_s_NjU3E5RF$M$gP!158^kPqO08PmWUFe#Xt(*6??57PS$GhUOGQiJkivCL)HsflD)@yKpqg7IeiZ-j -RTGrVUiw2*TPs*Bt6zTvUaqY))u+;#~=fE>h&j6S`B+rvKF7$2V95vo$w}e_fvol<2{Cn&GG+pCFN>+ -|-ccH2Bx2Ufm<$A9nuEV!yxJfAjwzhW{IKXAbX&cQZYF|8Sn~!m7Uq54O{PC)y9v-9vL%c_X3$TDA?! -n>H&=wXGU{sMe-h;Q!Xz|JbV*|Lm2UCGTbjhnskAwf)cF^{#CCFV2G<7AV0F8fO%DiPH1`lr>6_{(g( -}{}aYJ4R>BV%w0EJ-2AS_3)X3!b522tJXWoeTy$YB-Tn`L`=ZTt;>*5jRew1?d-)x{g7?+4i;I)jFP% -%T$A1m}<<%eYI{ob3ml$(ieKI+E^ay|Cvszz<4=2AfPhEb0_WJoCFuXYX$NNtv@V~JK{QPWq_#Z=mpV -ODmPktEgb!qha@yZ$Q^v|ao224J&=0id{SEhun)qihizrcKq#S#6l+Kp`)9LI|rY6Aazn*3@elfF;IG -P}72I~x^^3csSxaPgbG=!FjYm}KX_&@Z$@iP`on=1f#DpYs#Xi+8N!C@fvx*UNC4W9Ei?vd2&dOC6~7 -V_^V`qRii>5&^fi#T0-1d(EwN6pb&hq$N|!+jn%HKqh49MrIZB+E~(6is8oLb(^VZt_8oSL%m!nnBd{%UQ;YTHB(^6bg7mSU-1CbUNvvQ!SbB+5q*mrDtKxNcX -9AbQ$=x#FH51jC?rl-l=&NqMlKuQbqFBK&*lEO)?VsmZ3qI?IHpCLGA{Gb6?}6aNUc!c$q_@Le -Jm;fVhbvDm*O0~DJWfNq!AxfBVez`mGPIxNWAgC%OxJ*4kjM4N^HLg -TJo)EAcc>w`px%Op!XV)ObKr9F>mSMBmYX&Br{CzAjM3|4KHk*K(Y;O{M&L_uENYR>|1f$jvuv1@aVa -P8;V82EN0S-euzWjOtxmY -h&NS-4j7)&fFK#U6OLMBPUn1u`Mk*V!N}v*W7P4P}!+MWydG>mkyl*blvSHTrtcY!qv&)4dY4~ -zrR1O99|=`Kl)cszq6a<7@h+sMSlAv`Z#ceL2v1DgA)AH_R5K$rG*&4XjqdaoqpaJHRa*!=#!re8zm(Hx@o}Uc}qY%mwzc?08+GdQ!Y -2fy`V!>ZYDL#8{|C{c+2hqUNo6wjqW0%x1;x**O+m|NEqY8ap2az%LSxgF&TSgEmllao_K7-Kn-3y1B -GKBTld8=y(%4jZ{EG{w(adRk^FvExziF{V&$9kQ18@nBMeGa^@Ck -rU5&Q_JDPaQv&KVDZ3H6M|P%e0lAto|7WlY+~OuS)MiP?h17Ih8tBlz;+ZX1jvl`B*d$Hw&?I?Nb6aG -|9=5cO9KQH0000801jt2Qiecd{P-^b0CUFx03QGV0B~t=FJE?LZe(wAFJx(RbZlv2FJxhKVPau(WiD` -e?R{%=8_AL2cm9gD6p99D5Sq6gyrXYvi8HHMy-w12W`m;un?Ql=VWS(<-5?43_P<{~>iuYdnz7H0TZB -C#&{bJgSy}n2%<;6H!JK3t3J?Y -6&e>g;{9?C*+JWZyQMdQtRcQ%|Aidm*xyFP@#fet$OY@B6H%7umBnuRpwd@#pV9ym|K?e}r}ij~+dGd --gW_@(!vI3*F}G=e(1LP*%?g03_V4=^27mEJKD-re2fftOE78xo`8D8Yl6_xyn>GF_7JuPZXKmZGvg1nh1?)qidX8SnA12 -wWvk#}wPd}W_zJ2lX?DgrZvq|>Dzn`7GoP`e#viRra*>|VU{xj?_mZNX_veF~3i?$Q9R{XLlTiV%4HZ -Ncii`lwu)}rmVlZ@Nc#Y)V8MrLx^(eYbREN0>!VRw`4u7%AvU!T4I%R6{3TKe+`eAtc;4i09sqN;#$P -O|eHx1=pEH@F@7B+LH{)bgV4dT1dQ?n8V0Jkci0&#tas)XQd|tNrLLP*DC6=7fYMT9}fgxGC)JOZsgz -V^qvw>SsT`ee>?adyQgfpRczI0C*%t9;J@_-PyA@@1E!M*Z=xjb`fEgawF6*0YVeLTYfL -n+q@RqVJ``K*NiE1f_v)kb31+*xOs_X;|l9fmd^;}Gm3j*IOyR2^770|~vYif}#n>G_Lzs%qIX%sk)J -H-_MLjLw&?$5Y}$j?`z2CfIEAD(>++)o_n<;*Klv_oroh7Gd*TH}&O82OVCuzUK@*?QjwPmlx>#g|v!ys|y&N;!W8f>ridr6%xbpkJaPhU3OKQu=uN&acwOQ4%L;L# -YbKT=3EDXPd?Fe0fZCGousrnIhxe>qu&p(c*K+2+C(2rw%7JLedpNe;44Uz@8E1Ut`&a7FwM9(CP{0j -&a+R(~I{dQf>iE2Tb(cH(=;o~u(o+qz?$|nGGUTr`Gi>s>>+Q}5b0oU%GgOib@;Au>mbfqrN=Fm8Wcb_N}HWmSPBXl{sgARB98jcqNlkdnmoarYV4b0+{8{0q7nuq#xD -Xw#*Rm85vJ2;5tj#w8C@D~&R!@WD(i9481ZaNUU(fEs9EeLL_PGP6HXl3^TsETIfHsf){sI8S6YtXsh -|qiBtCc~nt!5wh_>;ByC_&u!)AMMk!ubWtdi?6#;j_DPD*pIR|A|B+IxM&U#!kzvQ4=-{V21xQCMw*- -B&-o$qF$`JY$T>vQ-1JVT$V-s^!v+A-EUxLT -lm&@V?;107hqV~khZI;tZ(3yUzea@fJy=H%rQWUa30_|+>r(u<#_-X`Er}Vyy=f=+077AQG#Nz?;t2 -70TX0FjoPVRm^&6Ja&_OLV4^-Dcz?Rod>k~hXWdQ>zC|5^OwL*Yim+D{88q?~REX}bgdMRp?Qwh%Flx -IJc)$!vhgE2>k@mL)BcF#FlaWu#zWf-4fm@{PUA+#(ZMe8N67Zt|C~2mw{prt5S@WJw!ePQ~Rv$LKJk -oGRN%uurOx@G-#m^-$oSSG10jgNKucoYM3nU%OO#%!VP*Govct+Ern*r+-#cDJjqmIE}b|V%rp?nY{# -2#p|C)^jz4-&N}IqN!k95HM!PZ#2Hb2ZAz(Ud*uz}n=)6z_z`Yl=q2P$QBr!0PYlB+W?emL1HNpQt|` -K*+#?Pe@P&T|^a}VpLuthj^5u++zFqA!o?{5SVk9u8&e!;H*D0s3@D1PM$S9^qs_$tDL!*&3xyN -}war&5Jd(0b&4FT293jpl-8^i~K0RxB$%+fX+3{R;;UHZqXUBduTkv#;iudiQuz^o-80Ocxrrf&nfUlkxv}fb>Jqq&+2murV(M{>ilSLHI%v=VRWFKm;rea}{^eFK2mSRiGNTV7qul^ -YXix#Gk3eHy!vZ%e(Ux-?J%kAu5TI3|)}=oZv6hwJZ`VT3za#&BY<&_3gG*F+Vkpz>{kp)5g5*@-1I7 -j#5Q_%g-?%YwgylBkViRi}1UV9PTR||#dVr$47U*zCBq?;Rz%DM=L&$;;_rx_XMBV8%6PD?rk4cRwAD -L`acgNaGvn8xs4Y0rJXP-FfS|#tBJOLxv#YqNaZ}^rp+Tj5!edo?${y5HlpV=z4ky~hG?`@vGZJXP2L -B8sYZmwVIt7Z79JQqNk^LVk?{hODQrZ$ZfN0d|!SAibU8uF(^s39RtS(kCC->Pm$ddr|p- -Tf(vTqaqY&aY!+#KKu73uQ_p3aYOAQ7S})5MRt4rcFdNp<$Y)zO*{W#;3oBa^(K?aKiu*Ni39(R)+-t -hw=oE~L3v@|iw{4>{~FkqBL#-x+A|G2t&IJT5K+{+xlwG0bz`u3F%C9pUDYGUDb$bI8KG7wU)XioT{?ttBgxQcOeYF>IGjn@)EmWclbedm<#9p -YiKCDn9q^2>u`Xc?*EkHKo_qz5&!Q1so%bHR>*7{0G^tMZ@*XssPNxCSY$(tP+emXiR~_>R( -|6rLubb?VYW?V#{X(I|AGh`uXOMDXs^EmaN4kX|x2^1w@L11ySJoIMMAwe7(4o;f?u`OeC<;y9Nmy-p -uwl8UJ`wdX_W4w&Z7>@m4Y?RTUn9avLc#l_X*#MPdK~zw$Cg2@sKD&MxM<@rEwPxPW49EY#2$ -)?s|GI>aG)U(F0n_3J&Q2~GLsBxDLDhm%sRV{3ajBW)EYk>PJXr_)Qq`?~NbAR}teRip4iN$Zy>sTVW^qDY@OdD>X#dw_!!@ -p4PBci3%aklSd)P%4HFgF-TH9ylB(D3Hj7WW@}%?9Ri>tb0WoXC<||E4HNgtu|fHVu>!b^@Rz1C8EeX -B4YU`Uad<%B+dZTADF^s&auO4vh>I0rUXl+FM-7`1V%`SdcM`MWA?h<3kqOE&n@}5ah#jFxuamOOTol -iFu)@Om{|Zv=sP7axbr-{tXTF24-}I;_GX6~oapRmHu)Hk+%%OSU#g=UD(vD>zPQjam0*hM%QEDNK!X -HI26n;xYU$a#YubgiOUzg2H^r6kw1>+rYT>OtPuxjV(p@bBW1tKw##6nzNc@+Y -+p#2|asy9Nf5h;mXsZ`&@@WIk~ycAQ#@(&>kn5D7}Pg0|%t#+87)Yhdr>Wx%lk{D{^+Qj>iot= -`1C*OjGP>J8V{i6&T#P~QtTst3A|RKze1;zd$c6hy&+zFnYS(qk{s&`O<9$|L+VLtD;5_G;m;Mn7_`x -$k7Gw+)tMyXKQ%BmKjAx3gQDBa#X -oDYke@-S}$>C>t#|6)0a-HzpHRLk;v7c*d%W)d;mr0%Y?ka>Y?=U`QeVGP?$b8 -QWqFSpOm_aH`-u9B*WMhc@G?$!&I4uff7%{~OsYpux<3tRND~Rs4)>dZ=Af)fvTRcvTL{gu9sRLn&9@ -`X7Zpi@67XvJHJ$;+W*P?uPO}f>B>;{CTLKSlQ_- -=85sDoLI7{$u9ML&5o%9|YJ2qA^&hGxsrH_eDq#zK*-Pdsk0L>vY7%tCDhbAO`xy_AOUEPS -T2g8GGMcc?s6MVWX>Pz@Ix2Z4|OA*);qjN(qv{|67OGHN;_63qmb^kb(Sxk@=HvoDfLW -KR0|)O?&vxAYUu++j5r~McE%#_p}abgHvrIBhh$>hCdQTMIPr@x@Wfh|x&deBh)CJjJOkJyo`9wzjR5 -ScknHEE4otvgJkq6S$kWj?IS`5sk{Z;Ws!Qmlkp(o8Dz6pvG|kTL3xq}CqkK(o#cNz#M*3>sf=P3zhb7gz=)JpS+nJKDKv^ -F*{kPY?|{d-!3>T_P!U|9baYG(igYyhI -cRkQ^uiZrN1miYGeEPjcVxc5QA?Co;$kZ~3%HBc9+5zi(f8Fs49;uHi&0bye$7z0zQmuT7mZ`DC1c`J -_A1n!Y!2eQm(MkBBcyf4t?T*Uh+)&J9m2bM>_$-+nhXqzH -P}M-apjS6|e9S>fz*w{iGDJ9q9dUm0y#NHIrWpA+f;P)dMRFS9u^?)`XF92r<&q~ -R6*Di-jVn7uv@`bUG>c8eS)w1^Cpty=!MVaa@`O2h!$g9Oa@l%Q7q>-OVYDk@iODN~4NH-Ub+>*NJ!O -f>OkDFglK*U7A$sl3so+QGbf;iaQ-&$JFfThaQcuZl{y6&}u%=Q0M0-RF{^44PD*J5u#g|GV`>vLOFe -iWXMBeVMImjv?bA7dMfh6)MLvkvmgzg9 -(UT-u~0>PEI>g@zo{hUDdu)KMQexQ=w|B-9yMHvgcEgm>UrO+XO*}W71ou@9Uh>Xi+eyuH(Gl>58AP2 -EdUh2X)klyon<6^h&KhNSu93I=268wFLBx9m+T2g_ihDZqZ^HPy9~9zExMQJd47U%pYR8}-ooLdemG_ -SI5Pma$q77yVV-o4cHa$Kcb0REQ5kZvD8opV-Z8!iE@Kh1PeY&BsqWuzlwHB(z@`-X)XKk#DUeVvbA8 -o=@W^A!Y(=FGEsdIHLS~zai!w1Z&6=~Q3d=3fQ={Fm*aRT3#MEuHq&j8 -$0I?W&2P5Om6I&KA^1^QATkPK6kGK -;;l}M$Mz&i*Qga^}6}rde3l}fq91Elk9aOt_;0XptU{Dq4LX94IqAL;>3Z@fgTTr(UFP6*ljC!469SA -!^(}{u;6i*0-%ciJ8U~*i^uQ)OIMr?U;6u>sXZQNpmJD81M>d}$9ZQ{Z}3VKt>bF|ZG@3bD=++v}&f~ -B?eyefz56citsS>t5;{n}lvq7n6f$6ft@vW351wbc`Jca){cE-G-!y-M>{eoN2;)qs_UF4$GxxhQ35! -jOJ&?(nJfk+d#M<-rG$NfMqRpZ%z186^$G$N*UwZMg;f=XX(U+1)CQrlpr1;pS1O(4E~WC9mInI6LM` -iPN_)I0oh#rL0!As9Lmj#4WZDvazYqOPk0>F+QX#m`1H9WK0k@gIR|JS@SlPCe4CyD5LC5lxs?jy~74 -29k~~+bJJ)phl6#g3l=i~-2#%gc;JF%w|1!t{r&?LOzB8UYG0(MNi0wBu)wUPwps7d9Y4tI)IOb@c$= -Br8kHAhMl^^dXT*Pqt#L&}s7#MZdj=+5o*FAJt&n}R_flC$$WmsyC7tF$nd#;TtE>dHA;9=isXbN^3X -EIX*kwO1E=I=YlKPvpo2aA&8oZ&f?c8b-A&BT?d8bK+ly1BrTb!Q0%egUeITAw=>#e}3w3E8s&e}~qS -l*U|Oy^?`fvQVBbIsdf#Q|J4dM&m8cbc8n#)Kp<1$OhG(VZ05{lRM%+$>y2FKP?7@*Y54^kC_0byLJ% -Y53)iWunb2Qc=?CR>5_*NYvPM87Z(}FVl?7gbn$FHF*4O3Y!5Uf{LE;gCulqZn$%h7Mdzn8y9P#bu8o -ju*oQ&<1GTBo~xf3h;FJO6NRtd5-V_gRf@H7Df*EOj|%nD&tato<&&nZiPmH=h901r4ZTcubZW<~w{t -9W1OGP3;%|?$MMKu(degJXiHDsJqIOaoeffuPqP;1YhKp{TD1$W*nb<%vFxlq`F*UU?*g1RcEb(&whvsENQ_xj7V^y)=xchaOR5=HVOl#fD!9=LFhe|+GQ{!>LeUE>?XfWB0j&`}8&z=SsCf -110I#cUZH+Uj(nf=mE0EY^mpS4T*Ow#7=eX!RE9Qt$S+D}5$-y>S)VT~~*WgA3LDZ~&62i -&J+hQ4l9%T{&mVYAT@kC`gQ}qrFh>xwRK3B{sa+ZFKOD}^K*MGXdtolTWqF8u%z_iX1)zQ3j@(`b1${ -`o?!>Lm5q~+=b?iq*eO-fy;#Ajs@rt9o8RK>;cS-bKJN;q^B}9h%w?$ZL?pb^|D;868mvSQ-Npo> -SW4n}tc!;s8_@4g_QDi?(z{69%{{x;7@=S>kajqyyK9gD3+*G{kud2xnz*mNMZqj`%P9pzm{jYgCho5*u7$o85+# -M@3tL*12?H-XJF5HQh9oEYWkAAg>Yi$Nk}iyNLP9~xO$`gv+%w9uH<|hwW%zTM{o4{lcIY)oM`(@$&a -O6;TsEF&FKP!CX3HocXrUmZ_q5QY?!l9%`!df -bkx2J{M?4PNc7=61PR&J9itUowZUdOl4MnEt3V?9DA(Zf)u;0=hwPT -iRoBPk@w^n#=!5gJ5e|D31&oB@%Dwjb3t#nq*#}d3*yrA5E#*ivMtEx;c(xW@R3#ZEGio+u4lhF$bV@ -Nzcl0lW*37z2RI+~+eFN>0rz{9i)p{f-u@Dwqd5dCvk^V=G^7~~mG|BAg?5{pJNQL2-{?SQhZ`MZedp -r~e|2G0zB2ypSNV`SDlfOmp8(tejOn`3ejAn`u{Z(w(Y_o#obB4Rga6ri$jt#$i8%RBJct9{5c@=ak~ -c)1HcJ=BV}*wRwr8Z}R+dWvWl1GVR*``6c!G76-4RXuN^9sa;dZg=XE;rDt}vcfMvc*t^8>zc0rYk)= -|=+{W@H`bNjCD$co)2GDo3e1%Ld=U>F)OAbW1jsNBK{+ENx742sIfCd{_q7y$3Ld-ddirEM)xy^Pa(2 -L}$8kAHm=%vPKvo)gPz5YTA`jMJsI=viFl>g3Y?%C2SO;S4F;IF3=}WBpr2iSF(ao|8j!v-Oh=j{A*KNoPCAuMJY1u=a5Bs|orjU>78V#ze0 -ac>c%W34lN@3zeCb1GFhd4j_;yB>#e -t$CG)oJqkfBtdrQlinl%3YR(S9VAt#Pcpi)tLIN9G@BISh=n2`)n!_Uug-2$I>Ezu_@p9QiK=O|00ao -XLKnwC3eB-aJ}F5ev?g2=lasl#M5;w(GY`~_R<9^LrD}v)!ChKc3|ACt*W_?FJA37m-b62cio!0)~3D -c{k@#VUFk(0?sLJ)%mVp?WaLdN6I{^LtP~5O9J7Cm-eZ+;6{%UjPr -B9aOe>R#?8;?2A1dLBz^NDaJ}}`*n?ZaRHBkxb<j&N|p -N^_H}o@BS)VdzvD#M=9rYaiBD&BF(jJY*22=HadPVpmJhyAS+4Z0mSGIH60w1Y?h+F5Nbj*u^u9q17p -KAceSJN6nJK=`53mVezX;T^?97V7CHeKJ-?S?i8b+YA%3LzubHyXU-!)kqGh_6HMv20Vw9~EVMP -zfRnmDU8e35-NL3IE?lP!~paCFjR<>I6a;HYy`KG$M6KabU#CxBk5t?z4f`Aa~KG -gy64wJ_`E1y%Lm@4bi!D1MI=FUcOSd=`hI-tD^I>RwX`v3YY{h;Z)`6YI}@tbiN1z&O*l8gNEwNK+Pd$5>jmA1f(sU{{bYaGvIB6dp-7h} -?ixGh=R?ZumYYPlu%uCJ650)I*2?7u0610htO_An*XsTTS -(h$15P-pkFdO)%#Ps-ns{aygB7{-qb3?E9VGyJESS$so7dP3;BPvRQ;MO%RxDvpWvVoco;>6{Pkkd$ -`~X7)u=q3Bfdzf5nX;uWo~E>-+z-U%>Lq?5N@pv2p)NYdHLORP_IUQPJ^;{2*XN6U7m2&dyRRcFIdU( -Pfg&;C~N_jFv+w2l`+XGk%6F=KZ6YJ)(M8L~|lm^tZ~_i)_o^J9*Dor#n*j97A}vT6`TtFsjdf1o3Xu -QhLrT0pbEJYmB*yGxi7$^vK;gx6U-aAp{-pK?zwNQpk(kzbe#lX -bSm<^_%|jw8ZTDe9>hI$|#E)$ZW7%2KP*WHpcUh`p$)oAhNBo{zew7xv+~kXlE=7OGWqh6bLkUO))e* -B|jGcigGw?>Y&|_F1NqN!B`*(`SOO$AlgRUQ(38+3veyI^bcb0dkSTFgVZf&!<;&_=Q7|HwKL0 -UNjQ;|`xn$b=q_W)5SPu)21zd1b|GUmdDbV;_e&_pW2V4}lV1_NAw9f#K82S%5*!Vn%7eqgcrsOEc$+DzK2s4I7$fZ#3Nv28V&scPBL?@|LF1 -@4Wk6ua!cp%rfO`{30T7zetRKxMtPelxukd{V%}gx$hLPE$)cX&p0IJBp$_c&{PYzS!8|Y1+4l_n%}j>`a1 -p&)^{po)_wP8c7yufYPg1gBLNW`rj?Nw7LyQ6 -f8Ba;)ll5?6m5d3Gt#8#yyDTvYeOnBCfVTNJTZ#a#X+%TX%LB7xyTu%z9x*fH{h;Yg&5Q!40~8OPc7fPx0u;lOOM2C7QA>vjH{~7eGSz}>tk+wo?w@lHh+9pCe8@Af^|t= -vLUzO@nxd0(J~~N8)4~uPI5))9;|{kUcqxIi-`R*W=C{;(q^oG(Vk}l1lV4}rrCBe>jLXNF&4@fUr5N -qdDfG2EFABe92EuP&MQ)E_D@g)9MfI%(|q&@^O!j -&%U^$a2T+@AQyNQG~Q{s$UAws#=b(Af_>KXM=LC)rlAn#e0Pa4(AFc{{wPZE=6w9(tv`G`vF^RA3HHbveqv4ih<6@3S=FN|H3 -92yx#%`=ryjp%|w$dZXOj&VO~gT8Xd@6eDctZU#G9I~%#Ap<5EVh@tm6@GS}b8Qzi*$Qo~}3`ihvyof -vb+$E5=ZAtNc{Qh~cvPpErGm7@ -7|f9wJS>U~nXnKxf?Pzzfs?Rrph$9WuJI-&4^JTB%n=eRHWXBag8{xO49xa -o^J`nW5YH=f@wz*O%zrN$z0LLEp?4jiM{~ADWklSujOwx~n-sOWY+0Su(E3p1=8^_FgjxvH+xxp>->A -?i?;{R)PMPU@&sTU@$NMF#Z_2MnX@Wqm^k$q|+6w(rG2L&q#xh>2s`W!q98?eN@C8mdEHq$MI!2Aj|` -2e{peCl{W(2{B7Zm&mDucAa6nMOMjTnxs4{rR>+Sth-;g#^wpECOQoHZ}}`{PfTlr|_tYz -ArG`520K^+|gmqO^Aq*hiYL27^|yds=njnLlkCxRtHYyo`^&3&Q -#G7zyr5>mHWNQB>ui{89CRU)G>#%cW>)5RVqX8{Jo0|Fc-$Ihe^t)0q7fYFq5H|VqD4DQ5zI&5I5 -DsQFEiA-H+j@+<#blb+rIn@RM|xASUOsdn4$%3c*W7{kzAllq*^oAp+qTyrzGQh5>D&s36OlHERt5fY -s98!9DoZe{2KMnP<$6!Oys(XV&Mt^`CNtZ3ET3SA7R-MD#3J=Pwe7D3RlJz<>2sIccbhUp}ECZuU~oDXG}>BW0lD2_$&3bY%(zG8~zi_Ns)Id>xQ7fL}luh6CWxWh-U -2&KNKTP3apCpJZ4v8~Z~j~DmANqrZ2qqk&yakbyo@IO%>ag}UOVfNJPv|@XJYg+*?nbCZyV`pM6r3sc -BhxRKf*%fhPYf5CJH|EW@ZWd`AJFp~FR*iKG4gK2r4{(%3OSC@JC^q%^d2X`wf>p@Dy$JAL_^IfC@tV -<_9%uYz#Q*SSF)B}jYlX4vd_^Ws-V}7^Qdt>1R)`}CzZ>b`L81fc$XB;4GVttjQ&tPh2%-D@5~DzYNb -i_oIr+Pu+G1z)u#gX2uB_oY#J*O&rxLcO-0~qeNu(UP9AqAJ7{UP0RVd)~RBDVWcJE>$$!Fr55)`{MyTr68lFjqL$v5-5?!pt2gDBzWedv2My&YR*KQ{jM;p5>FS!UIm8?>yAv7F-3^X -;%X06@j9AQKhEBqugMfB9H1<}8wAU)dtJd|eqp%@3zX84j$Y?TIL*cjbZuwYggnZ&8UnSibakZcyJa# -DYk{lm$bNhyCd&r8on3U_KJ1v+KbDAx}0z9j+?$ri-rX`Ls;@2u#onm#`CYka!`%s46_sC@BBhm*xUy!D(o}usn@AW5br|FvDmP3`XJ^7l -E_Fd%b;NvE(%#p)()}9CA@=%a(V$vE#1h=zQFn!UR1m35MR!d+5;zOSne&)z#33}Rx&)? -1z%SEvV+Z!YbhInW6)N3kPMNo{*?bJVYSdb7kBCI;(AY}Pg~kRwG^5YPxH@Su(q8kGp;%8Sh@j_}CxTPH{g#l=710I8wyTK&Jz&u?^oP`5#Ai^)SGc*oI+-K_kEhsV|sP;rQ#pS -6tZh)*dzLDXJu5I`M1LD*O$NTosBh9F%Od0O(};SFe3SDhEwbc!)}u+t?aw_sJ(X2CH!#SOh7jcJFe; -b+XhD_9{xV?zR;IuN_fYK5^XCm9b&Xv^iV7}We0UtM|KRH~q&dc+u9E$k#hJ!|<)m%V|1)K6Bu8cVZ; -2WBSfFHHPN4R7PqHXKJQK=%IyP)h>@6aWAK2mlUeH&UOcF3d9(002r-000~S003}la4%nWWo~3|axY| -Qb98KJVlQcKWMz0RaCz-KYmeNvwcqzw@Y*$`NoM6o+Msvay@2a%ngtxkSg-qlYs_dQ&J42}NtdE_J-z -6E?|G0C^_rd7#zh)LFuWRxJUl$_b4co;IQ`;OBt@$7&6%jp`the!-uYb6DgAbwIiQ1KgHewrB+f1$8&#c&NU<&SMQMtQnTN{-% -zv@+~i$qq6G=fNQOb9n40{7>OcmyK8!IB0nUuG~$vTUT9rtuTxs@cKgLt*Ar?Jxu@T -#%D@CJ2p~|%zD|l=85`Fq{O0l~SAiT>Mj&i&R0+H&Wk9{aP0v_9rJud*JQ4V? -wl%<|RD~7mGaJ$;D!Ja`Mf^x6j|cyk1AD8=5MTOqbP0+Nvx_JKbdu+##Pm&DgD -PG6PO}vqpAWa{_V)dg;%#1nk;K2j>d%aba;Ko{(T2>%m6$oC*J%z%qg2}8_nG|=*Y(a8gU(P)lCQx=T -L8C>@D0H(T(bjvwa21?3*Y)+6cV -W*R5dC^HRyRXiWcG?!I(e_{2$s;~efuvVK|lW7QNZ3~dM9f)ZzO;#jx;F;Ot|1ha)E;I&{OgVAR_7L0qU8-cUdI%YzUZR4zi2!(eXZG4M!_myVIzeO(O$mEQs*QWUYGQee#XXW~&6h -(}_G4m~NYmM*re#4rQobhlAeWedM -}Y3^S-feE)ZJp#@qH;W|BvhW=U4Cp0LvjT<%@6p<&MQzS;(i3)a`hvbvYw9~2?F%A@$efEOWC_q_p$n*l?L=%+xsf_fh@p+S6d -f(DTHA1@rKxp(MgT3Cam&G8(+vr}4`K$-JyM*YJmDI&M+96C#OdnA3m&iOk^;4TSe~_EG`s!6bk@>v# -8w?3;T5#D9t4OJCn%9!8j;S`C1MLP6Ka^7%3J`ukh~2v0s>)G%8?Zizm78jT67b!iz|z=&SE1gv0Q>} -*63)L%Q^gV>IT0WaLXl3CfhBS6jwnHo#DM=Er2QWkV9RM%48 -H^xF4p)R-h%5IY!5*t4#V0N8L%0Z16QXTgLe_S?E={kB9jzac$9TSZYx9}Dt7_+sMA!Ah=C3(WZ~VVrX=$QqUC#au~n6H)rC -xIHOeNZ27%?wrt{lL=&Hru=8$TgvoId6qNM2 -}Fl@J$5xJjhCg&C8NA@fzk8w}ibsv=}KNg0f&InVt_1JV$fLUnMJ-aEAZ&3jX%Dlz`scflEkI~X`(3Q -95gKJX$3!pm76nI}am7xrnGM#{(?U@{l)-uvN(rHAbWiD}yOv45vgAYz$MMu8%p1H-rRBYN9L{H>B1c -nCTOVf3n=GJ;&~5W3EDD_*V~0uBWn46vHyAoc=x3@{6L0#Mgd4;2E3XUWQnjRN09Ph4utXo-+K5DsYT -5TJe8eirqCadQS|yTagvG$Llht2>ot!ho+pPq@eWfhs3e0^D#e6Vn#LfI?+$9C*OfpX~r6rl*}CXcj_ -=OUT+do+Q+mc%~TFg}bfFq`1~~&%ReEAA|%Y-UuY@CNRnt1co`qFcTqYkVc}YfsepqVK9p{8ji9DmZu -c)EW)b$k_$!vXjN~*;8EpL=g^AT%roGOe3BIvV%~@+`ua+3@=k6u7g))&K;R|SxUiA)00;8E8@Z?W;8 -6YLiq!{ssZ5NuBR@&Pk;obo7DFL+xG|rxv_V2_B?jNJ-DT9%q1@7pxVIv6M`Z%11oYPZVhlzAG^B7?R -8_gvF<2$%2pCW>ouTqoYIO@H73n4##j_+BjO>WpPMt&?oDTQ~iu*x;lPwj8A+oFp5$rUL1dXY3!R3;~ -2Ee1`t!W_6l?IqZxf+Te4>y4=wgd&5@OO^&P8?z^IFcqek}}~^kpXNroTK;b#A~eFEXOrI*`W)2=V}U -6?10Ibx;kB_n4mlh=viKz8nX}H`w^pK$9PQGygl#Mmc}4-djd|8{9sVy-@(w>2{;URxaRLWHM)*GA}+ -|fAwE5*tJox4o?9!ucFs=%Zv=w`a^?MKca!41pE$1JeNjayj?s^W%0mP4;vTF3D(YwG)OIGm6hRbMi5 -L3zP)i}8NVcaqFGeudyF&9V1g&v)iUDgdZiSq|g0}2EFlqEmnm4nq{Z#pFaYM^DU`3%nU`ew9ztN!Sn3u108f+(=hx>X;ItNkD>{3ID-dq0q(f5)D6nEV(CDD+d|+2v -EYDE&J8F-4tIby+u-F@Emph!1@rx}Z7olkFG1yvXraRLcu?EkDsY`MUR2roy#2V;EuLH>KfE?&W=gv+ -P>mf4i@|(b90A;!4k|tJt$m)C|D5>>w!rI*2#d?G8|NlC$14bY?^P`*Bm#;78gJuByP_uvehM{Hav{h -h?-XUnkA#xA47eXM8Xe{6R&j6wBv$6++%I2gDUwpx%`L&6^LdpcOxk2|pVp`|ug&;@~TgZ$+Zju;Z-A -S>F_mH-dmG2cdl1zgC;*#p1#_Cm1TbuS2kmLwEG=P#c=Un^XXdUDL&^!+vUqJmLzIEkq&mx$o@GjPV- -eaB}4IcSv!Ncv`Qq%|kYykd9))G*aM|T>Mn6T|J8*SAI4f(}gtU9xL$_BB6TknZAk7dL+teYO`U~XRF -4jmWTl-B)R|adVRx@ -KB&|(A*Uz0kK5H7i9LGHEO8Uy=aPh+rMD`~R)xpyiL7L38V|a8T{%f#0H&y;bux)M^19?)m$r6{}L~s -n20pem4Tb&GRFqSE;Re`vnh*RILxB}JC!jK{9v5B9JqK4gZm&bWfVVw^R_uke4;Zad*5c1=!)LTLl)K -5z+IkvW^-DB{xC}(;mk?A^O6eonM_zyO#P9%6xyz5MSC6N=&#JMJ>s)OnDaP62aGelHronZWfD -b2d4S2--Dr#i7t&Z};V&+n9w4VFBJnK@PCDG* -D};Fr!?tbkaqGc51gA_62f$bLk=DPw`cZcystTX20;y*g!J6kG -<~I9z6x976BM9Bs(_8H0^spwaGkYKIB*inlwhyJ%ty&P2`y?@RO7j?&*PQnld~7Q5Fpf`?(#YZh(g2X -5kXX&XQL-Pgme{QSP&X;haa6umUttpuHkfFQ74?iG>(V4EqDg0_%Vw)xY3BWL&FrMvBe*|+_h`(B%tJ -kY59(NFt*Vqo^~|MqhKmH>znmKolK0h%(<)8J4^Zr(C+_P(bPByC-ex6PfG_e6Ix9PNQ13gToECG|& -N8?uA$2&^0=A2c$Jvd4CbXHUZ1hQZcwU(8xa`#2}2I=TX50`$8w*UZBA*+OFK9=|@}s*#_F({|zOvkN -_jq{xA?YW~sH{&T9cFu#0tCqs9*=hCB6mqX8JDFmOJo!PztLqh5mN;n4M3AGU;y@TZtTET`}Wk={Z|; -|msTFoL+XKM%z^pS~c?NF7>|9%6W)z}T*v99~pyuLk_k6#8WNTw`*0DtJ#-Z@^#r3UtfsU)P|IUW4wn -wY$8IP~6Y97Ta18YeAZ!KZ6Z9#)ABXhD8g~)R@t9{Aw_M(FQ};5;ds1wr~d)!yY~YBrvTP-$Gm^$94Z -;ePJqk@n)qXu;jeP^-SQ_nWbgWf6^{O*ggb`zWGphLmnLeR0qr0V;w+j|db=ut=N`1#7RAjW%i}7_bR_sz=1OAP#zzgv2DxF|0LE?{&GEcqE0wPby~ -914t{96OH)+#H+oee-u}x8LKy7QSA#Tj}ZGc?xW`D$K2l<=Ld*D~7A{jY&2@JoI4RSWQX`saUp4RPVp -6x^fV&?_We#A{FnY!Wp>}*}<$r&EU0qScdZzUvL@Q645=N(&sil4?B_kyl;j7K5uu`sHu;|7~7EAA@G -3@TgKqbX~O2L#fZcEh-dQ2I**VA~nn^I+{fQB&Gf19xG`lxpGfL&=+8DH%BKII6e0;tdf(^Z_|$dLYG -aZN{yNQ5GoW{PV@Ni}QyYew~>1+(x^;>N6AZQq_GqJ|5i}N$`pA_iRN9u_TCPPomcNX+pSY8`0b%$zA -OF3$S@pXwdc@+xhU&TFP>XwYp%roY_+-G%END3#-q&-i%sRwi_MkOh`q#F($e_i5;U{PlzYIiN9*5L$qwrrcO%l;AOI0c`vF7Py--DAX`oq$ju>{cG*#|pqEK8rr|Is(d -fk`HI$jKTRDy??w`Il7l_Id)x+9^k1Y-=H=%9!?!gNS<0Zp*Kb#tdK&^!t1> -C+59n$lbBy$>g2zcr|L}&h%>{QrqAWk0dMmeHZ(+9lA&u;T9fDvDw3m_*CH9iaov)%P}piyHR`%8WuN -VbJrP&xpwkp;kSC_;9```E;j{Hd(6sx`9m0)!ZB?0aYfG-p;e1;;3N+ai;8Ujd-X2FG_LB%J>PqRuBR -kr#iYheyTR1LOj02xG7>Ioh>M8VD{B9XxR)9;JBv1&!LHly)9h!+`ve2oVoU6yF&049Ez@!Z{!?tQ0{ -|*cJJ68y5w8`u4n)gR$kt4hY;H#odPNn94*RHNoaiRfHQw26&>U2`r9E=ZLJ2@EAN0(H;hBoT@YW#{% -kKj)*+F*%3a|rNOq0<2+`Q5p`@nCq(dTYGbFQz1jW1rzy5spRq)r!)LomNGTUnrmZKqWtCxo4P$e7=1 -ScF2~j+1k)~an2}h8`wpX_4Y&=%8r)sP2ZfbWhxqtY!D_pK`b5Lxo%WMGD|4zyg0R84IF#ZY>e!s{2C -{p-^gD}X8xj{sM2y(j>hu)Hc+Z60CER2iB1$A_bCX~$6(guArrQqWOSaq^lPDNi`8rvO={h7HImX!dn -3Jm6m7dz}q(EZuR@Sq}L=f=t85yRY9S)uiNvXL_$bn1%}&(pXxZYhz!m#bJ-PP2`$V$kem4z}cQ=;4^m!Z0oxatj!cU -uOaQpjH4GR}=;=A`JohG#ILq$eBAVvYF~Q@4~>vci`x1C@zETi`Q27U%HKNshyF)yS2YNfS9~?pU{_~G;j72q)E)eDf3VhtGCia*+Ogg?k*2&fyb%>GT74Bg@s79jb4^#-b>Jd9sor#OyKMko$g7ZyM(7QkFrX -kkz(T~o0Z>Z=1QY-O00;mMXE#z+Q7SESGXMaD%K!i$0001RX>c!Jc4cm4Z*nhWX>)XJX<{#IZ)0I}Z* -p@kaCz;0{de0ow&3snD_DE7qEeZO-H+|4b^0=CI?X$6noZJq-Q&12B~miS5~-4u9d*+GeeV}Q00b#H> -Fn#Cvpj7qQNRUoadE$Jad8wJ-#-p!MUv%c9$6w%^gQJ6^;7PIGmf7N}4#FqH;Pm0i=`sBCS@4f6 -kGH|A_@CK2f@0rivox>LB&ds^zDk1^+xn`=gIC48zKzQ?__o;ONnB^}4nCx15JP);U1rlwUBI_RnWn2 -WuMyU(G!4Fg_T=gFS5Kq*Z5_mU5Q?dc;r=mRi-iG=^%YOOV@SqjNU&j%c2|y!B -Ma-KT8)C~CR-+xVx8t` -*#YRg*RNl^Op~lkXZ3e5nM<7hD)?JmrOxY7P^WKe0^I@YWeVM@>Jb4YtdD}9UVcxXhJqKMvv>-?P4p3 -=0qRE9w-0LPC-cE)G2j4w@_1)8#6Z`{3%an*7P!g7dU&1%H9}myM^Z0oF@c6G69}fq^gD2lTe);O@ -Yq#u|Z>syVD?~&MpU&X_FuFg4KYtmFu;jDh!FR8J_ntkD1$`JC93<(SP#G_mM0ScAY19?2wbzb_4A6SW_UrJPRzO&~LM429ydv8T5x^hP9uq(qdDeeG)w!Qc=x(@!>v7^ -$7bpS;w>McmXKm;&Tv5%cW6;%Z7v5vZ&I*5Q-hlV7XO+!*)UsD{`>^IN+Kf-foNXI*3aYXduO=n+2dU -sEU;qdY?q6(Oc;6G6k>>wvKQb%5+dQRdF(iU8&VJ2Z2cN2#{0@(`XUVo6`Ww{50L<^(Oc+PqQ+c4Wr; -0%vtb#!DJa+flv|Ib0nCn0)p@$p3Yz`*3e|Otb%Dei#NzB>!6Ca6?KM}crX}9eVE#5vDg65f@KX9IIA -~^XR32mY?euY5U^&++<8z*O(ZuQO#?L|=`M)Ms%n!4M<<_r{@2eLO}I30*-TPoCX-Jdo`zMroZ}k(br -j6kBh*rW`>d+PNCsIAn+XTq0r6H5WmQ3#<+Gy1NnLJ-ihx#|Wu2{;sf(=2fD%>(2=ZbYPhpr9(0s5cV -3FZaetP)~upRsaBc5j^EEcXE>DqaE%cPIXLBGYS*Xb7LI~**fW#B!7O_>dh5y*;?qSCW*i>>QMq{KN? -xM-D{f^KoG-vU^vrq*hwzGAOAb4dd~sVit#=@=n{9Gb1DVv!Ki8Suh^JqF!>QCdQnUlah7`39IGybOn -oSy~0}jh{y^Lq+gx|R6#7D|TcF7R1=5HolR%s^`LN@fBE4mEI!%L!lN!qXT^ge1498g -`Wp%bJJ^Tj9bi~s4qI8_{y7DrKr#T5087BeJ%#U+ulmt49Ej$x^TEJr>P*ZexQB#6Tft722abbx3Dbq -Ifk4uylLj>~BA8!iv}IQ{KZeWt&l@AG$6X8PNJ=Whxkpxn0LrHcg>Oy8#T_x5Tj6+nw$ZW7Sd+$!s2J -{SpBj|{4A~1ZOK^@S!Gay;gj(DIA#}*}tp^byTiAdB$y)24rBJ)*Ip;0(P{Y8W|;1&?Q?OM2b$|fqiI>J@WOYTSGeEWC#4SXCnf -)@@272RaH+Yh{BpC}Ua%z>V_YpBtFHO@(6vwv7cMyQ5O)%(7`iS63VkjaHw{O|vWZ@PW<=15pRmfbf^`iYIB%32s0=JIFKV-oQMy{!+i -L$&|qNUw_v5G!&Xu5QUo?2th>-DAU+`z)KlzOyG3+oVirYUImWR`bK$5HT~xP|~bM56))-E;L-$qa54#JBO*CL@DPhHkHkX}Fy> -_(?>?%zBf?3*pui{BU*QHch?Ct~X-g*lJd@EBcx1>vzhd6HZKDhymK|sNxLVBKcPQlk+WlL4!qh19Kp -i$mIhsLDxVg42liR)p|{y!yB;PP>gChgv;A>Z8ZwHFdNXk^g9+eY`aa#Pqrjh16&4q@McP?omB-moyp -i@&5M-LH?sN3ZMIw@Y~*UFQfNS`fU*lsPKR;`be?JsYB?z|w;9`}3L5gL4ptFk(dR||tQib>q{6`qGQ -^uvDx+JCbKtNvk56U~_68k9pq;)Ma*St{QY-%Lqxch39uiVztq+8e6dH->Vi^%*A)&3uj9wFD3)qomy -ag&M5V31NGC{*JHIqA7y&`qEwuwx3j;ey`5^ZX94`jL7)VL2El{m**7X~2L+@!J=V;{a>A2l$uVRCI& -$|PZUUeQv`iZUg8oXH3cWj_`D9q0$uYc%U)t|#)P(LzXvnOzkH(DAxV=P62lbP_ch@4QWn%9G}wkgve2|8rLbw`cuoG05lj*8gf{pfvh~%17b2!p4Py%+TICgup`~!kvUTMhd7+WQ -E(`zJ#2W&p+emuO~D~x;qc2w5gxI}&;aY77NQ*7Ks7aj6V?Gwhpuu$Q)qAha)lwv1kVqr!-F2D -7m3`UU<2B%j#m{16r?5S_j6FeI%PM^DgGWUi(7QLM4(8PwMg7_u{ay-Vd>k8@m@97^bPtWsn6I1^5!u -u%q~Y+U=bpByy@u*#$aqxv;7m=WneTb8}0FOQH+3A7GO95fK{|8i_O|p^4bi>se>3F*?2F?Y=O8&jR( -V6jP~g@5*2`3-?&Sc_09yg#F*?v+UY4G&q -M}gxYbk!Ht7+NNUk`W*RB580!q8<&YN_0L%gy0pgTZjPqcdxgq{j^gXbXyVJ$E*KK8U0!?#P5U=cnU~ -;gICm4RSEX3hmBZ^z`F*>lg7->Tog)#@fRy#z&UaZCv6$R5-{u5Q>=u_KNKl-?Cz3xu_kc(Q6FdmC2( -bXTs{}NX4VI3^m=VkNIhp$!kis*#}z;wRQ`1jIX^6TRasCcW^hGFGK&RY&!@5AMGe`R5cOI`*04Nxq3 -e$>6#nanMCABlMiH3^zvanXPpgM+ADy;%>Q~&)uwyN;j-yFS -bc_4A!|H)1+GeM#hQHotY;-M+1rT!mvg>Mktqhi`>M-(C+=R-EyclaSTfTsZGw~k7YiP8$?DK3WN4vm -=*Vs@?$ibY?7JF@VL82&(6l%>J*HTLAT-t7AsGS~X*VJk!2bW>2|HJoO`F&|+$RRJ4cW`9?;f9i_W6i -C96x;X*$$_Mr9?xE0~sELM87mJf5WOyj)Si_`iE1t^N2B -iDXC<>)lsn*JprN)9#|t&4TYf~uJUWkH)o6#ujAT^%`|dnpZjqBkMVrLetzRtd4Xs@C!NJ+`sH(~sQK#!s-ttF-^Y*3ii;cytmNn*Qd2tTr^DJ{EWRr4!2ZWgHQA?tWZeU1S)2vh*|8AoDtY+h -#U$hKm$Ecd+%a^NsKEK0jeMjv&vhG3GIFylvzjyLzJE%7!liXc3R9u5b%1lMVK6|XzPxai?3kIn+9H4 -458PVvu2`1OCjWK!~FE7!LaCtex9n<0#e?OK2dRw-)^}4_hYzyPkgC2h*7JAF`*c~ykr3tRGZmVyIpH$XDWU{jpGhdz9iGhIX)8_pDk`y-eL2YcJSR3TWp%f -0b9!!RoyF5ZhBkRVJA+=ON)g$kzCCu3A&dTVHtVbu?;mTj5b*i-m8X#kpehE*_4LzZ5TD@bQB~V6L8j -q{wRa0jBEoF@QPNesxk~71*d>tKrnJ4QjC?RMfxNX8c-(~-L_$OM8Sc0c%&LN9l+A!ov=z*OBNO9wzR -pKEvp7|$~`q9vTf-|*C^IhOI}s(npG%br=v!n?64rc!C?4!ou|?St~u3Rb~<187^to@98jAyAb4X+&+ -_&A7~$j;)ocn^G=fLGLdT-4nl!)m+tD;bD!{IzE4#bX9&~k`aR`ga;s(6{tVbz2xGsSClgHv(V=eM~P -h4Ny{uZa}YNId^ZjH7SD`QJ>*UVuADXxBl2LfiVKHosd3Z^|frTbHqCRZHL}|BSk;eDvs1+TS-JPS*5<0!tNF_}A} -4`tE30wq9$;Q`0OYEr5!>5X=_0q7y&4w`*SBCFQGRe_BnH4qNdjFHW@8+%V+62xP~mlXEE;2J!O66Lm -aA{yOJVUK??C75vOK9rzX5VZ -_Z*yxJ#SJjWME6~BM~8kV@Vhqcey1y@6~PI&UE0-Agoct08?ubnlbIe}0$bUZdPGP}~Bbiyn7?!o6MBvwkCAb=wv@cCh -lsp!L7|n)eF7!5%UzZW)Wr7uO#5|OZ?QkqSIPb4S?iX(*ed7L1AF&U2n(R_A5}yTrK4*W$g}-1UJh-f -O-1>_zIi-aZXHF~c1|3}i0eD-KNoCbhFM&OuUvyNgHmenShRk~M&S^_L9i|}_DljeK+ri`WdBH2MI)B -)fpG~JskAlyYVfHE7*E3>O>hK$=NBIx5=fEw16ima(@{YmcvwH;Gp}P&h=%CMU((N(v0odgYa-?A+4F -B`hkI(Na4YA&!3a~0*rB2Iv3^D~|AiRV{u?0nJmC0d%`6g$-CB_mGJc=SwhoezO0(FCMq?1+eE%O>_V -hrd##EF?zgR%an5ft5_{p1_aarJTrtbsT9_el@?5VnQP5qkC?VB#F~Pf!*Z4lQqx-!f03?X_A!e0+}n -w8>wXJ(iC!0ZupsQvlCFheOag=VUzIwlrbvOoYm76}H(Oxp4QE9@2s2e1MDF6#>a^p_1$?PLjI_lH~3 -pB>7O`k+jS7@nz8p62nqSly@sDA=re=7`#o0Nw|I$bcpD_9{idGcZVOYYs0ApWyhWM?D4 -*J;d<0*(6t7F}tBy3JUF_6KXdXU9Eh+9o>IHe&Y`hw0%&{)+45-#=-kKXy22I3FZ&C(9oq?Eium_?z_iXxjj}9FJ-z&-||634l_~P>Eh@?Z?M3 -_J@xi|%{(X#4zJ2|ei)<~@$zi7N|P+EQ)qdOJD5qD2)x4nmAeW9!aQHWA+Yts1}d -i-X&T|wA9DIm;DL^{j7#OtN{S8Yo21%dju05E{>uJ)_2pPb0%9b=^PU0@k+4kj1;CQs(DW^$zd127!I -1`5A~nQ*2wi_eiP$g`+t=g6@aq>}!Ml@3=f50Y+#epk8_1hecr$=EgLm@c6L|3ms=dkK?GQeEJpB3qT -WP_=b2c_SJac2ggBLcugAgHh^zPGE?>=*T_qhcPdIqEA1arYV{PT+c{LHjIp)@*nsye9f6~2aU(5N_D --TC0~;_DC^JA8EU@z4d@ogszu1a_a=^t%_EgflcYC5u7{?eE`V+G@p_mcUt~}`EjHxK&PtaFhm=rQYjrg<91<62|@tpo07Uj+*bPl+(D|84{QwDlXLhw1MP9MMj8YRM2Gg&eeh`_d -_<=7g|@PdOF_sxqf$N14}IsNNK#u4SKe^d2gY%cM{`Ul1=C{CvJ>B=_NJL^F_tVG4BQbSVTY{mpA0UL -h4YtF^UEjn#Wz0w{Zq5>XXcmB2afH@ONlMGra|Pg=9f<##kSYy(3&?XE!k(=^J*{*y@tUeo`%bKHBDm -R1Hs_ly?du`(Tf2#bf{MT!{M+q5Q;P_-gJO*TN!`;E2aHUNnOD~gjWUaD`QYiNgteeq*ffwk=k$pUYX -Y(s^J}01s}IqWjOUXsLvl>V80M*dS-j{{hHG&+P8Wo>$Bfm_*lCNdA+j^RW&+PWp1Kr1|f$nTLFfonw -6WpYVs~}%Hv8>J|GsJJ^1lU44NWthVlnba@MGARLGBlMNzOu1fSR0dVsnhZEs-o7jAn?61JkeCX<)cu -ozU&Vgo&kt1I0d9A%^Xq0}pz%mhgqFPX94#ASwcpRmL`ewuS~Y~e+fN>+)okrE^|A^(_+Yzep-j472f -xwTfL6g50$fElZyfXwN1Oew6Rzr#P@qSV1{L{N0kB#CvHfUeJ8G6O~qoY;afpm{m_xC5;y{up=eUOj4{Vh!1(4g1zhhM$Ek9*M=t@Z* -P$sMjJ#~0em2IebSlB#l;lOmyW6)a^@3uyKnlo)3`oewq^S|7?j_a)OF?o=MDq<1di84=4J8KQVQ{ntVc*O?q_g&M(jiump}Yn)rN9uxp(Il#YkNzeDQ*NT_iP1H1E9 -lPW1^EV -PTufYqJveToqk8?w*4c!1-&N{Ft|>@)T?Kl7NDOzwnZ);w`HmrgBH!<)mfkvrl7Gq@;t^6gEdh6;3>6 -tLB8{YopZg+|GM}tob}~i`$x1)=bwQyWPl9R0fOij8+45GF0gT)~U_2ptU`)b5FB#KeNFGiY1+Tu>Er -*)A|ZIoXS~0zR+GfDw5qi{LBG?~@cc1IKw;?v^ -)TxMlg~?Ig_JBwu{~?(G+!Pd@+jU0km4vWIv3h3l4sTNvLbr|%~5D*61=;k#8lE2_7Xuiqpe58q5}zY -UQ&h9|fBwlnA1H<%QjeHH21bR>p0l&FDpgM2mL{2` -Mqi&zgG}tvUYkYS^5)t}tS>|*MvUP=%$!b^kiJ73eC~{A{f~fGN`@dhymM8oQX~L6z -$44ZJ;Bq906x9dz^iMzwm@fDoWu9KBD9115M}HM%H=?4Jfj{()W;b@!oe6icrtXuL-F>Fg7(BIEf?jG -LJM|@ZwGDNp`#D}epnT(JW0-B5o7)9Lu$Ns4IZahLf7qPCbPgccjn?_)v3>9;Uo&;?vfpDmCv0n4U!w -xRQ_!3QXNrxNn}b{-S`}M?}xT*lz2AMTjEl3vR$?}VhmFlSTo6dOsc=d7~iXcU1*!!bT#-n6z5#WIcY -_RYv;RGE*Gh56?%1D4o~jNZL`oR*-2@@t^dwQ6Jmr5Gr=#4DRP;_b5vD83!q?yPJY*U01uzJ-p)t%fJ -qZEl7MEX_cR=d6UuyKa%M&Ru^hWBJmt|-x`~PoB()`oRd>YB8anox+Vy&nsH+Pg(Nmf!;V0Bw5Z_W>WLP+_0T -DujXXz^8tcz5H#*rPX&Iyz3B-u&%NvG!3%H~%jx5+*-m=!OyI>K-4Yo%u5z$WRH69;@Co+2w(SOj$$S~Cp%x=()OGW`|0CwI8AMJxB0o&9U@c!pf@IF-Ft%=DGfb*c4s@Ozs#bc#xQ0NpNuxj>h+sXbG3zsnEC(>5@I{-y;3>No@$`~H#=fJJOS(0BiFz`xq6evL`eD79LbuGG5dRMH2S(0j -x;i5J-#qz*5T%$FTq#;1MQqqC@*{I1cdjrfky$p{scejP-%@71iU-TZS^`yxO_i7~25x=|*wewY&6#; -`o6R5}Jbpi8&Ay_*>MCRf`kf1ov8eb`v_qrvEf5fs-|dZ&VFg!ic4*X`KROFOefa6lJRe59^|wx_ -wJCnO6IQ4@weO&z{vpldhq&5Ss-hr`Kg -cM;$3Wj~mlE_$m%C>hSFRmq!=(ABE??e0A~h@T))5ElB?8Nv~JHcJ-Oc9p@TexY}Gtex{#t+6jUFp=u -738QcpxV0)rC4P-aLoa86)1alfOhDJ;$aNW)cO{wRg2 -z~;|6}6A5S9@jCT9oi9?^{zBUfq?t -Vy?!VsLb>x-RJ6R`QFEI4Xq#9g6kw5*GWi!A3VYx-$|nlqMtZbja3<8pD}jj?*^k_X9UA1c#5g)V4?D -n53ju_FFuy@UN2}TUMrRsV_TV5h(nnUfje7$;ysUZQu0T$}@6`CYZbMpy568Yx6VUW+^APUkAO@M)i(cD7vx$fF}N5fq8h)lf5i`c#SG1z4D>t2#CYNp@af$9rL$fM?bcK^QkKfIV%(djmjMUZWB&2>w%}2-`7_PXks -t|ffX?!C4%LzkMH@Bi!2_aMA*~-<$N(omqakjGj4?N<+Q=aPDT;Z^$H`Wrf-yy#o8nVKTVI3)!CN?R5zNw -T^D6-*Ohl2)g*}o)$U8_W0dvet}v@x*(;2B*y;SJ>K7p6?;yF*5mT`jf-WxictJ>ez~rCJCB^g2GEh; -g&_y}e2|ueG=8qSPGF{N=8R^93&a`LP^apuRTpx%6*p*xzQPm_^_c>GA2gV!}?_uzx1E$2VPt{P^4Ak -w7V~DGQLQJ+XzFR~I&$B>9u6XvyAgt!SuJ2AVuf4n3bNQ1={A2po=6kwLyD+X4UV9Dqx)}cMsc-bt0| -JK&^{i^Ycda*BaBVW*?Qf*p2>2u<-Si#PVcg^aI!x0NV`(YJGwOj#soS}9?yHi2*xFG5*#+r#=uhEzW -NeYsk&nbVUPtx`mC*BQGs932;9A|nl!v2YUbf2Nsz+?zD2rZ6bO-jx<|fo%!WvM!)xhvb9CbgzPG?pI -8h`JAX8I1mF)nQ9CA|ZY#aDya<#kWaY|DWP5Tk38b`P)9bV)%zyhGz^{JX%KRc({L3G=Z#Z_|dd3T!y -dimB}TAx3ftZfqlFqVJQSpFf}<4j?L{->C#Bid{(QXb$XoWcKwvZIa*LqvJ_K4Az|#Z8sGPiEjT0(Or -i#gd8$z*UruK-k}Jpl;~!q?riSr!7~_dDT+RoOHj~Lep_aB>L_6&{oQ{_nT_3uoo=BgKOS{=?i*gG(} -NL0*Lci(!b$KxjS;7zrW)NT3LW@#$3`FMrr+n+7r{HA*50DK?~`bNb-_xKj>+uAlA-~^lZWye$a;3Th -G&zza{%^v>Mw}NqaZ+4fjKsXw(wDx6wC>A-CqYZvf|XKEf#tp>T3|uw<&LCsWWYOGYf@ZW$ko|3@cW9 -sTFr33cjV=Q)BdTjQDnUcQ2{~l$_1xTy6SFCW&6R#udyvfv9_#PN6D}X8^)&4Ukh#dId0U!Pw6W9u~i -;+IQYDFmfqXn`wn1Z+YEFNwGIDeNblIzyvLJz`CWCPGeJ>G3F2{0ScC&OAj$q8`&*gqvQ|*I;ntHXxX -DyXS<5F|IO1czyLW(WG^zZ4(nxdEh9{FjZtoR_PzrUF;~9r%b(Cgb78qLV&}cvOx5pw>$a-iKD}a>k{ -f|~R=|sY^zVGqcwwtgH47g?)` -6F>vf)NF3=4`7}F1nUvs~0V0p3*TD$l%2(PnEeU0Mi#oFz;YTC-8E*&<@c2;^~Xv)6>s`2mI;NhtYu( -Tn-5K7>QoWG4~ug+m-E8BltkKmOt -A^)<%KoI|I -G-J*E>2FXHU%>#))ibTBR+bUu8o|Z+67llrd#5G=lD;{OWc$@mrGzwN7b-Zp00^kyMd9yfz30mTV4Zo -qay|4fhwzl2g0>CC$S74=dIRAreMyI{684ESIgTd(Zf=eO`kW{G<@Bm4aFd~GF^cIcSm}ANtIlZ(+5s ->5?$jKH4-^|IMMM~_Mtl}`5~026OVYPucMHk^!~5YoXj0f)_W74a(^oT&cLZm#M9BHJ+qVwEokc_8hK -6|mZGOF7iEeq(_gzNmd{5k%qbeJ1Qy=K> -$QQFo4SrcV$a$G%jLo#87h^E22u5*JmKA&3aAwKmWn4?s**Ih)yh`{t?&5D?BRz^D4L4Q93H*3ciaHW -O-q4Y$uwit@2|-D#(x~LPuq_n_BeE&i1yQL_EfLGtqL6e9a-Ay{N~qFZZCIDkX*5bFH-5 -kGiV~b5sr{&GloGgS!7hj78vkG{>{J!ULEU23XeFjd@+7KW1JQuFEVM?my?IIH-X+ku~?$ts-jv%;L- -w+RUT#s1W;m&Yat86*q3XwfYxEZxd{}``o!y!e7~l$5P|> --5YwK}cr>k|%0+s+_cE)BpI6qBJz#^UP0Vq40>7+;+7^Od?c#<0{?1bzC6iGT&FYh{5l7CX)f8N-r;o -kzj!d!XTp6D|Ax09iHAL9r$lF%5vr)dITD>^A3bWXy@aFF^RHcOqL4`426Upsfz{QphBGZkneP8nC)=DI=< -$%cd{1Q0$JTUgw_UhP2#E>KLT3ctki=T+*ESg5Hr`k7j)BMNq$@TJ$1KHRwQo&ENGx}0OFB2z%t? -nGs&uwe9BdX+iVpO#K1KBld5IXRYTukQ_qJPODXG2@oHkFXiIKn+m^k>Kk7;w=2m`RRrcC94$RGs!4!cUgA_D|DvE9>r#8|+NHG9y^SgH6CCrpz%8heID>^ejFx*rZSo~Zb-EA -+1tN>>m=dC>z+_`WmBU{N1z!+b6Trs%qpGl}-7>Q=GhMkBgC1g&nvbSNWs}7Fo^B|ObAxlt=Qq9-;z} -;f{C;W8Y2+FG$T4mNoOEm!CZ9zai(ZeT8Cb*fFoJx-Xaq9NfGS -h9nySF5o_l=^pwY;UAt9Jz_c~qekV@O?;D%1;T56}m~VjTn0I<&VDb3=n4*eJCSz*~%@4}M -LzQf%e-w05o`IgKo(6PeymbDcEr$K8gfHxzozW1^{&tr;3<8wREs52TBpWP?bW#5DkyBZ -ztb3Jk$$w}iNioBk3r$*Y^aMtVI)oJS@DdZ&utD4lztY)H?6O}2PLTouA6z?qI4;1xh56kfi)4Lx3h@ -hNmnMwJq1>K>ZwUn&3H`X6Wa0F`&FAG{H(=YKKRPiRTux4)hG<;YuJ@a(S6WvuBHuz@ -MV+8juIY`NbyfEUGx3b?RbyOF=1zmtue6srd&c*Ub{4pw2lL$AUq(s -6Us+RrN05RGb>9Tx@M6QkpdJtx|N(oz3+GA6P?1qE`~Go5FrfPoPJ08RTMS5{k}42rtm$>V|HocUA%_xz|JfvX3;%c#;3LAE -h+u#!UlPls2V*T?%t;-{gK*N-N8phrmv$O=6hEOuAUA@i{)YIz+ykG-dS!NgVFMP-9PVm*Gt+|kmykn -=akQ5-S1QIC;{s}4Zu{`nt?@psc<;79h!=eJp^nh0FL=8+JTx%iwu2=vLDK>{FV14?KM?Cru3>t7ceq -4+C}r!csGsP?NKl-=Er4`=TWl7t3u;!P=D}$08mQ<1QY-O00;mMXE#!KrZs155C8z%IRF430001RX>c -!Jc4cm4Z*nhWX>)XJX<{#JVQy(=Wpi{caCyxeX>;2)_Pc%s5^sj2D>02Tv%90l$z&a8>uG$9?H)U}%T -OdFv8D)>AT4XAKYrhP07&qVqr`2d%1lfVz{9&QKs#)-J7STDlWaC-WicK78{Z6e20QFPEZ2E5n-|PI@ -YvqBFZM?8-%ED3F6JU*7h+nh!kn}BqRis3NJQqtsteB9hoghTlZ!*YxGz|k#q8kpFmTUxuHm!Vz -0RB=zCQMF!SV6o$>rg@;KR|$VQc!1zx&30vwxj=e_Utq@DEQfWPjkF3&aZWdRKB36^b`brc<7y>_F^g -TA&6LWu7U7wNU&b4>OsD1s}2%XBp=)KtW*(CR5bPbZtQb`2vL!HE1ewqoRBMzexXH`g_dxeb_yb1j+! -La5l+Bi8>ByX03eb|C5Of)H{}_tijp;F26rL34S^}zc@NYj)5llAU6pT50Y#uuEu*HrHB;T$jud#-*{ -Ab;{k&YDBjzaYEQ}}Es$u~k>4*nJRia2Bn0d^-~+spMVLhZx0*0shIzOkIAeAR6 -yOsGC(=AfXd}C~nw -@ef(%}`uNdU4zNO`Wl^Jtd_d!uwN6dZ8~1aUoDWE@a!VJ%(Z%`Ue~0w&?&w@Sd^q`Gu#r2~*g4*Kw1zc1yy8UQ8dSzM#Cn#0Cwtmdb+I{|knUhS7++7^^y42#w$XQFlH4&`dyt_Mu-l2_uCavjWi- -$6i{BsRRaFW@<1(;ab{bUD%;U?_P8J)SK0Ek~(Op_0Ctr?THVxMgCPg)FwOz!hJh$cu(0TW -d48~jpE2#8mlsYsRJ#JJIpRhXfL%l-FZDmTTkbILUI!aBjM`+L7Fc>DmuXV8_r?z-C6Hq3HA+`A<~p#k^W5o~- -XKz~vizIM+H^duwbR3~9Z;NG2vm^PF4s?N3o+v9a;%E1_5fbs5k^(y#!&p+dUTmV44T|FKUy -TBMLVTs16l7axP7T&Cc_5RdvhAk=lvN(q}nz{h%VO^0_=Yj2eDFz?9^4)8rC2oWUmpqEBd{Z6XX%uE_ -X%|KmksuSfvX*?LGww~(y2E#d1>!=jdGch1XbH)?QF;O16*3x+hCL66Jrh@kIqkcKW1TNse -hVR3V`pQH>M08cm}1=5j8|G)8wsg(Qds>Wkh0#8l0eK%vOcf!B2HSKqBDMSK!X11q%2<1;LO4v(|oE$Wwj?7OGbGj5%S1)vSX{!gLj`Z7`rnfJrDO3nEH*35oA;A20`yp;9&rgeiQ6%q5=+WSLhUDHp!hZ@fDAD8NH -&IlzUPWC;4DNob)o2LV_XQ`^eG!sPS^$OOd-E3aGpTVNSh6M>Apg9<7p9AVNtyd$AmAbQ1Tc!3Nhk3x -VoP{<@DRD3oN48CLnz)n)*1yp*AFl9W?MLvq=Ji5gOg6*6&wEcbNBw3V}F?YrtcWl@Kc4XMrb;~*zQj -F8E0zKW;e^L9Qxybh~^Kw%*s6!@H;29w6I+?KR8%8|>EP$WoP9;T49F&S$R6!2@7^>8!Mjte=hso-e1 -DZ7itGmU{2C5-}yu%VdU5_+7P2S@4!)Se+FJss&6_YR>eNAm>=WX_9dv)kxOCMJtL0+LJRM}tMT>Kp7 -d{w1V-1*yRmCbQQh|SS0fqXXO!S9y21kd|*6jK#%`zkbiEzMN@pt>Tl4c3IItyuJR)U(N>zp;My@pUU -$+w*>whts0P?*}yvdyN$ftwg2Es2&~}Qj-3t_$g(xw%bh6GB2~X1~n*Z>&2re>XUkx%1@e+(+qYtp*5 -Y@r=|ol4`+*T3?xDRe`n>EjE3zRBI7U)c^h`bz%NV8!RzuO3iUZc3xZA`3%*$5aYlf7T(dR}v8~=dM{ -+w`qG_jcDwrTC)^o9S_NR8LT*u&-Dv>UB2|Bk*;}THYcYK|FE>ioU -nr?$dEY`$mEyI~L2*-_xiry3^?sppar}Pu?M>YnF~Mb6Cyt*qr_QIHLVY=eN8r#6n2!ST7;cbn92%F> -atJ$Ue_F3+uoI|2%CWdCb?FPL8)65il1*c|s#=o_+g$Fq!+MtG+KgAL)f2IP34A0xaZ@;pP<@H7;H7 -#lbrswAnuWw;e|JR|8Pz8sQA5aH{BWOm*e$0~lku28K*i7Rn1pRW+@py(5tHXL`6cqb%7!rRk -lR`ORiDzY)_dqJc7d$J}l?@zn^u3MRFE2z~rjQ9ZyAFj}=Z#~K%S1MkphQWSvS<#eLj*g5EL8pYR1aA -PY?5K_guUC5>JY--V|THTmgO2zrN?mXPE4;`t=Z@uiPwRB -&u`rl>$eHW7tsuu5)$ZPB5$lNQQy37HX(HTEL2^^4I7CMM6+JT&VnSZ-3F>Va07q?(urGO^ZFx<}u`Y -+X<~p5U=yvEsaz24Jul+E_PfOlFzDdoM|*F7HHigxDa=7*r*qVGV)w&QOl}tl^P*)J!$_QnOov$-$25 -c91#T&;mraRfGu^EbxxD#U68Lxfyyz_kOTB3t5f1$fSF~F%?Lv=ZIaAl;XvL|Q~ -EF98F_PZ0M2S#_WYh+9X-^)h|*iM|TMf~uyGClA~h*EKY4jxz^JwnUwT5o=Z5{9T-|H}ZMB%kV8jV>Yt6h=*wIS=A&hEAgSyr@C#@@9+OJ7gP@~E)n7#>Jh? -I?u8aM}SHZy$nw+QsRmxl-DQndG74WSS`N0`Vo{{zfBdYP5wV^#`ELrWmCzgW+8WynxBLKl2%h1Fs39 -PF@@wgZG`NGiw@#ke6A85#5G(yOXIS!bWGhzv}&KEv()}pT;8}?KA%^^nUuV(yPN?nDr>7?^5@8wSQR -gFU^h^9OgVtM`?0v{yyLgPH1ufGt*V2pt -u9To4x>;F{=GivYw;L8-c!OEHMKDmY5B%#L>6#=B7l-Hxs#(p)61brCS>(HAXs>)vsvqetBA6b;tmMs -lw)Xy5C7&D@tmw%2J+#0lnUlo^?9$4XqAp#vukSumtY#`-YX4hjK`aGk*M{3YgCs(uOVCPi&QO%!?z+ -5*|jjIGJTPjy46wqENZ8$NpW**Z?Zb9x$vhgM^CGwP00)2i?JA}AS!OYUyE59c^uqlu?)_2OM_NS3?N -+sF$AAS#B|0{ax3UhQw>6JIQgwN=J;rQ36#O5wXncItxQ)p&%3dIP?9vxRnV1AL>n&Du@UuEzU?-G@W -DY!Pr!AA(Vsja^{>>H-9jRSn8nKdDw-v- -5xp9Ceeg&htCJ?tz3|757jRV5cY+T)B1K8tJx)>fFLr7Z9;7sMs?{~ -Lz)_oP4U#H&MpXvvyVj?Y2ud$6H}F!OiZ|e`u?NQ3g}`~)jMGh2?AWO&9fODpSyNc!2um$M)h6`&hh? -`_pfF%=ROWcWI9-qRk0Qv=Tk`7-3ZDoFJ8Z=r{H>9+TQ!7gmMlwc1oU>OZqTWpm^ESGkCupNeSO_@6N -^<6HT^*yeC+UJI7TBcu6}(cZ_o?abTnNB1mbey=8o&WdG+M_+H(<}x9eT|P}XW_w%_pDp2Bih{|8V@0 -|XQR000O84rez~wzr680|o#9BM|@q9smFUaA|NaUv_0~WN&gWWNCABY-wUIZDDe2WpZ;aaCwDSZExE) -5dN-T!6qnVt&WhkD^?hFfh}{e07V)!=`bJ*R7R$4HZrM^RAOUTfBWwEB2$*!8cr;c&mHgmj>qKWrxQ} -jITyVFH5}I9fhj`aJYf{SZ;XVurDAN&gh5`{jFAr)XS2)eS#CClP%$TGA1`k{UHta>=HsVpTm -)Qlbaa$lQKf;~0(juDOgwTW1#%*5svelqWX($@Pbw;w4P7!aXA3SsP%g;T?25cOeVbcOaPXxxY(g&F# -_ONoj4jVS`X{P`cBNd`pwoTD#zZ^4sW!l9E$272{$?ULq4%brp7@A5XUH>Dgh{K -rYKlN6Wx?6UEG#5nj~dKwI;JiS~cj3k-Y!PO5+d4aKYc371zWe;UPGgIU?o*kg!dSevv}wEwz1ce -#Q;Z`QKK;bUIBZq@wHlIVGDh*-pp?98b3681iGxw*wF~%7(n}V4n?OpLN;21H?Y$T^BJOfb34}g5M8d -yE481KD#a$lB2HyW=sr{s*eF)F@%dg1fn8_*q9rDx%B}3&-oZ*Hw45;vuZKMc!0de>c=)AqT;B+&n(0 -cjiN}oF!B)#!FIp3HD|JDL^=85vPrRj8m??!ereeuz}8-n4=HrbO1|L0!i$j)N&yKLC6|-ClV3aGJsd -G{B6R`y0VSHsK)_q*%gM>hyAFmyUiPUx>tJIqbsuL>pd5580*Awzwr{ -uZinH?6b53tb^vMtkb)F^TD>)5JM&36^H>lS}mbtU4$~s=3d*tWw#OZm -36jf?3Hc>g6BPnn2NSlZ<}|^a>OOGsn_4MJhDT|bX>*-qyV409;>*P0+n!IRAq#+k3plc6*J3{4p*m` -wPKrojv^#p2d;+T>M%S+$ex>SWqmiYr=UptJ;zbGeg=OOUJB2CtAyZl&s;>$FvskKdf+%uxGlvhMnM-CNvb&eEe85P3L_J(_Odw$@nULmnD#HQJUA -&JBRH*kHt5azRT1rsxX!cy*+M%fU4a6F8u2LZ#pd|<}Ze -rXsF{xfVH!`;d-dS|H?9ztjk?*~`FyD+zJqpX8c!Jc4cm4Z*nhWX>)XJ -X<{#JWprU=VRT_GaCz-L{de2Ok-zJ&K&AQtbVyoaob;+zZ55kNbg^YWNlu)~3Jeh|2^9!104P~a{J-D -K>^F7+QcCW%*LQr0MFP9Cv$M1FwX?fh!RYZQn3ZW(TiV=H)8F7B%A@~R1(j_n+iZ4ydDNMeT$pB1*?Za!#+0jUDTQ<)inT;)v^M5wy0PmUN0Nn7pPe!vnD>ji?7+;Ft} -t*OwUBe#{wf+9^coqD;Uoqj?&Yo+wphPqvM0uhw;&LV*`85s$frce+=bc(z7Uzi)0RT9{?d{c~aMk1z -u%!4P~cQRaQ}(DudmP06s8)`#{8>mRZG8%?nu_%z14b;WprBWpR;bvt}jareX6%6Er0>k)#1|@*zF-$&~EqlRfD4Pw3LHOp|uj7Nm7q8>#;j`Dz4-UV!9=c@L -7}9LDD=DK1$G#bHcAIs|1gW5}?<=TE=D?$=zj02Bsb?ryIb%+PN15e1MmfI$56;BZO>4&KE(@dVyfjO -HmIABFFWfPdb<|0NvQrQuIsjR4C}p6kKW`-gJLlpZUpuxJYLR09 -Nb~4=d7Mp8S#dv;J57Vwye?`OMX+%*=PYW4u9+~K{!|X+lYjr2g1v2#)_IjH#XwWcb@*%{SX5-(uMvd -y@Qg^a1v%96R6&En6-JCq@%Y-FY)*5^SaDg!)gzZH&uC)rHs%x;?k^E^m?^_^ewO(5zGM6QLBYVyQvm -l)W*{<{=>%PRRX#V{^tXsf5{5Qs5y1l9K;cdRsTr-gUuRQUJj8cuE(jXzIxAXAFImrBPi@5$be!RB_|3sV7>5rRdpA9yD3E^7^-@*YDLiZ(Q7lCxuCgd9Az*UiWBJA$$LRs*8WIb+&yJ} -Rx8CzCGU{Ho$vD~S(pTZhFl%V4VL63V$`-63-=pLcQMh#IiI8uF^$Gk{Qpenbj=&`b_gc8q22F5&@~22S@ -qX8ub3hMW0^#gBQ&Ldnq*}5zrCua?%{J&M)(!*35? -e}4#Ld{`E2U?T(`ZIcxSCfM#cSs>Mr4g-$Oq67tYo-;{*LXDVv$hmdM*^mARcG{L)b;emnfmGA_}`UJW_Ybu;y^q}9e;3~Nx&nB2%mEiE=`pfnZL+7*@1A -n2eC>;PZq9%kMgMvS=%4=2x!etlw{v4PW9P{g%mTqXlrzy+4wjk^vH=(n1Q)a34W&&V7g0m)pA~G841K6qY@~=+$CU$eV5$ioK{)j-cYfZnMn9S7u_CnfTyLC}?g!*`_%D$rXtPR8KYWQMJr -*0M1JoJ8;B`8iPA%u#*K0gUQv}Iq@n0xN4e3z5C?J?d|P&K>>|%SzSI!+0By$Th#c^Xd9;IldUY>`2# -qHCnrY}QaLa=ez}}fhM{?W@NEBNYR1W&aD^MNv!g%Y_==G|_QH`7A6?EYrUERqVsU(8yfUL~cKE6<& -h3patQq23H@c}KR;vPK9Wg^+U}#mCsuejRYMs1&^KxpE%xoRQB-5AESJT6jW66Ax5r)L~Zx0Wiy?$6iwt?$RnPh%x11n1JUcv`BzaEK8dX8|B$G6O)ZMtg3>tn(<(%1Taq)3mEFh$l?i14iFDUbyDG$v)2VWer1Pc!1ccaV(;Ipq)S2Z -$vIhO~S(nu<5EiV#tbFM(+_*yM!2+JwXAp*ThaDhJ_XF-U$SfG{SNkW%B%FA6M5V)FV;81w~S)ABqT& -i^2o90C;+_xE;wmAyFy3i~Y5D6hRg6H+q4)c -~Fhw2JFdIP~h}M~!79?*S!zYVdrM+07hv!=OUYAOVVf+ZflN -+IwENb2`4hPb)a8^MKKj2ageVcMZn#RNutFbn$cGF$4EKhHL46!He0l7|KV8erKaSnE9j0srTM}bnCu -d@q23~iwxSD4f~!N7}+FJFq=Gw*TvSIiH^nP7ab2IB=`Pk8jyx;WJ04K;G!X0iUMJ$d;2*l)Nk%$!-W -B~UOR$GdqHKx$8vG}Hkn9MFri`1qZSWG6G>xx=KTD0Q^CXREM;#nW24{cA&1Kl -239D4N0_GpcJl3FPYe74j9r2_L&B-6$kxr+rL$djeVz@9}Ufx}EkrZXnGfR1w0-0JGQzJ$Iy`QO3@^V^;sCJ%r*4Q2DA8~H|0sIB1pD^^f4VcWK&L4Yq394CdC}5}5HAG4VK0dMTK@^du-x6hVE6`Nn)z-(7Zc -FfcE99Tx3t7(@i7DwTZKaszKN3FH+W5&S=`P$G{Rpa-Tt|z^pB5Zyz9PrAI}w)<*aNlGlJ{xo03n??Vi|9e_6a1Vk7L&2)+7m19I0Thh_Z-r`n;E -2~?Es*)Va1N6u$w1SQPTA~TV#4tmD6u1-|O6b_w9 -0&ap-D9*6479w-NVaRNrCkRfAxMuygNZn<86pg<7*6AZJ;f;+YnFDQG6F_+b#CJ|FT-`@z6vS+|C{oz_D)X^x-XjIr -b*5^_~ZOv7`qEp@;CQ1H%dhKzjSymp`e1--^E_w1KB%EAcG>S=-EEPYW{k=!5r{r=J6!Qt1f<`;Yg-3 -)BY@QuGmcfJ2<&8CXxFLNd9=sfZyMmDF`Hd$Z%HUKR3sE#>N0n*S&ldmE2g3`33ygTH -OBbPrz4-EE-k$z`E4j -7y{3O-N?3M*B!ZPc;|M;bNcvq4DZIGi@+^3?EfXuqM^S(230Q%5OS_6yojsYYV=LOPf30q9_gZ*mCZ- -N~WNHA6p2W%}jw~eGwpXWICKcgmQS82hW)Fo)VP7Mhbux?SKlRnR&W%Ht-HTl;7wWl%9CS`r~qMbH?Nr!(Q8Hz -4x@NW;3aEF`u!uS>uajJtO6xUD%Pm3{!&U&}>pPV{}0|0DMksP-I;5)j}h5T9g5rJ!lVqC)3x!idgWZ -#Pr@lu&vvuS{2osO5O5J^ZXQ3XH!j$PiE{O)16Ho$|3Xdpg -W-l10XV22RCp>m5HBf2HJaxf8{k!)G)ocaKUZYgy$T3ozI%iet+VOdsTKGt&g4*C&=dhPISFG=ZNvQv -+e>*^s1ZEVMMGc8hsoK5|pi{COD884LK4`3s>4pySRnr8OUehU6lD+A&Ga7o9C39t>ergWD=upr -W+5x)2=cX9ApTb_EilNOQ)wEW&_}xUO%VPC8bdp)ZOg(n5N*fAZ{`=~4R(njhb%pGEJ-@bBR9@8xb=B -%!}T_~YsJ=#TrOzn?|oOFSN(J(dp#fBk)kQgM7BAi1r3j_|~S$8TS~+CTcCqt)@xJHyHL(?5KY7`D47 -H$U^YUr!IGNBbwQ5loo!Ln?#lQ9VGOHjg~zu=Wq1W8oj-Z>K*TtDTzo36aCWnu-j2G?bZht;e<4CDv*m7gr1oe@^>*mE%sXM@e3AW0n4z1W@;y8?T3_#v%y -F`3o<{SzL^5jhtGb{X!EmLaX*{Xh`^b+nL_1ml!tA_;J0^!5~pj{F) -MB|u!u?5$Zj0}aCox+F8*%+@4OlEo1z{}DQsq8SXzRcK_^nxD%b;&(RV*y(_4izDiSvmU>G_}VA2RvzXk!*xVT_ggqMSrIjTAYk -NyB0RMDCj!2ENrsr!%6oRY>fuS#<$XGx0j6pa#@E3&kY+4h^-A>4cvxV2XzAuAGcPS~8Lz9Z<3Y>`gE!DR)gb8blecwIuGj?;UWsx -hZ1xJoM`YY{XA&0BA!S?c*MEBco1H9ax*9{z+Gd>g8-k5n?)7pYfdtffx!ji5S8k;;Y-F=z_wtAxhfA -lw86X_6&2ET$9RA9)!>NWxYUStDSyuez -nNdwu^n|DI4`ZNrN&sdaCjEY=WdsipuQ7j7%*nIqR$QMaCVKLSu>;DuMIs>e>chhnD3g0xA5xEy43^G -+wXi;tBqq0x)geZ^{<0KFqJXO#}P@fAS;Fs8u>=*1^hJZBe66JBz~NT6!!gb$y^*fd{QArhMEGe7qu&D!&w9AeXDL||NFV5WYV34GV+9nlTH5XEvz=BdXAy7Ih -ltFrt9#9~ze%hR)kf_7bZFRpV3n7Yy%h8ahBhS)4%1ZgZxiWAXlm*qzoWAjD}JoFXr -rD2*^O3?GBI0};N8JD(3;u)ZLDo)B8^GCK&#y+Hc+Tn=#R11%}hH`$U{F(-X5c*YDFl -Jc*qsSw1{R&3hkhN#ug40cl9t69U3$5&Ma*Z@ojexE4J9B9D%kF?oKf?V;+W=A(A;Rm=xPxX*##Vnt& -DGtcVkw>~oM0ZWn&m^0-*5D|6P93bjioW}-60Eg=}~{oLeoH9O&sxhB;UN|Yj5v`q98LkjlhIe%L!*L --wV$t;tL<>38d@>|KMVU&%8%O!`(;qE^0N*EA*hp^!WKv59BAl(5BPq#Q{bch(g`$R4N^>7+V1W(-RQLPtgI2~;D-#s2O9p6@QwsI33`e4T$)gr -RaN*lp8uy7d!rBiixPZP`BD~89w@lx(#pPGuDC>R>?en_lzp*zpVv~T^k7t!&1E7MHcrzWaxGt245Jx -#5L^u}OOan?-x2pWIFfJ${zIRh4w;w5K$XW4Cl+4J7S4PS>=UT)`Xt+VyKy6?@13CeJyohs=+_QQ5nM -bEtYULG^PI#y^PYh4g$l90dl?z0m+XYr?x~6o9n4d42=bDnaXD-50J{CpX90+1J|E^dQkIC@8?#B-ZC28ZX`bk*&PrO95>x -A2OwzvFngc8J>e&@btpVCzfp*=BN_GS#i|e2jyu61SLY1$bS9};x3yM|)ey7)3qF>+gXI#A)_feb16d -m@2_@9PhYqv7hw@&S*wsfEn+q}Nj?ePquC{jjooQkV-tW+US8dVh5m$_XrNJ`h&1L?P^bxCB$?dTmih%JKjMDG?!ymiy?Ux%Yz6CV9HA=!@p#8;<$T$CpwszkrPw17enOu=A)nwE -K7&U06ICB{21=oFvU3t0L$1HVU)H{D>0fZAiD -K1@-73&YV953s#dk*7WO5En^h*}(doE_e3!1<;|I0MTMK9CCIC~*Q0{ -=HlZgt$@5bIiT}2>CUzvd*HHI}+Cb?MnFoAiZeaH>&0*Pa_P@?%Z=*vwl4j2i>w)~%i$c{cVB#@mOxn(Yrd(PQ~;F#U -9s*sVQ@Z5ofkL;{m90vC=0TZgeLOk&_35wBz|`~|y}QogzI$he50QF!y>~T&tR6GN;XHpNHD(vzU$AwN%6vO#2erBQGd>x -OM`QN7D36ug?i7n&PuUNb&tF`?e}7{CmN`GNYknik7|7nswa9CcGF33O6YR&M+7&swE;j0(SAxAQ4td -IzglBLeD#l^FTvc*)PzBs=Do*^+-^A)cF`lRF^~VpNKfQbP<@3i+*Z2_VMw_bGvn -1IZ)S(hd!sNazDh2W-OhqJ_RHEWpJsO!8D_M)RvUjquS6Q*$!p!Y$QQNEXc6(4Vv$ypwxH~#Jbu5Lu` -6f$!HPQ;kR*G)6@KPv;} -#OT`9EFLSAqB&tQWnK9Jx3gsFS{K*YHX0oOcn-_ZQFYqddsJIiXhFHkA7(V>2kSTD~2T?PKmmlJXIje -<>sWHUg?=Ry(6b*6(u8Yw^@l7G~D70NPo#7bKq%w25pm&q$)CsB&VD%`NGw{INrm>qUiUK=Y6UaKL70 --k*ft9Tt<=NrcvuE!5T}>IHJwe=T11W&dwqS|eN%`Bz@yttJ@x6O9XP<$3PEMMCwHkkAD}grDQ53hCQ -6bS^p`ZQuxy`m57v`oiOFg9z)6;rk1aJ4Pgw3Id!HHeKpHUY~+Iu5QtdI8E+((#kdJtnQw~ -7&DqZ=EuufCfZ>oS5RCHO8 -33j7eG$Gip@V-qBS*dpMyk!HmrT=E0z$I}^nlfmLz&4hO1{43Tj5pY`mo-ieK><+#6b_JT#(F=MY1Mo -7(#hb?Rl0RO#x7nTI1@-4mD_xumbwrL9q&a4iDf3C*F1ic}uhW3QbkQsC%A+E_LAOIG7296~ZAdb28F -ffGwhlnO86wKv8K88tft5$4F$tN3JX_t#;(* -iP3h#C3ps-xr8-Y#ffk0+T?gz@D2|F)Fs08}6(W?Eug^k?Y(UA$}V0-S{tXT0(XOdq&UH9r%Pm7L1+| -x-CUEXbHdQ3q|w6<~s^Y&;Tky^`d;!L3pX&2bppzBMsR!|ZGI3pkjRkne5t}$Bl9p!bBg=NXcmZdTEh -7cA;3c_|Jn)Y8ec{noh0TgkWaRn^<7^*;}YAmR#e;&i50vQ|tQ1Y+^0=NrL59Bt -{Uxm@I*P&;bB+WLZMN#|zDN&Qr_$=DAV*(>FSCN{G7R?R3gECNg0YfBze^GrnNWPl*+SU1z4yqWghVM -51lNu7JiR&8s!7!jNH$?$hky!@5wUKtjUcQ;z8LGvq}6!F0JUKe!Nz~MoYTq%ix_o^3Kkr=Xv6NS!Ek -O@7qHs!1Y{CQo>eHJWD=!cOk{1LVic$`(`i4QYdQ6<5<7K_2I(riL+A&i9hhGMSG32F#pbSw?SH^DPdZb#zdf;3BP -Y!)myT4>Vurq|j}dD4R0#*t7^s@0?w8%@LP6&B#+j;J2EY)0Q;^+}`FV6Ks#RNTZfFc5t(a7$p=;d-S -KyvwrUUZl~c6IwK4v|+!w!paM6gHk1#(4HB@=D<=w9Bpm!{^JnM}o2nr&W&E8e)Lc3qO(FYAh0 -}WH*57rflzepUS>o08slAwj^?zX6O$HxDcU8~yP8XS}c!C-|A^Wbs=+0L-H{gHzSBBT-V4oiQ0x;i3A -jDyerm1PS-hqq@SY3E#YdHhY5gstmvO?wt%r7hQvMxAX}!|3>U1#`M{si~oBY@UX|)$Czq0J*N%bM{* -XSCOG?1daj!{di<)A?kdh0Hc9$&IrrG!WIxN;x)Imj~ZfyJr)O83?c*6N9Ol;aQu$f1dTln5g(Jt$+Q -jXG=#v>!a3=OC-I=q>QsyqxNK^p22l$$?`3ErwD|*$i&N7O$w>Sq_&o$&Cjg)a92PBC&6mCzQo=ModSSzHadL_?x?;3<GgGF!+f>KPAz1c3-vAyVM#1|fKGX5K}Gqn}43H`Os{Yj?;u5XZpC@KPnH2?V)=24Bnog+3i*LjYJ^8ou6&&bHs_kEQ1BTPOR -Yl!Z7N35`q^`EEZyfpvT(mu(u#+Vj>R~E7pkaz1x!axWi#xY3kjXr>}mx`|=JM_kIY#p^kOFIf^F#(M -uMb&X&HI2wdp~J-MnhzX|n%AOaV-?5HQT -`>8hcGju=k*0wRmT@g9Jb6#j!+w8ET+q_UJfUqbkdxgJTa3IgzH0Vb7bMp -*3B1tw1Z)ei+evT`Zbwtxvje0z4I{yZc!Jc4cm4Z*nhWX>)XJX<{#PV{&P5baO6nd96F`a@#nP|Me7zye -^UxiHeh%xmnjJvrb~yYS*z{u``>!B&VW8NMcNpTmrPL)Yd)9-Fw{Mdy;#T>u!J~KvJ?ZJIs`aB7sJuz -q`>qV8ic*Y@UWuvOH#mTnvB0C%uE-0ehWh+dNvXBy(ST?D?~!7en~-1N${ff-SoazC@W1!_K2QPXrH{ -OqpD9cD0qOG-222LT-Ybv$M2F!azpw3~qSN0$4ARc{D3z3cr>)=WCuwgmuk1JD04y7Ok^1m+aM6axuB=>7Q}BT*7|JpQ$MCa$epEnHO_e{o0D2g6YrGbrw -igzW`hp(Q?2-F8N$ed7_9lVE-OvXHm@cyqt@)$md*?Qx_3#R=+J|6qhetoOPM;Jb>*F*pdU#dwc`1Wx -gFCb?!L)1Uy!Q9&2A}3ZEA;n8kd+qGWoDcgE -+%KE*EcZ1ah%@Izud2525Spo*0_J0%`i&BFl!RA36gJ#1IB-SFz1!z~4aJGr$3ZB6bk -X?{{WKr*I^6vU(dOo>0oxVE-naVk-6CmZzoc}m@;(wPB$Ue!>{&(Ile{j6s_3L+& -tDEV~>D#OGlN$m67#{4fP;He4B_?eKR@}Pf{6G4bZ21B@hTwvK9cUCyC{;mCtT0#p_cV}Azy%A{i8@FH}u -%8Z#{(vpy|NBC}H)hOoQjoT*E4YbJP_~>SG_alFTnir`(T~Hpiv?6(JV?vFo -g9-VU#N#i!1<{qc>lOd3^&wlz`v`Awuq303JC%1x)iz1h{QhDVWmo4Q#x|A4D|Br9fz|W3A$N$Ci17X -9H$X6qsj%0Zo@K5OlzfJZoM}XLB<8o+Op#GYge|b9q9+T--Sn3@wqv4w>6Tu10}_G9Nb)!j*sf!sV*< -Q<{)-u#~1Wq1ykI^Nd6$jYG1YEXdJiGZ*C}NjKhr1p-Hapn<}JcZ_)eh5%dun&K~De_0_wJy|55^rmg -eMn1G2_ImReED^gVoq7wRoV)1^f$81#`$|+!m>LM-#T+6M21w0w9)Pebbrg)WUb)}u8IA(uRc&2ld>$ ->dsTaPrf|@gx95eypj#=8f7pX8#9*BD+a3x8m?J?5J -^R%>PG>U;N9>meY$BDVLJKBfFvO3@U%@2<+s)Z5LKY_M>hgN>!Efvm5T-$6=BC0YiA5uxr6Rg_JmkFf -{7Y~bIH=8Cq165hz)YL)ZDj6(JPII8K!S7Wy66g=5B}dBuQ70{_y*(j4WMZTg05z>*K5p+#59pG&D>H -V9olBEfoyxv_7-4X6Mq$5fw)3sGbX2HJ~AX4);s74=6ogWbHIeKn)T_6AY5IY45VFc+t>B0wFr6_nf!85Dpa*M`rU? -P6{Q!4SSactXLRw|6;6S=!!+Tz{JJ#AFJ3kww-XY!Gsh0hfZ%eeRLG9z1axjG6NcGN{Yz(>%xIX>v(7 -9sW>dLOx`m33w*gISZm#<*0}jI~0yZ($;*9kTP60V;0fwx_&&2P0MMj!K -+DkjIsAmKbzart?a6!$1?;Jt+3f};aq6uMsf<$_-LF*q;(nn0j>UgbcdTy9-Qn-oWJgO+mk@~;tZRD6 -r=h%Qby;O#x1Ct;}-v^@-|yMmho_8w!z9I`czAuBgY0{{IDa_w{@b}?}WR{E_SQ-WaFaZ_ypXGIi;Q| -;_K%pN!h304!dFEjRF>dPyHfO@B3kaqcOqOvOyQ6NsCx?68*fR^5#Qo-A-qWP+n37MuK^)LiOpHhic` -0YV_#u12G0&P+etE3n1D{zE`TE}OXWo$m6$wVNr(vhIGZ&LQMsB_0_KU?Cg(1d6VwxbpyyMxLI9*^+| -m(s-{oqJMLHBez?4X=ol@xoXVs~hZQ6(qM58vZ%R1EB3inup7r)4mv{r%{p>(ywJ7D@>r%=`mYLnH`T -to6W|Ll3@|A{g99T6ViFggGcDu(?X2&CPoJ_PnL4kA^iwQ0HoE@U#DLq2s-^VUyk(saE@i2AReLLAIT -^it%LchQ#{a1YA61r3OH;;hn%_;aC4)#kWH+)06yeJm%$hIANfvMUw7L -*#c{3$&#MIIi#Xqi023z7{91CXht!-%Yd`)O;@AC8_k>_~HeJEtB!|F`{wbKMyxeW*EBg6%ybRCF85{ -XFhK!ZSiSB!z{*al;acBE}$ZMm&0II_jsUU4dUS=TqYB;kX4$YpprM81obc^&Q8-)g0D;XkFI-!?Qm8 -`BQ%{JS-*FGOdlQ8qo+R8>Y0XtQrfCXBbiI*s+=P=%li#1*NO)Dw@zVGrVhzY}6A<_!I`vvjebzq5uu -0;@1W=oXy||g4BG -KJYtPlCV`t?rZ8++73KrCLPCuNQxe&?gzkqNHrQIvPnq0h@yzAITg}K7r-3{W`(|6aC%ZrCdu@?@{O(Bf$qhybfZl>`^>}?nlQnY{*_;zI}UoadY~HUB16DCUvqs0 -Z0g=Grfa_{8tzTaF*y5u@03|QjOtFFoUhJ6+|sFjvAV-v8s=ua{-Aa1OsL@6BL`XgQMr)`|Ko!jTXxl -LmV)QsL)3pU-ASNh~q8oZU})EPeddk_!$`RAgbBo@Whc2a%=+N2|KGxt^sl1zyJ9!=2mf -CV1PS6xtUzB*C$t#o0D^PetL6r`i@=y`Q+Udy9T1Ze|mKK$5T&5gNkI7?)>k6?}c~$_T;I~rF`3%-e!b1_*NPl> -sJdw((l{mOTWMbQtiiPL}$6K!JQIFvnu+VS@bwIJ(5*U_eA1g7l{yxit`lMI@9o4g|Rc%^NGf3(jmCFxzuOUW18u!Ed0T!(!7ilYz;)`?fP8Pcf60!K7SKPJeRg$=@71L&H$^}Y89z -TgOn*p*3~dNVXp}@L$^`~bNCZSxaG)B3RdeM(tLv(XsEd6hhCE+ivg>ctI0pZmLPRnrbhtx48%Y|s}r -r#`rD^ojbn*wCfZrSGqo%IW2bK|6F{wCRl!rw^E$00x+^`P3CKjdG1u5PZm0xhz4*pFjHC3fWQ^2QNvs^WHzz_%qre7EB<-aa`k}4SMR*fJ&Y}Xbgd -zG(IHVp$AAkMS~rhRv4+ZyOJxKi!)sllKUST&K(-LVP?F%Jo^jWwh$>O`-R%iE{BN;6uG4we8t%5Xy< -Xs$)(1}&jRqkVLOQe!2ZNX?F_zP*>E^}c@R911!b0E3_(wgz|lHR6DA`l>iRoka=c5cI6v#Xe@^rJdg -?{SOk$?zIk>K4!voD4#Pk8OW+Im7$Kx88H`_(LS=lYxn6D?Z5^KTUVjL4%gVY9E?rC)yEuM6vw5axzp -Y;Ug5%EKsjR{7w}S5Y?2jz9|owSsqmS@ -G_vzmJsQrCAs9SpkeYK^9RuKxfY;<5W)Y2$ngIW7bX$s7PZ{xO3#=q#UmdJ8~G3RYVBmb5P$Y93)fg;kQKS?))@+~-EuMHzYdcxs!3wZEvtIc)#2qdDCIZG>$*YX4? --kI8+lN4pBF;2F^cTYV@BK#m;~Q+y8``S`izGx1HEI2xX#kBlAAQ}V<3yiIHyUmUYDW^C3Z%%c)L*eX -ZVG^%RB6)2SpS&)omMx`-35z*SCG6c)sDrkutCGehRm%zwFRk6=<3!-%Q2LOGU3?aQf{|2eKzs!NI})s -GYaJn1#^pRDAOV21>CDr5!TpsG`&bB^6|!{87(W#`rvr^J-wv_;f_f>3L#xmfNCuD -wY{MOJ?m!+E%;!ap<%|XA;Ve)e3T&vHsA`>dNmAjvry#f>Q_Pc!MovC!*8_Eb*P}AkiU+!rvTd=c1l7 -U<9m^gSq2lV4imPL`p!PKU;kLX4u3ry+T$s`f6%NHQG9OQBAaht}a;stmSLhf5WZ@ypLNrjPkn1%FCz -Xs`Z@@Z*i0IM~B)ryvoMRt_^-YIQPu+T#RZr#2`ILXcmP%?*@LI&7i5)())OqUwzr1XpNg(`Xo)(#VL -~Xw4^_z;RAhvq%Iud`1;zTQ9H?^1y7==_#O>V+}Advd~gQ#*uTVSs%)s|7DF28l3wcqRumpXe&IwRp()eDTa@muwn_SfNYt9PBrk2R} -3$?R~h9MaB&p~G)~OgK}=+&Px-6C4~dd+q6s5|Q74FS=R^emqCFlBxsq7V;MRHcmZ@Hva!8`n-)))9i?MU~Dm2 -gLm=3}cks;F}tC1FRmF@53c&x3d_qOTC$U#T|UpNpDb=y0B6^QMvcf9;28Df_l+YvMn -YibBdc^u8AbsL~OAD_FO4g>9G3815;QBaGb^In~~W917V)hiw -f)mfo1HnWjkhP;VdM-4{Qfl?BGXc!=%M8H$4r^z2Z+6Avr(x -Aey3s;%oCSHXwgDci^KyHQs{2JZ8V6`7BK#V{>R{-;DEYM^G8g!r*6 -aYK-MU)0{PrzQ6@s4MBvM%rVJCDL3HR7Ulh&CfHE#pk5U55%H96sH1Dp~8gcC>j3E%>&v!;^Dm8uGqE -d|mzpEkK#`5=(<8XY@01=x!+)X3h+PgrTFEgE$mx+kDgP|RA@?kZKQ0#kn2QVzA1 -V!AG38D(*&cI+;GnS{Jil2fw7hCuF3eI{&vD+y|_9_&>lVY0aE+sWT54TEoy2Ku@6aWAK2mlUeH&U>G)&iHg0001b0RS5S003}la4%nWWo~3|axY|Qb98 -KJVlQ+vGA?C!W$e9wd=%ByI6V6+nIxOc0ttrS5rU#Yj4mi~32sa_L?yTwvrB{otq|8OwHRgqD}khwwV -4d7*lJs!r?gVE53PNkhqm&=AK)&F*`TNa5z|67wp8yrJQ_+!77{Y=Id^6^3EDn=zn{SR>|2D?NFpL@gRFz@&Gul5V^S}S=fxoP2uVpc>q`iCfe#7E-ufEUs$hy3>4c~pZ;lc0Z -J@nwCkA9cW`_}5b2I0}XM;^^9yQeDeJKtTkdQN6$dcI!9*54gn-_iNYnTfyUKfi6}5qN%3nKm;64xLJ9vh7-8A!E3cGXWk7>MBho7%MZ>P_DA9=`!hJOq{hhM#shv&o-dV{d9=Fu>D(5g8Ns~+SZgmIm%_k9lh{b@8D)a#t1fiZ_~!Hfp2O -xAEETxd?ix`u}!O#2FbX6}V&?$_X)a~f8!`7Qu{mZjl~Be~L9vl#1Xs{ybE|?i7#QqVRi6qx!iV(YCJzHyiifkc1h;QNdI>}P9K?m3ZgL<46Rm!On#1%s8M$) -M{x10rOsyjkttRt7t7%|#O~3RcY8t?rHeyXoqNYPR-%yh&QIlNBdhKeke9+Auw1noAFz%(K*+z2&Lj0 -sxF-lHzu!2#J2P+J+i!BHT%L)gT_vPryS}Z|4JKN*+{S@j9x(4m4?*RuCA~g<5jXmTMsK$Q85#^o@`( -6NurDU3_s(zza6$Z(IWeO7YC9nnUU)EEcII07BkfPH2IQhOD7Kbv8y< -Q`I_VxBxll)p;uDTtU{alhsHnqcFJ^DjY>^52!s2VshsJ!C~D!$_`P8R~)gI#BcVDjw9T@BpTSUh-%* -zV$*CC!tw#k3Hn*=bj7s-hggM!dW+|#%R~s0#~o!0@c<4@bkm<5??wZakgA}##GtuXRfOxssR5FiXSt -ieBGvXN_sKe{9yi)Ue#VVW|CLrCEo; -v>hLPjY+~}kbE$FwGDO!VN(^Ms^Ubel8CDuE}@TnD!$ht2TljQ2bLZ(fDjIN%Vm32q7akYB>`Kn-q^KS{$PMey^KuCg6N!ks}^-2J8vA -dwQ3yb(pZM;0k$BcRtq>arV+__pezgw`ZZd9ARhzfww<3EfMC{U>yq41nIeqgfoC3 -4jUsmUV#JOHKxw)32QR4Gw$@3Nfn7>aw>4wBrq!-8{YR+Fqv%Lb@pv((eqK|x}CGs@!Ct6~!mbiwzrX -_BpiQm%_4ZaV@Ihkl#{t8^f)toY@3xIPm$85LP3*_eYsysAG&9On6BPtYYDE7XJL%B5gY(9a$-MiEcW -MRW1^0A1P{B8yZn$OSm?M50Pzqo`XYQq@0EI+?$Ck}_2lLycc2k2dl-Bh)3uGS2jTYH^_h%#HT-G?q= -yCK@9@w%fheoJAP5RPUiJl08|Aup?-wqz%LAzv%p)qeM~(J(KInWouBAu-DLY1jnV}x01s-w!UvE -cQ?6yjc2*vUy$kJ!7r)gv7t16MvN(SOA>eaWKDQMa-7V0T;1jvrzEtsWE>Dn^Zv1HrQpd~BjApVy1GGjcyaf!mjY2^Vd80yM~2Uz8$zt|xTs2|Q~L)k`Um>LoVqVCU}k6sF+3r^?UzVwZ7V&80lf9LC$E3Jsc9y7eN -0fio9rNp2`9cmQAIXwYq}msv4ntPdO!E)*O(7MFWu+Uj5hq}XW6aYzXti%Wq{Bne7AUr&`gWJ;~H#9W -$kN-NRSVG3eSzcI+)#Ck{>HabaIy%b-EFMupWX;`IHs_wxyczv@tAZ1S#xhV~?QCLN;fo30#{RU9($i -&$s7|%yy*IfmImDOjn0aBe)fi_jC@r*qLT+Zr?81hGepOXhcq^pU@Dis3+7TEPTaxEnK$Ja@PG($g -9Nk2j{AQRAHV0o{XtE~!K?|7RZ3nRhpV{v$U>WgeVu!svflHD&B>mlAj97Pk-)X)<= -u?y=L4D$mFpoBuy;M$;_N0zCSlDfiOwz+R}V5Cl-HnkTIy_sM%LaZDfFmsu#;X~sm5;trV^4FP9uu%3F0TsE%dsJ1}E^qEMeOiB($2uN~ -2AaYCWWdvxn22}nN5Mr}~l|7_TMS;FY+?dS>B?X^w`^*k8Ueb^$#_!(%(>ssb*8^<12Um26&cNst8Xb -Z~QLVJ`W%VE=++OeK;Umg?Bxr7*$xUv!jbR|G_MQs-|29g`+FA?&Ny;sI5-#&4}Fvb-`M2qUwKY=bgzIsY}x)Jo_YOzU#`K=DAyt|H$>0CMvLM1Ym -SDY?8hvY*K-VIoJ59^Dc0;BuZ_2Sudr$L%R4#nIlFD!1>%6u%h+Cnq*)=Zod22MAOBW{)%v(@1nwg2g -{^SzW|_{8cPkvFyNT$!ZkCdEy~+^Tj6MV4J@157hyL4IsSop>W(Hn*&WC(8`y@&!>eyPm#?)K`PHW+I -ce+X_Rh)>~}O@TniaCy|>aHs*8|^N*Si9coU+Kw~!m*q0Ym)hz;2G2wq3K=;&#f-aPaG)V*P%{9Zvv_ -@YG&+m@0YWen52#L58Ut5MR$_B>Fme1PB)TuzKQfjaan;F+*+359JJ?-aKp4> -T48SU16Fm5suqNyqqLxVOKEm3@0t;LD_Jb^Vs_&=Jr8Zkh#dtzz*+?y=U(}~eAa%dZAHGd{}67 -#^5fgm#Y2Xh-{BiXV&HGqVude6Vs04gl?TFqWlf*p!)E$KnY0oFLOv^z!wETrzb}sc`#W!{Lqn -TQ7sYd`{e2w3PZ@)uneUeG8U*MWH!J*vaLfilD+G;7$I9Rx>hehNj-i$KdztTlmyVQOLB2cXb)1J)wQ+o6rMenIvDv6=;rcMig@osDu??x3r2HYEPiACiHV9DH$?YJj@ -snU(5-;N1y@+!+oL4VVNu(%O_?tZx`wL*Es>-i=-b4)!bjP3KAa{U9B2~s6?*Pj{ZV_d!$7y*X2Uoz@ -e?hpYl3h23R!TmBSpW1`E$|Y@JDW@W-S*?l`p=1RW5cb%vNX0B6}=7P$aXCFup`1xjxtAq`zmAHB!+4 -vM5RR;#D^GSft$%)z?3sdYffUODo@gGEyZSf)wS8Aw-gyzaI^k6h4|i!4gW9% -g+1Ms=Uu+GJHwK5#!PD4UHoK(16f2y4qku`!$Bvq5mUiu^b`$()ODyC+2T8d=B%)^7y~!G65IzsQxn{ -%UbR<*ikI&><@-H3h4W4-W%u*u(vIV|IVJ)e1u@HTKA#@T^>(E4g}=)TpZ$^=y!$TW~8{2ja_Mkp*-X -bFF{J)ndTW)nJt4j>bXm2d_hfSG@%lT_H|ZEM}PNHk%C#4UO@FPk^ys*ElFQ_QV1J<*4m#SRpp{GW@h -xabd9^cl>dEnjG#IdgZW^Dn~F7DLABL&~?YrwZSMy9In9)%K_Wa4-pnG?#Aal5SLEa5qL)Yo-*c-U^G+I?2#{`FmC08w`g_G;YA+D!Gt7 -A_i)Dml+94!F0-7nZ;En19CISVqJ8)Z26IMl@?;Y^WW<8Leyvia+agk0eUS~`a!85aK9-CE)Aj!h2a+ -Oas0qm`wk*uvVuzC~82@Lew{yGuv;Br!e&B3Nhmk_8yVr_;i -prkJeH;j*PzUfl@7TVF~37U4Psoq(X(GF@i6r-i#yOy-~lxSs+#^PBi=@~bh)7Tt+0syw3>)t(V%c*z -W8G(9Np!u+;+N!Hy|-1U0MOF7>t?p_$9i@O^yCK0uCKc2$X7r9sg1o$Jc)*H0fbs$l>K#)9p189u<%q -7Yclx+Qmpo?|mCiq%SC^lV6ztx6lJQ9J`)=D>lDp{D%Q)HIT>d-LYL -liLf6oc~K7%z%WbGUsAAzMALg0XV6-f?K;hC>f%%nU??Az}>bfFIV2MT}HA$S(kn$nBdC3JB)R;r88x -ncD&O5WpJs%(pQDX2wjy35D+W7~mbc0Nl|vSP<^-niQJh8eCbIWQf)(U{A1`ItGAbEW=IT#c3q78gS_ -Gk{c^aK+zgE);0Lzyn!fhSE!STYPjE7kQTd>F+n+YK~RlbLny9)j&)%NxsGC^ -NXB1vUaQW8I#7XB=yuk2=X6VTc*N9Q`5+|zVhx?m{1!*R0V0_4G&FHDjnu`VdT<@m<0NG+FWXY2>?1C -(pvT3(^Gn*nR=)z!VRm#DlSmxXvi*mNj7V1b%~lec4?pn}RKT5BQH`ncbStRhavYn=fGCFIGAU}a)W9 -ZFi${B*&jx>zR&IOqEpS@Eb(abgb2A3wcMXI_t6P^X(uMMc;R&rptEKPfyh18$g2h@+c8opeQYu`60#YeLAxw5z -~IakE9c~xHfDL=>&HNnO+Qf>G7my2q%fd&l2RlS(0(ZCy2GqNGMI|lg4Afn`wKV>Gt8g;N|;U(%ii|3 -4zKqR5N8Cs#9VW4HCJ_YD`NoCT} -2ufpx}d?W;&*)()2{)1Ia`SECPxRIoz3gsciEQw>=~hW8JW-1Zyu~bLw#0!&ch%+6b)F*g@6{vWN{-C -tHzV6~@BkMd1e~c`8*61snO)nxs7$OE_jl;cT+j9ml}>>*e{SRUY5WCMQFlp}J5mFh}7|vJ0!4KV7IL -KZlSsU%5}t_3D7WA>1v*ZDDEg<{^ZiAT|Qezlt>IxvnKX%$2K51yY-0KT46soW}LdC2=9w;4cEUu|P*Jmj8vKo8~CnwHSxtk^ -vWFv|E{27c@=me2Y%61$KZEziY?pjGT4J*9M|e`P6disR04T;-k%2TRmCx{mEeqW^Qo6-2)wBRNbHwV -o-r%Q!fEx;SLuE#i<-_!D-@a9*DU9=(^-^u3&~&jmbWrE|e~et0evHNaLU&snSoSX=twxS3v)tq-7<5F}Pn1*Y#RVISg)v?{ -f+BC#C1f5>Y&Xj(P}Fgh|6pKJf@K?xN-viwy*)Tg)6z77hHm`Pjblo~e_)d}dsvNz -GoflHpGk`VL=`~Bh=&ySBxsl{P)GA|6bzLUGU`2TJtL_0ED)rTw~&Q5Q1y`fpdhiG@{?J}5utI}KHC^ -*-1qS?s;_9?3qa>WhR5SKfZD$iq@Mki_oIkp!3!e11&QaD9Sb1bydPum!jJI9s~J>`YR!ch;k3A)hiB -IM59~*Zb`uD~JeDfYkXgBOKCu4D1Qo*?^6pGM!bTR;i0aiyo`Xc4O{Wm+pG2MkEwe_=;h`lve}-Eb|F -#My+8LZ^A3mf*vE^dv6a+*|m+P###fU_0wyPC+Z(*Q0uo?#Gv55j+V9WHNlNMQLP>p&5GJEkirw4zhoW}d-NAhL_ -uId~&J%{!SwJWgkKS}{J*J*cWtO9iAE;J+Q1xN{IN7`61kZH^O6Z*{y4xTHx**GrRvJ7FK{c -lp2fztM08*b@g~(;poEAJqedC-Hf=zfvUW@=B)&b082;;-DwF7pynzIQW!&>%^Tt^9GKVF3*0|piso8QLUi!)EwABKr@#@eWwHTn#-Ef$s9_6^=GBAhn=sU_Ud*rDL}O ->BRSza&rs;XcG{1w}bqcqiD*j!(*?vSZW^^Uh3@&h*>d8F}*YW}$wdAeT#-(T>ANQL)zQZu+@l>RC5ZB#q2i^STf^XwQ!j0FUd3RARza019P=u=ZHKJW836@_ -LuLvbsIwa~fT)JR`@U0m?)E`D8pYHaU}SDw} -@?O8XMu3!GjQWYzXaw^9X`#tGw~0&@9pP>{A0J$bh>DG7-Cwp!K&yP*bYB?|Q8n;)hdyr9%cD_Lopv~ -sd|k4;T1KN(2TQ6j=rjK~x%;tk1_98{Q{*}!9Ufl_0DBQ`bVT3Ce#R6ezeEO-F-6<$Jq#rPKo17{%Mh -t*cN4JIySV;W})1`020{F-tnDbNkCQt&kXKG%i6+fU%{o=*Hda1_t4w>}rAkKkGQ*xo@Ofy4CiQiwkO -^9^|X?CC(yWn|#yV5M0K;;DC()`!ef3J^@Yb5IJN!2nQ75ZfhJ+8~Cun-R0zkzi2y=u>Kyr3Ye$IZzOL~f!yjD#YpRP@qJ!4Jpp-EyE0^|RlBd;M*44P&QW -{FjsHkg+ZsxajQxni{O&dw3w~UQc=3jYbHR%L5igF}kmb)@1_Ne(_u1(MAV=bWz}Ul@)wovr7o3N@_i~^_K-K=DHYaf`}T={zHLQLW|cY*FE`0$`8H`yz -AXrU1>IF1FQu8AT!Z$v+|p_Snl&&{odP9SJm~6KwG;D2_+Nf`<&)_jT6J*2djxxH7GBKrHn|GXT^a -ber51ZnE%V=#ZP7j%bo=NwFgDyI0&ZM@<#-#f=Ug6&_?H$MY1a{ccHTOUQ?sW@cDAe=q5ikpibTKAo9;X1MSr>L>;c|LrS4^|_?!~I-Nu7>sbUNr~f#ltL+FvO5&4fG(VXq -lBC>(h|(f!slUtVPR}apa3vwCemPqg(aYPv}{wT){#IuZNs?KTIvEvT`l=KtM0{9Z~{Gu?a|)c+Kj*d ->agPw!An$xB6c9(xtxLjwB5vuFsX_v#X?;I#m?P%UFP(ZJ!{owTeSSyaURZD_$Dn&5pmXpA($BKDgo! -HaP=YEIwgogrhzK_M#NDu6l-f6~`D~UV#^7_o}B+cE(+KKxPDrHTRd8Qy^wP!tr*fkA)7|JBS5(S1tQ -;)wNc2tqso{7V7)`6b8B>8TaF -pSIXMiBQ(cWx4Wu4{bXENf&qqC8KXb3ov%twLB?te5VW{?AEw9OE?_H|$`PpR8kX}B^BsCik`T1PbR6 -1Ad_h>ee>3;>VP@bcQDzF?GOW&RF{(wE?)K)-!_g`32LN6~b_o^QPkH4=!&7 -`jj{?F(}Un`SXEO5Ge{nLF5Wr~+R7so}W!ekt$*sLF^i||EClSv~L00=K$?(f -MOwly^VdIhB9&(1Y`a#k(l^fM8fhj3nD0pnz%p*>a;o>E -uwJ})y)avhnzezDw+u=Luq^?Vll;Ra_R~R$EkoU(w)NYgbZ*~~U>Vz~wLMmhz%OCXnAlB;g0C4}aIaq -Q7+NsJLd-&o?7gB$e2;y>YMqbY$$Q1Pk1rSFYxrEyM7Y5FY@$;Pgkm8UD_ponxXN^1j|S4##w@mzO?1 -N+`$;mK7n5o6z*KJ$rqzp^jdO)uvE8g^Z%Srgg<0Zu4d!MI<|Tx|({LTeNnuuTEw|FZBV5ZI8u%{PGL -r@bP#2+*4*;Zfmck -(BT@Ac`9JV+$f&;1l4gVmL2KNem0pC|m2fQ=|jI1h=E<0o@Llw)aq)!>Pape+V&AIt0jxV`t&DpAuyu -Vl2?X4C4@0uHiHxRgahH>;(x+u;8ie79fK@3Y9m48n8;PrQeKapF+lt?i*0u#Ypj`vlJ(L@Fj4Hd&&m -gX-jDVAw2~`8vEe(hL*aCYn9Gk4dvx3ZGI7*&zm}9r|^~`0W@EL_5)I=fL{Q5Xdkd^MABS_2&eDD+~jZkayX14poh>h9m7#6r{Ex+Mqs{^UDNXfW0$ZA0;B}!QxZF#RbK|)Tgigc6;XheS)=N{McAKJN;*DOZa*ax^Kj;|LFAne0Jtwx< -xsa{${!<$nyrqN7k8zs@rx5|5HOnWV!kda3x+fns|6}^XJHf`6>Do6teXqtJHb|7o~)`b^jcBXdda5{!0L$6lj#1RYEiDO2v(j`v2DuPDW)JIp*3rXav&JMf(qKp_2wZLr3^ -@-Y>QtBM3ySIH_b2P?^EgYl_|w(T&kTZREjCvJCmHVTKe$(R?_dT7w0p4su(f`P6>Z6py_xY8A}ik;A -{e{@4|^f+px>Y7yKGA#+&^&C|SD<@GMYLb{Y9>e_lME3E!3}Ll2zV{Gd#ij8Tj@!GV!ed);>vORaYCIIxwD?B;xR&x;hbw0X2TG7IW59YBDZz^N^ -}l{sRNR;7hWnn1Y8u6KyPUhmM?Q1)i;l_(PrAo~GrU)_TN(*FUjb~LU=)+E -e*K(tf}1^T&Be(nX@Ai8FD#J&wJC&r$np!?ESFl7(CLKlEB7n0$TQm@8*aet!@H#purh8rB)e&cj9&n -|Q_?eI6_b|MS*HlX@kmAq6Ulrwd95u -VU6Oai^R-dC6Y|uTEUy_p~!x;z>Mr4OMlVsGqQgShGi8L-5#okqTS?Vubb?+7E9*#b;x09vl$hq&DQX -zwv2Fav+d=VUw)OzFQH}#<&z8EdlNIZWgA*;&U=LZ;FD9}^&mszScqF9^slT-s6LY|qjuN4KsuLjVOV -cgb6$Wh(@TB0Tn^H%wYE^RK&K2UL5vt%Lc&QHuJveX3YnljH`I-wZnUc-6IbH4X%)mn>}8xRiDWNisv_^wiBqNn42}fw(Q{%1+ -C_o#5pP>vSWREpz-KirPMKnB+iJmLl`(x`BcFp&c^Cx+wQfy8gej@5KcfNc>zm5G8X94}fnt84;^F#r -G%P=dzrmI)Og41}@6QtlCTvJ=TAVe-7F?RAWQvz2Y_Q^MUT|r5t4%SrGfau&{f73$Cf=#{kjC+z815I -(`X87x&!dtN-$C!GFIo%B@0K+Tf0ew!2gJ$x^T=<|wn%O#P5_ShGs)x$xD&d1kO2@$IOCW{FT39o=;J -4P)SO)!>2l3ONF{u#huqkSySWG?E%M0}8nOZCivT+6l<+B8I0F^@<*H#DfU~wL7#Y0t_$??#nv#!N|I -m;yHEO{ivT8MFHxx9#c93`Jmmie{;?QMb>`0K`0*G=-92ykH;x>@eJe;T;#=NPrD^7Vrd-A%)*}PF(! -B%=GOIE4WvZqhNV{9Qyj*!;|(XJC85%5|>~RxAKG5s&J8+Zv3A41$T2xKACvna+HGT<2et=wG_^K_ -dWY0mviB`ctG*Yp~Q7l;%P~_t(oe)k}q97* -E9S63)rz$ww$My@FR+7n`P-osRJOJ}iDSuH$IR5GJWC4Wu12l7v)kj8H4L`sa2|C6_d1%)p?f2s --8errTjamU4)E70;PqO2`A}UlM0fyG-&5wNjH@-FOa#10)Nl)%CvQEEyx0`--)B;wGu@;=y^ -HuSzb)nW28vSH9NB1-?K5)Pl3qzyS@Uvu$zi!DlDw2!2$WoG6uobhox|_kX>5m{TA{KAOO=4lJ|1$C5)v%}qBMfw9( -2X-Z@;t;8UIFx~C*>dPW~fb%$&D}jN4~r=@+CC<5?twyx>(fYo1cj11CIGL*`%k5PYj~8P-;%RM{H^( -D?kD0NyCCgLhSH$C2R&>R2Crtn}*2x|EyVc%c(nq1fB#|eiFAM@QQwf|8DVo(3W_g{3JFFBI=5Ah5O| -v_iJxg!P_`D+3+?D<6g`~Cagf=PJZ&0Q2?G{fTx!ufVvmUBMXP)?Qi1*ke>``8OtD}Q-1O=yxo9P*-g -d*fczvLS-*+OUqRGO)FT+xslS~&f`wsz^4Sq;nQ*0Bq<~c8L+r5}X4jiGzp_`LP+@ -c|IjGPLM$bd!w)&3NLidGKtW93EW;pk?J7NZoWQ4eXr*HL4PCRPs3G-9qtE_C$sv%J!L;>W2DYv3dg` -4YDc7BV%s2yVMxTLjn9oBh!`+z4Gs@7-)ezVjb{gPD>`4K}p}xO^>0Zku5No=glFy>^Yh3g@%hD*W2t -a22+aACJ*lfI1H?(Zu#O9#W%f?B>jZtTH?z#q8AUcC -WGEHMmo67qd}_kDn{T3t;GF|hs1}dVSi31;%13il~R;653xic*4_s-9ff%G1c4QkEhusHP&%-Y$tjc$ ->LPeC0nxbXuaHVFZMDR4g(=TR<=Rd5wDr9Z76xk(Wm1UPj4nWdykO3A``VdV#WR-z -I$SbmG9B^sS{YW!j66zR)2(DHbCHBhSNWu@k2OKVB>@qb6>dVsQlxpg~;z4xCxEh#fc^q83_om6MSub -?nrp5KhRQ`pn^4!YDn`X$b5bg+R(%U&7lW^Dw(S59hIZQiIVOt5KWYSZ!+Rjiq&v&oby5^N?JO^ymv! -JN44kkJQeciCJBipy!{lNqR0EP0t@uTAqZoJbUm;T1Hn8sZ^e`hw4^poReBNh-b6WqJeAq0bL`}_fO? -n(s~#v_^iAn+kVRNj*tV)HCXXxy?AlL26Me;zNy?z%^~~-Y7j9MWvl3W$Z$hw8&Sj0mY+IG1zod2$qQ -Bw-s?96tJ!!8E4C=J|mqFUW -74TCd#~tnKI5`!HF#;QpnjJ$8=fvV?v7VK6{3IWS$Sl1ktDm7}2RRr^jmPtR%vb>U=wlG{S#mL5X9qw -DMV1y6z+2G#VP_Kr+g!F^q8+H%Xa%|a1xn_vc&UeOEQ2J}CDnEYPVqiuHO6C6tUKXmiVm2}jqNG&y1FbxaN)%C4ds?s*xw`l)ET^_pa&^&C<=Rf=<*4h-Ccr^+$f?y_EuVZ_@#~hXJ}NfX0vV@bstA#t7F%X|Iv10XpzV4~c~wK*<2odAt}pf -Gc{0#DFXk#(J93*MARDv)Tl3BcJEp}8fx1C!SWjPy -FsG~ZDupvprYO623MiTgzNp2GQdqL5*n(5eONulJBByadfIWRG%3!Fztwv5UULP(Z;StK8%dEA)$Z!U -5kK5P1-r<$+~ug?^P#cuC!ZU52=^$+%~HwmbvlTMHSyc>m>nz4QHw~mJ7{ChL!2qVYTWbf%TR7zs5gs+COLKXqDY2Ocs1j=;hgWE*=X2m? --wF-w({!{8<9GII#MtYK&p6+edW!0n!&yaT7s!!dlgWK?&ZYQ-|n#aShh`YDk(Az* ->Nwv0k2Hag>(g8O7g;RwWZ;1U}ayJ6*2&2-5PR><$m$AX>v3iw}d}SG0oMC>M^sFBD)6LnAUPLy)PLo -weV5y3RbYkd -&TPMx9h)1~~doA=P+h(7Mlp-w@<3<5XaVlwI+$5MG$bPL&{A_5Cl8#_eJZ4i%#Q_ty)rS^Tbj;P9)6@ -mo%H?%OB4|d?r!96~dmpl?Z3mI3)PPKOZINX^(BJxLKv%TH>;!^?oc+YZ{bj`&Uampqpyge0jLU@*ja%g$A=Ap -FLyJZut65E2YM6M=@UUZM;wJrU9)2Al;siuoY!TD?4|Kp3~a@H#^EC8W<^K7r%Lw=D(4XRc@kTAyKAYV) -9aZc>MjP_WmXy7cqqppOEV!aurL!BI1KEmt^lp)ZU@E%@`a-)ZAQmHJ+QzOP{czMeS)nF=tU6w+^d`Llga#O17$fJ?kBEj6Bo&fHj7k=_TzU*)q@FK$` -#hWu*lz7RLu%w+~h7*NBUGix-y}tkrlG>6adEKMmU -=1(`yh(PQCcpkr8wot?tHA)8k7*jKz3tUv8+^HA4p;D@Iv1VIF~lKXew -`(qsn*ux#ZtbQ3SDeK;Ve-!SLCe;`XPLWsEj)ilzz$6c^qE9)zpBq;VfAlzWqzV6rJ0(n1B)&u{G;p? -)SN!!;*x2-3-QYSO+5T?hrWo{0KKv<8&K4Mh!KRMy(SZ= -Yfhpgnt_vjB8Ap7B32>P-UezsKRUumvh#Sa#q$TS-M`Y7CSgP(djIvbasHJM_iiPSwFjN(e -C)<;&wdbE0s{V!mM*-z~<@Z+UA^DdjFzspNlv3p3$0)`ERp -~Y>75yAig6YJOXrtWNV*FODTFK;Ca_a*N1W}?@U<3*a7n(869`H?}FTXD7UaxG1CAB&Y21}h9wmb@gl -AbzK`#OxT@JjF{Lp3J^KVYshUiXC}SD-!$Ta-~(gh@KxVqUVRO*gZ`?7QSSm4jrBw<KRCKrmi -f!{|Y7;HwU^hmaO531sS?Urqx7Sc2WhvQIyzI7#AzK=Z46NUPtzj-VS+1rmz(2H1a-Ef`&j3M8BFjNK -5%U=0d@o6kK#GkPhN(gykegTs6(k#`k(=JbDN3$N0+QF>)tKTE3tHbo*SzR0LF=8I3UYDV;zBbB;6gU -(eV1nb)4Peximw^31Z>%`M5^s|e4yQ;gcX_#T!#J?)mr&^ZDob|#!zRx)iuN&3|08eHT;AMAxl2g--% -N~{L7G3ZIf%Q=*;+gTC6aEv}rZ1eK$!6;~=QqA|E&07CupIROQ=Cc`zMEKgNI -4C%Ix-$L;|^G2m*6L>p|hM+mNg6c_I+8iWzO_oUx~Rwj_}`WyVKHiF`aLqn+b{S2TiTuvzr>#bpF+LQ>L8SR;jiwPO&I69ko56D`CP5FixuG@# -d?C=&dUnZ3g&KXb?KO`+hlItICm6wZ1#ClSakTW`M@akpfo_4ghqL3v@Ettr$EAxw|c+<;cdA(%6$!m -~nD@k0_iNH*XmSl{aMF&F#%_Hoe+C8@C5Z+c<9T+uT73Ujs*kO!C*ak)F^wmh!z4M~7fGbtz7n>npnn -x-_%2^}d@dpzm!;Ya1tXt@mZkEJc+s@pesVL6&)YyvWfnw!Zw8epC4UZ6P|Algz>nw05E+A9QzBeXnPx&hQ5l4i3E^G=xLDJ&!g-ScnL`J>%&xw -K>)c}ssml%-6A8`U*%;d+^OBv{MGH&P&CjbRm=OCD{Dw)b9-vQ48jF*^D}s7} -10GKcbT5luD`-R5GhxY>cP#zxQV@tCvhjDRHC}3|xf3OgXi^EajSX<$9!?R1G*lNoR;&A9#==Sc^~73 -W4?~2xuY_&;*#%e3rQ{1qmq2sHD})j0OgS0xT`|LljkM`}~$VM?0+ef9^&^ -Dues5YQ@Mj>g=Vqaz_)8Iw_LVKAt$V+3-w}VbR=&J?5iRN9!eZKrJ`3F1Fs8VRpf^k6CN~_tH_tpWZi -vHS`KV172`5r)N9wDYeNN -!guD90QR(r&{T4{at((r?#x3!_PQU$Yn*Lt$SB*mYT?5KGd1L;T)9ep%8gQNAzViZ)?^)ZnE_Ps%4sPn-Wn|5tU7q;Y -nD~vq-9l&6xa$m9O0y8RrO{kBL)#|fZJAzVT!js6rX!2CihSb??Ft)VrW-&@X!@@RTUMwUDeyvKnda5 -*uiAj9Q%DTY>54e+Erl~$uahmWRfu^L%8Wu!mf&1Dx<**w#6~T1=kFh*iQ|iWA{@dC=8+z)WNqkBPg1 -5JL)ofuxGKkda>7xE|%!U=Fnm(4q|DvKypQaw3IJdEagtVy6KXSFKfEAhRMOEQH%k3vLmnHa%fLYpRG*&)byDyB1&;*eS%#8pKNop`tC72C)PoR& -g!m_QxSEb_Fn}}6&FwwpCf5{F{i`j2bXUVqmxDO(f -|TA!?jTU9sZ^^Ljf-~Ub-0lbeRy5(V5&wcXnnPpTG1>^SYN#c1J5s})>l9}`S8b9RB(ZpLA-7{lot)O -Ue<2fYjhv;P(v#0u4YK}b7mCApJqlT3+cm2G96XW`vl9Yx;d2wXv4k_Qv%xIb1g#&iz>~upqtt|bW=O -}!+L{aM-#?T(?L9ic5f*Nb1m3AY`=m=Nwm~&sE98_OAhT)uN|TtWJg0NtXGI%NpFK=~_@4_eFM6K{(t -eql`0rH6%wv?w}G-Xa=CqZxcQQ@%nCsfuM*iD -~!!uQ-3>&7HN~_VR0AgRDAedvcDHV2glqnVFqNY@|xKXB5O$V@@NlU5(z}GCP=y+nL;IKE{(HK(%mca1xV)>Mfe>T_y@HPvYHNElO5s?&|BM$(0DOhuQ}pm1JWWK_zaMp{x~w ->3+u{_Ay1DvdOfmQ;uc&63J>o|;i5=9EM;OMB>a{}wf)datRdkoT&T1IYBZ-B9RMZoji0;;DVq5#f9R -CBb8HW!4CL(qZnWq~6&yAEZSm{o;d0uCylc0M0`|IQksWrW@jL9*hH??4)U9b%Qby&o}kA0>z3)9AmV -%JZ%K&1uwd47tn$WbP4VSTB22$DaVy5BNv$6dH0YXQp+cNQ>l&6Cn`m)d;ldpc{>HBl>nQii&AJ&g1X -SGYK|5(L*WOo9%X`7wEWKQ!h6WPD+>RscmNqCqm2(Q1VWo1llN$-_~~V8eWV64;P$7`??DB&;fvUAB) -?m(Gk4*ZA{xujQTJ@SvZXW+ZRP}Mrg#9$VrpuHUnw(0Dh{g3L@fhM@NU{S3aylDrd9aDY`R(R6n~xGs -jp#eMeh|@6AvIKqLx({AlrYAmQ^&aMy4x#o2iwG0WBeZoE+RrTaNRktuxke;Tr{KjZr6WB8Weuwo_jT -PUg#XPG&0aWH!NH2mE~ie-j}7&h^fbE+Bqft!+;VHnRA&5lW;|>4i9YpzBt1;)(NV+$TpR7Uf+$t#Xq -EctnXACeb}V-6y@KN(Rw4YTo7K$>}asU~hYEgaWI)s;QKnuZ~n;pS@CnJ* -Ti`-VoSr}qq(?0xkgs;7}x6Y6Pwby7WD+E;3IdgLBC6|^ZnQ+xt+&s5oEHKZt|;gZKsn^D{Ry8HRBvPh1{v=6Lzoa9n -Nji#{p#P@fe0MtHG!d4v~>UySx*u?=(3*I0l$n*g<_KsJdHb7FA1r~xP^)sJ*yK~0wLqq<<12ht9ASnrcYyh3pB2=o9NDntO{!!?l0GZw(96pQH8X -pz_hWe@yyj<^I35~_gQf|p_YAuJ}W>adk))8Qn?oVN+6<1b6SA}In -rrG=LoJe+G)irnyoZG{+ZK?cc+bTT7fh9e|1_hJSYAorxgkM(4AIv4t%52ir1%(a$4~>s&2pgHK!GyU -)G#fJc{~S{*_KEKyt)-zcs>Pg(ulq7)7#Rs-~fBq#D|l9xF^qj}@jUWooq9{UbeAVEO4uD$+Ew=h0mC -W4SagR}IEK#M8~Oz&#!oyd!)R-0kSt%<4V~I+`zPUMhmW)6}Z>{)on}STv|ry9U0&OGSK?mkN`vRz(t -CDoT@HD(Ijmyi^?0Jyg){kMdCA9jR7rPk5;KYeKC`dZ?hqd9UzLfel5y>eNVx5qj0_qdZhB(&no-Hem -?6(@S{)z1tLV#wd5(^?6m?B^DlX=s2lcLQT5GUD;7}3_ -jRuoi3zTx-9x=rq?p2>hMm9CX$4NG{}ZPbrw0;FD{!GsIIS4=AeL}ifs4|x2ZrK5eBEgU=1DlMI5BXg -(~2KlNDS|lPAjmM(M~Hq`Tf_OR#3+FO-?IDFybqnR=6kr1E&?Vd79ITb-(|=JYs#X{vcRYj39gVAzshBC#Spm|By-x~gvS>SyQD^M23n+u4ya1v*^?i}b1q>IyQQW -=4Q$^0xsBH!BWLAhyW<|4;c?$kw@Hg-KPNoF@egJ=)MQ8Fma(L|uXfxFwilrFn1wuxcNKX7VDQ0hgp! -OlT&lq$mj-Lhrh~E!GR3{uJAz+q>)_ww_H}am!UczvTdO>1UhOm3@OJ0Y#kz%$Fqs&Ct9=PcYtOJze^jxF -p&?8e{sLXym7k#F0(f6Q$Ibqilf7F0a-!!g^vD>$KKIE%j3^Rp>$6F47_{(ZdfK-Vw4?t=K2JA$^ylg -5R~?7H)ahc6#Ve8@=RzA~bSaLPg$LynH2ihT#ds)>U(j+_RjD80Rrv^C;y1dqk|Aps0wknUsZ -2G7+`wW2SMp`6K1g{n{CXYPX8SdVXywtCwim1sCJO=!|zxxdzWf_!=6`!SzY`OS;G%rP3nE&x4RU6N8L6gNa(2l6K`a%U9M#RQgQ>vXMezknT#HNtl%k?4ouw -9yNzKN54^f#BmPKe(NIjMOi%k{Am#@#Pw%SRY7}jnGu$sjAMyA?wOEx5cf5rE0@Uv -=-$R5l{r;AF2i@2hG6-pXO-O~U8Tl>`X@FfKhlwi -5_kY`HuyHca}O={Z93e8MF<*iFQBb -HtN+BV8ZrB`gDSgXi~`nO^fj@X7P{)TOnt-BK2CO4Li`hEkwi^osh#qtx?^(>KPRc)@f_7C8#hZ-pbo -rjj2M@%!BX`WBL*IqAfw3&o_*_mCOXZg_tKBxF0<9yyASjflIsh^)iX2y5TGfv$feZp~p -hx|68ne=ikH{)WzWCid>IqWU6!BP;i24BVNy^d(ZSIuD>3a>M3pJ}BMh?@-@r>y(}_WF`Vu!;|`co`^ -mhDI1PV>@6}RdU?}(vk;20TC~?{-*zt8F}-n;-?rUB&0>lSK*y^Wpn -Yi#CtQoKU(}u;vL6VsVn|b;vGMyrYtEACf@NHqO!2~>BKu;R#N5^|1k01hVN60_Zao}Aiif6zk=_n@Q -zn+)b*?Uta`jg+Pq3h#SSjTm%0a*)9bgjNe2-Ya_oSLtmaIT)#M@#A}?Q{F`8zyl@IbM2Glu)FDRD@z -e}fMjZ}<05-9#1t%NGY?jdf-(1Z+T88R3{75UM-l)<2RTB%fXD=qq^p?t%wkmtbBc;lJm#eK&ywrr>X5!Ou_PJQIG!EEx)57Tjely55_=oA --v!Qal6T3i7g>{5&OKCOUAyr%3rgD2D?s78jPR)9AoSKSTeIQ>{TH8`om$lVU4i!LkEvNXK>G!IB-87 -KLTbc&agkL~O=Jq>O2B#o&lWU1FsJt)8{ON*O?ol$)wJ>x8Istt+7K250?47i7xp2SaWEoEh81E5ei}rY$HPd&(uzB^^K%80Bn-;cgLsv!sw&v -nOVaTp94@pDDu!BbUw0SYOuMMAyF-qLKQ{)=oFm+Di<`8gyNsS1$9eubJ-cbh>%jt!Tuu~Fu@gTVBGF -HX*h7j*yRJT>>4~MQ%iibsSo>g5eUV*Xx(fBBt5E3i%Ec^x+rZ-~h4L+Kyzz -`bg5b(|7ymG{jhpE+ND9axGAD`RFL!l(6j?!+&MD62h)Lp3KC@gWS_g}9oN4PkqaX3vgK8-1tW+RU*c -oU7OF>aq7Y`i0bk_dv;tEpT42%I%qB7BNh?+m_KIQQz(TC#88<3pI=oXRgHyS&1gj1p?}G*_u3Zk5qf -QwRT9VjYnNaHEWYjK254U(e6@hN_y0Fg5Hv-RfDe6Zql_#`yxZ&;}nM3kGm@YmreM;*n1a%sH*LMd=C -sTDms{2_)1h%3ZJ0{j^-esK#(X3nh!)71VW%;2DK}K4wU1F>8)GZk -!_=G{r>se|`2jXE-2`b-Um1@Av=R18ep^`?=QMYwx}G)wByp@b?Py-`RgFKR(&PTJYJ~oO1M!+gJc;cdq!5{Zm#xpPQKuZ>X_v> -HMqidC&BFm-3k00lG*-z*yIbM`JSo1byw6GoC&V(L>8fj#Fs2$4(#ciK_jZ)Ta+;Cz5PubBTp8Z-%J% -nA+{iDB!N^-w~WI4+cs$wqh#y@c16j`OeT>CcH4ug%5=6qODq>KGZE1#7R9|j;+?MH&25=oQ%~xC -^;diY_1a&78MXJSbUhF`p?)7~kNnj%p!s0UUxk{46N(gi(f$u9<*%R{cOX=+lRqwv=kAY7aK98kP0{%W!1YV@*rZZEo6QEV*PNZdmO=A}z;YZ*)>VP__=#uUzJkrJ9!L@7cMEHChE`P^ZY1 -=MN=MR@Uek;O~%chG_obnH%{NG0teN)`8kx{sComJ3<)l1O>Q35dirHb<29DNtb=Mt!o%z=JY_6>T0UDXI)>gA -qtLEpyc5X_%-a -YRow&y03ON7R1{~2iUpiD+im-jg~L}vl`n2gmBx~lSf%tVi#mmJJhopcHDgJEIFamO%ObuomSRb0N#U -upZ@OraoTIEQi!loAkyA7Im?5>+Fc5|sjDEq##OW~UvY+1zLB;pQWv<~a7X;L;*&*#4b6qXhY)@hRet3seTu&+ -YW-nx;Z?TGVDBk<^R9>`pHNjI%CYpthJXe=$zsuyEO0klwJ*u?L{~zr(+52aj{EaY=&GnkaUbx1;R(* -0&4+r1;gUZt(yLmJ<*ebZk2F+>9>l3{M^a4HX;#6>bc+v<$GP+Q|E8GgsTB}**i -#Wo=|)Ff36h^FjJ}TC!x5|AVS!_3M=epqXyTpPZ1Wpk8~|J+dgy_)@i@n0}r}(O4DnVn~hIswL`h6-` -qt)AdM(tPY69xlz&*^DO*rj;R(59-IoU|^wd+lrT*$bp~^#h3y##2Yrhs0%0u)*$pQp&0~Uok8Mo=6@ -V0Hb$-{1d#>DL&)!&h$aa-%)iWv>=kD(~arFc4 -q~~tqw(yRLNycsWdxw0STo!4-o!(ttg}$z6U(;o4E7uf*=NG0c*4ASj@` -3cjv69f@BGfGlu#Lb816ANO0ed&eG-I^L2Ry>11qE+muMi+sn^ -?S?%0tpp%J&_g?zjOHwBgp%5h1a5**r48b<*B^6e&*(V=IAt~ZPG`NzjFHbYIc@qH|Jh^u0v>q2%*_J -!g;7C%=)&_q{4;6$k-`lua->#k$LB{PwMev=cZpv>zV-z`I3MW9|T8wwSKyJc{z47ZJNEDG$;ZQdqZV -E=*vWkU;GzMGwKfxfs_X3=IE8g7yAm5JPJkYbo(Nx_i24QMOWDi_Oyl&87G`;vuv;9&Q2P4IP1^bMO} -uzLy8DibHXT{D2h&?NL^ql8@7C3 -MlOFSgAPUDJguFSL^cY1}aN7_pDgs8u~9gohQ@EFR47(J#2k<-I&^)P-dRS3BiX%yv|Sqb?*RNWWAnU -u4*Jk24k4EIOD@byOYT7^}awpslMN7LuJhhqp&{Tjg5 -49vlUtl!ZTOrCn})`jc|^Xf*EVB@0|t_n0L(OxRR^|rv}I!6T*%-$nA*w2cKj>?`3)EF+^Tm0I!#hwQ -pH9Tayqk?2@oo*#ciAk(AjwK&>sec~tK&3+KosxT3Nw{F>W#)orU&Z0=nV`Q{y(O?L -{L;b-#;y%pMl4J5UB;fi8INI7N;%3j7d^Tl39*p!a;TjfCB#@E|XD6RHjXg=GEiZZ_LoghKar8vw`h) -s}XkYXH{b&LCi#rrJ^2>Cc{1`SW!CsGAZNXlx(^Yrp3bEV}Jni^repGicq287PkQSV!f7s||7k}i5Vv -5Qf4FNUZ#kEq}EX_3Jym`U_-BByeEv`0y2=^Ex{EFFQpvbPj%Q}vq-pURsJ^{r3nYpaot6yUT5jTG@U -E+;-p#I5vwFc)pG!Lp~)ouWZ#jl!L-_2WYly301@_8_Vh+_L2x^6{l}t|RCn$*gfzUP>eP-L9Q5Jr7l -nBl~o6!Dmkt=1|q4V~2h?bfnE5`-MyAT{RS{BZZ*O^wM{phpg>P6mGu3YBW*Uf>!qglSkJ{fgMARkCLQG6=tDy%hKSv*FA{BR&|s+fP -Xl<+=bUT3;u%h=@u%pJQ7)m;*#wFQllmv<*9;An2Ir7UVRxllXmm6#YdBfzdtOsw|i_5h(tp*A@Yly$ -;V6;Y5ZnHP#V=LPA`gby^NM1offC+1Dj&+2@ -^D95*S5rK{qWIbgSor0B}J^!3BQxT+j_%KrDczxT3`)m+%^VkUmsf_wC-hzV7d}UsrrbN{`vzD$|cn$ -YP1o(OqH!g7N_+;DBzT7~4btM52)2^Tap0wTV*e1!`fPaTnGrc}*17Q7Z~7P!v|9VyYG$Mz^MlDM?XL -I>!?$`+BJhQYkP^dXsb$Twlk2isU1#&>}9?<-xiF)^oy&T^i{-VZ{+;>6oytf% -TxUJ_YLs!nzLDw}kaMSpO-k8)1D;ScPWhwZd8s>q=q8U?n+(6@9w2Kvs`W%UPcNLR%}a2LBa~*O6o4GX9WGiDzrBH2y2a?KNr>uf_`DG74!?MP-S;aSg|@L9TZk9 -zDpknE0l;xZ{;c|Lzjm1vheVOb-l25g!M6D^@r6ZtT=rs6$@(staf1ygf&Z8gJ4Y&*8Z?g64t@6#t7? -BSnm?nP*_8RbtJ4o!fJ-KyRb&WdXun5!|J1=9EZ2dIq*n;^+#cy1nalLItA7v!a5z+{lYp6*6lfBIyt -j}t}NSBm$%7F==}CckeR -n@fO36xe@Y<;}ZqNtj|LCf4>*dJ}FR-%Rnz}7b5sbm&X -X5eIOy#cSNer-lz2`TlWgdZ$!9K8DNtKnWx|Sb0;V9QtUfM2Z!2ZiUh* -nDGdm@k`9lx|4i}tqX(p^}zAdip8btlsQfYN{0QQ=X&OjCZzkjF{xbrl+16|O^`J5ARL45nJ+(sh*ll -FR5Yt=-fw+dCvDIlebKzB8Jx%}lX-Rb>oj?9whlOUH^T563s2j>`t?ZRelofq!AI;k3nD@N`t^t-g*E -o}RmTU}?u!X#=11PE$b6JuR|V2f0)dU7_o3z9%Y2rP)h!#RTRzrGt&+n~r31lTI`}Trrg4e#JVkJv;1hy<1Um@cA=pCTid=ch8Ts%jG9@x4GS85ChRh -l=YskDn<^?iq$*d)_j?B6;J$BfcXN_mAS{fWg`x68bgu*4tFf(OOd -F>{)hTrlSYHQiubzLtj`DqKGxELk1(kH%WiTk!kKicgeIVq*HgD-UO=+t%|a*t!D^b$m^G_x(!K#SI$fo(l^N -zOW@YtYLy#$))vKZHPj4Fr<7X&-LQQV1v=FA-#x+_%TqGu|-MRF -UrmZx5_B@nJ(vsvcXYr;Y}$p(Sp8k4MB2rZz=)+d8=_vple$*-QT1!bWy`gwzTltmkNwPWI2Lo>*YxSG&0jKr&slNF=5V{^e)vezH -sq68xE9#UyDG-P|qfUgBI|@(ej3u9m3D^m{PnM^2>Uqw?qE3my>z}wX04F9KR}8k+M3K$QaYb+M>KZ@ -G8UKlM+$?gp-{l&g=8QkMYg`&+O1SiQwKY?5I^&PK+D4MaQ@n=7A200eia$;T>PnvOjBIbNrj`cw+PhG?~SMX5M>yP^&{$EAgoOW!Y5HDH4Y%n -fRNLuCD{IMMj1xK%|_@GYzNhQjbVnnKl>&KsBFsFLei@RhQ0dPl9^YEP6(gURIxy-zhA$&Y?RC=))C@ -8PQStTa_xjR`oWz+Y7Kqu*Q>;YY4_3D+vc)i$VtdnA+%eM8||kvX-EQ9=X%=T2|OPJI&pe1kwH${-(@ -laDrJ>9Yc)$s!%xqfsAU1TMX3_sa60GPBarm*E5!l8%M`FudT6~ -`fC#&d%Uc|mj!cbquiXSTymFct%N6BIlT}Ki>PcDWk7HCcl{N94WG~Fv(h7|yKpYdn4M&ijU8BS$2^( -99dw#HzAhgpzj&+%R&-s9Zw8R9)becv#JZ1|2NBSB6PZj;au@Z*Y?rhg3V4#UG!Lg$1e!S-J#%7?DFY~Ny;fwg}0lEbJS4JyIo?NUVQ@U74l3&Wl!qc4|)dw|Lc~pPm+KxMl{Ykt$CnM8NL8c!eQ{BsTF8C+oHec^_r*Z -(<<~`o#dAGe9Cw9g1X(>0BE)?sJNXX9>@0*p7?u?ARHl+%es8J@;#Kmq(sApR2!L5$V9*cb)mp -$zr*Pj`PPCyvWw(^T~%VKxu`c|Q;lS#eB-QEU!Yhjel)ESk^Y4)~g9M7hT{<1ngxq7g;d@+e!vzU7EV -&FODZjhN_UbuSEW=@h$KPxL2?(VpDqF`^5^eNt@HHGymWl^KjLxnh+rS5~?S%?PfUHy%e+rYht?C#oC -{h>lDj*^-77SvxB>6dSmMrcy64mbWY-Y+THbuMg%!PW*;yw+D-JqFw*1D6jn65Dh%eUJ-+M2Q3k~$xbMUhB=|Ds00lHYT9M%LT`cSdxG{9Xkbq7oHYHA|lf$TiPFm66I%nu(uaJ -4lY@N?} -TkdMB|E!_$2XN(2oxlnI=t~si{wNXVitZ4HAA;L_|oPam6OA7?vV^E>f?;F`bb*n|`E+y{B{H3A>fx8JjLIobchGyVl -B0uBO%U20419VxoTi!tqvuu)asH>eb(imEGmbfWo4_Gr4tht_Ei{Ay$FlU*ZG}h*1P78}C-nt4--Wzf -;STI6aX*B(s;{EdbF7FT#?tB`RR{TqA>f!_*J6T)v*kyj^u}iM;4m3gj)Kw!#39dnT2g!9PT$--N2xK -S1=>+PgoyHX=xK##=4#5OngV{uORUbF%9>&uB4UvwsaL?iL~Cw%%VQ$u3l$;8h_^L -)K-5ER*Xmg4ws-q!V24`4LEKCll2yIUA`%vzCWkOiId_+!h}|*Hlx3EGt8@!4*P@Q-Z4^AxTlBDO%d$!|U5ymzk%WGzsXoB{R(u@N4&cCGq`X{SLE6p<#8$#7XR9euPn`y -Qua4Zh(A~r|@rS2krH^lE#AZyInO$fLIBEh0jOq1`sohel(iyKn>GM0(?UxDV+l`6YD+I(bhQ3J?!CD -;q@U{b98#y(x?*1kCnAUU-f4IuILDNnXHs{y3Ku71jr)?R4(_siG_n$qlUnmR}x4QN^4kd~XIZ*A_J9 -wck^(PnAz7Bqa6C{6Lx(BMrp3?a$FD1TWr_?$Qj+D55*B1Z49oMK`c*jaMguuFZ)X^^sQEq$XS*;K+@ -emA1p(Dx0I -|L61s)zbyB|8TIm1MYNT{F)JWM-Yf2dsk+r56v|3Z(46P|=aqiP+szytt@sO-HMb=X(bXck-x?5AmHS -RL5`o3OIWxd{%=x9Z6${wLN1;PJdEtNE_asFm4m5%3yBDSiK=G9ap-HsYHm4@ckRQ{_OHI<(>R8zULc -{P7k0mGO$2$|yxmtvZBhu -FNI{>w4%z~7aJ+6{7Yj+mGKm!>TQjp%56e(#^hg7RJl=AR0&ShD5^~SpHWnKl>4|}(NY=ug-~Nu68q~~D%AqIaV?c!LKn(4*SK0&a$Qxc##$;Bg^f)ptAw_=KT -J*K;zu=VD%V|YsHPG*-ME@c(N4M0F?+q5$~9MitC~uYTuW*y)d0V)rgDd%M&MJ1fm=~gX;V~GPE%E>y -r)r7iEz!Rs2nC#R3bq0Dk|G+R8-#b`&Cpnr8}j09hFMy{YE8~r8lgka^evp1d3B+#&9c6K~em=lFB*t -N-C#Zr=-#xBlMvtS}K3~{aPx~4*!E%D%V_XK}+SCXPePd3CXW1EtOqocjHj$IxNo^>rd%-k#;EIUUY|(;>cQkNPO^8Hd0J1Ts6wfktPC -hL-dZ5H2Y1EZuMw1`|Z}?nyk;|)5XrHL>T?(`XDXxIaJqQhHTi_}I{8;3jeF~FALL#qXh6 -t76-evKa9Stc;0(tnB5fTpzJ^`l;+mrB_Vl7J3-3r?e~(>X}nlzv-BiOl2@tE`$6D@~2ic;z -}WzTqDuy7}<{7hbcF#V(w_a)gdtwAxV0)cSy{-P;E%e`nlROG3z4lG!zRsKF)65A?4GmZHSPgB-E(lkp84Zh{*BK=hf94CGv&^W&d*|yeBDH%uXPn|=4Jy+N#;*B{Q?~9RZFxIFX*Ok%p@^3uzDh -qO%}&E-UB?Iw%4F8V+Kc>}{F)7Ml^YBFGYlPxieq!A5aLgX0|v*l+DLaitX%jfX7yOYZzG+6o3pSES6 -OqjvCM?=YUsO277OqACevv@;nE8iFR@i!V{|+Qfn=;+XP@R+Y+&|K!tik<6ml$rN_?i89?t)7CXnCd9GRT3Y2_--c!bF|~ZGM*LJys0oxczM=1 -?WY{LQgGq8s{T~i;)dO<<+2)~6V&ih%X~!)r%t(T*VTT>c0tqj{9AUK^~_=5JI!9Lq1?k!Zl*}pUsin -Yz}9N2Ooz;gIr)uEUOR;HL|Zwf|C4jX0E&{%(8iy;YM@l -&yKEP-?9kaMVrJ8dLwlO0uia&vf42-gKp)t^6s9htr?h^q=GxPb$|X98=7K4pPl5b;I}3Sz^OCiQD~g -j{Bx4^?Md$DUKJXyP`V2iQDYbO%(;hP3LV!O1@2UVv_XdwPLYSdVZGrm5KBO(o#M)(Wuj+Sba@b<_Aa -*AlF{v{u{C(T&eO=intVenYZ!+}Mvzi9P2Fp5ba&$;Vo>VX;9{S}ZE -<0bG-IWFh{F}tO}Ws~Uy2cKr59~oaPkRGNt$aNM-r~pH@iLx-fj2F@|aTHCZxP{k8y2zStQfdpPLohr -m6#z#g$swo7Hd3{aoJ0ZTbb!m31pN-8&1NTjcSXYiF<*;#AanTsneu>ffttWYHtpRU1<7I#9}OabZ5T -R*nk2*%8LUQoNxPO{z=S%DPQlj_q}^C2z@ZkG{!X;De>wU>a|aHQsho& -W64&HjFzuvraLshDYz~|$?+2sJB)a^Qse>|oWwT_BN|f@$<(+ENHQQv<*R}~E<>_JbJ%qxD+V!Bo!Bnk%`I(S=+D1@p5!rX>m$X|GXUo|OsGh*Ec%+)Ezt>!tW5ODhumc``+3o8j5a#%K_8?~Ry3gvE>+Pe8KzcDRWR8oSvz4~=yB=mvT+`!UB(rql;S8kjR$ -aHeU@HH<4lSCnfy*;Nh)%kTvz7%hO@o%em#n3h@9pZli8qT+(R -^L;7nV=%STaf1oy0KQo^?}$kJEZb`6+tiJwwXPO@5`O7vHI6QP;*Be)Z;`n1ow-b@+0};1qYNNnL4f; -f#`m76a$xGgx$=it9wtg!y?WuEABE9LnRqv{-_HgY?5L{%Ce7{l;0N94FMeYl -{iw;wBKj6YgRka9$s}pe@Z5@%WqA&{|DjgHI3rf51r6fYV>}{l%?p1YmI6mUk=&Ro~T`9VM5oMcyUt) -dlsVCCayHt%Okzgir{Rb`sqok)$((<{q=(WzMn%>);lP^I3|7}v7J9%l+z4fPMoZf_MZ~FzuHA)RS^A -m+86A6i~{YjhE7vi=$!9Vg<XK^V6Y`c%p -+cTpQh0%wVGZOU7OmpT@Tsapy)!n5Yn}Q*H3I%98-9+M)L44S+xzaabHP}(T(zmlzH${7;ulP>5YLrg -7)c5Nt?n`}7Zq(Us!Tqeb(if+Y8(ry(n_HnkDa*rg;_S3GmF~M~`%Bi*+u9Yx+0ur)Jexqs`=uE-!|@ItM+kK3Z)?OO^6=S(+@zhOm^)QLZz`3A4|FpIZhT;{NQ7=RC|{_D -NB~Q-URoMWSN^pl4b5pNR~bX;~{J&L)c6qr`&WBHgj`G*vu^;VKaAe9(l}#0GbN{bUp;oqP#NksaVHx1DBWX=A@YB~&40IO^DFWxEAT5T@{6^fb(}QX0%_7%tKeY;H1f(ZF7K5%K>t^X`=nlQ;wT=d54_o^zT}C -Iy%vqk&3zI~tlI@O#s#ZI3Ip^}=$x^2{RSd&z^1iYr5 -|7E^N=#MHh4@}2(G~C4W{)i%eNCb7w(!mOz8-*c^nF{OTJB@(*Sg%++p$yU*rglsz14ffxAQ$bz8kTN -Y?Wl&IpT!94enq(6tZW;30o^{3URB)r7v6+(;#YzBU_&IpFu>MGy1niu|VI-1{6T0S`0Q{Z1?&oiazU -4`3qGOae;nqc0*f(y%nx*ymWHAA4|M+Qu)j}EwH1fY&+?Bcp7=}K5HnA|33dOJUd8)_?X}n!A}IfH|y -A~1a}Zb6QmIo6a1NABf)zFM+s^O^tb3(M}k0tkp%Y;{M1#)P7oXUt(oNnn6HbYeTw>BoemT0l<@>>j6~~Y#%iePM-K{TbLcOh+$Xb1Y%CkVLN)d -wY&eT!Q6inm>>d`wBG`BqDO{rIZv>l1epRROQm@AE;7CtNE&Vs`((DR7%fIerZY!gaNko?~@2ygvi&pB -~vlXM805-G}wIBVDA4w2%(cpm+&Ut+!IADE`;5|1`+(cr?H1;XXnmQ+q -}-hQ}5;NV`$a7jc?m_M!)tqb?DgX=3D$bcj?-#`>j0!diLra*r#v5pxbT_?muAQput1#2pKwT_?@9)B -TOSl-8I@AJ|-eEYV5e^nAp4H;_n%sFkxciq{&IiQ>NZKZTgIvDYH^%&q=eS&&|lpx-WZPPHx`))_j}2 -VE%%I5BzCS;o>3|k!y`wkZDV>=FYL8_U93=%^}{f5|>zrvNUP|s2{7~6C3f=JaP{Zt<@^R1qeFYvepV -;$5DGqq(5yK**B4TrF+=8CVbE)#}iM6ix5ruPo(~BFqL+Qa2Y^h!U-F>??4|CAbOSn(Q{ZtpN8Dx$Od -ZCgj>2ubDjvBL6qc^Emic0au0-l27RDiw4EI40|MwbRZv|ZQm9W0{+YrjmEvWx2b6GVRjoytu -vEirV4E3JOd~!Mw4p4~r=qV2U_sR9&!IOfyG@iHIAD$&CvADAHd#_R0!MI;-0xcjF4hJyBLz)WC!?+8j~l2R{Lw~t) -HxuVq2mi`lb(U^|GZaP$))N*Tzg0x2Q?;x2%jc*qMAOe@A -}c(zM^1-!ON6d7`F}ZUKe23JCydG}Us{wpgE{n%>agfq#lf)xs7C%m*nPCBLEO)LOhA{~;`_#rn>r+$ -;*la(m8I{Lu>*2ySdT-G+PwZ1RNEWmEbVm1mmj>$U0J`77znQ+l~f(c-Kk)iie>aNn<{|9kkQVNPkHy -i=9b)pYCIA<8sY@I#R3M>E8j6CfmBO9O7WzC8}s)X$CMhY&IkqR!@tcUuGe25ai)#?ytg3)x&vG5?bn=nON@Jbk!_EWRQt9Ek82b!@bV -TZh||R9pFwTG;goFVrHGmOdzuhnJ0cRv#w<3k%{k10?51-?w8H12bun4Lb};hYsQr=to)*x_>a;d6S8 -9onGYZzGNGqv7Ma*mHIo@H+J;q((-?n2TaxJe)m|Zj1=C*um0Ux~DvoTJ!PL)RS}Wx+Q2a4AQp`VcsZ -0@So-+2zv60q&qBQ5z?_EmWG|VB&-6DF5v=bVnHbT%GBxX$D%G*R5K{@v9Y_fXeUq@xiJiVE>ho3$wD -#{Dbu)&lL0tSR8Oz|o*1^f0y{Zvj093c-As!9a$A{(KDVzYm^(>;8h=f7kn6 -{})X))6!o_6MqduEYbYwZtzbVf2ror;|BlKxB>s$#s7c6bA6p={7-X$uKw>vp9UPDtN-)3!M}PA_;>$ -)jeh)fq(AMO*6)T%R_Jc{exvl()7{ubT>Qg|mn?OZls@>-GUsyFin5gtuUh@*M;`slV~?*{`^1w^J^j -~b)~$bb!*kF7?S+jm{{5ww|MAK{H@*7W<}F)a-}c6vZ@vA_yYIbUUa`G$#|Jxi?cVd@-hKN&I&kpN$A ->@p^s~>8d~x*H@h`vn`ozg^zCCsNyYHo{AF9v%>&LS-=YBeW;pdB&YA^qCrS9rA{%sH7;4`C|A_L3?)ElHkJz2;dd2>j#*PcfRJmcL#{RIzzDi?Xt+D@EV}C?r$E9SdeXGU}#bvGJ -^u#fZaTayWEIBhLEq8vRE!CEpn*;aB`4;Q=*;$r3wwRpsT;FnH?6p)$|keWw<(kMJujj8YkYQk78sc8Y}*4%j%T102Pdt%QboT!PW@|;2@VV{>N{UhZlN -xZiHEF3ilC8;~v#y3Rk}VzX(yS-vfe$V#*4WoOQjL#RH&FV}8s+LQdKP@0Jdnwyx7&rxQbHsL1E0p^I -cqkJZ>e5y08epCb5^xjXYjcl>&Q(wk&EjB9ROk2R5+%!u-ZhAnTy8b&*%(3M?mO&y-E19!J%7c`dC7! -4SdBosyYI3bmTJz?ml8tHxB}B#2Zy?oUKiKj!EVEO|F*`HILUo^=-((u|Gcs+K{JhjTmVnfBo5dQ?Z; -(CTI%sxg&LB%pK|eKOBYvpo734$#Gp)Hf^DH?wcSa5JvRLP3=A?>Br0Stq1Mauy+AIN7$BmL|3h9y8@ -q3C`JF?PT3!8V7G|9{9&d;=EfDQ6(saB2ijb*2)GeN5orirps>5|)-HmwF>(=4LOwf+J2e4sUX(%1o^ -*QeXBcfWvC1$%HxgOr=VqhHT{L|b-t?tCPQ*p1P-K2G!H&;*}Z=h{)Z`2j(e0_rI;(*rE?@@xxlYdN3 -U#8L{=q+7dif7_NdAbLsdq)E -fyW^X|Nj2JN;<4FGWB&yVf(`l^1fRaBwKXYDQwk1XFN2jM{=G&&*Lhcxtmo{6Q$Eq;KHc=;MUf(nhI7 -kok6U9{D*K{?v=>O+#E&EUD+p_pvK-f+~-O4e&1^B<&DBEnAS4A5wlySXa5}8AJ5u3=4RLKh^Zv88m|5DEhW?GqG5+<2{*CGXa9hjxZ>?naLYrk$ZgOUtB_bo$%KoCz=nfaoSQ^q!w53H;iD72o;i1gPqA)#S -Yye73LzW!Q$|M%4i0Kw3>O>Ziotv+|-5oXYo~Sq)gVVCJ8FMj||3nfe3Iqv>B!nchC|#n>O8+rL%?J^ -Ks&2NZHkKG2mmHoDBcdPhh_{2uARdDKr};IO~}mz?d(IG1k$|w>nGZ>C+Co$na1`DTI4#XS*4&g0 -d%pmlpBSnLcGtC7Lzl_YMCdvwOZ>=39IfIh#MY}z}THA!|_q^u(u{Uk_h88!L7u>>;wHI_gS7@u)ELr -?8ck>^v_Pbi3;_v=WUsDs8;e(dKw=5K+_T@WneBFLsP;i4`sa}JT1*CYNU@>GL@WQFqVrnOfvp{lr -U-M;*&i(Z-wbU>&Y+=hQ;md#Me0Qm(sIvlrynpJ1^HHqDtMlSx@Wf>b7D&bd#ayW;wOjEZlepnqY$%` -$INCgqbaN``FgVWpRVLoyrf8JC+%ZDY1I)w+;y{8;eRM2lR>Psr^@?j49DUe>%5AyhKSy0O{z{0t;E# --5%|(mP`hp|mu8j-L2P!7SH0)`F927PVcZF>0Q9saA`-+>;SoQ+`RQ)=W%el3AkclQuqGu9aAi`V}c) -O%j0Ix~Ywkq$qQXf^Bls!}fol{~tf)W5eC1PN(tkyFM)T+I81EH}LoP19AKB^Z)+`{B+NE=C@z%{C=e -Rj_-j~Uh-5-tnK5h2Cj(2CxXy@g>`oyCa=326tk6LwpRSwX#8$g;=(j4>G~;dI3IG80&wrCxDQj_!0{i#ac*^2u-#>6f*&XMCxiB-YXTM1vR;JidJmn!}a#lJ*JXEgy%Ui?*gU$5ZvoR -Z%Qiu*PNzmF9E&lP`vAGs{lGW*Xye$76ze?YU(e;l>{k*E31OxeHr&9?tty#L7O|8*Wvp8wlfA&}$)5 -53_z>X2tGUAVNT;{3O-Wpn-Wvbp4$6XNb}^WtJ*Zlv%P8;))WXeQYu*JRVIm|Jf!e7Iu1PT>zcd+OOP -?DVtJv(uVSfAM-@n?M7|grhT$2C$T)Sx4`U&yW7u%pwWQ1S1JT35F63CI}) -3An+&fC13=#7tHJofkbeM-~_>Of+GZ<5F8}fN3fe<2SGW(I|N$@HWI8OSfhkrMX-#Zn7~GmO)!gK5K&V|L^nfKfiX)%%jocsXS_YGfA$4 -3BZqkC%y~tdZe>9{g9L98v^wisK8+2^#IeaLy__frSO5K<^gR-r=+drqsH?|bzj2$-0kK4hZOYxxovd4o*EJ4hz{B{DHjqd>)|9Dgz~7aOc=oQ_VMD2Z;u9qG -?%!X3{74TEUimo?+QrWyB*&A7kOjQj3p+>bQlE;ZqfvALGq4YPGjqQX0+99pYM(=psDtiJoF>)1v^{d -;+ij%9e&zX#dKzfb-9!L{`6SO31??-X8N|9;{Xo%jw~eUJX9j@_%t4~hW;82Srfsh*^3`WZNIAR9Ms9 -7|44W|^6p%x<^K6;)hJ|HW+0nl(Yh){6#f}GZdN -cRNm(wFw`P`dU~DwUWD-b4y30a*rmMJ$^N+MrVj6vejWMap)f^q`tp1BB@uq#z5_dDhf5;;uaUp}PWf -~0I)F`CxB_%E$nzOQcIMWliEYZIr(P=LB@N}t}n-r3Xfwx{+TAQIA1K87RzSkmFFEJ -xrvY{S*kJKD$XJ3t{;ptuZmFFr9OR1P5CYxf^`uGh=^L|6d1p9vqyYbm-|10eiA+AwKfZQX(5auNOj= -T|4cUt1@<5uVDo>Zw{TyhZsV2}$-wc%f(Hi0m!W7r4pZ%&<&(WN%j2qrB*ZXYpuafgT$0B+wNzxuaA -j#CB1OZ>B*BPzn>mA^d&M=?u)&DJm*_e_+n?j_oq!xVMTny`&%a?y*F1P{UXl)b?MS3Cb;-dj4kfbgZ -ugP;LKA2)&i(ud=xOs<%BXai*jmtrKnGzJ}fvmm<=90n2j1WiiL-VvzV9|QFaq1Okhb#No?xWscgoK8 -EkRdST=X=T$YuU#pcbM$E;SX=syYz3)y=6X!ghYlTLpM3HOJ9_je`|`^#+1b-a*x{czJ9+Y?;ESrNDt6)Q5A55^oYmCSuuGRN30}eDF^ -I;81jf9HX$-3vYfXI9h8lZ2YQO>fCN_!>Vbk~owvgY?*6`JAD}R-J!VjtaDeFk_dr|zs6n_-OkE8fgD -gIoFzks)A%PIa-6#o^9UrzBqrue5c@%vJIGsVA`;@c?xN{as?#otcx4^jLh6#pxV|1HI@qWEVi{zXmv -L46rZps7zDO}|&!7~8ax=HxHZm{v)R@Z?DTe41Asp#Gi6AkMF0F^sprm+>Kaj8Axw@%x`*eD!OLzq*_8Ltks+2T=Us6hDsQ&! -+ebDE>-{{~X2NO!42N_`4`R<+=Je#Xn8)YuxesQwn!e3YnC`LzKevl)?^5;UuL{)1I@RhH!Ra0%sTR= -j_sI&Mv>o*_A`w9ltBZA3*U(Q~Ze(e-6bjp!mxu{#uIvH;TW7;%}$;2Ppn=ieIgXZ%|606UFaJ@q1GI -z7)Sd#lMT8eZ$AZ#>7NM#zu@ -D9Uhr7AgEuzK7r%L^;T1ej3ICOk0DEBWJ>UD2rzD3fZ`t;9}yKhnv#!-2p>HrJf%MZ^y$;9r{W(IZw` -+QkBE$*_`qvm|KQ-eQtFY6jgM8Iv0eRdNf|g$P9d;Y&w$?J5TDYIjg1){o6@~QXMggi06|KCz9|%cbT -}eM#HMuZ(4n*JFK`U(6+lSFxYJMR)UiW{yGMxt!6HD<0K|`ogl{W85qwzjE#zqj30YzmrhCm -_}>;ZAdboDM~E!cQcD?$0806Z^oN+@sfgpFV&er7A_ukn3ICMHA!eWuOKEf&JGMiI4iv!cpEBG##XKm -AGPsBQZyh^UpwP|jA7S(|hPE3V6&o2(r98HWAfo$Ng*`@(2oJx*)95vLbV__md`y&rWxUE=F%d(@L=4 -jFTHm91psZpd-77UQDPe>BT6ybq?V|}ppco%Jni#3xKm5*NgF{+*8g7aq&xkR^%R`4oMAZAIq>Kq4Z) -)e`HJq#wDM&pgvOfQm2m~2#YU|-+hJVCpV%Jz!?~n2!1~a#5-)?+LMEqzI@fu^=^yMeouYFj2IF)0J# -vAEJ3U6}1GbF+k)6iSyA4)%x7%?Vl*oa2nn)In?V!}r>@@BCOpZG@JoR=5X8jDAtAVH%1kCEq!nt&!{ -xnefDkv!M3oTAEe6DLj-^2lP#IJfNa!h*Zlvdk#9#u~x4ERABDo>fjmbC&dtEHf-1^RdS -sV^2Q$BzyYlr`h`T>)CV9Jtt&^&6_t1dGM{b-V(CHr{yoOCrRGeM6$w;9Xr@ZAAKZbgHzvp&A$2O8+P -i{DOO!w&CZ-T!+tt%fF|NJw%di5$>eTlPI>HW|ZO+PybAFSL-10A)?RdZ;dTSx=l!!*$SjkV`n*b -x36o4|Lo`}twEnjdGc^3yba*J$F?fS5ot`aBwJSM{g(!zsR*;>S|_X%zo{ivJMBf12XIM)CJh{Q7b3z -jDfd<&^(h<&-W;AJC;s7qNBKS*(I~@$WNe&>*PD?h??Yi+`7%xA*XC*X~y0v(CMO`t<47XHa`T<85u} -y-UyD{rXYZ_I^DE1rG{l-Fn>~G^l&)LG39(yS8m_?bfqT(4aQ0gKkwE0s?|=A7n8222q^bZfe)Ii~lX -R4{BpDv~K0)<$Iga*hTN%<@WAv46WfX$gf8yADvIHL3p~i@G_7w`vtk?W<>>uAbe}LrXK&z9k92rzz)Q*Xf8zN)TNS_;M<_b==+Og(3czQOeOt9^MLmm9rc5OzREJPcA&z0FCH_Y}o -=UpDHy9q}is2FLAMngG&m_~h^Y+=ZXTSUL#~;6^vFDqA{p(++$^81lg$rkCUV7^I@#C-V+O^B2)9Hdo -jvP5ip~+uK2S-v+4!@=RP}dlkZ|d8(Z*MYDR_$&uuK%=Y(?$=chwNQH|NQfZX&%krfB${{{rBH<8c+F -WpM8b}D*pA?Uvrv&bNCYtoW|KNB}u9xT2Frb@yCCysHi9!GiFQ(lj{jbaBgAp5gFiudTp%$?COyq9KG -p|u=D243#qNG{e__$ym9nJZ@$S1KmNuWZwS0kpFYjM`|dk_@Z -dpy=+Ge%4sl3Efcq(m^USNSzFN3#+qOay*`gc{$N0RwyvUU+S0<2L4cu@%DEO9JZV7QZo%h~x#~mm;| -H#P5Af)?S@jrk5JSSOZb?@H2hfx`>{NaZmczJobyPOXkIKaR7;tPQ%)sMg(_7f*g@MFi0iFeSX0?9nW -B%Zr)?%cUr;=3!9ru54%zwn=a`sw_qpMLu0x8HvIHRW{~;fT&hsJ#s%99AOkZ^fVFDdgn_;I9H`Pyuz -K0`OPqQ0*!-rbPw9*$q_ZZqT{|eh>bYm6a=~9(xf_lz@iq+qVn+!5>GD9u;+P^5jYJ4jj=Ys0|DA@Zr -M(&^AyXFi~%4JBYJ)?_PmF>X6z$M?GA-c8zNvdcQ*Mb?~P)e8+FW|Ki1qoQ5I6|DmCweZj{7;J<(We* -X5`Z*!`1PBOD-!zh2$$DTcV1OWHlyLXGWa^%PnVFwN91Hf-+C#WOf_WF;UTaI!*`XkPV?%{mU2e?O_^ -MU1@PyCSczn|v(=ZhB)Q(NiwTkwDHz4ulJ1_llz8Ga@8m#7ax1Mo$eqg+7`>H@gKj=KNqtFHvWjxtAi -17Gj~XaU|Rf7J1_XE=}ijC1qHoSP1Ce&;^ULv|AlJ2=0cXz2Sc=e^$IeC2V@>+0&B`YrfVU+)IsuYy_ -^D*T>yf_4CYN&brSaYs0h_>{^YG*BH3-^=+OL_^N!oL{WtJpB;ogWq#+P23Rvmo8lbFRus*3F$?=Py! -mL9?M{W~0ia -(7RTkgPdDwoLhQZVp` -fukv=>6Z0KlR0{`}FBEjOt+}+8O$mrsx2#H^*NnfB0iuKs@v_+9&B0wNcRUCFe0jLln`l>0kUto^u3G -G>8A?%a=KgGYtSVsG!o(RGlv2)Z^}J4u7iW6+?#(?M3~03GfG>G^PW5558_phe`{09enilzAgNP`6KxT`zZ -d`{JR7VcxF^_K2@P1;cL$02&d>TH0>EQDD8P5`XuU8`%s_MlW6GihTON(v!p5fd-dw&=6@RFG0tCCA8 -5ZA57fFqd%(L&1MsJQkC#85#$Q@ElK*Y~DE=(b@HEkYCzblo=|sa6!ei1mG7V~b1`TR^MxQif7nOS@= -eL0dD*u2tsr~O3$$Zol{?y+K{-?IK67mq*oJxmE3uwT2&>U|8fAo`EmxS|I{$%2RCmNn78rIun{PWLp -KC7B&kT_31Ew^X%NwLT3+cRiT+cRiT+cWy4ptnUbmm1@bc82kVSl{oZRDfAkkB|Bo0kqA%(~1+-V-4cvgcN(=ga^!J$8px?w;g|Q9KdrL$4n?%Fb#UuEpMJE0-(a^X(| -AqRb)$_vniu=a!WtkD&F*kx2rA2a={a*gn=LZE1S{Y-YB4ad%KlS&5{|TR!z#DkM1Wv#k?E!eJb%H)# -D<5P01&!eU%4K))cZr5Kh=whNL<6-2v}e%ptU|+Dg@#q2A!`hOD1&H7kK~Kfq67_i&?k-1$QZ*uXqx} -gXJ8D290Az4aU*}}rI$G5A{DfC(o#FQdi5$l_}5fk;kc8(vxI1%wy>FK_@~mI(I>69-^HJ{-o@ACjpm -Q$nEAum;oLrjG2dyvzQ6(aE -nBwCO+#ZkTB7CZ)jEE%;tBr2iU|I`Bb2|bwCC3}?fE%{h9?yo{!Dzd^1g8H%#>-sBV-I3pW_Ig{$7l~ -d)f6*XVf{3zpE!qm=K$jlk*{PMSDaWSiE?#ph3%Dzg8zO(WV;Dv6^~5-|>oD#z1>6Q`&Q*r$zY(_@nN -lqoYv|{KXev6tWj&8K=|93knL{G_*uVOLc+=ebSc2H_)Dmh9>%%=AOqqUw$e29mqmW(E_|NHlVM9EChKJ^8q|)&jYGh&*<WsCw@#z1>UpY+6nc%c8Q^RJO3M>^x<A#N#476Z+_ctw{eoK1unn?Z9@y7L50S&0Kijf+UQ -&NKRuhjQ);I1S(Y&{KEG5L!M8m!mmk~vI=}ey&xfhLZ+QJ-&6+j5q@?8h>eZ|H(xpp(zW3gHd3JWTD0 -iAy3SI&YXcwRpxPgwwv|tSa<1qLhV>H?d)*~>Fgd1ce)E#JP;vw=ce}yvot?NICOl@~vUS8hUfBMs(t -^v>Fk*03jHzaPF> -$1oUq+?qx%;Ef1-QE@ZrOIQ5lw?J-_?zyMhLk57rH-eFz#-Q&V|dT%6#o=bn2`;E%FKnZpje(GJl6z# -XzF_y@8!+5y@C+62-?A56GkqjXCA{r$~U@6Ybou>&^`V$a9tM)60!TKPvUR{-XVz=!IVlWc)g#iBh>e -RJYB!2=khP{wK;bv+UND9RN5|7)+k#$S2m6)^_>^Pm3|@le)OP7?KPGiZ!lM7VD!w}+U#?{TC1H$r}c -{Dc0V+T%*RqrJfdE~sy`S>jV6OU#=$PxP(S*2VaSz6SiQ@*&y*+9m1)e1bYapRARKU`M*BBh&}RbD|e -t7^2_wxa)Z+t$l!-3W$S#27M78@DJuh0N@U~o_XdOtTC?h@bL -JpxV!OJ<$o&g640Rbi%rpi@{pUxkD{BgnG+HzL`;lNAab-ZH?0PgDk2+6fi{~Ndq{I&C68hciPFEIvz4t2dB{RjFwj -7M5JP`0nX{yKl+i6;aFN3J;O@p>J1%Nv7_Ds6Qk?+Sty?GJgD!*z -ZNL}2g}xKCsJN4S`nTW7@7LiET&R5s{-^P~M4f-NM2ouSsqWvQZs3M`Q1|3eXXuNtmw-Je&;r~kkKfb -Jw1~fU{YRZkwNxjN?;-!-9s6N -b67>_V^qKq-;MA@Sr)b(A|1K!c+qpw9jMso_WuR%2b(YOoz!MiQ-d2{@(?Tg^Au3Mm-K_hsb_~;tR2o -lv5#?>x=Fz$Guj^yV5Fdz?{d-y|C_wZsGT;88QzmECvYoq7SKf&1O8rdY0A7ttprLW1iS -TW202>go_lgp+~F+CO2M=_0x*+Vf$D`t^ma@o|uZ1~+y0Q(&e&iD8z;Kf>y6|vq&u!rDcqxmA -J+Qe4dHIvhp078^_Kdb9Z7IK1JGJ)^c9(4d>CH$$M;A3&x(p9hIC<|A_O?eiFE -}gac^p=H=yeC(Z5dr#4-S{)}YKpQ*pCqJHTN^-D)dK7W>E+boiS@eRWef?gzVoSl10-Y3IaDE9eG%3A -Ix=Q%%cj`PtwME*avkbigT!#7Z#wc7o3^{k1yey+&;*9gv2pL>}4&9{&+_Dr$ghUrAt#Eee}^J-~ibP^9PKN=+`k8p|6H43poXTu;ZB~)$bQ#j|cmmSkuP-4%Xzc$M$RaV --7%b&>WgCWU2Fe%yW@1-16n -f+I<+W3E)z0B8S;^OPUtebdBmd=8til=KDE?g@sw#{ccsBg$ddEmBk -TaEfMRvSVz?6kG)syA162BN3*g=gS|fNF@Yb0-J4}8hFhB -$y9lN#~kXl2hdMB&Fq`*b3InkS{MUAs0(iwE)spToq1{Wh$rVt)Z^!mmG`_p5t`Km5YEm2eq#NZxBho -4|gjHh;(!3l}cTDJm+;((b(i2dtZ*Ebw4`9eYjxQ1<(<&xG|*@FVt^u(#n*_LmmTk>RnWnF0sFj|c1b -z8mM?crUo|9x&>^;-S%EzYBXsSkuJXxXO=M7svhz_9nz0my&;B+E|g-I1N9J+SjoDA(J_s&eW%#dMXK -R5%Yb>=b#(7pbTJsydhKU8)Cl->#8p)YunE#`wM6j*dM`OVX-CBT?TlxeKhuNwfv8^^}quUgrS1 -=4UVynB$^?B6%Ho3b1^@7o1hG$m_32H@`ucO4Hi3O6m$FY*q~L%@@FV3ro#6PThV5USpP?Q8f9+j+Tv -b)}zbKPrnlx(ZWPv26<7@AIo_pVO_7Oz|hcWUMmYN7CH$jw#qmB~gBOm0eEXxOoXpW&Frlix5npxVEm -QL2B6D3VnKA5zzG5g%#S_coIlUaR!^Pl_kIl$$fv)4Xruk~H8efB}0zhRxFVeJn2bgi1vq1`XIH5RPZ -&4e-JU#c}WX#a(ONPqtP`N^wRts088A@s*_99~@QtsBH~ATJP)@H=c+zuh$Td!6_pd2AqSKZyV6V^5n -lZTw@8J(h`lSh#SZi+hN>X!{WVQ5KLND2qtDVa@6ECx?TlK6wvx;tF}ph^eoY{TO|;DVXQLoG$Vh<15 -g``ds>zwJ>jPa4ue3oEWUFIUGE5{JrnxG533UT%JD+$^W4JhyELR^oI@|`my6UZr&AZ(}6%BIB(uOH@ -?F$d060KCC(4>=In{T2j5;jF1US0jJp=VlgE-NeS;NCCj`H&IT{RJ#s85~Dm{DloPzg}pP!#Kdi3bm2 -_eC8z;r70e|2>(gy$I3#=t#-Z(x!-p#+_7$#1f=<*%$z^jpXGT`NqJ$V2-aWNw -!V=TyW4){p;U^mA6*NUkkkXOL_Md|73d$GoYIr1=5W5$e!us_Vnq -s>Rm!P>%z5hL6hGwKDNiw$|;<#^Fw#+nNH?Qjn(eg^G&`d8+#8s;R>9%W}|yV!thRlU3-&KL3;?;A1s -(4j-?ekN^~KGFfKaq<6$#^L$En>TL`u3Wj&%@rdyV$R8{DgHv*E`6lq*#j&Iw(!W=(u?adFkgjT_zh^lTW;GwAet4X?*~+OA!@Fwgoe^id7+cMkOsV`G%pO%Q_&`mk;tlmq_t@ -=x5ZD!uFRT$E|_;XHrF(<#KV2S2Zinb1Fd7u*{4^~?NYAKGA~g}Ua&L=AnxJg6Bd%ok~%ca4^S#`c)%B9!|<425NF;>7>g+Q$I42%nFtr(Nz*irtG?w|7GT_5Kx#9+(M)%Ag~IL2N -W`(fONaiYr!#as4gy_t4ivUlV -;@j5o?w%ys*~m?I9xf%7+P*f6)wjTnY}sNSY5iOpgFXrd*8^XcFJJEZgS -bWn>uNZcC@)v~;s#M4&Twl#wkAt|4J{Qgh;%URN;NNJ=8_GYP -@6ErrCJFmOJBjqs9$}n-eIqV|?SHu8^@!6rZtMqnfwdyMC$!m^Pr_?4&PLn4XV0F?uEmz$q%0;J4qxL --hwn!Y@0=!=ju!a;5ML8tWMsIz+Y|1%7J@qxyPt5swMIVNXBc-5z}?mw`*2rc{Dgb0h587oLnqv6?N^ -u1jCA)|yW!HAk?t;QO?*~zPEK0p=!_|mlQT2M=h#ts+2ch{N_tvma!$9*KuUI2PS%**ZYf!rA~`3s`y -?6_nVCF3FeWW0cW7F6P9ST%9Ywp7DA~MeWTcgwotNXjedQrSLURpk# -J@Fn_r*8GQY^+v~`kRK&Ru7M#GBGAGCN?&HK)3+L^} -CFqY1yus2yVrJd4Q8KgX@WGQQv9m-ziBju#hNR3c+_4n!oHBWt7EmQZY|5U$L8*33-XRWVxpEh30)$+ -A@+B4cJtz4_pUe#{Xf2$AEU)A5%&*;q!V$3z3HmZy>#y3XLXl3>=dz(|uRpuu1tl5!g@Q3*lzJ~ANC- -}``h1emEh|ff-zooUwdePcz^|a&c5q7#gS28Er8S6}PwmMbL`_5<1ImhQZ7PtV@N5aW%q$6R(At@w}% -pl8133-EjOPbP_)SzQ%A9h50RR6dBogQIyG&URij2OO^4-t1*eXaiXe*0bfxP8WMB9kRnBJd%dFj7F) -k_z$)d6OI=$H*DrS0frv2hb$Cgg#AI(Nfx$MX+erg;8cO$@;JaHi+HNl7XKS*ko3~3fWTjEGuRk*cMj -B_Ok=*BUZz{V72T9r8#i>1NA2Dw_3bbrXA4!rCrpR-b>HWr|a|d#rkS}i~f=xX8gvuV1$~tnD>}N%@i -|Wt}}O=pPJv8ln>w~e43aET&ol}`!#=zKLNP5)0%FNk$DpLuD}9OF8ta^Ynf0VQ8%gw)Ka}Izk|2u(Y -!P7#wpi$EKlT5@fCa>_lwD5p$PiJt^U@1ReWhMdMnE7SOV^S=vgFHCrF0KctuF8}zgKfAkhcE2Et -eWpp-r7`kB@vBvL=L?g*aHZqND;}6Dk;}PRAqtI9a61mQJ+1PFDHx3v_jH5=4@wrh8@)>G2HCvjB$<2 -GsaDFR~;2n7!{|kSOzt4|@j9%cO;zkiIdWb$EQ9LB_#B}kvctVtlV<5N9{jL1nVJ1fT8(FQbyRGroY- -^GAytT#JZoO`OYlYc&*aPfwcBTEP-AuNX5i(w8!CV!|8u_L4IsKe_ooUXKPKEQHgPSlE!ra|J+K|2^K -(fd)Ak&-3r{pxbKon}xI68|ipwH4R^e{a}L)k6tR@Q+9S(MUENmPoIe=4Vx^U95Cq|4R&)RF2R)cNXS -^;wXEchp<7G~nT0(9!uut$E)3m1rj_#Bq^s-D!8SkJ?|_qhV~Z&H(2$Zsp;=^Rz1&NoJF3I)$}UgfdF -msT@$gP=fl`#$5ha{ta&{zVi=}!{i9iqcjnC97+-YW*(b9%G -_$KYz`?&;OSH9sl3_ANY^?KlV2RE}aKiULz~y*T9{o&h1V|rQJI(#3QoZOwWx6OeTU+s2Nt -|FB-le8p0Gsc~wOnxZb%8tZo&V-25q(Cp7Mf!e?9#)_W8a*~A7n*iV1&~`KukSU8kPM@U9=n7g4*tDLO(QX_&EcFR>nYvOfQ7hDs)z8#3s;>F9JZ-A>h&Ee$Tw9_QYax15Jz -QU=KL?zw()a4R;Rn4NWK1&tXcT~+)fz3$JIxNJ3Od!_9B3w)qs??P+nj7ZYR)&GGMAgBU<NIm&IqjSdPFF{DEGO1Ua0WZWom3|SWe9v)T%23zEOLC|A --*K|yAz2c>0}OB4|eke38NioCqS5VItL`_4M3P$dXcsPc}`-fVA+b`%g+J&T;x6xD#AoF5iVMZHh^c5qJ!upx(Xsx&}2*W6tN -;sBmi;`7D-~b7$s6gy2ua{L@rpqX`%qE=^SxFd;_!9#^1@G05Uin&^*P)h>@6 -aWAK2mlUeH&S^abMBJK0001<0RS5S003}la4%nWWo~3|axY|Qb98KJVlQ+yG%jU$W$e9qd=ypIFx;I^ -CruWrSsKC;Xr)mwqQST%HfV};OSN<)DrnRoXfUFn#853TA|zJ#Oqx4A!^|^|&f@5d<2*Y0jI)w}GmsF --!j=#fqqszIsir^!ND{Wxd(OGlon~?7dEbA&e?ESstLoO>@408Y=bS3OcZ11dGMSR$PuESRdK3RwX!_ -6pRQMY@ar02q--qnEq~7e`bIH6VkF0Q3RxN+H>Ve0c~i7rIk%>lt}>fu(2d#j`x3ZrFq_7wC(dq?X&H1N*8=JPi?ta1XExO*efQg|UP7D6|F+GVMbPH4GF -9d=4$NAnK&S(`sH>x{6a!^hgx&`dQQ;v0e_HguYhZftTWZZ{Fwr@I(3PBG?lm+Z}3vcNvgH_*t -XcF`(-bgFGAt>K7*zOZXy -B^l$WADMdsn3nZ{Cly|RnQuY4@P%eI*c5~$-0DR8`Z;Sp%>7)#NHO`5r3%rU!~@;T+RUWKrM!;pTX+)_QndAr@HVwBnpkAaTVp%~H$`(vq#Z1YxzzRp?{eeeA -wmA6o&pPf0#@P+Tb9FD?+v767Pn7@B_<0%~p^Ov2H~-B%$rEmD69#7c@xn|%lML7paV!o2}qme~HhHq -0|c3NLdxb;q@U*J0ejAWY|0+zQ&$0C*Fy^O1S3CAf`B)zcGjZSax7BkNK>h8-L_5V(V$H5aem&n~R~T -@9-bjLpNn;KGgf_7K>358`4&db4JwMyVck1NIvBNJ-x((zpg`(hk@wxeMpadVdPy;%b772@7h4o?BxGn{3 -n++zmJC)@Hmb;mVOq@FsfY@gDE{juXnv*t^YH(b?y0Gc(2tA`M7dhRL%H-#z*L7vR(%xlvfQ#4#xZ@0 -K<1C6;$f;lPKJcJ&05wg-9#}DC*$-`>axJocvAeAtbmIM=|`pXVxtX$)J_?lwbaPn1LFBHi&5IZeN!d&afPSgGI@+pmyYRHo}MNtO-b-#Qs67&#o^%u^0o?3coM!ua^O52qXEyP -5)y;ffPx?{{Q~w{g>v(yfvFXW`%<1Ml1gL{yVQ)YV>Kx)N!UHe@i!X1V2u7D8#U>yP}WVjR30-}(ciJ -6XQ`s6p(5xZj*I5p%ey%SE7t@_5$XW0d13~(Ce&FfV1Qpp;RS@p081?ckY>$@V-UGG0eP1#1Y85Cp%k -E@5`bY<)*$VVyqbTK@W@N4gh%FH5yK-JQV??2eF;eVQW!!-LB4E_%pK5Dg}Qc0X-F38_TirUB>;V1uP -0JrLm(L9k4#$v#88{$k1R>jMu_Yk?DEsYsLMlr%8n#X=pgSw7`yFOoFb&2h^-#{65E-1+y?;NAwyl)s -c@^M!_B8~BPoYqS|gRfS67JPYwv2d))tseCF&%YH6X_k$L5qo0+`#2aHU}75*t8t=k8iDy1F1!7OD%< -57fKtYAIHxRnaIqhdnFp^Etv$(ds=NEwF_Y!MVgB>X -E#|r)m6;y=fH6;@8IVBYZupBagI4t5j>f?5rjv)vu6$Lj0RDi8XG=j<$&RfY)8W)^q?`C^!!CPR#Q)$ -7W#3fYXaihen#1feoDS=1>z@r_JL81D|X=BbRQVdw{#$KNRr0QpDT!n0JG0n$HV?GYTi?;}rBbf(a@W -e&Eqi(R$23rFJe5Qm*A+iW2W;4!?IwQ*zOVAzdu(XjoM*#mZ&ov=%g%5~>Gji|O>U~K#dC<^J$<&Wx0 -8~a3_{6t3fj3CyO;Y4ptOV++24E|WBzttn557c<`U)oGHTaY^-N()Xha4$MsyOzhkLgn1K7T}n)HZrP -1J9D)=C?G)QU=aTfk$7Y%$5ppqHazi?Ddw_0H^*!;n`-u5Fa0h*#U%_?}s_e^+z)ISrI3}?s^+0){jh -xKMa&#ElA^g-UqmfXuJB<8MwRHzlsWBVvyt=$(_0HGGP9ONsW#6ioQl&4^A7Xfy( -D23npP}Ue?W}1#jLFk?oK|ZNjq+uqdO|?@a=#XBvfUYw9GNsA!D|Q847`q&)J6@BoPM3jVZL-7t~kbA -ap;+|QZn^;Aa|@&j8T=T(7A)k*PcQ5rCKDX01dByZS|*Pu-V5ygw^NL=;;k_P&5Uhhr8+ZIGrrHG&wA --9FRj3w>g-wOC)FQZNO~CurS5u=T5|Nw`wjk9?hPG4H5avRT$$4MX -Zf!_~dz(B=QW{|&m~kI`0||j-i8VImH2~j*c(DX#RkHcRg<1Zv^$fK_M~vmj$DQ@d{2mMdoc-4%){uH@ZfWdw0sR6`hNY}nYBwNqp{^;X(UT86Dd2KgrCjB=I45Vh=m4bN*hYY{m!KpemZ3fY@J$|UqE0`1zr -cD+KFsh+m;?EH#`q@=j(>tNelB0&`29H_6bW@1BY^LtQJthwH9CQ653f*8QQ9d=+vfBs+md{GEB3h!` -@B=$F4S!k>e_Nz0dTQOV5`;nxIts`OM;#Qx43e$d*vD~j)mGJ!Fv+G{jnR&v{Fv>t69JVPQZ>nT?ltN --ZkNTu}tX(&PBtvc;RDA=|SkevcUS)On}0nh-^;GA{v;fy{=YGz#${1QXh`r0+XZ-SKA?%dPh7FH!Es -PNPWW9CcvUupU5_wn)sez*3TE1O>d3lylHAZD)=<3yGigjN#(7Zk%$>Ia4GvYW3Y! -o0)sj=Uxd^*v`lDA1q+e-axq}ivO(t#^iP7TP`V%WziElIE*x=(Mw+I@Ok;9pQ5Z7HHtZlB3iJ#*3Zu -qLuq-E#}gcBkJ=B53ph;2H*T1F!<6&<)A`e$`DdNgqzc`>vJOAUUjm{g3qT3Mprw)OSc~JOxN#r_>m| -IpQB?R}bF`+hFt3EWv0xGKaKO_euKXcRvJL7i;4K<>bhxM<|VUb@TZpZjG0C`9m)6L>z77unRk@u7mC -rQ+HZdP8Bvk0i|+wCiJNC8EOOKsWFUCrqf2+wF6IyJ7^ktX_^)p*#>>0ALhqSo<(a`m?&FzN3=TpHx*k -2N0-TsyT_m@XF~@L=+@<Pyf&DW@BG<6L08<*6;HyLZC|7@_Vzje5U+Bu+w$>7$Q -uSz7Fx1v$2m9@hRo1No6+D1mzn#W9R(4?vBfG#4SYq>?o=omH=cIv -y;Wh7#@?t^IVk(uVae=TpY!r-oWMRqA_tIa3m{+_EwR+XsG*82_~_Bx`@?+6&ecb3`~!&?_0mS^~tG{ -GN8+LKWonGL?vW{pQ}3a^b^;$|d -D^8Nnul{RmvS1u81QTgI?f9(-wo$#`~es`PjgF~cu1BQJc&gc^L^ShwBsVi+FYxV>FULxhFk~tOMReD -gJ;V_F*Cx(|7U*~g%Igy -`kO-$RpLqd6bj54_m8`Gd+$rC*nq0#?pZqfhDxM(t|Q&y!23Tgd5MF4oe70P*+f%^;D`jNl$#f=dZ`j -zm8p5(*QZ8K3aE0NCm;N8>8eZoCe%D08!%QqD&({~(<8eH)#^)9l(IA8Uz@9Y9&+Ts?q4yvWHV2_HL3 -c<7X$eTu-c2!Z83gbG}pz@-w>ku*Qsme;Ai4X9Y1FggxFufwl)HEym?PwM&xf=%Fji$Tsn74>fQwzGU -sLyo&qDaTs0Bo1{_H=g8lEEomD7=zHg{)D(3MOyF%$7kS9y!9Yi%wT0!D{s>p0oKAR{l?J -V_KMz#Vu9OD8CJq&K_F4V4p2x`3xGWE{NUl*8+wT#7D9Ka}m0Af&Uq|`o3MnkWdUoDSNn;r4K-idwPt -HXx90()M36WJ$Y>6mWjPXobkG=6YD8?wI{9s%l`ytU?{U5b7F*x?PhRV@x^Dzc=qdG3x*!u9&2 -i6C>jTdS)aEp+7O0?az_mUFTyqyiU{J1-84wTQEk>@}jKfaW?=X2P~#Xs7tEwLS2V}ER98_MqHTN1Jk -JGoL|m-v2p<_2X|uv?HcO+#^5vTWM4SVCwQ8OMZLI8VUTmDL87zNO9zMa<_Hc?_ac$L@eX)+%7%3J>1 -3tc24b7Yc6%bT%<9AU<2r>JR&}yFv--B#AbTJ!XN8S5MLz*H#tk~z1uAE3?#eIn>b6?f -Pm8LvDvBtfIv>t(yH^*0!jJ~33xfTrRpfa$vCzn+5z1PcCI?At{D;QW%ORyI=$P>Lhwx!?_nS{?@07_ -@R0MAy_g*?X5U(#viTYZtfKP8#5pXvr+Dd+QnA-#h1S-@Mv#Ck*a?P-fu=FQj;(^U -@N8@@}BHNMa+!T^=CSh?-9Vzt^Gu*-KOtV5N6hylI6u9sO^3C=PutTP2`vAGdhbStLaVy5X -*gniw0OIa3TmlEkz`lc+vR7)lAn2DFBSt1dQa5fMJ}mVE(4(Q>BU{EKpyvY)Mnu?u146~p^e0o5s<-Z -iZ~Lx1Ycs_f7Q}Ce@l}vQxeg_h}{((TH8iZ0x{-r|bhdAj^+L6PHA{(PVYA5~W!7}6k_IQ}nsITcF^`V#qSY -p}20jzZ_l3!TODZK8$wdw?7UYyz$p@!8{A>-AUEn7{s$4Ii4uAUO&YySg**8Y6KJyHLKG!Of*i1&t$5 -Y^`f;zaNK`6g*p%o15YNe{0oz#P}cTSORtRO$XE??@Q(DE;QZ5Oo47ea`|L1fc$#0@P*Sm*ou}Se+&+ -2hVuI_ho5g#oi{fJQ99w@=#IOd@!vlwWY{~+ZGGmQ;daLh|_uY9s-*};n^J#uWpFV%h2jT#&a}7c8=> -T2REn4y0F9Ns@K|w#;2-mDDVBW&;dD3Ic=7$%IT!QM{4jW>{k!4`TLQ^eT|#83-6MTafZF@B5fz=8)nF-&H -s7W&~K(AJC~=vfY0uhC&xfag)(FH%z(h95A~Z05=K%$!m?@Y60=AV&#I&tD|C+1;XC=X;+V2`Q!38Y@ -7+N1^A5o9L%n<|N2tNfK>^a9iCP6IJOMd#ixi&7ngH`~o@YO@X77=jOGR;OE*|H6Qh{4;kr`FsDEX;> -(onyef=Y^!>eS4*B4q-~Q2;Q&<@wkJvLJi`#gBH6IthN-{K7#!!63~YsSA-sLD;;alUTTS*tIbC|J0H5wq~Ia9FbY3 -h_ixQ)xFn3VD?6Q?k_=k1XM+69FZHpfWyuj%oA+zhvXr!Rwk6v`>e16d}mM}72bgOXjR$0*r1kfiNTp -kzinWVumad@mlfS%0}x2ehAeK+BiPt!+E$xcvKgu{74?qgi6$;HLB>%qnFCy7CSv^(fX1eR4>_^Zjrm -Jlh0S7OJDOXyGqaW;!RBO-Zs#mGx?uJZ-pJkWFvYyE1S(7j;TKlQb$FqJs1%BF=1AwU -ISJQl^Z5oF!F1ZrVl6LK+J$mhput(o~obI28+SJz{GxDMmPCb!>bv|k&p{auUS&nh4tS*{LTQL<@Y)= -kS1M5wb%qD->dh;a24Gt$RmKddAEU|IF?AzW{F7_r52AXp -AL>99%w8~mS$+fK;$E0osrG!0a?tCd&`4F2dab3r$AlWr4kFer~_fE4cm+uk4l3L^_EziS-+-QtP4@m -2l+Sf{EHy9#dC1F|?9*i*x -#l*{6PXNMg}fD}>My#B=3ONWSo#*5YsxuvX3P8w8~WNreUGzpN#L74`ewJ;F1uLRMCE2Je+$6C<5$5` -sU)JCHfXAU^lIfJ1uMXKB$pkmn7N7UHg{5V8Ci}~aX-cPH!W5t7JwGDgJ;qsdPYd#ykX;AyugQ)hsY3yv01yK(TYpA2jET;? -Bfz8;=d`@)l-+rq1*4z5PKwO6F%ibrP?gHeaCtIA2eG@+?jF4&OZx&ua7zR8x7YzMrm$r#8JfidJRZ! -O#6EW4uwuTXH%W~LlO@Y1tms>qp{fEtYb&OELq}w*$DJcj#~b(3Gx8M0Z2~3`U~v^NcYiU9(09oLGh1 -wF5%rE(*Q@?f&jnC2OGBHqrEp!5Xp^?EDbda)3yHlmaqV;2brYtVQOOD%sW-BgpOt<9T)UU;^|Jk5vK -P5AZXn{8dxbg+pL?bM0XbLcuaYMz{VV0s>a>(N65ebj*0m@J4cIKOl`=&(Ag1?dwyi_VD6=PFeIo1N< -{3h;2~v@@{T8uiU8{2P&ULHhN5!0WA-E5lil)o6^)~q?C7LB)u0+%1G0Ms0zz@C1C!@6BWgSYpJ^Bh3 --~3H#6rr!Mx1~@BA%rRIh0*ntt4mu0$w`4Hm9GYrFV86LNy6r@Q?*K{DDWUuBBtwFxe}cx&sCyB|r-xegd$%8Wudtfzyt5|O#*neAHCzGTY`U&y8O(}_)D-`!kA+(aeiC5q#qzbGiPJ@%aK$ -SGDW*T&3xON+4nMPS`MwU-Lk7uz%mSI{BWVw{Gq#9ZNNm+zY8gFbUWV4^s6;DB)5aO1hepDmw29_9hD -w>E@qZ&Y2!N>7FWYMiBM!|*#bQlg~g}viF;egE_4nRXY;9`frDO|}0taBxDLaT`Xxd?n4d~9ysfyf-Q -`ucQa{B%@uyJy}}WHt#AG?$mk`vC1;iiXO{j2@F*A%QgATbQK;=Jyq5nLr8(_#?B=D*g7A_Q+hjx+a& -aEB{PmcSNs2EI;xXaMj=Y5*fqn_pZT{rR3vS2db_+;MFJaO0!A`ZF);|H4Ji7DQ*jP1y<5Z*0I*#U{& -Fae&m1V3#);bYXj)&2#9F1bp@|!FRp+>ZmLH#HY^Nmna8!xet4f`7o@tR{#uhPoW6AZBu07jO=-fG?PN+S| -r)~`GMtIgFnyVS)b;6!lnQr>QL{zrJS@oN{(4xnYALn}xtP_~fkZKrVbxp_ -2DYcV33)nDU*qvNgyBMl)07$HfYoZfg*J4G^VLA^@mtz*nE-|zd7r9B4xQ6oy9yJBZKdvLlg@gqy)56 -=VY*Kxj@h}JnSQajcAb>h8H&L-(PK^$2*s9g3(G9R#*(X5E=^F#`5?ld_^Z}3?TW|$0FhprGMDUl -=@8MK5800P_Ui^?vo%e-_p<|Jufm(W3s{by*QSe9S;G9Yy}#|0U~Lz^Yd_gzb@hZ-Ldy0>Ai8@{Jwf$ -LY};M9*}xwjYT+fjN_(La4tJqFRbE3eTED`C_>r$rt2PpMh3|~gP{f1 -4ggh(Ebe0G5*?ldIPV0Y-(QHPZ4TG6^{Ry~hjmu8Dc@%EckuynB`q$$e^*l$se>YBlL$2iRBCYfY_4_ -;oCL-%fQ7h%JDRbP&Cia -#su$*<-dyI2T!oXLf*ToM#BrbaMxjPE!oibXfSI-1|7`tEBM!YS{D}e5|9G9mR8z5?BG*!@A*8M#2d$ -331veIH)r})OB?YkROnqVYk<#lH*EsDI^#iO#c~tcfgas;8i(YV&0dOm*_ka)sqv_5J7pX@fc{ASE!p -JvSS`t_ChZ^C9+O`c>bR&fTGBT<0R5G-?jO|3;X&iF3Z9;I;5PscjJU?YzD~#({*U(g>3!4^0FWrs8k8RLTA?UIoizf=fX5`rVi-e#=H(nw5ceMkGJg&9u$Hk!-NjNvPps -`JDch{9@5ud=E)x=Um|QADn;gRP#;=Obwg(@lHM$$D!2w&{oUMK{;$$T -g_LCJvI3UmM=D;~I!qB;0Bp_4HAG%2wmQwJ*mP8UNj}bVk#d?O4hgkTbgP|1%VB}oQrzt#X-UL?;WqOIKVSW%81XqPl!n_Qw|C< -4-XfgR2eopM)E}7RHY0QT7n;wJg!Mq9 ->uWVt+{Zh1&Chj*<2!6Bon2OqGiG1L%3i=0|4Y`vvl8xNQSE)GgdDK3ZmWG}m=e=uVvAe_}UUtbrF+X -mGK(s->FFKYyC(MP!+V%EO+d3=au!(pq)8GT_( -s$I)8X~hmsw-HVWNEGifZwIPLptL~2x~yNfOXKDU>&@nFNENkGbjtx1D9-)ZTS``+$~q0vzG&0W2ZlzJm@Fz1z*QP@jW!0z58?e$ -Eq<7y#;}uYEvbr$yF>n1^E}q>Rojy_EjFw`|2F*>m6c -zUeUCqM10Fh^uPcaFP+A;s&Buo>j*TM4Tv(&70pTF^iJvb$t6nv61iy8GD1pn77=Qtf29x_lf=`+)&>T@Cx&v>_M78V89jhUd -ZKdniojHnqeB`rZ7|%XNF-2;skG}vAW&Nq$=HgM8CfHBP}%|9*6b8E>51;8{$hn!iX0IpR0y0IELQkU -PKc8Gx-cdB66z4)CX!K2^?IOQOjk^N)kJrbe3Q~YNxo)N4qvrNo2K!bkp#}}M!r(_LZvos9#*aS;Mc4 -b;Uc7JGvFafyB-GN3D2*^j#lDN8U9FK_8AU?m<(+=0uM~vGUWC+|3-Bq&qo|yXnL=%d-CTKk68SYVY7 -xPCV~tqN`tf85qGC9$a%cSmD^*2%@*Ki+Ld8+QXA5vzdtQZUUXDOtTS6d(nZ=U2egmfUp{b=>7cdyKX_D-jnO -_35C$d$Td?q9jAHBFiMt6`|B9fL=VuZ<$Hco%YVe{Hc~o!TGqA%#C&aGrDiIjt1A2SfzeAcS6adC-hY -Ws?yZ9FQVU+r`M76j=TyPk2FwKfEBh;`r-QWah2CXeD`eeey&kRX~^a298USNH)6IAfT>KE~qu58-1mY*ZWZCU0^kylr7+}l=;5_5n8HQXBUC!-sv`L9m(moBpAOj@5BYzVx~Zpk232QD>=Ex -GKLWDxK9=|!j#0EM*T+%wauwmnL^mO>L`V|QghTD}zVR))*C)BO}b`J1w)yf!>(RDZYRBH2U8*PL5IB -%2hY&|^!8=2iN6PAO-~>+?ayfzdo5;pNc9l=dQaLxZ74h@$@c0YPI0}*cCfYvCre9huHi=^ -dZQ2h0rg#hR_$hl&D*kJ9$pk9g-)e^%t{+n6Pe}IGDLhD3bg?6o>zyy4JZ2TsutLBm4^Q1-CbP&QqA= -*Sw6M`Ho;R+eU^$jSSqdoca=)9pV+k}b?^}cL6j(w3kbl?oRvrq -Ry##spF<9hUTU=1SH`s3W&2VS?zR`vEhxcjZ0eOTxRRF+w{_wj?O+#a284Bo=Yas05|7MbHzOYL!;T> -N~J^c{t0R*rhDPIVPju1tO?6*2PZfxzSz>s_h*lu37#09xhdw09<&(`sJj^x44h7VDMqoD(3Y_KtG;O -kgBxf}AZ@yYY?{CTnlSZE~T%h73&S$c6VcCCcmE!q+P(iiL=Cf?4ckH(0n&|HV_v0}|vOG?SX3B!zCMSbPGqyfC8B -MtBhvOxqKG}wz5%t61DSS(YCtP9EEaCfYQe>?iFx@5;!~o5aC1yePI;+_vgzC|Vr&W)>d;Y){IdM+sJ -qAD7%T55`H-47n)U-K0oLCv{kI9EY=EGA2$ZLV7pb@S*%5+;}6RGBh -2iNOy2s9$<(6{2@ErmeD2-2|J%?wgu2k9TYA4w4qHO#6kK|(ZvkmB^8?l`hyh>{PGsTfcu{iL`Z7Q}E -3$>HzoDCqu=N*s^PWFqP5z^`Y|4Prg|kM-UHNphBs%h3dn7nV$zw+PNwIENV%$$!pqrk{bct)fS0l06m-aLjQCUVG`($u -4yC01iM^K$_UVbdDtxsO@rKISGqM#NIFK81FY<66Yq1tmSm$l1}3267}x%Bp_CeI>TRqy{JYvj7m*AO -qc_SEK7~6ItjzN33j{-s3S3N$6QJJlhhw7JJS*?>YCJ=fvLq{Fu?Z45N3LC5?A4GuAyLjrVV7tbZPJE -%^qs#tZ$+YNpVe_p#B{QY73~Xf5d9kkNJHm9r9S -0AVC6BJXYC+(}4YYEivnIlh?Zs8Mcorc*9X7|X$B_@z%5{|{HhB2SAt{*uBHrJN$W;wlSaU$ -=z1;yBNE!CoPcaUFm++Pbx!g@>VX{3-zSVt6^x2M_;)S`y_(^mUF{7Xxhi-5s#^Zl -st$O{93|I&)sH`VlQ;SB#f=um=cGR-Bg^s{V`KKaY=E&L*-?TR##Rnh0wkWamIWSG|k8FuHh#M@A&@B -dw{NABi2A0Mn^Y{@Wk;`4sF|mU-E?c*LX2nY!aRq$`;tA%Pqlqt6W=JjXIX?-aSmSzl{FR;UJrKIH+s -sYOJ~7E?F+Yf#WFYOd+S3lu0lLC$1#)TX)!A0X&^~<8d^~)*Yu_F~uB*rHEwS+=}#Ka%L=1&SRMZF@znuV?X8H1*x -Neck7`uzYj1?nPbz#7A;kEH4(D}{LAK7;@qFn4P%|3&|^WLU|A%)Iz1&}SqKMBHFN%S(1(=y@)6#w>h -^6|c#g!MHu9%Z{`4w;TEd@x$)76u(+~O6D*m*Vo*3;!N_dPXyu^3Vdt3O1v#RqUeQPEszS+ZRl^Exqk -v)c@g1_VtRayr?bqQqsAH^dzosOfF4G ->)C?qDj^3B!Ys^p0Qq^5&h}DVvY2$K{14_(vo_tU$+^s_Jk2I^r-72GwFX&dD8fgk#F4WBj*=TD8N=D ->rT>UiQCR9T77@WRPw@s@Q>Wb}~x%BTsIy(_ceT!}2mm^B5vWc#U{0-SOq`4627})bsr7+52i8T -5Rsp9l~!3hmh_*x>vvle!p!f-W%)q5IIM-!qTWiQ}~Ks{|P4TQtx_{Ki^_pKcG|lUDRR}ZIpLQFiF!c -KvIlCCnRCtnrxE$ld2;Z#Ehft$h%SjsAV+T85;)AN&3E6$>?|C6-k--IMPP;K49%gW;xueznRS=@ZjL -@z=X^@i5KX_`HEz=z(rk4E~bHd;rX~1o_FHdBH6#9EHi%%7j5Xp2B6GL#pW<@T;_lPbx-Gw33%GyCPq -q9Du{8;`4Ysf8wrLr12?Scy7)qH#Y|=9-fn`WGSUH@K^ZbwPb}WFFM6Td{~T#SG0gh>o7mtU3?lSV2Q<-!lG;c*F`f1`W~5k37 -2)fm{bW6=JBGf1qh90s3fj2>YPbw);DG~w-GRGHb_`m<@H2}14`F&R!`o=&j0`Kk1*&*%gmvZ_g_MW=?5!!4Q)Z2Xk>V@JP{)An72Zo`Jp{xPXPtk-hC6%WD!E=nqX6o% -uJTTp(ehFeK89<(2Z5XRPKT%Fh(j+rTSY;hJWSt4F%p`RYEF -F%Q(E-}s-+4GYya-bLoTSjgu6!O#=QBHskR?d -2@LFQ{(Q*Ly7b?~K<<7TE7zsAAB)Qn~MM0L}&vNe)B0r!J%zO_DQ|}R$9!%o%v4lBZq)>LX)J!TC7h7Pck7c-YN9QkT2YIFPZve@T#ICUGX*>ZaUGM-y^U?Fz6P312G0vhye9i>kXSc8s_Q92Ir9UZ&3d^I}W}0R&;-hih+MW72oA6>O{kQAR32IvFS&*j24N#i*9F2FYJsx --kF`xC3dF&M65F>ME8lnTZw+chSe|jgHY}Hw$yrLu324(LAxRgEqDav&bE#+o1T71DnAam=zVLo*ZL*{O?;R-gBC@({4w?0*D{gZjMR(+3e#+AxI -CybKV6yGBV!S%Z(gypXRnjMa`%|vUNt`1>3R3y|TliW3%!L{%HAkx-0vU?jmaWR)#`vDiJ%}z(OBUd* -rkSB)pR(pGz+y6M)>dztf>}yIkT6 -#bKe=G8{@1YxTvo0dbf}N+iyHv_#-gJTFQ?*xMBkK#&(|Sa -k^o6|nID1o6NE>6XF30z(THbj_+QyG;LI#1;4snw5J&Q~~sOIWMZf`?SE(FSz -f#RM$0@2n=#f}dfhCDi1s27l0Mr^$1(vB-;e=sS0c0puCp?9-w6*H!4)U6v@knAwfhCC{1qLfazNXnT -Q8y(<6xiQR^#=0P-EfBy1*V1?R!?b8HSvG~8{2WsjDP~KwZ|9m`gU5t?}&_%i>TmY@dRERj3;3DSL66 -U@Uu2iIoL1unv(r&pFBcjg|_1IlH|TFzh$3P-s+#U&sW|A$k9%rKO~!EnPck}ErOgOY!od@caQYE-_q -*O+v#I%oLo$M-H3f!%tYwNP7JCTMrVlxGoJH(n|$TK(sr>^?5H=?wl*Dw3)qABoezxQM3J%=!Q2}0we -d9kJr8R|mSF3TIYvB}gp%HXVVECzIEW5rIfLX`jQg^!>g(edI7gi8AE6w!`@Kqw(P;BMz>`m*&tq_%+uRgC}*m_+Y^V0&+_!%MzcI7{FJS?(JlnJ;dqf<`E)=ETf%d -)fd0cfrTZJDH3>L?*T{L|YW4Cr;|>?{P<70kgU%M|zz$zBlQ1A1a{f=137sy83lBz6-<^Y8M$S^$=Cj -Pu2rF{wt>GeD=*ZeJ9<~FD|GXT}545|LHYfBTdNZs#Mz5Nr3=GH<=!*+L=^QgaHpTcyB+s;gJd?3aON -G7k&Id3~(dLv#=XJ8Z6nDn^1TIIvE(E`!BceI>^&VGltyvrOFM=ivPXt-n4s{$g?LI4nc0f*HBWl}tW -Qb*hu)%qp3)Y)8`jmcK)t$n|PTwZ8@y{o`xet;Ht0qW&?<=3C$|?SwMk#EUEUm??)u(jd>}!ms1Pb^= -Dm+-^VHFh>8#dsnPc9dcUjFe6%EZ<8>w(1e-bzpv&benw|SF6Iy44!hxYJCrMgYZv@=LwUH -U@Ye%>{edp+XNEtH&@>GGpalHzB5>1%KU4^=D*p7~Pk*4Jr#i!Biq1QaH;Dzi<>7XvU2z2SE^xWg5va -8lvtCt%AOgUvg+d4wdaot{@o#m8#jGesc2Qc*aLYj}Rb5kwrvMTY0o2WSPJtd99yZ%0vAgZSA@--5Oy -SwKm=2Vd6@*7q@9eB+0t+dAm5mdQ8Tjx8Jq*ZK<3ksH+@M{GTsMGLM&(^n<7un9&4vwh0S22`y!1e+- -!lGVE!7{%Uf%^w+xjA#>zNtP1gyg5nNB>U>vk&lO52jzS$Inh`fgcPh%MSDd=-;!bUQ!3k%vv -W1(1qdV9gOUyfWF4pWwZ>Q{HG}#!jFN?aNSYl -bKPA<+|puAPou7Zf;@h!N>NC^~kgJdU65YgTI2?_5R!;;*G6B@JA-nw+As~n^-$ERz_5I>Z0WXU*s;c -H?pYDQ|rkc;td{=AB<&y3JRbC`S#EOxwtkhUe5A?q;G>F{aBz^#_ -e(@8J7C=9nsx{0lliExBA`ciqXD^*Nm~fQZQz}w${(oDDGAmS$}L~z~+_W(2Q6G`VM1^?pprU1>Ldf` -*c@P@briB12C?s-`DlTK}qu1>ZeQ7Cp -hxsyDc|L7nB>BukgJ;N0nOLsPW?*UG7+HN)0hVsnD2p6Lb3DNEpj)Elv;oGxty%unA3#tfBrs;iN=^? -vSWkCliyAMaB=Y*#UBMpiJdlfGo&=ikdY8$^77fnpuH!xkbTz6Lst-Q5Y5xtrL6ZV=uc3+nofTUg%H1ES#hkTq%d=#F6u(pW3t>) -A~)N~D(2Eyh-eif2&_dMuF4KGFUG@bLh=ie7mZkNLH+YF-o3n2f=qzu3lw6J>kppf|vMM!a0EilBH$i -Q#KSByWeL@{@{=wDIF@Xe|=XQvb0nP8%_TMBV|UjW58Rd*)}~AZ`2!fxuUO)`tNM{gIgmzd>Ei=fDem -UOI;*_rZqrJ8jCRX894;B-Zqkv*gctXr-0gP>@qgw#AM3?glpFBiK6|sA#XpX*0{iJove-cj3)w46WI -vIn)X9ZmD@x2kaMkKj%>jcQuyYL&f+R2P0dsF)p#iqrW*5&O0e~DRE)j8sl8pTwX}CFmZgM@53PP=0g -X0kcv-%NKC%dckxP|hLW-HSVI~yM4C1O+0fyV`|YYs`f9~~)iwi0yo-l*#czM0JikM7pI(un&cyO0V{ -9S+_6r!EQ0H3z#q>))b`m-Xrp)B=nbce5@hhYqa!>N~>4UDQW9cYqugI`~=ZpPG!b) -=;ZC!AH6hxi54Vt>#YB=w9k!Dtbf5{iD&ny$t^5so5{;x?0u{^N)Us`$x}dh);Xh)|h|v^W-1BA;CX- -b1H&YyWU%rRS0a${B=^n#Adh66XAYh4}l-M&oNijHqzq^}tMixvPMq_F6=9qqMn=d*dy -!{`phvNyGJDEP}YP~E%eJ=?c~{GhE+{z$ryO%UBWYuUuzwHvV|$YHnPScZ_1=z&-R=qy~ttBZbSx}c` -PlJezVq3*VR`kERB@hE0ZDmpQ9pYAbGUm0gx#PzrI!xMe6wAKrm7c@lkp^uQZ3e&`DKu5|RbeV1t(NS -CoPe`KI9yA|~mc{&~Eu`0bcx|WB{|IL#$xr&vbhDh>38Rm6Ir&JZqV(S%;NA*K|0*HW1Qpd^j(sZ8TP -r*T7)D=dOagq|BjxOp_MOz6FcCNbkL;xh(9-l)PyR4D6$CQKbu4EW`uIkl!uU&uqx6xuqx53#C=Hzc> -ayh9n?0_QTrqO{v09Joc5QCVIr_-zLT|bTJSO)8R9ml#dqls1)+xO^oQdwxG=tGfa);hyxI?pfF2CUj -tp-vNJ~CFs{h_a-1;ScJ!f)IOdNg-}wo_Vy6Er<1`ad7BVXbLY>xKT$U-XIY)1ol(*C^D?QY|! -<2$!BPvM1HKWn&|edVO#*u%XE&5ZqLoTP2~0rJN*pzc&^tS)1M+U!Dyg;o7z -+n-)T7t)S;Omj0{Q!T$fx-SyHQCW{T|jcznbhIsN*r8=Y{mXE%AM|dm6brABnj;AGj*+OG**T3g)@Wg -b@0o()vxu)v~QfMUa~Y%hbEWEZgxRCl(vQuMLCLB$=`}HI+ev>*F5**QlsxM%mGo`IGZDQXZRRfqv#y^z=s5jf_;uXsGgkzhhTn9 -|TY3Y1Hdp8IG!zVZf$q{ -s%cM@#0>N7d=rSLmV9s$3(LMWBjV2ci%ih@!2U%2KPLdc|o{ -OXJ;({us4rZL3zeXENY7RxFj+Cw}&gukkF1RM%~QB<0{lY3Tu!sJ;e)DvJavFMgMxj0;O&_jtf -KCkhiOI1BolP100j186E}U)_o~_WQ5$7P60{v~DDEo)BRAbl5-z@1bv!BVUAG%UXj)Jua6!m3XUwSZK -gXMTaHHw}BHmObk2l5TDanwhmZ5B=?)eGqlZ?Ne7jNqHU*j96_OIU^Z>sFVcvGETcFN0kBBDp}gom5D -gdCa|G$?!Z$Zhv{BKKbsk2KXO)b?K_($xAN8Ih(oo)c-RQHo>$Kh!8$Fxb>XKf=IE8#ByeV>B607MF< -1Nt+P-hQ3zY=EYOwTMZGV*oZyVZ#=(ZTsIh3uW`Mci!Py(^J7m9r`S{1#bQtGj)^U|n+>sLb4+aci`j -@h)o3zePd#PCo|;Rd%dcai%cW-2-z{@_;<1{R384iku~aboIv#KB__v9wTtQ -rL}kSDVIonLqW*gZzjD(xp2u?nyz;diut$gbPQC7?Ga$0Alm7a}!GhzC_5yQJ@oS#>9uf{d6|k5FwWi -u?%8bv*f_grFTiB4xy`dd+q5*j4+ZhX&4VG!}$Pqys~WLPH~owJcu?0>a{09IA)Ti$k@T;!vSBgvX&u -$Fj=?gHU)7e=6>*aERIRICR{X4yGWsHEr%F{vtlU@!_*OFRlyn%R)9wwn^7Q2ox3upS@@>-EG -aRHz7zN1-~Agh5l@)FhZvK60GZagEscGUS{8Z6K=G&t4FSipy4r47N~csmLS9Y^`2{aj5WX39d4fwQz -dx*Om@OqPm@Od(ywu{O1Isy8V*4*j1fEfl&$*f>EV{^py(I!7`G*Hk=cTiYgTUm3yur_Ww;psv#JW$~ -_>=9l$U~l@|+0b&f#hyr@8C5n~eB+Z6O?FeH@}3rXb(eF^YSA*tjcp8OmkXo-iT^3>);Pn?d&qq^CMN -A(=6p}U`lqY~!!V{PX}qk8w9xJV`hmn24`k`kg(UA@)x9nq+sea!U#8jb4M78JVXQ3c-_jcNyFx;in_ -#iLQp;J}1<$;xpdV#Vm8Qx`;~DvO>vbwO0BG9H!6Pf@A-@u*ZJn_Vm_6$x1T)j#x+WHuO;sw_b=`>2n -axkywhqx6zK432!{J3~?}IwvI6jT0^!l4=nTN%cAKq=O-;sN32!x+pu*p}tU?6z?cCKPZ)5*GHrqW6p -*;S1qKlRQC*qr7}AERxcjVBEHP)tkZa6lM5nqgiGO{~h-sxY{>M;N!{ -VW;Qok!y)z@YtRMi(|9;&L#{GUQqZ8ZOzP*uM$pA)KTz4@F_RZp4E2~~yI>D*9N3(X0ks_rnyLRF#S% -|lx1^FvjU=0tU!phbx8jfbh4agR#0$~G?B9Q^cxlyX5XqPD-rAmtKGX2{qRV0C-{xcq>sx*qn -D{(~C{+a%r7ABLqH0;95cU}#8D}c&2uc7$WB`V2;&~ye`f=7 -mZE^~5ZK;8o7e=evmJqG#7r}oUtxEO18s}K||M$f?R@SWj>7p^7O7OEsaqGl}Kx$q?R5h85uMU6n-|? -E)z%Bpkuwk4if9m6hQY*WRF9_^YpZY%k{BW+w=3vnM*;3AFp)Psi`Cl6r>eA2uRIfx)hxX!Uc^mMvyp -3`*ebTKVr%{{jVS7Q6*le~_IOr+#RTlL(chZ^Y<*F~<%ffsRDTLrWa>xcqHAWvTLaC@>fL`-YSr#TZ$ -1XxiWC>}r&`oxs5&x^r&-Qr=GT#Ck5?ICOHBnwRaRsK@e -dq~{2%t71T3l}=^hwhxExSWyyB>MBzT~pqNrhH&^J0nR6G(jf-ne*Fd5!>#RCMg;*$+Y%*G@pF~{cG& -90lvBNuo88dNkUA!f6Z`;jpba{xxe`>VS94FiI4umAY|9eh^x-CbSXU42#0(9oxig|uop`~-W=vBay- -+w30In-J?w`*GZ!I2aW&y({m+KCCcyN~ujFjuO(oqqM*?h>{_%@58QZSe4i1_lT-3rRy`WZTA8#sNh;&@-%$}Gce^XsG0{@jLCpEG_g -COovjZjprvgtgfyrS2RLLDrv(0Ib -b{DDXx`Vp@#8<{pfmfL9_cUAP`Rpmzs#5`5b+X3x4~10nmg13q=?8&s=5LPLR%#!v;{o9r -py6Q9m(w+n*DMQ;PQ;bd{`h!&!eaFw)P2TE?zwnd-4zJIok0$k%OP*pGNOgITzkAZP&cs$v+}D_lVKA -rtNE`%+4t0E+gXBB&6{R38toaJnaZuuk>c#QpdVY_RzCWrdh@lU@L=>(I(>jJoafT_VDqRenG7v$xDT -5IBOd)X(YaHIPa~L5tTV-5Dg@=MHB^Hksq2OmscH`Ft6Msucx%38Z89MY;g>>tX@C&{L6U)F+wMGVM_${@ -*53K{3H6Gb@ZYY@efSVoOU36v?Oe}S?+lqE`3nt#{W{2klol^@Y-tT6I@25C#DVX@0N1Gj<2Xgi-nD{ -E#!I+7e(3=jGP&erT{GU#6jY@3^Es4_)2_>1eU?Y@Jx-^_^Woo}V)6Lk)y9b3+rko=58R`#S!!D%%J1 -^sLQ0%DtBFSF`$H}g4dS(btik5h4wtE(pJHB@Bq_z!ZThwpc7 -q|yDJzF$PB9CDqvSyA4LMNMK~n7zFem)~j-z2Sdf$CK#Cw{nI;oH&_}Y63 -Fpi#{hvYlG;OAM5Mzf}qYz)E;GXyn&-LmrM@F>=_kruFt@U-js^`*d<~UW_f(kaYz5+Cb64P8n4NZ8R -VcZu=peCikqMuQse0cXRvY%)Az3QSpr$aEQ7S=MD`G87dJU{lMUjG$-ZJd5M+Y>?P|H`HhMP*N>MI$+ -m44JY1uF!FQ(I(T>tUIoxnNRtHOmaPJKv3MzQ|Li92hhKGYs?_Ybgm5vikodRS1X*G=XKYkgd -k10#uR`nTR*Y;th*KHt#5he8MQhL^6Tn%u$Sn -S0YdDhyd^@K1uq3$R`TWur6HGu*wc0a6;{1<*!2*7jHOiD*cPwgHgjG<73N_&zW#VMh^mr~J;C95xbfsNoG3K_%@{s7TnN0SS?fI>}-5K)IPQaF8uN}{IHS(>P0Ca -@Y#g&rmJ%o6MrWGKlTY~Y_Ca!Dsf8UqcE!C-1YWz%ezZ2Hg=+U))Dl62a7JizoLm0wn1lrR_ar>5JNs -EyqHaZ{-9Osdmk$zeBnrnGhxYNi$BSbFDKLPh3`s3xQekBJY`{77~^KE#xL?PJku$jNK0gc+W$Y*jl^ZsKDH)Vt7LAyY -|m81*yXAN)*Z=7OBEg8fagH6@N@#$u9p6N{py5OSNdTjdld(qF#y%uaE~c*A~`m_|0F}{jMO~Ct~lv& -ToG)qTm89C`2j7*Yb_hC73!_CCFj8?pC@&Q?jWpZri3sLdmAagrXCou4Ge-abJ+r$5di%F>P1ynxj0; -!cOqs?1M|~5La=dBdEEO#Q8usGBKe}^i1&kMLNlJm7tJZZXA5fh)BM;SUDyd;fs;QU3h%8&|i^f?rJ+ -S`N2c%RoUI)IJ*@Jj?lFax5WaJ)adLT*Hoz!b&w>1B)>J{0o6FCXM)ryC8n549OcHhsGQyqB#y-Y2IG -Id@jrdxEfXRuK^?F=wV?>l{r(pjg6^r2LFfZ#=$`9}s<80j1B;&fwdxj1nOu6&EPOd -+U+^`15$)Q1Oi-~J8ZsQp3u(%HlKCZ6GS`WxTGdmWg&PY+;WN)l^~#f@Um?OwNl^ -wLy2C?WIt{8D3q-c$`vP_j6&r~Y6=AEW-@cR_{6wU8CC$5QDJeie}CZS?2`{leG5=JY(-+lgXaUs;()@bKUrvd|-W^l==8&2azXky5CHS>qa+s`X+eRJ8ZvLHSCMMswy((PTm -QbrNMo~PWNYR)49@k!rei9v$e}Z%ruU+_@hl)(7Mk@7|CqV`aV$ipk2pO4iNl_Z`f}Z3rl+HiP@{m!o ->8$+eaXP>6l~K6qY#&FEkT$;>{P&&Cu6Z4S*m0`2 -{mz*B{jZo=_fZgM#prk3@3{xrqgTUlLn?oD`yv(R2bh@P_j{c@?35%S)4&b|uoMZe<+g2}fYO%XvEm> -dmM|!BM3V3o;dC8_~een}$AyrXM8(c93IgA}2okDvP8}7E@!Z5u%Vn-zQ%QZp9!mHXfBjJB9eKGF0=- -*CUWRkwdE#goO+ajJ0uqvTiX$2{_8{W1Gi*9rMYE=`f@xil)mT(W=TWWj_0RkrZ%8DU$bxa7z(GWNihBAEAPe{`Pttp{PLqpz -X_k{6|u%taiJ5EV2e;UJX{n>FvTCX&$R20`LPTVr4XF0|wRp7=!N`h2t0r3K8PI&}Ri<%^;vomIxxGH -UT;&I_V3?w1_J`FA-ch89Ra0Jo|<7{==@fEn}_xVLsu(h7T%dL(;xqF$qoaCHVd~DsQ*g)YeLh^>vWA -LH4zSy2~uo(KcO*&m+eVntq{NBB;)u@zvx$4Z}uK7`RxPdRE!NkMs&-W8m1AQbOffA&j_4_XAi;L-6% -yD@iF3y&YEPIS;KY`O2*A3c4&whV(dRnAUjN9X5!naKJ -V0|41TyTQ*(KJf4dz6#gM>+EPQEK!>2MLSPlSerQ4NWyHN_@jfZm4M&HCE&e -Cdgr|~IXs+dDl_T#on%kK$}dl%_l3$uKdNz*zN$8HNw{J2RG~CGJY1QrTh~*N^mq?YBS=2_*LA2Kpv1 -@74LWMvbCrd1NU<9A{=S9pZyb$<&>O4t`zoDrLfULRw%%GYTL*PM6ynJ!8RHBU(q`aMidK5Vc^$B^Pe -ut$N_;#pkUuKa*mqJsV8oK6_PD4TS-X-kt_`P7ObH@ggKRhV+42M-@Ay%I`NKRBr|tBHmkyP#INQHJA -_bO|u~oxk8ew8!_+Huy4|k$hUezB0b53@Lh-&;fBlf^!3f)XGgB(L}he4ZRDjCS;cPTiv%cQ*nYBgWS -w4tI3SKPHax(au#mewasObc-grVpg(Uk3tsnqsUibQ`UaZzM4VbT8>&*TXngFV~Z{#~`uKG)W}^bW`` -TW^<%5_R_`(TvmeuK#PB{9Cxs=xlp|pxPzsHPOz|m(0;oMX$5r8Jhst3)D*KqBN`-Xftk=3ji>#DOQ& -nYP*lL4v_rk6c}-4n+06q-GwBG^8q4xvES-Zd#xN}(AU9$*Btff$zBG$XN__F^>9bS^#j%Eb=wjNvZy -`UjlI^SkzrOylAZ-J=g-p}$)80M=Co-;QDcat)V2@JNT>DN&(mx#2HTn;P=8uFI@SKmR&nVj-1g)Xyj -JWK1AIA^o{YoqSZ8pC_m}Z0mK?+L5$6U*G7SH2C^BHs0Y4hOsL|KrMS|HqMQ1ML=;1dBK&GCVN -_hP7DQIq3Hojb|F6>juh9R0rvG22|F;~Do9}jQFbP|7oKUh9K8FCa#U$t?x0hlkc@*S -%owPJ1N=cM1B}gqL^I^Q$e2YnX&n#6KmE&onhxuc7SkU(i+hxo-KsQrxxYf7IA`|mmL>KaGb| -$x>cTP`Lk5jPGUE;{D*^Z6AL??9QWL~wz-wiN6fgE2w^5m2{t^bN*8fXQf)oZJaC!?m1Z4+T?IB?xEqTqz~v?CFXM`o0gAT=c78S|fun;hQITqK*ed8rM^4=tqc -8OnjsP_T{cn2v3vp0|3DL#9V1MKn#LpAAU8n0M=t++>OI -9(?{Vz8Yk6Zj3QxOfeL_9%;`JVf^&ZI>vxq9cWba{1AF$QvgjQO^i+BwuxgE`LsaQ@~)=uqFTmNr?At -mCpe(U3GlTT+)ZL07Q$D?{7|Ls~okbdc7V@(wvFgi$JQ7C)xS8kdrv|=E$(o!2Os>7*h@N&#yh^H6=L -a(1d9jQv3M%0#r;vL8xe2BE}QZ$ULVlF6?TZCj|` -9Al#eb>^If#0E6r>jLial?equqt+MuYxK0AK1}PU4>S422?Z6{%|kXW2n7x3V}Bf_PXJ5LqCf0wLB%^ -3$>JA;R$*W?2ccaU+8NMpIBMiU`+BsO(Vk^YsYcsI3)RZ=qPalE6wC!JQ~^yPW|C>@InYY8+oAmMm6< -)OJ64dO98>FvR*+EG;NezDw1U7+>#8KRf|A-QsIWnYG^K>ov{jG~t03Z*#0}Pu$*%=V+z2sa1%b#pCk -SnUa3L%iqs~$i?0BD6PoC1DytICx#jj=c19g$_UQMiiD%|SF!qY?gwjg~Q(N0D?tOT=+cJ*jihjz7)F -Iq!beRG1)p5}~I5LR>W_3Gy!P8)GN`~s%#Z913DI(bqGQ&J_5VMv%foFN8z07Hh$JsA=y2U5ge_F@)s -^3`SR9Sivfh9t?~Fl3SZDMM1^I)-G*rx+3=S2DyVzr~Ps@~g{SFImXXGaTQsmUlB8dk?vc;n=^(Max_ -dUC8Sgj@^%(&G5Z+e#&qhkK|;Ai7 -gGQ14&=NY~W@!bsHgLoOkpGUli;d>EZ$8c00BWEw6%R}_x4x9~Vw6%3#AvQ1p8j=X(KMgTU2R5joySgN>EM%5H-qA*Pu8$a~ABgJ{ctFX~&$LY=KeVxJU2^b7x@AX$Sfpc#5!J@+Bz~J#V}^Nb -x#)$@q<#y*9o@DC%Xe;6)telRDt8|5OdnvxX^V6mhuFT`HPg0-_)a?HSOD?~M72<8uE1%sF~_ -b5Z{b~&lG(|!Ot!FweNxuJW~n*7CGd2$9zzoK3hD`2!)Lb6@#J*pB3BrLFVe8-1=#{gXJ(KGh|E`ePVAn -Ly57;zbR@(?FLd4yQ-u~?9dz~(TFJ1kVoAD}^wDS(C{8s-><0vXD9CvaR><%>tv@O@Pg@H><+oP}s~e -NsTMpsyD6$3Wm`sduTL6Ep2#mDE-VSk?iox}YFXV+-+2@NH0MGu1l#v_nOmcB`nPG;f8nuC2n>1Y>e6&%9G)=_!gWB{ix$9htls<|=<<}`uP15PYZ#=k;j&D4~<@jGB{D}<_NQkQJ)8%dcv@DW*F6>#NMJ(LQ5u44&Cr91*@K=i=+;(() -ci^H);^?_|Ayf{+$tee(#d3>|_eHqn^cMUQ;GuMb(43FEx*xKo3KiV~^;!K1z9{#T;?fQko0x^%tFfE -9zy&mjfn_K(|J7?9sgW^xbi2*Mfdpt>9TJ#Mat_(a)EUqjE9iygqczsB{4gqaWDK=yvRJg&t{{EL13- -LTSGix~2czcv`ewzsE#QDxnXJXDjffvvf-6cIKEz9shjPBFN9fEs{D8t7bsu -(vhTBw)qdvl@kCRZCsk<1M)`5f9F1E2f2)y6Uye -pyQs=r&uQBu}D1bh#3MXys2vBO?ol@DPA{i_~gXSbGHfXkQCAR#nt;7jzug+?V*JB~36I?UWd;g#Ia-@Tcl)`O4A&@GzWv -=%Iv`at}IsMUg$Zb@_KlggovNWTMMVW;{>}Uf8jDJbV~cBP+A1u#@CEU$mIFH+qR0PiKqWQ1bCb$)|s -YsU%q5o!2J%49{y5eW*qyU%F`t0?#EBc)T+bN`jpy%peiz_mPZgB_I>g`!8H7YCumx=t-WQr^-dogIx -5I>n#XWF<*-+=DG>&zcUU4co>a2>qQl8qoY?wNpGi2r8B_f%l5V`7TevWvyUv&A#>qn#nCS@;v8hkBO -|^<+rwOVh-PXuN+1o+;g*Qg@%nw*J{iUmPkc-r-Eaj$^g{XJ3##!B-1_2q_2L|=I02&c&nQ_kr`1>*m -*gzNT;$n#ks2Hd*GXP{Y@MO-vd8AY!pokHo|0E)F%)>9^ZJJ -*$+2hd(MOLa3zw*M;@C5_!6P;=lZqrzzq*`RQw8#989=MA -T3a`|!c?)d@;CZ8`?rM9>prif|x%e)+_NjzU9z)L#j0AIur}KR|TXh)B973oA9^!nXqfSA5p$1BYyd( -C#YGLJ5Y{6IZdOnZ$h{c9Jc!Ds2DvunvG2A4ieU!kLmcL|bjU5Bz`)rCbFh*W!Y -kU77m%TJz;f0l(*#R-(S>INpyf^-6$5W=h(6@a}`V*RRky?{?akmnMfV0jZE -J^LzDu4CS8?%!yeF(Cc>|RzhcwVS6~6Py_JCqHkPLlfDS2#7gK0Z~_V}GE1M}b>@U(a7pyQqi{|7;v( -R??fy~a`Ir6lJIhgd2PANCH)bWI-dMP?R}v8o#_gtFmTi{sRHij`n<+fSSeOn@n6VV6S^xGidGqI#C8 -NzyeG!Mvo**%|X!O5*NyAsDSy12tS^GIZGxRdLDTkf?_z4~05cDa3{u%dhpN1XKjp4_1p;KIf$F14LX -141Zbp}sw;I=+q_hvgxKab|BYxPC9Y1oc>61!9Yg=6w)Ks6rOUPKFkL`;y5D51+oGa};lmUP7!@rx&F -{F#^@zDU2r3l%PG47U*6-cDi?u`A9Jh_e#%6-c?GUBs+xN~kxFyOPj&7HRZ5@Ir)Q3O6ZL&JD;jlyf{ -BH|h6zCPaOaQP|>#_s`>u`khCp&Q{<$3(AcE+`Lc1tKM<)?*^lC8}RN}QCQ`H2d)NkO}bJ|1_q6j^IT -paNlcg)1$Q@(8e=Q-hBkcji=u1?*(LM<$aP8;6y`JIHj~~0Z26h7%H)$oH$s+#TN*A?&iZ}?UJ+}!;K -6O3jFazvgwQv4DB}Ysw|d}li$v*5%5iwLf%0H~PY@XA1)@d)lTiAa0TrAd!`*b2ongl9+HkXSWU`;be -_Kzc!vhtsD;3+k5iPi^Ks&OZ6b3Fq6>r4`s=vI_6j6?w-bwg2=)<(8E2!col+bB~VD$(>>4WHB3C$hJ -ss$BldEygQEFvMIQAh)+N{Fr0?+C!tj?$5Xl$tbi`mNK!f5Q(z53B=yah+NyT*0CqyDHXLytj&1Iy|s -~9r}!to<^uJ)UU?Q6IFO*lz3BP!R1yg;o+`J7<>aIEFHm0nAqBN32)I{Tf$f@VX%gm%SLy61NnZFE$U -2LiAJ|CQ2=n8Mm-vZAKwcS3Vwbb(zRE*w`gq5wuowM&o*qw^C1PPf~ui@IO0&$8B{n@t>&0D?*1c?3N -2V96!-D%E0e2vr=1i^cLt*G1gQ!L)c6o15Pk22(M1Z-nIbBcP)7va!t?jUE9J4RTlPCaVmI7^9F4|Mq -jZ%O82SNYY^#2&Cr+4<#>I-h7?Xy6c1htCFUKtT=9R9KT2oh|e&2@umvM%E`eu5E@)*{N0DZ85W+8#f -dP?XIx3HRd0S8^{#Y-S=@AkrL*|u$yuG~2Fv~3HM+sX-*v4UY-i9ly1~ -p;H&~Art{d!wOczO=nQpqlJc7Ayu=km*{8F38Nts>g2J7VRDJ@lyoZ|{kwHu%kX}m8OJLRzlp+uW-XI -N_H_fDUB&{ZOS@067YRYM=ryY8K0i6X!%R?jCd2X9s{)s_!aFVzC`gv!C0R2lR)D_r+dnf|jNTE-soX -_te1=ZfpxN9{!C*$`!>Ze5@td2G`OiiiI73a1W->3bihW2-~!>*=Nf?Vr2K7Ggwz{%?a~IhL*|Z^?>3ybZA5osKGHoB!PVa -L9WI@&Y{6#yx&#H<@)cgF#wR)dl-=W*v&t2~`SFBbpcver>zh2~93$DfrS&Nkbl4OfcUo@Sbq^nNA{x -FRzc;3OarbTo31GoPhhr2l};)p!Lldar}A#q)L0$9JX(dH@VH?uwwRuB!+-i$&L|B -Iv4iilAq=R|LIR->D+#8UNQ5L8pk60RK)!(6=Hf<#*1~&VfoD|C}Od%08$Fx~iih=ow5A^b9ve&@-s+ -u^In=6hSZBrd&r6G}r{bWyfPkRqYi)4(WpB->nGxH@G_ -8l_KbyS}4bMp$OXY_}{Gv`Y!*!LlN{IrbJ9t1l?o;38QO8&~~nJ?7E7eAAYQJMbIBjZl?&EsWe8>-=z -uqo&Jgf10B@_Jq~ZZ;L0HkK|avywEUW4X!|54L|;!a^c1QXdX$@D=rX1lx+H&6wj&URPO2BWVJ*D~bt -0%CharXr7^{`-9;$Nako*m(8yY82OgHp&rW+dV$GYr)(l?Cas-cH+)zCL_)zCe;YUplUHMBQZ4UPA%I -#CV1=Cq=8rW*Q@pRmj~q#8Q+Cs(aB6u7B|rah>t8hQ)W{M?F6U}~^;q8j>6ch%5y+*Cu;j#E`k7V|5r -p~HSvHFVQ2Ts8E!s%q#jRMpTQyHrD;R#ih+Ur#kOD-9dypFq{ny_dK|uxA%@)zEi0x!=&VKS4W-q_k=5+!+9C97~(2CbaR2eCKL?8B(FBaf<6CZ?KNMPZtFkMxAI663cfI%yi#v8zbu3Vxgd -_Xfz$FA78?^|}zy>kv|vLZHc@o#`8%Yc4D>Btqo!9<%;YZ1&PQF9U0!cX{!xR2t9Eu8Yz5<)bNA;rhU -p2{)NUpeOJec(sDDH3qtCj?#xn&_VYTAaVrkR|iLi>pfeG&J|;G>1?K8`Hw$T}h0;JR&AR)<2p3J7OhJ%yZ$N{9WA^Zv*0p89YZ -2!dx`%V^T`1NTfI1fGbKC>~&VHoWjkBY_qN8`=#;5?|h%TM&D-XK|4+v0m9~g?Gg82KC-wjIY* -Cw`R>^=;{$sIp5cqBpU9U}A_WFu^9Z7)lWZlUJ`l6j9+MyikeLmr5EurQbYL>eooGUtA(AmB^Wrwo&j -R{baH68scq3` -x&QHuf0d>G750ZW9QZmk3-p(G05M=K;`Rs>{p|I^Z_gYr|-D52R2T^dxQ)(kaWA>V58te2`P>b*>!_4 -L-i6ZNSq!nmN|FGKhSd|JU2`<1>J-xE`+8gOU+;39h1p<0gItWYg}kyI;^koF;@x)DN|OSH9xUbh2gF -iQcocpRA$rXsITWgK=Ok(F`2euXIk&@9Rq(HNW`RDA7)*C9X*=9gUg?N+m-Ew41`bQ1*_Sz#j?p+E#iGt;0n;dS#HEDxiFjftPJ@7meNSOEKfF-1qEipMzcP!!0|Hfx%Jb4cqw%B+o)$g{xg -$6Dr5eZ`-)7Nv4m7r3=#hIK1d5pO0d<{EUTnhY)=+Zg1%KCB)Eo*)w7**387M_wINZDUfb);(p*0An( -iHB&)aV!!l)@O(NX9!a6=l@L=TK3;ya{1SvHT{Z|Z6q}4g?WPuek+s8JKFGDQ&7 -0mktn$Rxib?2;La8^`jlKpioQYb86QeW>y8Z;J>n4URR9i|DV$=;MrlL{A#ptq7rUa^R({Lzp6xDk2v -G`<(r}Hr-^t~Q9pWUD@?n~{jDf`pEfwF%$k8eUl0XEEIh1VB7)7m~~JLy&A3o-n)?vd)v;&T3+_92Us-&rNZj=LXBj$G6h^&K=U)OY2)1LiS0rCgZU&GC~`?o -yAIvH|JSq8>jh6@2BRd9*6%NsYcj#6_HE6ytNlB|cQ=nWPXhL_d~#a#7AY|rc0%a8nl?w{J^Pv)pJprfLT?<3u(8VL{^zUg-!lO9|u=;Wd6X{7hA -WM@jC#lxIzTp2YsISh1JL)I`)8@Q*(nWt4~l)gg_-62Tci4hkBsnvY?7kmiRmYDV}dQEs6NuP*1D{HX -=Vqb*e{TL+P8*egCn;4y`FM1N`KW$<_CcBi!sDt|A959-V^TJdjTJiK$^LZF|U^1|co(G(`8W?^nt$= -1hviwBk?xV54SHuj<#O$Al*dIo;pCBrYQbo^#mZ12fR8mKW44tm3TnROI)#?lHr$i6jnT1G_XJ -@zWcG@8)cW1eBLNAwCO45HKi6x_)OA>Hv2UjhMmGvIY=SydJ#8&Bdh^?q)p}Z{>OKiEm5a%h3Z=fkhv -jp@-0=CSwQ=4x$Bu`)1(_4B6r9L5nn*2LohDI^6KoFYYQI=$o( -dg40T6m84dw@zVTvHjBiUBfaJ*-1EZXSV-!TAKDU{wlcE5K#xRO6)<3; -zxJG+7Gt`rTGHAtt82k5KQkj-NasM4VeJ!#OTaN+x#CxPuX&c-oDo_d?>;p(W{P)|{p>g<-$k@q03079aFq -kF>jCh4#__PijypP)~y0_(v{feMge7t6`!zRr*3%ZXqcj834n#3j=&K0L=LKBQQ544zIm4BZe0L&05Y#;oH8r6 -Jwu}Ign`z|ZT#+|ZJ(dj!D4$qxvA_TN4cJ%Etqn8Z+L$Q?ygO~XNfR?&|N0V*&ZFE|@HzHuCjHyB#?w -C+{ETXR#6T`#sJLf1LJuMu5Ne4-n3iwR=<-3hzPm?#KoDXx#O3(79EZy -2%KGuOJ|JuVuIW&a -zKDutI1T-*6=tC&^TMR~FmNlZzgSr9Q4$~a0$##)jFy*Sqbw|s1X*0{CeLA}6fimbq5f`vgZ3yosz13 -=QJUk!bacN2J7g(BkmdzNtO^oJr+GjkQha!!3~}ppjZgl>DIR5WSu&Zd0^o~c!8*(l(5fL0|rttd@iiA#aO#1M8&=O73;amG@?L -sn)e3RMp$KfH>c4Mbk(El-{4;)Qq3ZZk)!yC$%DISPnq0TZwveDR2VO$M&3P~lAqlu18kJ~ -fY~U(jmQPgAxy;MXE^YI1b%?1)Srr)AL;j*=!8DTZ9dQY=13~b9}_Kd_lkY;3Mm}`g`C6q4 -EPzA2l^4`gm5xfMc${BWz-qq;>6y2qyRiqQp$YuPlg1`i0s`8xan}Vt>qtE*sLk%u*CU#!qK|gwO_q) -YZiV;*@$bp|MW(CJx>&va8w-Wk>jO4-jILkYeBRN6gdZp0Gy)HYL!~c0%v>UwON -y-JE|IDW50fN+6VV|IcZrm1JGx+O2XNy^p5y2=I-u@pNhhy;wv#C7d_fL#bml~R+F!)Zoao^4S*K1kR -F#`kdy252&vh2G@Gb0ZVOGT?!NSh`2x*B1oO(*3Eo+cDLypV-5gpQMmmDo$Os7#vf#C~~ZHEH!u5rbR -n|Sfsm^;?5ChAy0j29v0`kfUL{B^9E!cCDxjDiWMt#DH`LH$sEeCiDI@E`MB`k`*?;P4I(b2!}0VI7C+FPYcR -R1Q<3+Pio4D;tE$DIvZE43-^Zu;pnZ0dr=kA^THVyk_2|^SJ65-o3NJI8?=j~;lhQ^bh%wQV -)LDxyjGe-w0xWJg`55%Vs_QBh- -F0wI9uG2uY&3hPfGs_%jhJ=3mXPnol)fYJSvwu=Liu@}Z`$rmLod@ -uWh04sc87A=La~?%V8=A?N5TuY+@a=Aw2>H)(^D&R+)7_j(%f-@F(^KPD<5S~N!vkLl -lUA>ul;>ioboh-hB*M>t$a?rO`X`P~Pan+;Nx&{f&N3!znsxPZtBWCS%U#pXJUdOyMdLiHO;jC>junn -P$m~ozawYvy5Gc|`AAze%hYzxO?NK&09!(u03I0 -mY8JEO|xR{t_EI8gSxi^7g)(C;E8O??{>-uBJj*=us6^aYp4DUv>buNkMpAi+Ri-qbN8dVB0rg-jm_x -772Dx#;5{St)tR5U(Emk}DELF0k>JM&xnlhY_9q6~%NS@6Vx@f@rf2~SOO;OTGH9HusozW}Q66Baw6| -ov5%xFOH#%q=$$@rnfd5lz>DSO0+Tud@Eb5X9;j+jE?hjj!A8lPM{w&%Gvmj(D%`HpQ0I4}>{OFGTa4 -t<1-E8oe?FzwS90e|BT1pn{YOu|tX7srV;$?Zqa$)Z5G$rh@&`&Ou+(6^Yrv6#UQfbO6okr5KAuX{_# -XiA6hQnBp1|~bXnNklqAGDM9LdElv*pG -tOiKI24T~9{j%7z0kYDnHN{+3yHV7g_uSJP^DF#yZM|FF=pGO8B=h>QyIdHhb1C((ZT&m=qa)oSUFA^ -oq|&dm5~O!QkFg+!sPQ;x4KL?Zy&g4?7MM@>IMw(j{DbwmmX`GT?XI)*#{UE9A=jq=gXxWPrDvlxhVi -Ze|8^<`U>u#bB(-g}#i+&?{SV}S8I9FS*3q1g=A6Y$SaWJEUYq|hWa4$}I~P*3@*K1Foy*;^S6oB6(s -~UqxyRq0pDa{e-)GP| -Vy%shST-3W)9H9PDP2BuEHxE$L^J8X%njSX~!KRIJMV{ClT;xfSPVEQCa}QnOfUC&CjjgM$tb)CewLVF7 -N^RT+QVT76Zn&igLhO_ -d`SC9V{@hLOZZ}+HUhekh8!c~JxjWj>$01$6{DQ58MaB30W?RX2X-DaA?=8FU{s(qG_`8R8J^aX{yB~ -Y}i9Js~_4G5pfA+cOUwH8ke|+grf8P6-mtT4Hwb%FUKXCAkH{W{uo$`u9hmRbstg1eC{N0)pCr{O$KJ -(t$_docs?xS-b|Mio| -I_9FpHBbZzChNs`~M31}W*BTdQ<)r7XohPP>S-ClAKR?fEpS^sgHBB_8%ADc9z -(x$K!8i;g5h%&9A^({k6bkn_nrkoo4)6{Jzb1X8Ajxc|KK^Y6(o$OnPW^Pc>Bw&sU;d4WV%TwDxnDG9Zt8iwa@%ZE?|#JbGPOr6eWoz1q^X1hk7!=0Ji;KTi!aDwaZY!--;u= -^S+Ti?kB7q%vlNnKGM9Rjj*n;bknRZPt`Snc*)yCEybke%wtNz1g_CmDw1QBQWd>wx~UvaRU`G1ri5v -*sAA>#S)GF?D&ix^pr=2My?+0faN8<``0K;4vM-;Ho+hbW{g_c57<7A;X@#8bYvW1`ou&AtRJb02(g> -NJuP?e`fA-$e*hk4R<-L_VrmgD-0PlW7oLnSw+#!ndFJ-P`q@9EjufX`A}Wh58QJdV%HwP9f)+D2vj< -BvbvGRXYC@jWAlwPx+a%L*vhgx6CDP%lMUu!yr!~UJ8o_CUttx2{8^$QEjQh2$jva=)U|f}jiPH6ZTn -fHY5aD8%V{d3`K(<1C9JbS17R_U$Vsd70MbsbHC%m16}S$>?Wa -z(2Fc%VZxon?CRHEm-VU7NGRJa36xeI~ml!{T3?C1xV4u1>DVTM#*3gn^=DO~G+;4mm-c6RPsj2J_AmaS{Ubxo5l_|Lw=ffb%-7;aq -yJxx}I!MfTeuD|)$(_0R##+fMSAU}l-1VNxqM4+5N}4jDrx-^7=v)2$y<__wc3_#U8eSUr_73}ib8sIm=`*&cEi@%062oA82W}$db6nWrel&g_#BZ#3W -bcuI;|3hjlfGg%(knd>(hDH^C_lS*y|&gPiI5|A!I(w;Yl&a99|0Ge#$QAHp(L6RKN1qHCm~~l8oSj8 -)cTd{Y(6R8Nx{ASNbe*5q_+q#-Iw%^){)+GLu=K%?7x{1RHW2L&2K+1(r;Q=Im+SNR9Z$&9WyB -mJPB`^^n&>{-ugp!X(vD2pD-qMzHA7kpuL+EhZGkRT|3(Aa=-jjsps9qSd@JJO#Fh<=s~(CjAdxrxPH3j%5H(Z1v+@ilT&`m5x -o=vT;1n!O~5yW1e`U`i(+N>?@i_Bn(cgYQi>{{wW8Hq1%wZ7E=Q>>+=RZ|mk0Qna8gu3+Scu^z5A7Jm -mJx5M|L>h4z0DsT8LCL{#D@426w0Z)Rj`(+-chZfqP59u*h?+UXQ2BS}ww1v3{_|T3 -+X|l7{C=L;1>^@>Os@KUVL+5B=8I&VLhF0f2A6{y(oqEZL7VEG>;rW4CcVdomb3N;AGF;tpl#UL>+@dDN!s$`jTGB0HMx%jqSnQ@$2VH`aK -2Zs}HW#mj~JcQv4(RfY*aD9q7aQ!nn|PY_CQ}bG?gZ`I`xO8NMw)^L)|teO$bt2?M%AdBdQ*VPFS!V5 -8-P_@I3CY^3o^QR90_BILZ}79XWoH=tJ_&?|t1+z<4^G?M)w4PRPDR{u~(P}jYaUG1nmIM|y6L%ju$Z -J);A$6?L|-@(i7X~5V5VM8En$XuQV)Vm(Sx1|vXX#hVYbAGS`kI^=#qixO?={&7%Jo(LYkOqA9ml@QA -`;qYI-X#3{K8<1ZJ!?bCyW4_Of|7#W#yU0Zi9Zw42%iV1L+^n)(mh!Z?XDZ?Zl}FqifgRII^tt$Ul># -S0-b;#SlhIF;QKVt#sU)th~2?G80tQV^oZ|vzh9%S-n&*?u8zBctNwza+(ATt#@|NAYtCoAAnhJe-Rv -F1MY_W2AzU}2f7!o{uey1VZe#r-RdYw!k!IgkLOZHtIKtpwe!#OJD?oqKYi^H5m19)@#npuLI7Y~7ReStOx?d9V%a8}2=UJd`OOh^@c -yV}vT8~6qO2i^j{uXpbUk2Vl;0lrtb|7^emorJunrXLD@8Sqo+%iU~&DFI2eUj{SCLyg_*gK8N!`z3W -DZ#AO4rSbA0UeOvDd$1k&K|26AmW9;#YKZT0-p_4Sd6BnWJMi!b57I|d!gv+Ob!zt2P_quq5k91k7_I -3O9i{1`iPWg_h0Pb`9B&c;@dV6eHJ}*~Kn94xWI%cl)KNDwply6h>SVmB$ML53gg`P>yh?_qUm-)Ie< -njUKa#dkEUhvho_}Zy^`qLBk0Ya)B(rWzo1G2pc6qd0Vs7{Q&-r!+|8u^b!T&4g+Xraek8zf2W?02|H -kG!(OnM=S(9W~s!d_CUn7NQ_29x_L>&)EcY~__aPvY%Xn24*3v_MfBm&0y{NxmAt&TC<6mN-4vJ})b0 -MYffPT@5~Stab<;pPQ4Hn{AC3?b!)yARHk*i7_uPYef!^Avw1#Ns_LaPBX&SZXwODFik8_d~UkcbvCt -+2iPX&raQ8&)3dUzx23K|zt4Hj!L`LsOOxf9=*SkcrmYvP$+-)&(yj5Csdn-pFQdz!k&smw_dGFO0E* -%2rp|+}I49szDoxW^R#rRIUGjPxrm~|0zZl6$t-6xdM*q*W^K&w3vCo&(B$#m6Hx!jCPjX+*J -qT!-P&SuCa%bvfohA;KVt=A@!&fw#`JVMt+kulS`Fh#sPAa6g+L+7f@CA6!CV-D$j_Jxx*>Ovm5f_bp -`vV9#D(MxP%PUjUc*@B+IiVltBs8Iw8SR@2`Ps`YKJ}NLQZL7M8wn(Rmn|OXt1aWZA-^29CSUO(q5nw -2h#i6o&egg!Aou8$+@m}PhMdCLz2}_t1~B!6%&$v1Y=3gN?XOtU3G0w2jtDC{3yIOwlA8*xXSqGqz8>;;j`GM{E3242tc9`u132PkH!~CjD6y^ -?8G*Vlt-Rh#P6@9qTXhEty3l~)vl2qoBK0AX^evU`m-W%o&#w^C^&|V0MVjRJ9w2*Z5%eS#}ULDQtcI -|`6ul`W>?OF=!+`q@K`uflBKfnL{uJ=>h+}Nkik9;_SkP}M{XEM$zin}}NS5VuVCx>{(0MD-CTQ7JI9 -`(`UzCPa0$9;VrhrS&8aW{WAx1KyKLOqW+h}+>g+V1>A`+?kk95)-eIi8!7c$m4|ejbMldHlEYw6nSW -YJw-r2))aPXK3v_uio5$KF@Ojhg-ROA$Kq0@t__$JQ4ahH$Tbq^9)b#Ic~p?=kFwU|B$$eW%?$4fQ@X6 -mZSnxzWJ+dFSIiJGk!GFcm=bkon5r07|gK-?bc7y(n9KH_zPd)X;Q+>#nPsvX$?mGU>Pf~0S3@CHX-F -ePHmYrL9ZtS)G->dr@?g5P1%tE#*iW2YUF7SH?CJy5`oXlYihtV8HayXnr1BYQ8>NsriX7B=s^&I|{! -#WPna#+h@4Tsen9^tT@!#6qH&*7^a?&a`#4tH_5gTtZ@@o(f%-Yz@d)AtDX%0$YDK)`#Idh;oma{`e%McGuzMG{F0E0q7&H;ObQ+t6K -@Hl{$-XOmKj<6ag>o&j}7zrjRV;S@Faj$<3TQh_^Sb)8_)9jSAaufAa7ugXCQ`5f_M-I=rslM2DlF3vZ+u8z%v29 -aw{Q!1pHNiU*5{%kpV7@10I0-S_E)S94kvX!1_4m2O%yTA&zjmk>xoBU=e(E;J*yu^YGOJz8BzM;QIp -O0ayW_4EPa%4^D%*0N}d-o`UZx;I#mcBod+>s-dvYZ7i*R0AIh2(PTeB(`-gtgwb=Lj=(>{@8A;vZv> -b>7t(^VAp9vAuuH0{GT4m -R32y+!Th}04k}_mxG^}<%Hb1oQ2&1upu2}H^46d9BpO!j{&&K%J~i8)J&K+0UihNZTM;dF9#T(#c&hA -V;rvmn7k5b3pm17_z2VmSp~FO#b~$@VD&0qUVyJ=gBS2q4$!n3coORl;Jd3?J$?c3cn;(Z@EU+YxvX3 -Wn{ruOYXKOCXJH|Jgm>P>_%j9I;k#H`cy{H}yI2{&0BE$s{1U?E13U>|BjB|Fmx?eB0&W9%hXc}sIF| -tY(;Ally#U|a1brajX8~T^4E-(OjR1RYVey9nd}0gpzX#wY__6{25#XNf@Qu(=I9_6YVgUBq0elH~7{ -J*(c>Mx=at90h48W^9)>mxeh@Btg!fSZCq4>uL$IF=@UGpAJ|e)&yBTe-0^I)?Z -#w|*ejH!YggOHF%Hu2#uLAt(aTaF_z@R7iI0CSK4~qw3&{M2`KzROX);HDz{NNerO2NJkV9oDYpN~-c -EK3*RWR4@e2%iPp=5x>|z_$qSBLK7ijOX4p6i(d>d<%FSK>J=+*LwgedwKu!7r~-*u_5eTI5A#aEzW})503rP%fIa}v9fW!Z{I3A-cmwzza2vp9-Uc -299O3h9|zE<68Hgd1Hkv;+Xi?Yz$@_W0Q@Sz-c_u;7J -!?N0S|zE8Nm0Bu{h5H{M&KhbFi-m*nFJVBR(W?0{S1|LxjaAnE!167oKGJB7nP2@-Y|Ss#AIFkW3e8hP80>C%EU~S<|fOEcNb(9Qn!dJl4U>^fe`il2g -04ILU_-!)4ui$G0KQh22GRr4IO#_q-WS$WKqn$ugz!A1w0C@s%gaO|&of3NZH)&>Z~O06H% -**@=7)asL1x;0QB*1ik`16W~KXa{2%q)iMK(3FL8V?K;LFa3;YBCENEu^PZ7X(;Hv}sa)6 -&Ta~^JC_dv?P4??`_@jTE6;ceU=VJ62B7IHrbpXBxk-{d&L4>^wTdyXRvyv%SsJ3o@+2uA;Ba8kZiMcw< ->MaVHnyGS=Ff-DQ}%#8&QGA*%ExfExV%PC89d3yeMRt;kCT-!fVg)Usp%MxhTfDEIv_XWS~-S~`#iZQA=>{$(YUe{(W{}Z%7uQv1 -WSHXQqo4NKQFbB1n*L?&2wQc75?=)10s%jQ4YRDaK=|P(%WwS8JLu4m7vUU1A0gSF<60FnhguEac|hHK(8m8Au;p-Ae^MF0!=%yqcr?rFd+xrREg -)*n#BIU47w^F)_>oHMg8N^~|6@)=-g*|H-G5Yg(?J$}gw>PbtbT^WSN?N}bU^(6? -cCi$a|#{V@ueIir87biIx_)A(uLm^0CB<3Hw1t_~>QQtz36E3m)-x6czkO+H~AO&6br`*RO>YZu=Z_> -_F2fzJ~@ANcg}4N#EJgE+7M8lOi;N0Y?FL^5yQJhEZKhITw&R#rw{eDOu{>Z`9(9{=Ej56G8ae(BHXq|V@LP<3i=uqn+`N}iF1{ONwE+W^AfEvW@#G) -5&ZqkE;h&z-3278Z>2&>*4MT!0^Hk&E!=FFKx7A#mmZomC@vUKTEvN?S^S+Q -aTS-Em0S-pBSvD@vm|Jbx?6M52cEBV8QDdd&Sv7~TC0@<-Dp6tvul1J@v_+lVX}MoZn9_39`gI&|DM+G-o1OtYp=aV`?5FRe3QI)crV#{Ng=N_D&*+VqvY7J -W8}n%6Xf*i)8y>gv*g^lbL5jxJ|P#stRwGzuaHka{gm=WLqh}k@!~h+^UDfpY-}XW&CQfo@aHia#)l+ -Ayn$(SWgxo)-}pmg?*;6~ZS%cwEzfx -xTUR^besHs# -+m71CsU2pyOIr}=fO(Hzs_x--#ulr{^_uO;V-fLcK?{)48!*68x13Gx6rqV~L%Qowy%vb!`Y}+e)So5 -za5en5Fpit`sh5Ej(5HD~kZLLCU3KZIRQU~wN@a-ACC&RzO@JS4x%J3@~ejUSaXZX(;p65(E&hY0L{) -!X61&`2!M~LMSX7UItd4zl(;WUqMr8X&7Ta$9VFDW-ilk!U%DZj2E<<>rO!av3EEg9ax@ckHm5W|mW_ -*o3UnBiA3{CbAp#qfI={y4*5)WKKNIPfIHKgIAq4Bv#|TQGbG!}n+S(F{MA;a4&I4u(IfgD=^vYSVvZ -GKCq#jArq;` -xq-(ra{SgZ}|)brr$e1o5MLlY~*8;k%pS*%ahsZ&qAE^ut*>&-|;ILEg>`PVvidUO#t_=_8Sya8`AUq?y`?tp*f4qKA%z*2WqVf2iC2p{S4Y+O!kBqQbBEuuSO -5DKLn>H8Yheet#;gROZu1|YDsoj9<&HP&SRMhcJVhYJMYcOum_$S71-8qt392stj6hw#_B>x$ItGRV3 -P_XbAo?W}vsZ)nvG$+Cez*PR%@8CcjuZ_tF-5jCM!mdFyEcuYQinOJ3mpWYACLo46Lpen?Hb&e=`S=ApN-^_{_5#Fwo%Vpj8%$f*eCzs2LrDThAx -lEKdrMOm#;S?tlc@HO_n^HQC-RZxm~PJ8CWbZn -RN2XUaA$boJi2f9^CZCbCirtL~!Do{pKp^`?&l{IvZcK{6K~u&G -0iBei_5BW%$n-{%)N6Gf(+5Px=3vr^xp(dwP2M;8;(*sM*t_aX>%-{ -({t()5Za{-D@>_g3mpD8a8dp_ttjz3h)o`SL*vV_X}uHBcL|lQ1gi=p04lH*e~F*8h%e}UwC`_H4ms( -?QuVbY4(?zPk4INZ65GgwQ4o0SE=%Nvs$%0A9>WXd4tEQ)xZ}4?p{w;b*t(dfYzXT6^#Ekk4km;?6HP -5s#o`C`|@f0ROR}7l|dTtInVE3|F2CO`UeE~H)Z^J{^tJvjr{$6`~`jWx#5{#A0Kh5OsR!uC>8Yw0F{ --pAJB2r-Glq_V855TKZF+-yew|0f7nq8UR{%DtUcEYd7V -#%W@w#rj;+s8%_}PHu_`_;Qin$!Xwn*d-?L^&vV?_dinC@?|=H~r}G?p&Rn{5=^P(VUcY|*G -OtU|9zTA3&1au|Hpk7)%|AFeI6$MxLmLM_p#UH5hkuYY0`p&*G-=Y1kKk3!3c`8}95~R>o*RFD>hR&i -^LQOiJ9g}#^XJbK$5T3V=nyuj=;X+f&cE^yJ^doEyVcI=FO -W0-sjGpqwl}}p7!qDOZ)ci6ZZjza|C>UmSL8!S+i#HrcIkBbIKMzefsp?2?+`2)YQ~IoL2)k{G7$VZr -!?VX3w5I;F)Kh0q;D_X0sp0yYaYzO1{o>F0 -6y|bv;4eF9kR39S9r#N+{1r8KZu>c4xlg3pCIaXgvfM|`41Xc2JOEfdWLC;KTLG3+sQ^!zvA3_7ZjcN~Ix?ZK -1_3BEKE?k3ak3w8o7aw_`b^!p`7ZN}~h1UY34=|G190066#=eTzEFHVPWPC5m7g!kLELOH`5eGxsHB; -s5KezY@op5*;+iF6k&uCZ*AF>((vWw`CcvoMfRTqYbohRH#5=!1qMYeMi*y6j3B-_(rp5)|p^w&!4OI -44>3wyK2uZx2ZPG9=Ei=PAu?eInQm|wyiJw^BKS&dg4k4^d5TcN{6Hcx(+=$`Q>_gZ$dC-j_X42CWZ( -a&|dn1=mm|2J|~HKGEUvU(b+R-(CoPtd=mTA#_W@Pm -7}E@=S%?Dr_|?ZIT97)+}sbRiqlu#9Oyi)R1%BGb^H@%Z~0l?G|gph4O*d{XPrnC~AGH3JRIfA1}9{{ ->>0uS>(9{k_nCwzX8`L$EnXhol8GARd&ZTfiTFa>G<3<-FFJvY3XIOhd+475~J`L@!@t8j6UXKd0I=e -3IqZU3&%%(w;$sv}gDvzpY}JUtIBroguz(p5^SIL3UR)0X&B#yZd|!Q -hksLPurdt;&od1=d$wryY%ElLQqWgwe3m|`Dbvt!YpH%o;LrK}+;;8S`Ergj1Ng%);s~7q4aj*UE%*+ -xR_0~6hIosd0qw(-jGsm`hrf{e->FllCXj -{fuvg#>+8t9_t$TO~fk1Hni>2f@llVupzk<1U_D$A0z&PM(F>?vqI=2reQPFuzoVrz -_tK;1`RfihQ%5U^FhP#Fq%1xX&7Rr_8B2bw*@CuNKap=D!2Xi#vi;;SlsxgbqmyV2k#xqg^vPP#)8;m1z+6%rw9!NqbIbpY+Zc1HGLPN^da@sZ7 -HgOv67}kEX_$1)}gtMqQ4v?qccwANWiC@7%d_6W{>+X3d)Aq`{Sr@@Tnp=Qf?*xr9EMYoZ;~gJ`Q}&u -ew|yh5X4sYb)USdUUi7-@E_N&}k6F*rW=wfE{*Zn5?%g2=djI|RMec=MX7=paG=BVeCk^G%QJzfD;FH!T -SHPZ`hEn`YS*;%UG=Kj5o$NcQY15`;wOVQA%9Vt;oS2wMW5s#Vz#Fjvz6!Y -z@=>e@&|uGdR*j?Ezwvq_bG*}@Wsb2}v*-D23-`i*+qP}BIM?~R#J^?BmhFcO84^Eu@ZgK=M}-`0HXH -Ts-J70$_E~!K%{OV`!iBV8!2*E~*7v{{G$0lrPDnbih5-%mr_e*hLd=mr$4vX*1O7K@_log%bByt7js -bgyPg;@`3H0x|{t6Bbo*fw(ITiZDx}L`C{&pKSY;dp*6JMjGq$FaSAe{H;(L>}2pM3I(&r#7WT|?(A)F-F82K8rsc>3msUi1I(F>1VDaL`Vjl!^Yqm@&DJc{c6-5mjHl$|F -ni1#L0vF%`+t7E=AiFCq=+G%SHhk+>%U+>v{|x2$tmYVq&-TeC+Vs{?I`+jzx_RS9A^lu5^^9 -Thcb<5qboF0KI}ghV1122IGWsTSe;^0)M7^Zu|D_eVK>!`9+Fa^Ql@<{4uXS|B-w}$9f -U?uxyEQ3p`aU?1AM?tZzaG5Tn3j2_yFt;YYz!`2V$Q*HTVSj);LDeDHyQ1FxA+MeN&N;utxJao@$?%~ -aI7M@8#5B7Z~v1OLzVn2K}Q8;-yQ@`lZ_o{C%|E-p^^RUCJJ+rSNUL5E-qGiS~u_E{oM>l<*B9Wd}S@I`3QAFPScfjj70zI-|M -7}G0Ns&v1&JMowKKl6JAXpnxfG&;a<_#lqmVx0h;LaZ%iPha2<*~lCMbsgwEbO}6%4K2dM{P)lI68P) -&A3nl0#=6piBlg%|eDOtk`|Y=de(U)zJMM!nLDzAP7y#U5eT4JcW&Z{40)PGbmt#*V^b#=$bjbaF_z( -Cx#3MZ&;O)kZ8)?asB|@L24Wol@xi^oz3FpumSwCQ(`CjG9mH!*uo%rkHqCSVw=QicZ1U)@HUBH7b+z -;A-FLVpO6SPR&IX_+XfcpLi{DBMGm(YKX-!tU;t2|odo~NweK{ogfa*#DS$PB&+wFK0lKnrl^IUdB%l -#9Q9|3|K+%99E5d*nYjM_mpbx`pGXpMEO*E_eWYg}wuS*a7R~iie21z+b=r$$rAQ{{tEjJCVP@|3MEB -j}SY-W2`yBd&oiV??MhZhtG$vg&*TJg{W&V%?}%Qfj@M&JUuT<-}Sx-*X6zi_zW7M>#Rq=bB<8NvO-+ --e8{+?;q{q+`ycL@1J6A?l-Kc63I~@R6DHhNs?zU<2@_5!is6cS-*j0o;v5wf*Z -sh<8s_rg+&7S8z9l9mrZ4CFX7>4b3>%M~A?JQl(djA1{YCNcSVow|O9qh@Y#&)myu?FBZXgs -eMhRgLm*14D$c{F$;*F4CZ^bPg00q50vA8KXmuavfRQKDUT(FZZV{@DlDXCA;4#IH-|j?#P6qr^UDs< -sFC$|WM}1+{Ma>>0K0E1w_G>m%wzs51uh@nA`v^g>MG^=mZexl#J(Fd%>Az`zCZXY1lPu?L3zVC>1u` -O*JzL9KhD-X`?%h+1nyjR*RO8Wn1ts1v^Mg#ay(^COP)dOv>h^Yc0>dhz1LQF=TuH}o7wG}PO$r;7Rl_JlXSop8^Z;f3Fb#xO2j_Nlct*aYgG`uUMpOq@6|e#( -?7!}YaS;DCJ-@B$6{>!>wlYxO?VnXn%UeMF53wTdKLCn?b_bnYlb+vqM5O{zW@JG0YhWc&Jt9NapG=0?RTB-gYIrgMUlj3L2oEZ -l`%$qk)_&xYt#6I|c=mPiwUBuk_n$u5b4$!4Dhu9`u^l_xoSt~1Ve#8{)b6`&wJjVKpZPB@x?ph0zvV -klbZ4-WH8oZ2 -UC6Z$c#b3ZFQ07$KU`xn8ph=N_Oou4oBy?J+44EId$A5gtVdl2wI$B8XyCwsg6^{Rnq6fhnD_IC4IB0;YCPDZf9|>G2(mzZjpMSjUI4yJJ(SOg$Ro$9-=0I9ZLTG{?w~iF -M*rf_mlM@+y}jp{sPY>u3ft}Ls8cX6=}l%!T(I3K7BaG!=5~1K70;p3opI&lBhAmE^sdzcp&$9kuRgB -g1nt+c;`OmcFym*ho#?>Ks*{VW{mI+cve;JD?(o2HRy&^aGr;seet=EpoT{z8{Pugt+=d$KMG9H3*UabW*x)22=GIl%{=+ev>#_CVoh;QJuw+}vE~-zD -b7Y(?EadC-R6nz%n;hkf14zm?f;d!-moxs~|sE&9EFv#bB@t`kmCyX*T`?&Ej6-euy+@zATRYpjo^<; -$0^x7lnr*+>1fa^=c@ty;CJgx_&E9G7{FQCV48;(Na5k<84@i1hUI?b+GcLY^{)LC$Q`hxG8Mr|sOi6 -Z@>Uc#Ko5f7fA$SQ|rMb9fE%>@oE@CKb^{)jx#c8{9X-H^Gj8tNeY(-fb%=ZIqfD4${_6SU+O@inRjPDuKLKTFiK%)`~S -baEJb5-uIIuM2>Tf*I-Mpt7Bj-jH90&#AY&=on&c3=a -H>%76Kkk{#)|o`OZh|h;On8MkY&Gq{RB_pry*}4=GZ?)4-Y>LyfF@Vfm#u0Ld?c~5@4~;M(obd&o2R -smR!|gbmy*A*1A$om-kfFdM$kKrc_nDz1_vzp76#sH~a-1afbJ;RT6KC#+w81wzbL%{)!IH@UFE-l)y -mMJK;@hRkS<3#e3Es)$a5bZ&|CV1V<+(#>Blca-w%q+{pOEF23W&#CJ*@G%O}AIyDl0fz8x@Wr6JrLA8xuQrqIS;Tj -ENaNj%SG(+-FSe_}Gy#Lt_%17xkCJlNc0#_pxWp_?VI2Bk_M1-{{1M`0=Ag#EkLv9v5pIgg-Xe#dk>b -$ix`mkl=tafbUKoQ10VQw^4sa69=fMGzpCNsWeT-&vM6YiB`)eQmJb!rS&|&***t7`qyqAtfH(dS;bk3y_((K?qT<~``H8SLH1C4cY7aufBVb!VfF-jl0 -C&f%Rb+}$ewOrZO^rDw&&Rk?0fA;?5FI-cEwT6;qLHocsu+YfsP%9voTQxjIg4`A -b5`f%=H%rtEq&aSo_t8KCD~GJvuyKii)`t()wW#QW?P=Ezy`h**{;}%1?Su|JudOgriI_Rd?iOiRk_ujS9Gk>BQ -z$)uXi^Fm=zt8Yy;xy{;*wtn2*2;d_hH^oNwFv;d^a6nJ?>$<9UgJ3h5*Xi{v-3`hLI&zoQR1L}pqu{ -VAJHU&}d0kDiMxoI>s;_NYUuo#H*=%n9erWIObiU!>)!x)uI>lZ-1v@zii`nckQ6P}C9X#1UKFc7zTBEpXB9y(GG)CDtmA=B=nrmB%R!33 -AU0n)uNsNkVRco^Q@#VKUFz=xoO)uU^NULW<@=p;8#Di28y+e%G~alC&Ve75tSP@Z_(hz%gx=t47b1hpGo5)5D;W=r( -ciMq(}+%BD~|AhriMAbqOfGGhq^D?$yxS||b>oCYvuvpOvVfFWU&N^rmfeIQc;cbC?AdRb&3l@^m5gj -h8+e+IEZXB-qU4p1e6`NVV-!-1d8Aj_ezbwFYvzsfW2q=}#^J_9D{W=}jz+sTavSCz}5;ax*803{bi3 -)N@wbzLpyO*9zqTv$Z}9O6XreLRb^avBYGyRumU;E_nGkkwS01ACo50tFvPYDM9qgu#SG8|Vqpg6b+D -Q5_C6piO3i`DmbF;R+ahBphIP!t?N1xa){P4;pz%GFaoR-Qal>2G0Wz4e?VU5(Gc4vw4wDvgqS52*be -|gnPAXq72isZJ@;Xqxt;)2IhMoE%BpxL~-ckW>MY}pHv^|pO47wViL8P0|BU|Q!*Hhf{$)H__>4y`__ -3wBW^>edO%P=<8(epzNtPAyoJ^y8MkdShWy}U&;@A!bg*cFd^7XIB-~ua$?zZKH8B8UdamFeFGY;`_Y -~r|6S1E>$Y)^~qbd_o>uy8dS*loQDtan=XaO*K^wFLTLeeZjpm+G=0^6NO1K|4RHlIUF4M^jnA{B%L@ -kR%P7AtOV*umMbg)dHbuk_WqTC9I2kB3p{6Qe_;17gMX_hVp-Eu)D~pozhHvdb78ASo;tH(8T6D|m1< -rI(0cSgn0swN|sINi&?aN;z9SWtUG^zqqRAOV_!6viPSMm47-V1OcJ!FJUzgcL6O}I^YR>CBlX^eTTo -l`6m#RdOEWM8+&=ZZ!E3Jp~^2ENE}2^f0qwm|IoR^_LTAH8;ic4I0F#^jl$JqAxLf#&ZhU1Xl;(o`lL -QuqU!x$P`aldE}^UXkI`AY^4c_p)l+u{D`57q$Ka_Av$kniy(f!+fyQ9@3JXZt;u}0f6+&pC)a3$=0c -qTzp@Q~6wP=Kf2g)rz)Y>ww0&@U9#=01`6>HS()DI|$4cvn=7=@dm#&3d5ndVJP<$N-C9d64W+B$6nchM|{?{`_$0TJ_`(tyjVmggVQncZ6pB;&V+ev5r*dPI% -Dt64{cLD@!XPs8=Jr%5%NrHYer)-%>UU1ChVqahF#)jfph<5j=fDS7rQs~?*|-i9ccKAar -yF^?O&5C8ji>w?YHu>D#Z4wKT=qNf|-mfkg*2eL?iX|9R6aK=h&jl-mn9|393(lTONE(10C$gU+9 -EccIWKcCC+fvCi)jzya$aq{-g*7!S3~~#>1R8i#S-|m%9=8?!KB4~`q=Qg6Le&FhigJz1Ai5d!4`~O( -A-puV#>s`U}VzS-H;2cn`a2eHz-jXH%b4Bl(dlqW)3qZvo2+uBFvHlm2st8?=jgf$q2~pv5CHhHL)9G)G_BbVzv8e2mv>9;Zv^aTfE%?1xi -FTdLH=*FUZ^&Qo*j+8p>{Ie%6!dVC=GS;O4X8cg(|HhwQLf8+rI6_Mhg1!p{oys9B+eLK`<>cFPF}oDToe3?CFXIVnh^m9I*szWGSXSlZjF#+wj6}icGMl6epcJYd -9&o62VADeDOzR@&4OEX$76!zbS&e7m#81aJiOnw_$jiOxy&~NMN#OZ(AA0{3?rCK`iESAb%jFkZ4*z1 -LwIw|Y|1k=2>A2WigEbAfQCY3s -AFb@zoU(`zKX^hvOP!Qg#*A3kpc+(;H32I#8d9gA`Ieu9Do<~#nIccTA7r~_g}P|l(VL5(_?Y!Z(6pP -|M^%}7mPKR+^|N7`V3ku(CueW(xlsBWYq3`IblaYRd#Ou_!al|%lns|wx53(%Z9=h(NfIs{k}MY^&^R -HXo;h8k3pmD7_ODUx~Gf*naP@vE_;U4khCtobvFO%+o>yY9ql^K81cz13vEPhuTuZ@SR|kjSF&kJ@pq -ni$K(Pz6S4Tibla$HbZNc6DiV_+h*jz3p6S*p@y~Xh5;hxX4O=+f5S!D5#;4Z4~^%{!FCbW!hj|(&Fk -We;86ZN2Yn5!E2}}@g>Hy#|uGqxFPWLvPtkMf~2Umh#^_41Qw$JH>&|zUE*g7G1&moRW%@C`K( -QWZ-Sg6mZ6S4tjVhP?Xy+wDgTE3}T}J63gviKCP#Vg+NQ^8{_$F=8$sIM1HFS{V5}lz|(h$WANt21$LpE8o -7_Wo<+@w&YBsu<{@AnVCPu{)xaJct&|0GFZwJ9eVscUoA{EA16b1bS7gXYRCo1#A&kIdq4)Rgew=oTXX;54o8^D-of8igMGL$1 -5>1JfGV4~U=FRY?S~hd_Hj_O^7vm3U;``ewJefH^ouaXA@q*_glxM`nFvw<2$HSU_>0BDoW)LP3rF5C -K~TNs7|_j6%V**%X9nHJi6Xsj??9(lxLi#eXFHa)eR@<@!|$_34*r8vQU_hJN~dH)ICMNY!YrEoEk1t -8j1I5qgx9I!R+*EYH9-aLycEjT#3bcVblDh}i5L>n -nI>&=`Iy{hj}gp03?%GCmBtJBVi@Ql!WuJB_~D5Di78k&8kh{IE!|Kk5D|-pf-as5>P&+V~IZJ0RUms)h24cqGP|u*o-e$8VvJ@I(0 -5I3cPUkBAg49=GMU12!fi*q41*tA0u@E7S2|e;z)>!C5m6oRoM-GOl;kS#K#<3PaFG -Eq!}#M(*vC(2E6xqgBwVve6r*%%^N=VVABhO(K1bn3SO3{Dq>I*Fbbh#{jRQmYAi!{m81fCHR3Q#lp26lsH*&<+Ozp0g*B1f^Ut#uc3EJ28 -(|!-u_n#V`{%g7_Y_PhJa%9T>%AR{pgz`P*F3G-&7i_iJcQ1u1@KO@lL0}cFaK0t!ZhBktu__nCsbM5 -H$cA9yTSF_2!k8T$1&5a}4_fSf4k$g4^`kL!(tko8gyNMSAT~VvY -_cwCvVj9{`WNm!a9YTx6*I8PoU`P-r;)$$jUQ2?uQ<5KiN-Lh-PVu`>s6FOcF@@sH4R~Op(BAS%sJNa -18d=m%2P^TI+#nWHfyU&1%IY}qDtz}L054@76DdDNsyKjKgDiYnF2O@$6==u6msL4!Mz21T2*QLLiBg -E9P<>^255A&oA7u+ZXEM9Ys4Y9ZGq$*h_#3iWGRP2j5`3kb5Xp{ZH?I#hNwwj`gCA*1O4NrEC=q6^&_2 -9u)E?Hw`W;FW*w3n6TXZC-3fU4M~K-7qlK;v^ARL;KXSDjrJ$IE&9F6oj{U3Mom(ZUtN*R$YMv_dG~guGEi;c(;vpo38NRZXfiTKnjLxy#tI`q;ok*A7sz+pXavg;)WdIcWT -Wt;qU#TfvynQIKm4K3q^#Jc6ApYIIrf;N=*FQi1RmPS&c9gW!-H7=hfaLIe;^(u&Cq0bQ8~&7{sjHIh -LU!e!Ac=719KV0|b-)Hm%T`qL1%n-sltv=Rzpp$nf~8$~rq3!b|8s>Edm3Ia!G!9A2u!S0-(BdK@{cn -d9?NqjU41;Gh!81TaNJq`|OW=J7CJcbx;<;_jN#VImG8xe7MhCRMP#an(EOnwd|N`nUG?~NIwiCo>Fd -yafB+xpf;=O0!Z48l;C&sG+ezh&&#wzDY7zCJ`uZu%LHgY*xF;YKtHpBMg5iS$1DJYV^{-HJh_c*%`#BO5-}3NsnDc` -*kRR*^+?4=N|Or&_9F=42_90pG+Ds>q|?16HytK1YI~FfDDM*Nz0Gfh1N -A}FH5}Jgfo>Pm?z*^iP+aLn#+>O$*^6GU-a3>BZ-dv##*j7#wV2`ve{ -)Uj+B8-!%eYm8S?ZkVJ|q;r*pGJbq7!4ng>uY(Sw#WBJ7dZ5Yix>;T$RWYEL*=HkaOo*gtD|LNMy#Qw -X>95YPlQWA%HNN!kLeOkg2q@p}+G_A>RsY$A%O0#w20!XW-(P5lvjL~Gga^YMFr;_DI_7lrexR_G3Gw -P*N#}78eTpD+^Vycuys;<@|sFvuAkWF3Y=vkem&Fzp?3d>{A#C&25#NWJX@`n&rph$oGQ+k)O@e5BAt -F%RSOefWflp$)j9Z>*~_moXXYy=@VFvg4N0BlDK1h8#qcXlTT%wq%Si@~r7F6CW@`dLVRblLNaLJ3er -AocLP!}I1D(CkSOoLF;2^6G^@1Nv)HO<=5i%bD|4I4 -I)-D0+knwqc8H40U7)~`ZglY38ZEoVQ#Xm*QDdF%I@c?wzGp!8XKmyaMlWC|l)>Qtb`&+?x$wylS(jm -jVF*B5aWH)(@@R1w}v;YyA{J{805WbzWyiUv}&*t6z;4VZ2*rk2(!1fIh>E7u3surWgsmSUq<2j&$Q< -m{mS`zQA_Pp?I9{d>W^VxcG8Q4g6~(wGW>l;MSD^tBk{T7XwK{^V|3H8%^Lkagp2IkfS=vKXY7MPHGDDv*%c&BXi|Y;)hqe!K`Tc`~vrN?$fSx=shB -I-+$e4~t0~IxQaxOsOpWcb1f-6iHD|@jy8AIa)-mPs7=uwX81oL$YkpjQ}mK=TO63vaY<7iY(pD=6~8 -!uU!Mff_Ad`jZ09VEuwh@g=4#DnyCYdfoTKhhqR5Z-0btVFQvFkt`Km2^DQacyoz)fHv^4l1#rX)NUq -qRSUUcNUvM*>cXW=zm=m1#ZRJ6j(WFl<9y6n!i7Vbob#%k4fet@2v%m&AnjdO4LEh8 -WMQG%uL*$}JkyrJOC|P@Ad%J`s@v9LO@QfCHzACd1Il*p(pZ{0O!KJ<=!*4@AJXcs15)iR>=M(!~{$g -wy&aiH?Wb0MyWNJ!f4a%WCRrKxSFgV8{*1I2^c8WF!PY8;Z1ccyMG#^9>=F&BcMx)?zaUjtonm`(w>{ -S8|_%xArM4Zq=qFkB|&~lBbF|NXc^Eh%7v%xm^P<)L|nl{)%3T=&g}}ZN8*-FeC;4WhwZT73rc7r?3f -IE_MVUw$soV>dhN*Cv`TjMgIr=X{R;l;pZAf0}-aUON!1H9Ofm-Gt>#vbMkJyKBI}6XD{4vZk+sC{6}1Fg$x4EVU00l?H%ZW(Oz -^0)3K8NbFsb$r&rbd)IdKv#hhg;P@#on0FQW7NU&mYV%ZtIwzU&0&&5IHIk5wkHP@=|&)m{#w@$Pwif -!|&%sT-Y-MQ!TM7vuB$t&5k@2E -IJgfW2@*H30^>1mqns48cKR>LK!%?I_m{^ZEdV+YbaR9k?(_Bba%Dyu6QrAs#q)WFkt!IK;^~t)DW=` -=af}JmR68Ljr(?=*rY+(^6NVR(1GJZus^FuZw5Cj|MG0%lZfN+3WSNnjRKb+r0?5!LwL7Ofh@XstSAA -Q4|5W;}qVduW$(2^8id;c}sPt8%C~02!*1J9ShdA&5m^!l4T2>!-bXB1%nFCPUU!Z+@LC#?~xNxVbu0 -$+T61;kd6eq06Ued8Us-C8UaCJqibj;C`AVb}(NQ=uC}JkXn~a -FaOr(1>snW-8Dy?s7CC5k5YrRux2EzO}<~=)w(Sfk-G04Cff6qdcITV779doW9(*t?^>H}BpY -AAj@a>tcQ>4% -**LT%!#GPnzK3F;k1U(r@62h4)7R@-s>{Kp@eLw@|x3ES*Di=gCGhnK9PZ#$MPZ#srLu|xCFtY^vW%y -cB~U0OF$_$P{f1uGc$PD9@cg_&!Rdji_kA*&gK`q*x*`3Siai@vEi}SsbnHy0vI%16KEWNvp{5dI>dztC-?ZxG(S18qft7>9(N&ZqrzIHczgiI<#0W-1}RC>iWf$O?y&zIa>N4Q0iNoV@K#(pF-1Q5y~Bs{H;2}jvaXlMM#A2~uCfqCoe)!{)*SchDkGt0^70(D==kPb~7+s1@pL)WqAK)Wi*^rqEkyj0DawH|PcwVD-pI -Zi!+}DD0TB`JUsU^$e@wS0tdhmgWf(+7LfSzX*MaYoS$r>{L-iOZZK`A7@(XW+X3OEo8J$w$T*y9i23Y1*N*@4j9wdxvIYL1rv`~XIirk4dj-F}I11?SFbRjY%?CrAIizj -u}#zInf&ygB?P5$V-T_e2MZsi91J#&|L5%O( -V-uMI^3E+M(5M>_{;O@m)$*5#Gi>gAQZ_jl&k?=FXXKC*$Mlcu|Xay<}wR#+tdHkW-dOSY#)BGLD8oYR$0fi)eF>#wj=(N55 -o9#C=I5ILgDLX%F_>jAC8w+|fx3k!Z4|Rv^Hf}n!1MB3e3r%6F}yftle*bL4+}g0MX6mpbvO&=yU?Oa -E|5|Rks!RPsvvq5?+m!tyF3KDq{ulq&}mA__iSoPl-1m%v|x~VuY1$)4GIs6VoN07#^$$W)AIhK^YD3 -d9#YI5gZBFsrRpSoiqfSclkN=h6~GQJbYCuJ1;qO*7Fk1Eo#`FeVU+dAS_-?vU8=Nr+WiK>I2PNB3XU -k${niSh#`7ZNtSAD8uD6Lta$`As;clP(I_g?dYjfQL5hp&`*jwH^l_;FB)^mek1>??(EjuJ^QKA(~q^ -O0NUJr2nPsG0ViEo|qra;82K=*NJM -kgG|jFfVn;JInK=n+K;UI9w`UV@=ft1J>M7cJ_-W@8a0XjtK!^7hqWMpp?-R|Lk8Ebxxs5+qceu|a4i -%-qyPvq;)cmjncxuRi^c|N4(O_%?swAt5uj(t;N@g_#TH)5ofbtfV*#Eufgvy3tuxR<&AkJDOdEvqqQXN#=oStm6&_^K{vwxD6wjkCN!PW@!BpB+5F0|1 -I!Wx9mxluIG&)5{&aO$h0w=zmOGJ!^)D&{?Uwisvw6_m%>0KC16%X#i_X=u?$K -`ol=T1(0p(Ygj&PwrWEAM+LzWwMOjakyvsRIZz2!%ktTQf$ouIcbO-YmVvC5%{Y{n?;(4b^u|DI*oKV -_Xe{|mgl*>W#<84@FAkAy-tg%r35CkiA=B5o|!r@?omLintQfw#bCvNn1|B!#10j%%i#*cL#n0?($n5 -7{p_|cupW(r?`s?O=q8+BCY-{{=S0C#$Kyi(rd2xr|?`XlCbeg^~$?XQRg& -kCKn+SwaB|<-Y*n9lajU9(-v`1tfGQRSKj^alP3boq9k8z%vxw{vV8HH~{>(4OgA*sA -nMF%2ASS!^<%3;=+_xS_RuSZN%0)vLcbTD6B!noXQH;YS5WOFH{uX`=GA@J-tx!mIB&p0B>YnbJMust#w|E*Y3BMCq|+8dq0ZVXJHhlq+bBh`s44YVi@8*BIS`dlk5q4YOgH`+ -*um2_t9==8Dra_j@<^+YKit!g)@QkXvDv(%06(DJ}aNCV5ULvbzctfGYz5ED{)L44{e(1lI>r7s1>qc -?=NBSSS48$(YJeURTtdqj3l7VwvvTe56Q91;DoE1g)H&Hy`E9=o(t*go&zGWLK?GSMjV60zGWo!>K2n -e*OQ7S*5i2R}Ha~EFnCsG%U~rs8Ks5Fax7yF|bm$dP$CYrv^=@eJ{QF-ZP9X;dDic*>!1T4nhA2aQDe -@=FK(}#?qCRvQ#?6CG%BqPc$%81eOdYgT255ad<>d9F6n$`k1Q%n=!)OeG%FXaGZToJZCjG*Uk{=I4) -yKMG}FpE5-m%E{gFO?BT$N3snC}1;?#2ncIxOh3<_%E>2c6Ob~A9HhZMay5HAIPdnz23e(QgW3&k;Ph -QzPYjZ1pyo!oSs;4SPJxuUKwZXOBJ1c*>K=-T|R2otClX&h=koY<0XQlg#<*t=Z(Dbbco+0OeIPv-%d -Zv!QK5vE{tnA?IXVuk%Tw#%uAK9eiT6bb -W=bP{(exbedYQ@_Il&SlnA-%vP?@NzJkNmH0c>Ol4EZ6;E_pz=cG>ko%1p1b#yJ;GHrq5)EX{DO1zKx -Ri15-#Yk-RfLU)gE%^9#by~PwHvB)@~RP-#+d|ZvsCW`JmkQ);+QSeESxtuk_HsvagXM^&rahjFMgu5 -eYqEjNPaQ~6@JHMeY%?h2p#xWfsxjWse-^w$kz8s#VW<`y!>*vZg`%l -`d{=Z$OOEMQTKf<$X~TsJ3@rnAA!a(?R{quxHg!umYiE9ykV*b1u^z!dEvMD#FK|l;Yt+FeN=U7fQZn_NRF%luW&G6mP~Mi+eJOQguC!FuXsc;uK4~&fvPvwb90Mj)K8KA3EHREW7;#N -LuxDFZ9hH0s$v4Ru<3i|lO$*#qc%;(q;=M^;S=^G6dKq5B(^PaL6^2iX!>;0bM^AmSwZ%zR3hZW97zA -+~QzR>niO~2x)rl&EEnYz+atlkxDdvsm%`E%;E?34_FIR<>B>H5;(EZZY+_EHgURF-puui!i>opS@L; -ZkP0mY9;*3rtzw2C~}_7cxf#1Ttx-^nu`Cl$s<1-^1lJT`4zmDdT-zm%6SSi06GZU^mdZ$mfl^V@u$P -4hIa>g#R%wSAV>Kc(gK*MFvPH~>{VN?>>uPc@r^$_iFNq9R*)J!aElu4rT071ceu -5G}oqfS8Z;S*#vj*XjJmTq(Mj9U%njk)`4h9dO2r6C`s=_kb-kzmxlVnyLG+X6T&)(+>lZY4a9}nv)x -!jIj>-XADZ%w}i@muUFcB8N3_?uPm_xq?HV*>8f2n_kas>+&)!HhB@{8srFP^JW7nzW`v(;Fd1ORuI| -;XV&oK&g}oYAS5`PtBq{xJ0&Emj;U?t`iN_3+RfF8S%fX(`{3k+9)={ncrHnJ2v%HMVheP#K!SbBBC- -1jO4jkFOzOfrdmF|+J(@dkRMidt=cQdqX>@F}l)dMxv12xry=yY%I_xGJ=hTd_DI}fgcAF(J$q4RZ{Y -&*arYIW&4D=D@X9ZrCiy}sJ`jP!Zw64E2rEGZ*DtM0t-24W=UBPsxXqIp{F{H#k^&EOB{9CmBB=XQ0y -M-;6VdD?ZGK~|`0nZjSYvq}G$YoG?r@aIUgmt=<%LPT#@PGgS{chVc{XR_V(a9TN;VY>AsoaVfa{5AL -`w7pT2iKPzz9)sqJw;QG+fZqnwQTU({wHP>z+##TJ2D+H(@ -whx6cYTSGwhR8Zk!-M07XQRPnjcIr4ClWj(xxu|#4`Ggi5KDC?da(+q&ZqEiKU{okyb{Sq!+KYLvtEm -8I$SPo^0K!{1h8(KJnQ;fftUVP^cI@z_xLx2MK4>U@HgTy8(ZcVLwD^sWh92x>_Nv||C`V8!UB&(fIc -{OdryXUzN}^>!P1dk@*%qGs=V4x2JrW&teS)|j}*AJYS$MS4LV>+k)Upe+zh$v_Xw<3dh{>oQ8!kfh_ -NCK&v(_`=lV@|_`&STnHgRC>d&t}`?NdakH#7aExgk!1*wde1fiTAT7U%cE6KsCXYj?xW&1Jj+r7$`I0`|RGncYZQfc?FkdYx01HM~Twz290NA6# -paBT49Bw*j=o6BT0<^nbyoyB$F(;FLM$pEX+9i&cX;%-! ->~8fbVeC`M?07-{sF(e+Sze;J@}o}NKmN~Preul2%YZ>6?AwejRi2pgPuYuy1p2Y`Gz#P%s6JO-epBP -Z|L2Q`C^Kg$pfUSy9>#6Cv)o1rG)WWkwFN0{=wD5@B@ -So0G>P4?tV8Xj=5brnd|T+NMc4sVT}@-4ZgXT{_`Y9CC~D8jY#bFS)vQIRTxo^zDM{Rbc=eYYboLaH_ -c{@25UE@?5Zo5=L98mVsMmpYBc}*SdyE`D`)k$*{+5h^c2`MJ$5@)UirW8}JKn$V#uBM1JaO1J5;&LR -^P1d4uPc-fQF0S2y_bOS7)cPIpiW8i;p-7eP1JTWanoBD -;q$k<&)@GpKZON=-dxj#RjP{v&(6s*|Iq%~oAudBC9Mp904I?jreAjg`ox0#qy^+hCv@9?ihb?F}3JUQ5VoBZ|N(bx77_48k%@ejXUycnFLdorQh5|Wesy -$>g+=t%Tc8UL_-em?x=;{3(=i(l~%KltsU1MvRf^!=MNX!3Ob%&z{!_=jIEUY!5->-jI#@}E>Hiu@XI -C-+{0-#Vj0ol3>Wm%3L}CZV3w{pi7q7bJmyspjpgA^drbe?I*!)>4LfyC^d~*lpv7FKz<};`#|fB6wc -!LbrfV8uS#w9vZpX5p= -tTH;s!4VSD6|;VT0m+13`vR`1h6ELpUmfmM{K|uYIRGLGY(3tLPN}i!O1IMAgMZ;oDAoM#OD2muDB;2e~3Vo(Sihogz;+@1=$5f@zEWi_UVY=TKwt=X -o=;Ni5Ip}P=QJ_ODF3ky($!8%2L8C%aaqD<0cl5vK4QsiY^ORggJWePir1E8Yh@{Hnnrrnjuo?1pqn0 -)}ND)}PxDS3@$Q+m27P024|^!TP%@}3?G_2>=lS*vp55_=A=FjXb|G!;b(;Xfe7I6szvL}ZJ7(7&7?4C7XYuI5eHdd2W=}<$TQI4<1Zk9MOI{kaH`6?rGQ1D;nUN1ly2dn_1z`4 -8GH*9<8}PtypcMj9DyEZJG@Hj>?7?6oQiXbvjRY=py_ -_49jiCS2v2E1fPEQ&$MM|jnucN0RRkTCZZ8ydwgf&E`edWd;RGXu@OTtG6u#IVz_b>jG!@B2r_ -nT5_#}+Y3qmLI9A7Ntr`Y$Spq-=DcVc-dh^nt -XpE=Mr`3HKiPh=!?FV3^Z~k`TN4u+N-!QCy$e?j_0HK>iwz8t%Iq7a*$blOg%ej628$UMO*gTtMF3AQ -@j8rS0LZ%X-|1`sMX+=*kC52p+`;TYhN4Eg+Lm5giNeQ1D?@}43L8mKp$v{9=sWFK6F?g&Nq3N8X!;M -BY9tPZDtrFZ-A97;nmJ-He?)G%jE(jWR(1~$R83Jcar$pqO28o&x*Eqz%n+EtAQ@Av!?_Xv&DH!Qg8i -W50fPfol>+089qoSuniwlCFD{dpU>WeB-V1aByilEIeDAZcC=?~j;6vG@SDCHcQ -ehJwsk?+bD4&g~O9CB9(y35XqAsP0rz5RH=W3S8O;usa6oQI6t#$-e3`x9{JCvu)R;QO9|6IMOh+sKw -Di{@d%bT;pnJE_Tj@uePIB6)66LnwAnc7G(iyyBf*7sus{lq!9ZWb~yQ+r{-`QhXp2}~=El}5Etvu{{ -1KT;G$Hswn(VC~B={Z>=;rSo8?jxD0~OyvSBuZ6ln6|9?)mOdfp)1u6C*~h*WqgON5Wc4Qh4bJG0DW4 -U;MuV;mW|$r1nwSp;B)tMeIU0c2F^IB<6gRpX%trY>Ew>KJt+ShKO8|VIPp7;K{_rS5J_r(q7G)(xrj -T9x@BjWOCFrN5M|gH&1_fX!(PASqH3Hz -k~GE?CIXhk1c#Yg%v<7gtwC*(Jpx+Eh1T>4Xzf}nE>dRs9Asve)5gexM<|KJcLDhcQl0844BTW8>j{Y}fYT6v3k=zMpSqkiq+(xf<_!e#b&KG>{x}pe{UPj8lvdq5h -yA@lf_4-o5t$eA0x~^nK;V`^hb%r1Uah#F?<_6%!+zGL9(c4{g(;~R>i9xD0N?k4@P?AjqczP`@--|z -4o*gTW#o|wO|Zf|8x&iH%40PH^U%<{~tcv`7gPI)y+rNCyY2SNd&IhW?|^I+0%jR8k+48PAssrq#^ -02E&<5XSBWs<2{M_GzL^&k(Df{afnFpvbKvwdLBfVJCB2p2J5i8G5SJe66091Z;joNe-_iL5nhM!yTU -7&-|*dw?mfw^*!%I*2tR90D=z4}`t_7l>SI(l_1V-t?HAgMI`=MI{+R>cxFns9Q_RIw>bkYbH|XHKTR -h{lhPNRm)l7ux&WrSsW3p|A+(f5TE#}bMDkT@{OFxnY!^rW3ajChWqizdbOx!m=LGAZk?pj(~<0 -MrES6Ow}M*(_`)1@fRFPS%(eqME;on$GeqO=ub!s22I9p((QrLec0-SO~?l2y6V~NJE2bSZ&=q{oV`+ -iIs~--MObSYg0@mTujIM6M)U+r2dq*eV@Xlw -fQi($|tn*)$e4@f(dmPikN#10v~mdRe%oUpA{*3udvcIph~KcgPnZA=xHs;ySRF&)MYq6{T_XfPI4&JS!pR!O@`B~$Y+@QE! --t10tPb-WnU;sUyHZ8*D~2~mui>B8PBNQbt-O1SFGTX3<>U;1`Zx52Nm$to8tpm$l?cKVxnE$0m9+o5 -x}f?654qg4uVa|P&{RR)5FX&Jj3rMzw!q5Lg@!>%Dj-5ve`nm!93_Q?dXFd@(Jfh7v%1j;U4jgE*%C; -{u`h6z^|438_V)ec1ho)_+n(A=;1NIQESw_m9!tmU|mI2Hs7BQo{M-Sm#S;Q?gYF?9BhsKD)!7>-_};j#J71qoO4=f{3kr2Wy^Qtj^h?IYIcOy=wvu5w-Q8Bs4T~CN>nIV&60J -Hy!~n-RCB(q|xP9k_yf<-UPw6IZ{G!c)ztxmEa^)OAdDW-Jc*Y-#hxhiF(=iu0=KN#bG3V0Ny>uy6_g -4JqI)haQ-V7UZ@BpZHxSl*z1W=3;tp+`pDG*NbU^$kyj6pj0QTu2ZD|#R$SV5pP-dFkcLS!PfgGa@fY -h`HbOn)HHa#LExgwNHrtn$;fId=KjE;#U3ABTB4;pGs%$QS(wj3(3sr$pE9EF&T;@Wufh3EtWqbUGAQ -_vccle>fjENW{tgG}4%CBA^29biIgyj%6>4PDGXKrqlSP8U|58w^5_HaYOXn0 -`c41q7PD40Cet8o{1HKM-nPgGhE;bRWC%ONvTVw1GWfNS2O9x|od%^qjOlJ7Gj_vF8MGVq1D^EV2aC^ -{uHou~Q=du^EIT=kXQcq-?m_Wa{!vg9(M!`20@YrM3?a95;fWv=tx?K~@G%X#Ga7XB%#uuTPG>eXb+W -Ls7$f-`o9c8FJaTNBt(TGgB9Z_ONw?j1!+%68rpc_kmh|Ln-3E>^xY8Rj@HwuXng6v5`H|gJfUPaPd-hCTI;`ZmN^%X=cel5Z@@+M#idf%dcCO+`FPq4Qjvtxnx9{EsE5$F -Fq(Y}9RfFD>hB;I=*+?$8xFdUIDFN=)L|46pk`AE7rMOmg$+ZUbijOKU%2H&)7u7Nj6q=;-b|I4ocr6av+4AZ^)# -p%jPnse~fGj6NT81j59TpOz6tF>*Uv+LOO3FeyPj~hi)jT|RMCV5;(g2$lI?$6SUF*6*3RR#ZoleP)@ -p>{`HOfvRBLayLd0osN@3MPvh~=E!QR&U9+^5`GP02sn<%uL_r;2#>XT#s4z51+ezBXgX8@b{%FS2spMI;+E=*Z-XLG -#eVk|X4O2(JYBJL7PR=eqiZCJ3lpKvAf6+h{MQcrd3>MdMuV?dJ{z^HCo) -KAH6I(rq7aXhqFNMU#E-^t-GNLm+q&#ZfX++TCZ3DKO(n&;nsMg0+ntni7#IAy~ZMMguIk=< -NpItO9KQH0000801jt2Qub&lEKV5!0AE`G03HAU0B~t=FJE?LZe(wAFJx(RbZlv2FLq^eb7^mGE^v9> -JZpE`wvylVD-gRmBx8w@WT$DganjtZ+nYVD>l3@(yDRJJQY0j^p-7gbWGi*^+jnLFkN`=^b|1Gr>!vn -|$6zoR%nJkVv)+>)^OGQq7bCVR=Djblq_f}IXK#~qlZA_`g4u5!HtY|EJ^1yUU0iW?wkfWXn4Kr{;@Z -nN`zl$*fmeh{>_X3T&e=Eb-kzMEpSZnHi-(P(9{u~RTU1x7^uk&u1MtsTRf_k%L&O -A1c_)R#AI9u~9hf+X}<^B~kV`-MG!+;7_X_{mOn{!5(@A_~t-#VNGgmVzU1a5LT4MtS_{wTlPit%FmXd1@0M450C?HEYJ=0wb -y+)0i5f;BL{FVw~TpbAZLRTSyy>C+(bb2lZu<0jeSX~yR~>HUT|@F1z@ca>Y`v4{^Cf7%6eP)}gb?P_Gy^h_IB -3AxES0)FC}Kzzq3D+!mNTG^Q -=FMsBpJf{xtxRb(i*YITh0QHt-H+cvUJ4OuxtEEi&?K)+q^Q`ygY7g1QNqXyc!_yYHmV5-rn43b)RPY -Y_`G0^;S{QWttgt{EEFgb}Mk79){zi_U4bu!GBRpSSW=o7lk;#@5-Y=0TIu)-jnBrh{DCrphXtq}&*J%KdP@0SZVcOet2?^eW@9@4rBbspwwP4UN%!n -{C3cA_Jnfr$(T5Fi{ExjBjb(k>2W|AD_;u+XQ_6l^8OXo)x^DXb)lq8$*`3cEZG@@o(=w&gytoMt20F -iDBH0My1^+NFK4rFlEqFJXX7i=coY1G)u-thE(Hd#=Pj)b+WS|^pRT+u0f*;u-X -+hvowEN35b>6(!-(Pmsy8e>0bt(3Lo!NLA_-dQt`T|{6^L^oMuFTTBH8F)(!cvxOJ991;avB=s_>oP}` -WusUk*;tu}+ohU?qNK;ul?oZ&Ku6)o0tozeyh+4csHK{&9-Uhm_Z-v3?(6GTUQb6x|G&&VGpI -;1?E;^bg8Y$cVOw*L}J8dPwliWW_zkXzQ>^=*Muvi@sU)JX0&338Dos}zx0y5dn{6R(z)-2gJwUOS}N -)+m@nOAt10o~l%w<~RePQ$U?%_wDlv^ -ZRfouyT?JMk{!#IX!lTjWLP#P9RK?FnFD8<8*H!7DKN<{0d6f8IR#!EL6NM~+2i=I`zDq)1V|OvOq^g -OrsDj^sXqWKD=fR|0Y=Plc$O8X%(4r3iRKW2?gH99O23$~~6}G5?-z8*x)&L7iHJoQfz;=YCp{jX_$Z -lAS97laMZmWBYU_*ivx&nfd{{Rfdv(Q(1CP%aW6~hxEKUrj63NBEWdFvz$YH+004t6ET?IjDq^Y)8q( -`B<&0VDVzmSIEDt`Lrt95!#j$*?Cl5a5l~{G^aV8igC?LAZeVw3sC{ZJ^XZt{lA9%%gUPM)m7=>Cx;$ -Bvy`tS*?~vYfiJ7U_EnT_#$k!j9pF6~P3)p&Fb`t@CQE4dd-H;4_0R>eDAoe^)R(gf*_?^ -kQJb>g@oxOe~8XCk>5I$O6ry5p4Abinr*D+90syMj@dL(X%T^;v$QJG40*%?TdMb}G^M(lK$ol|6)(xjF3DUnjJt$U7om3rBY@tT#^w3qRD -^+aEmj748%LA&4~82FZr2;oQ5fW_LK4y~{5na3YHkB}sI5Q7yg+MVkQvrw4=UaMp5E5&>u=t`s5|tA= -KHKx@7Lblqw@XYyZ`)d1S|||Pi|(jKk$>$%^X)$vT5+8rW4W)uxE}nn!GjfsZS1 -jUq+W*=3z3u^19M-KPvm9XeJI`3dhL@4<_@+{#LQbYEx@4tPFYOZjrgX8H7d28h -?<{TpeH97nb_kU2uz#q3?K4@#V&;FiV11-QS1k;BBdnq58>>k7h0Ru9{i1Y#YUFZtxfp7a0I8pAA`^@ -b-Wh5d9=VVS7A_lFsfmT&mV7JXxt}m`rzVdxQrR=)RaKay9+e*q!1-*WSF(p>C;l-W3KY4%h&Gh2U*X -QH_7WSAVp*6!_KK{z+H|%I@;{3W}ATg{LZ|p*PqckafY>IT%f*IsCmWD48aw=BTzUi`!9D!n9MP}cKd -2ZzErqnq%$Sj)%I%N=1O2->8pm9_R>28|nS8hGVZqO>-7^3iI9Fs)~BySOE>J&@<-Fl2w6M=uwnHC+~ -Sdyfbr)%lQRa%Rvuxf{0s%Bx-ywt&(;9luf3!~~-ui`&hjq@s1=Vh}H1WUHD>W50IMXUh-qIr&9@FVQ -GDQP1!K6yu6M_A)fW~zJgv!=?*u?{R1->-m?=2jX?22^@lIHhSrfSCf`{T2`m%+6Zt2B(y9%G|9reK* -&^1}KgZVW}&`Jdg*#z6LVXI+p^t3b7)D*aCtHUUYX5M}%k8*cv77A`l+1RFG=)2f$@l;qxnLcL0)V;D -C%VI_!+N<_+=K!W)wbZs@7f -ez!{jsL!K<(bPtj>EF&uNl9zA$PcI^0vuS(4JF&*@L2vSz<$z0wzuJBY%ya6n;{yBCh_GRE8sLblSmxDUcedeBGEUFKGJj{LvTd -|21!0AnPB2{4p^a*w&b!pq~6X(+TOrX_U>z-2aHZ -w2*0aIlb*pNHLFh-hv*)i7ES6(Po_vsIji?L~9%)=RHE=W<3cy$D`PxER>V^OQ%J!vq!W -Krli|)wl3O4+2`Jj+q7Zt~o*r_UI4=UKWIMQ`W|_XT0#_DqHw`uVuzc~6n4z -P4(7ZsXIkU#lRd{CUtUgj@OlYt6<>RlQsG~DSsS!Zqk}1v+hz*~5VSP%e9pos;tO;Yw?O+n*~#54U?{ -wN*cd-X)3ODp -eETs?4}@5G_(#CUs)A7^cYqrm$iu!{`%6%8DzxAEcvDrD>?6UX?^i)#8K;^eZkHY662jTf(}~*v(fn8 -{2nfv2jo%iduStpoae}6`VR%hZu;0IxQ0lrYjR7Fk`FWnDCdZ3Wm3qWM2^#&I>Ws{kxJiF~(Y3X>{ -!CyPtF0Z&4N%|(T@kg%+Auqs+qvDtB7kFPdcjxj8&D`inrDe>xLTN*=PzZ^CWm7qeMu=NddN$&_ -IQ>|xhO5-JFs@l$ISNN&yv)!-|1C9?zlL@AQYz1ymLUtM*PFj}Yj-fQ$r9@9W7^w~zDxy;DQ1L!FzaW -jgJogqNxFrFXwawksBJ;P<(A-#}*fFvZ>IheRl4jn*g|LN?WIYQ(P%vKHn4lrCDF!09!Gq<({s*$Xj! -BrK>;rM6HqfrjvzjwuiqNKX(}n1HDLAWkT55X&69DmwE3pXIymGx|d{0pC-JETbm5N-NO~e^dh>^+ak -kAfY?zTkL5ts~PvMBt3g2} -!Fuv|57l5!8IUDu#6<>^AYztXHUr~c1o!c>>MZBky1ck5N6(qR%H(+!FbVn;P=B^Ld*`yR37E%%)iQ- -H1gN+|@|WS=6_N97^A=u){r-zCI~soR9N}XcgILiX8y*gZ%zk$0zBqg=kIGtt(x}c*;)Br;FO+9QIu2 -*%t%?MCg0_%Mq}Ha#4v(H6G5d>w+dnG7U*iI;aaza#L9snReo|;{a7fI7lFQ5m>#!ro=+Xfg7Kv#kRC8J?SNv>4lld2 -UEs@)U=e&L5m2aqbU$)EWHmLM5DZ8LFvX>xTxfwZCk=5$3sA}kfDH#WjZ9JccZ>xtIHqTs`V1*ioOIX -^AO1B+YX`!0!{VW(MmeO5*(DcjglTX2Xy3h$B1~OAPibcvM8UK2K;`wYprxCi;I=zt~9gliu&csp@vJ -4!;$mx)`{3bn8ATs3bQV*VKW5*?CXBT0bu`<7TSXrpX~umeCXqY*lE(e!Gb2cDTdN9XccKCdNkp*~n;T_&&gT6Zu4W7Rck%s}+KY!6OupAEaJ;mee?6o$y+ -Z_EZ@L@b+Lm1R^54-d*8+2im7jFNPOeU!f;(nUE7E^RC-Pdwjtzg%Egt;EbvmLv??bnYk184iZnfG+|)EB!VPRheUc7nH+_JA1P9xfz3_4izMUVfwjB-~tO*z8 -lXira$f@aP${pS#aK--Rt=D%MCc-s0upRc#|7CtJi?r>CbDE4+ocnuJ>!UfO8jzP72uE&RT8Gh_gr!L -YQ(VLp)rhw3Sn32Q`mkuXy&;8C~?+vm^|3DC~Y{o^sA^*~FatPtBjz$BzSy4?hZlTh~o<{KuAkdzr$_ -1)uM_GtIqQh#ky{X52d*g(KQVl1bWa(4_u!dgsCD2j4OA(Vo)QK-|cXisz5GY7znN>*l(PfV=PBOb`{ -d|#yUsmv`bm7N%fh9hs_W`n-mw!q4=4EqfFTEiFa;bCv^d^j9d4Y5qL#PWLMOts$HxXF;&ZSS_%U`6c -JD(z^_n4SPqg@QihzO2yq8r9G_XhR2@o2bJ+#&k`#K`1 -jD>T-j98a(TRlsnof<-`uZ1x#-NjeBfxNmLhYA!cj-6nP!OMgrdjxYRMo?za$qh)~K5L@}qKKhRtB{3 -=7S*#Ia75Y{2T7Icx+^V=!%X*ghZ-~D{I+y@E(%v%Zfwr2<=9|Y_0Rc&MW(bJ0$DClywm)`8Di<4nyZ -mXr2eNf`QW+OE?*-$h)&3R={-Pcmj@;0X$jQ4#yhY}yxDLoJ{m3*F)*JB4E`XjSd!L_doInb|DrW~HV -d4JIee&T(S$-ym5@fPGDh(QZYO!uAB(NYyDu2JTRVT2tst9+SJWy#er%6j-lQm?0qz^d0<;8utCFV#D -|kRK)9-17Ao6;6m~_Qv%VEXOYaQJRq5nxb0I^rwi8P7)cfE4`vxo;(Iu>ZG8nl4+OKE=proSnG{&FqS -Z%IsUYm}a&TuIcXE!?0+!b|Lttb|IMPc~f6^EN#&8MqB&Vd$SV5)_eW4jC&upajQY)`{mdg -D%=63)|fuEmz3ks<1vMQM-m#+S2JDot=_fXyUdoRkXr10FEAgk@TjY`*0w| -D%kv>1e*uFegV)Kc>==TTiZRVM}NkhQMdF$Osm@-y#(<(l)jFxh(B=X1)0D$%LCD}}23lpe-A+RpFrX -P^ByeWSyw?v>-$C&V!(iN9O~)9Le*hxApC`6^i85kd{nY(oKs9_o3zd?HUqDVIOTj(NCTMf4?*+9kur -mp;mg3M!2&^Fe6e^7@}R3rZ`MO|x#M0qN=%n(i0bY7P;^!K`yT(5$?fsU6Qh9%6bU2x -)XvS4ShePNt-wFwUCQzQpkGrTN54!gzZ%Rf&HBw}BwhE&F@u_%B4stl@B1os(Quhq&o>+#0w_E1mbhS -}RbyWKV=C4ruwXO17uHEP#br{gsARZm#yc^iwPkq+rR{tL6Ieo43&aYy^w7T+s6@J7+9OUrqxOQ<^`* -IZC6f}xuZ(3SiNLhIK=>gk;2Y$SFMoy}hc| -4N5X@$*70^Uy!O^L;Kqg{Aq(ctC;2fgXPOg3Uu71$k>{eS0+MX9cU}azh`bVD{tOksmoI5tbaafe7`#UJA2I#yqxrZ3~j5AYFS)BKVcVa=rTe^5&U1QY-O00;mMXE#zD7!JlaumAu6U;zLd0001RX> -c!Jc4cm4Z*nhWX>)XJX<{#TGcqn^cxCLpeRvc_wm97Lk))GM(gP$Iz9R$|4Qg}QATHgp571QI)=Y1&bDFW%pJ?|QE+x{JH+UG}bgxC+cLm`M~hAd6W+jc!(J?5qZf$v{H-cTRQB -B%toy=Y5{{dH;ENNOxD&sZ&*_PMtcZ>Qqhj_nu@-48xe=PgNP_Afx?rF#r3%KKRR?@uzI&rSvziK4@6 -_=G7~G_ioJJ(D0)lG~DyU{O{lMzym+x^Z#XieuMBp{=E<6m*45m|KX3;t-m2FE2BWi@#9Ci^~ImuGe7 -b7t34Oy&x7|354}D=hrZSM-=*(2=9j^H;eUQPzlg%#J>O5`-`3%W^!G4*uekU7KE!uron20bS!zgOHh -<^RU5U7E#%RbiWH8LD5O`LLE4vvUR`~1Gse#`{hDl)zG(GWV_8KVh{{005Bs-cZAi^f!$rt@+>1UXQ6 -s3WA&h-sMeb&GfrNiq4!%Y1LwBPW>6@3KtyxZ{Y@Hg=5xA5?O?@xM#u&w6HVe$dR4Grt=;qL*Exq91g -fWOe?a8Rz}1`Ukqp%gY~I6wayTOW-H_4rVfppYd6t+kMYsR)O_1YNw -J8kXC@Sh3aY}Uq`%UEaJPyAl~v#h&TKL#Lc~CmSJ|8nZ=ClHOV+$*y0#$;}VVmmnO#viQ ->Wti5qKw8x+Ipg+dqe*Iv17sY5d>XL -N3?t8PaFgx14C9vjNC_odzCFrcCHECZOwPDJ<>{JW=P^BLFAVsR}Q&!44sU9@iL -Vm`DRli+BNO7$PTyh+$8=VrOhz?z%WDSf`M);P@r$uI<1;44VsE0iC5efbJS0jUtd-le>U!ipH8&4(iPtcGqu=0XJc! -Dr=B}ipJTM?w)ZB6eh^GpM3dpCiFOH<~yEbS;Jsk;}n@@+dLrd?8H}{@Rj_PAlOF -T`T*P`qv{jRJ$D#k0LpRB#t`iRCl_~&o15c>$B0KPlf)y-?Qtkj#4_!1vjL+mJ`&k!RJWk_u!2-a;8n -EyVWXO_hS+R|khhlF+{UPAD_*NoL5~gx45CS>p_HF1zL01WN2|kp^9Y_P=iv>(T+<&v`qbR`&Zr@9^> -Uop`7BOms90;C`;QMuO;nRBYRz@D=CvgW-G2xj+0#wLYUy>?(swcE03Se!adMOoBz2rvVGxuPZuNO+1 -qWYQD&7b0M18L?W&t9OEuNUnzg=-*-xM-%E+ZpoZ{~c@fFr;dDplWSKF=B)Y`Z=HP@7U@$(i8Kk|9$Too4`e?SnLF8?3FwhU;+|`!K6rT6E{j4u`3CGm}D&uS++Zp?L%ro_K -%o7>Zy01mROf@yZefX{~c?MreURs`=U>V9w(}hoIH_q}^0TSQ^7kP-5?KiH~Ix9bsA;UC?#Ir{PLbF` -$+mgsqMYCw|eOX_J4+gq`4la-M48DmQSQIC%fQq$$k=8zi*1m)S`nnJ?GVB)vKzDA9+e?{{RHh*h7C` -@PqMAoA(2KedQrAVU&ZP{h#o>Vp35M}sb7z08UsV|}1Q_^R;eiMZS+(^?0sAjL{kPC`ofL|h7VB1=&2`Fg6{E>mu$81rb#8 -4aVU-4w)}eq)foiS>}@fWJo>E9VQW^Pj&0U5N6qO1V_shjsA!svy02%V$bN~q{4*`T=p{fz+U>^X%N)~C -~C&|SrsB*E8GmBiBjyXZoW0Ve14(m(oLOvnW6X^USL1&-Khm|4Yucp1G?1K5*3iZC2hheMa?1?&2?@> -uQieG0BDTV4pK%kTR0i-4(t5gpVSdiBfhz!X66YHcRawB}nZAyW!i9v0|3Mw-hPxVHNlnQKVhIXWpH3 --FkQb5tb{9Z4wvM6l5{dImkbOm>S#s2N9FR}6lo(X-H>*89Xx8 -}xV>#7C#L}#quMD(&GwOob7E;Xmb12wpW?$W@>9Jeiyt*JAQ#3W3H|v#7qVN?H0Uap{0%z3MqEFPx>r -exm4hj&r3<=jw*@|TIIX{A;Vm{=7%uQE_GIxXz#|uLKrP|4+$Gg^2F~z4wYU?aAtEj{o|0jCDRu?c#NgDrm2rN=>!ED3{QBs=vj)o7T5-3V)&k89e&MrP1@zi!o&Mt~ouI*HQ8+G=y01cWOd -!B^X#&N)qGNTj1*<)5di8{M?Qh@HC>j2%O0NoToW9NKmjM!*pglnU;)ws9-j0b`#|#G*#*XNaVQF$fXlCwh?PArH=FD5|5-%QZd~hxzZJg2y%X0Y#a -=UbB3QnaQZ1@tTsJ=ONRlAkS*bpNqT&T7Qj{nqa);*ry(}2VmqOe&1Y#M%7_J$SZLU^ApJXkOi5MoPr -OqQ6-it_KC6RkaUnT4t8B?O6vciy3~roV6hX6#1$RLK>MfAK+5u3bQ?BOF -AS@lp#|xoh6UnfOyOhJK)%06mrC>4Mr%$pk&A_V0M@>5v+uxW=11GuNCw)Z;8{&wH((JKoHN9$;`<~q -4?S)7#={e?Xlk?K%*s~@*jecloPD(qoyy|SK^i&Mp#_w({lmpoHF9Z|~zH$^w*^+yRq|{Hd5>AgdNmbCKT^Q*o*3YLE@`^BI^k1#`A@2jG8OVYsP -rn5pB_mg(c{ -WJR0FVV{IRe&V$l)4g*)6Cj#RIBvjo(sNl2QPXe3qL`%BLbqcmXDY70@)8HSVA%cgwdA1N5w$6@F4UW`$1 -+d>WPZwZYreHId+LBWv+_i9UznnHW}3-|-@0n-{$QK2!;qXFMncHHl%ne5|ew`sf+2{X8fEH(!;QSWg -2h#O4~P(D0Dc#i-`looqvzrrG})6nL4D9XX)zT`RYNYRON5X;i#`yl??|A)H??QO&6&PxzZH6#Ez`<9 -7R1&k+=YVC%X8r`!(noKzjRzX2?`ZzA@6s*p5H6YH;xk&)HxkhdauI~k#Mq7w`2o%l4(CY=Rx1yv-1zl6 -FW^qWPuJQn6!{J&}lN_%d2`R6SlULNS!awNDLzWkEMhDX4skD-{$)W&1j3x^h$BkAXu2ee=vTCx}n8W -Znpyymg?#N9J_Rn#7Dn#utS;zxXViDU_+sVPf5@*h)tHmLex48Xa^TtaxgK&Tkj{l{`JJmlx|P+@`C6(V#GKNC7fb;er_(7ZcTn8Td -?pq~e>p>jVb_A1JI+r}lUelM<`wyUxAKtqq0C?%*vLFdIw)|w -kl(pt0M;P#Lgv>^y0+aBQ_8^T`m!bHSECV?%iG{P&H2h!=)UN5exYP*QN}Ggu~AiL!~7S_Gv&NUa1I-e)xqhCwOh%atIFSyQ``-n1Y?FsV+~ -VGlQ)AFQ|hut0p286=Fx(&R5On#VM>IdEj#; -7&fz-LiD1M%i6icDEAkCs0oxXOHkVv)O?FHtM>|HDg9G44>ADSrf$LD-e}ml`uDG5Xpx|^XE>a -Cm7!FHj#TWZjJE7VUFrUsqenhvMJg;XZ+J)Tp1F`!HsDVMMun5^6@;0al2B$?_Z)Ivc>dUfW#S$KKY -kC(XTN~VE~G^(@^Bz%1$)Sg#dLQ2NeM1o)$7ptIZ1JmzCrhhu?3Z`F>HLCwxv})ZdW9RT0; -)sDy5l4)|d)TOZQ}t2c(OWq~UvByOSa>i?9}9a@N5?|xaa=+0$i?yO#SG3J%4RRHzzrqEeGtL_fV_J< -!|cujTbZ0&f`;RR>Es^zA>5&5f;ugx7OR~OL`bWV)xlY> -zz0)h%w3d;W(xi=HnSmZAI2mGJiB3H25|b=OZ -RL|U-6?#I3%J55RKv3{|4gd)DzA+!i=i}tX+i{u8Y{P}z -vrDK=OJ(}osxn@#n2L+{F7hv50F~;e0<+ay7_`+W_x52ook1YW7;=p8&!3)%HD`1W63eCr@t(-dGfHbNcDXI3h# -x%KYH>UW_E|Q5DYIZ+&4fTte?l*g+VoW1nR*y|c@lRe|2S&=vh*wG3h0!Pv!uhx~ap6hhVrJ`S{*gL> -$Oj0od^8+Sk<9_r_~eV?r!&Hzrpo3t)Du`>6)^b(qjVEwzpeQ~6J*%>)>>PrEas&njq=;eba?%O{sd<@&X@V9g8Dd*L46|PVS;j2*i}9SsiDJ -m=B5P2>IxWpr8a#?Vix|pxX<0^d(3XQ5I-`^pnAd!_McuBdg<)tYMO2bOvuk;u9h0}3MU)qE8Yk#^Xe -Beg1sv@4UGt_aW^5h@NeToTp?Zid-JnpTD@q73pG2Xz>662fstH>iMNojX&3N?N1f -ewGg00TkEvYipDhYd>lE9nLlmBU8O?y+?&_JSG2wVa0N;Dg)$g#K-T4z6XY0j;Kx7XmVNd|wlNX%SdmjPApI2SlhHPJY-x%h@P7J+x>hg6Lnh&Z^w?`XV(u9`-jeFzq -NnkE{#z>{?;T=N^q2MTwPu2yvMW?P41%dBR4i;fxyO`b5;HQ!R9_Qa)3XMh=mG)C(L-+Pa-#2*<%3eM -rj(CgOc&~_EONC)+G3U#NLyHG%T%e#N>_^fR$mcLb#6duJ41I9K{y%EjYz5;M#ZVyPNfPLd>y49j_9C -yZ%H1%1{V!c2d;Vn$u2AoR$LO}*3ILC6)>bOrP8HZu4QK;mpX5+hunfImo+pjoA(YlK$)<(Jmhg2U7` -FGH*R{A@B0@JQiaN37L``!KiDJuGT*bDjta7BgYP-I0zu=12~Yrue*%a!5jS%TEP6CfT6{oLY -FMU1JPG5mz^!0p*zJB*AyngXSpzjjSy5?ZDSqh?SL6nwHn-uPCa9Gbz0p@!V)s=KueH6ohAjL@TRsJ~>F`xB<9Yl>@|w1%<+*J3)Avc$VkE7ayFu -HaHPx!!SFU~09WPtRh5txYThB`NjIG0NeiJ7)e!^n$!u1X3f>nPPFO1uq?ax{b9cF%WrxANDr5xQHvu -n_!Z&p|gv9%GBn@*Lk)Pr#o%)$^CA;v`1uok87!+FTZDqR3xF0tfcY9I8GSK%!c)g?C_d`)%-vra8W= -P|jwz$)EeU=6}wVYl1krR;K(bJ+HpOIlAzil!c!)YjH{XZ?(%4`1N@w -k1i6+8(CYina<&_8aU#a6Ju0M0~D$u7^z)TGB;xQJu7h -=dx162-6R$KV-K8+~v$nE6cv}n0Hjw11jTJ8Mc@>;cgK=%UWDi#`e9pps+JGI1Z;acug(SL=aeS<89q -}U|nNOWUcSzv{(&XJcE<8RQmo5aDvaTIYBKFqj`zRfVWhLBL!REv4tFK>mp(S1wPC0z)OoKVa6%&l -1J{KU>%}2ewW*cprE{ia8g6e2d1SwZZiX_M3CpwTeVhP6I}XmH6)u_1o8_qTLw_Fma4}sKu@4CxsRd+ --olV8%&mgNAZK5ujE)-H)coTFGuJV%4K17>tPBN2J+oNPkiM&Mu7e16# ->gK!TcL;84)&w`Oa;maij);WgZw3XIzq$(4xPQNZy+PHuQutI}K8$tRg%4%oVQlCwd?*=*v8lW85q0+ -9*mY?Y2bp!(ycs9yI04a6#J^!UG6HES~`_;#0&SvoJ-z^KPm7lvH^)#0! -h$JJ(6oozcp5kDZ9cBgO~OC?pH4lhDL*GacIIA& -4Ht?T?tR#+6Z-L()lc+<{pF>^&9c1#RVyt@707C`V_UeJ&8%~O9F&2*j5+Wh2tM>;)yP`xHAcT&!mq6dK!dq-`789%%>SmbE={2XH} -Iw8G~CME)#t7ZQ|?tW7>Ow;d29I%5$UHx^kW*O&XvhFM1BC#n?hQPL5&LPD-w2z8oVS`5>E0>4sNLV1WOwM}t(0kB^}bx)l4t>WPm~FY -w$>q|Gw3Dy1sv9i$sycVj`LjOk#-BpU+gb|Nm1d!{ki+XR!+kCi34^23w31Y5U -#UA59>ejqBM(TRCUV7@H7DuP?ZTCaoSzhuHI`7&`sk>B8v)Y{rZ;N;H0DufCh)= -c3E``CZD(Q;?VE4qwU3cy1t#yo+;xsBW#kCGPfUZjj!D52NP6h(3|S>S?*pex7@nI&zH^4h1XCV%*#y -xXF7}=tKk7BkTbH!2R~Yu9_;8>Yju7eGcX@KD^)P$-0)xh=X$wYR>-xfGa6biNy;|;pPQ&HUA6SNqs%PDv#TFR6cr{gIQ8Bsaj}i=MF5+aeKG}KTfrs^ -ajgW^vRhbH(KN>i~T}FI%xf-zu1QwGHw$?bL^)Z2qpU!{%X{JXvCKfWYuiRU8vo=#9nsPfQ*9ynY0!q -s$SujwrYPJRn^f@S_$>Kp6*I$DK46V-eupF9R*=BW3W@~HYAqk$Jm^jQASt!Z6}*?uOmcTK1P+Zg}xy -J)*TaAyXCdM_dr}`IK=qGhR-QU&9C*p=NMf+LGgE)Bb&f_Jp^5XJw5uu8yCQH>-0Fn;f$QcjK^KSd; -G-3`ni%$p1oxY3km&Kv<~N!cEtC$XyT!nw>jQP_-AnxIa}SS^p2%&OEEABE@Deb{7(n7Jhc(-_th4Ud=BJ}p#qfPk?zeCJbrep*C_o)O9 -cY)s(l)cSjg_`p!XH^P!@+IV-~RTuFQXEG=UghL7QS@^Gw#SSv|1f^3WLE%rXlMwG>(P1Wx`-W7&Z4! -O}T7nc!L3Q5trRInbq8GXfpM}#OZOEHm$XVo;!8eqYeE#0-pnDTL2^STS9zM@R=_lg4^HD?Kj!mH%}} -KJ6yq?S(xt6UqRm2j^gYnGl&smOGr2k-L(l%E<+|L&jn>8sEc}~TbAIGu^Zwc7SsrDGT956+~f%5+j1 -RXcr1XAIyoTFzf+(Bq}yXoEM_2V;Io^SrcSf&cq|3cD&q#iMm`s#@-Ye!wLX@L1XI#le?dR6tw)p<8X -2R39zgS7D3m&`rQh;X_zbpWW3s6;_`Q5_Xwv44rlr}_tik2^N|tzW(q;<=^MlK~Tdj(z4S3o9c0*fY0 -rR2bl=m$@2TpI_=|$W1D-=z;sH1x227a2j{eFhOO5W_FT53LVby6*r+}evabr$*WzJz|b*(V7-_G0So -J|Cup$(}K);)tdyddLl!e-{Etl|Gq5LpIOliay=qeq0uMpaA}hq|q++THVky=%jiNppmATVLXTIL%j0o@v{?`YZziEO!j8elV2 -+T)u(lN<2_U(+H+=!A|_o!w#^3+B8TFf_#EDAX-lhK_&?xfe~vRH@7YN?lND0Yu-cmv5?|ZDe(srHQJCP*f -?uE-A)-<^n5mA+B9bP67=bbRgvT?#6*IJqD@O-6~oACHAh=c$VOffV|cReNKLi+Z0aLUS{T6yx0}_Fz -AW(MqJM73Y_6uDj@P@++%|wArGB@UYtb_{*ssIF-XbTjWaWLkSv^~Hm*KO#>o}FQf-{LNa~xYTGsj8a -%nqNX9p@a7`eb_xG$N4qtn0z-bYI-ixmDnF$BxZyK`{jDPwo%(YIyy)X8|-33OC3p3-QomzS1V>m`em -g=mLDXi6zEL1WgArFm0ZTQ{U(LQG4*5zz<&D-R`1YwH#k(>_t@s7+RT0v*lCidP@UiciBhxB6~kL>qB -v6+va6r@Q9LY_LXz{N^Domz!LLxyY(d6N^ZSSzO=Epfkm3h>M7&UFee~jQ3w69-MfiDHvg(GlPCQ1FR -6F6#B1%r6)g%Ru%5DxG->VY~ZD_fzW6mxYiYQvbd<+{7{?+8uRJ0Nlz0W8U{rVD4YmKtZFqY0D@BhpY -jr2$T~ghYlqc9&vFqGuxh8Mf%N}TwLo#j`!W)A0vqWO-2KKg6%qbNr3=ul%_l#CRfCASl04yi@*@Ye& -{Ytc;3At|hi=@DxkzROwVNJ!=`w&-qX5lL1W@-=yS8*R{^r-|YVac=En_)kbjXh!gV6OjlwD*T0LYKv -cKs3DVK0oj$Vdl9b?TwM4n&6e$=^EY;T-u9Y-s5gB+HbNpJSb{Hje_gsQWRAyxKueA8$(%al1yuadH| -|A`>cs>mLYIvUZpsFISpJqnj{Vj8d9LJ>?0Giu2n1H8}H!*s{{rW8Ydb>6Yzubefu!YQtCD -zP}acxCxyWc}CLM}8kS -aqacyfA6Axn4Uiq`lSw9`++_p}toT8I`4L?_Y{5YL-%myVtxN3NX-w<5Iu5c|UUm5h1D+tJ& -(baxIZ5$7o^y9Q$H)iJj7T@G+{+e8K?)aDr^cZ#5NctvEvY!`niTZI8?3Wstavwc)0kpBlH=Cr!Q6FU -8VObS&B!ReK8XW78Tx^eQ{RW5Q-x@A+IOeFsaqC@+)Nk=O{?TZC#%uNY2mZ#tVJ`PKzB!qh`nr>uxLf -;me`Du=0zVxZ^*6307e0c(f|)`M`2xPA1&WLM8&klY8em)bB9$5IZTy;^XEu2S^W-U01EB|}w52kduk -o)w!n#mj<0T)_hWsO6;|rJh8Uv*Qp>3IX%9>1OsJx)9a3wRSxqYKPNazV{*)$$ZDLl=J*;!NQw9hu>p*q>Z@1&AJ-mWajswzNenj$e7hc1+Au{| -G3MGk*ZuC|C5RDOzhVT7M3hsEw0@`>=plyG;d$xM%0C@BZqvlcT04s$-A<2Sn9%SkbiXVy_XzX{Ad8% -o_#&9<`2M4MXa#nUlZT-=)|uB368PuJPHABN8*+dfP({MGOoyGWa4*&}i-Uoc2sF -7PS7jeMro0D81TY)5xEDsCI -J>-W}I{q$Il0sLM~1!&z^(AdS&)pnKQjLu-IHBNBE!YSd!9oA%kzAr`YdTtF29qBTQ?i%mvE~x-Us -vd3H($?~=J4OS5Mqu#*Dc+RDnDL(74nMh$d!hA^9gUW1^MDQHdt6u?Xx*fkk`CRk0DL$h3RnmR94&F$ -AsxGg3$wn(6ZYyBa7+N-VHqw6p(%~0JREKfBLFil(wZjVCAMy>@{?E@WrMw2~5NNHltim54oNUrU}!$ -J|M7UrjZdlx63V5pPJ4#UF9T+8nvurQ0aw3^Bm1C3)prHj-3RrdCcdBMd7JjjHn!yu{6l%WVff8~d&) -9R<@CZ2{y@GsA?6T)6}SD@GrNSvgEWK)oSa~)D&g5y|zzCr3ueMKdIUYy*uxq -uJkn84De-8Aw1~)a0RfPk}IcaZFgWJjY`T615{p)6gvB`1E7&ypp(%Sg>diijvbjT9a~b%VvkTezyVg -R!ijP7_6bmUL-rlq{!B;H%OMLcnvoq7xc#qlhb0UKI)p4j-a~%E!@SB*7Tenev#CpQ$lO5rP0*y-Wvw -f3N)hA6t?4@^$Xx5n?Ac{v+$1DI*OV1@DdPvbp7tA7;7wmdxSh64cJ>t3_MIRoD#7UM^D|@a$iX9-Az -@zPqJkjqZi&^s=!*k$85&R4BdD1cz%*2LC_)tkw0B2{|Q>oPr-0;A6I&)>fW+O@?wEa!#5C9H6W-f&|XdPGM;A=^7H -Ke}aJ~BLhu>G0kV22U3xNvW-f5z07D}&?z9&Vn0JgnAXpqQfF_28UN$1q~!dp3!U6ze$-RqKjZ@6!;k -g7Ozf@^x|xU*o8Rht7FG2jfTdm)BOtE-(4~p%f9o16uJI|3=Eafi!`%wo5JZ_|zlJFQbf4wy~LbTo6ilE(4@H&H$Mfe|Ekk=elOnwOjW>_X!7lX4X~|8BDEp -?4`BJf)Jb5G;(gfAue2xN}v@x=E#XtZOJe!?O3?q!4$%tE;cF!#a9~EC(ii^whnF-flO6YzHXqG|w#f -lG~IjDlsR5irX;GL#xRW|Fzn(e>8bKc@9HkDC{c$yD^&-BPRV^&;R%*u1-26$}0;j=o1z=$=_=W?IFya#;@vhzs~VdU!`VE{0bRgjoUf|J-5Cr=?U -L1kRVEFcg6OP4l$TfSILK**Uy}X{|6*SFm7(CFvr~wcx^nTEU9WxVchw4%>&eK5jcBpGOpwZ0HNAf?f -$_r#3A!Hz_}Et1vf%Zjs_2Sgm9P%jl-882ZYk?=i(iRpoC3vwo2`SvMQiY^6mo9|(xWp`_zvV1`fjYj -xu1LVc7B1dHM|nrfLiWa1w4;ptb}=W1>ocZxKDg1YlSQeF0tw^nG1DyTx0r^bjArP>Q|^vVS&i8-Oy6 -wM?QXSkAp8+R^p%PE{yAj1@@{plxOG@%m26VCaU^rLE4UkF86(Wx<_?2~si;qt~iV@27{D@EB69qhRz -7^!^cpAltl;#u)+f@)x7jG(%G6!VIAzEx1Y{7ynp{pX6Lpc-&k9DJ&{g=P53bZ$Pl6gmB6dL00a#uPC -dM3$PGxF=ws%;NCKeR3KM8$L^X2!s|G_!dK|QYLvh -mEw?h0jTya78?Vae;k^*cir6sJP=H4ylD_rSww2QN_W5K)+24BJj?0u*3`AiQ!1258NoIbngv!6cC(& -t|K>_n%;4P=vjy>p*gt6w&0n<+q&z;`0C9Zci*y?V&dl -&w($jpVLk@}Twp(>rtd@W*a5tWE{LDz*l&~HhS-0>cQgIQStIr&=Agk?06y!*i`NN-GUyWKMCV{dKm< -wkqX-9|!N}N3h>>afeW48Q!0W+swo`+Tl_2o**eoV?eFE?7%kcK=c(W;9N`aV>V(h;HBZgz2vRcFAOF -)vxeY``A-_PfX@y%S|IGbn^O7_?x7R$T!eqo&Hf*uXlYV22RqW;#{zbC)*V~_tI#be)|aL?dmZ=0O-9^2J7Po}Zte*@Du&0y7V}nMfbVIpu3X?FFlNQ0`BBPEh)Ls -WnUYv*v?F*3@4KZ36Qx6av^#JtfT1QmZp2MkgvC|l*ar|CqzqVubP9AZqm($(*=Z0{KYz?#z; -prYM)+N&y*dtg)b?=J|o&jptZmraA0`II!oTBEWeK?Ypw0eoAX%Jc?HPI8Bk3QC;V}knfRGGorv1w#Q -cIJ*SQV{d-;GXy!Zn(C*iA&M(_1t5JY5Whk$3Mk -Y`}n>517iFEz5tmv@JmS3$k8P2L&o9%MIQ@ziq(^>Ec7CIvr@BCx8TmdMnc|FF9(p5!5~ps?Nc&EsZg -WU9yBKy$Po=7{){9S;b`Mpp2ltd59G4A>>iH&8JESzgY@`;;MKU2?q1(vZ{NmhfSQt92~h<+zfeA;XNaN%QLyBY^QqOfDOi0y{@LUEPNxi938$-PfOF4~XrhAeh7JQ -i~la)F-f0eg>N&9-G?yR}`@PG?5MmM#$08dDY^jI&4i%y?6*K`U4>khQSz!sw70yt=9|V^d5lbRchna -8=EwO&FQBy1Lw~)q)UNFHgYWw4O13x`2}hkI4!(I9V-y(J4~{7HR|IpEpRPc(SxK2Y|X%NBme~!L(3u -j)(}0#hTQ4}AiblkC<-th=%ReV9i+gnF3#%qcn+j%$(-!N{XuCAycbso`(bKFz{4GA%`!>@U)A%aJ?D+$*tvEFPkQO}I -~fhE7apw%sFB#=lGuCnWH5bPV1>+-2G=wt>fJ$8IZ7_dQ1`ORGnVBcXm(H622Ln!uUudzBl+AT3y#t& -M1{MJnyZM7wCl{r$Mns8y5MYSSCUU#B`1>`a -joCM^u*mIAADL`tnl2ax#|yYe!RQN%I|5Q_og7(Hd)cl@x`*J&x*Fw1580|6P2%a5QZoiCEO;iK&+(9TpW~EvJs!jz?5dd(LRA|ryBu -FPT6Uhc@Hf$U(O@&P8t2lLS+`^DLA~aOJ*2X|buY&^>x``aW7nBw^T%M{T5$HGpx)n`Gx%^ -6qQ6!)+ix?4ZXs4D>ReG5%n3trf&Ynk^JdHPEb#Fqve%mb85K9s_lbUW)n&gIBxY6>R{a97{qxo`k@Q -0lZW*vwyfLmqbTl{O}ojLfaTd_p^^*&`wY~@J^cBNDz}7FDcbXarM6Z&R(i@;X&6@KYv9n{$ -z5t9C{bEpMUAzj%}ChlequM6hnkA#J0e_eSW--CAJI|5vVBoqPFJtMmfw(Ob=(?1^|)@?ubQr@@<;Y- -gm}VL26jSX^=`F0kY6oi4XqeHWL#BK%^%(M4XxTh40em2`ZOD#TrWRh^G8Frcmrf*tOn7g(XXyd{@jz -GROG`}Ly&bakerc9Vw2GJVhDs0pS(ut2Uy-=S?-RG*Ta -p6y)TuAayo=GU6;InsPkpB2}|yZCymAcTU*)SU36(`#2};(G$ -9KbgiO4}YwCcb+`v!t8%gL^+~t$wSDTUSwthD -sS_lEdGvn`k68$NKcua29Sx0L2y3}=A#A@6_8&&Wg%S&2&)<64Jz8{Mou9skHvY7OP1 -pkR3Ut`6>T8iO(&)8eiF^Gx3#H$~d0J+ojGOLri!=+V}BK9Qs{A2_HNU`CYqqqK#|08TGGacY$n_!`> -1r%+4W8@MZMRu}2%eXb#h_@J6$Cqdip$U2Nba73E)Ht1qSq7V&NtH}+yZG{T_W$PR+aE!W*GExQ|RLh -%C21#qjyUr-}&yGvYG!h(KkX}*B?xBgvb^|>50w5i5yt*i>Pr7L5 -yq=rm1U*DL>OHPltraaB*M7ysN7KcvqX3YhNqYAGwR_WhOp&BL1}?`y --Q8=b|4glZoTr3(JOaTDxMxy)Oh1-%_{MGr82tR)Na|!dLX%VZxO%h5Y)oijpiRDarDX#c`@wsL8QSFnU3br5b4V&!`alp_z{M8mSaTFqHp>hQY -1aJj4kZnoxeNM)_rMlUwO8p-6aS=~fR&+Q~B#XFe*$sM&NL-G$p#ih$(&66I13m0sWZCh3I*lFxS`RN -vR6*QQq!SH&-vtF3NZ$Rnl6U&^a2QQZH;D>(Ud9NbRUEKPvfplQ)e0k4L14*zi`w=-0M?lTM3G?=E?9 -jUEG(0MF7rgQrvt_t$gGL4)Q)HGb&1&y-WvLjV>T3QViPyiIya)!T|UQ7By(@;L2(lnGV{1;#{x80^P -IKrWsTuY2$XwUKHh3P_Sg>rtG@>iPBsZY*OL8n$ht7@>FDZ^`iDi${_x{JSnwY>(NHfGSfel5WYL(_t -pf?4iUvhWrHXa+O_+HfKUbNKirv~c5Hw?TtCgmc&y=s|uJts@InxMN{DUl};VmvVA -#k8c+O-zp42*R?iAb~vA`s<3t3(&W`G}H=Ek-81$lx=5{Bhf!?^40b_W~#Ne2BLv^eloDPAtR@pjzAz -MyWrO^$~@H3rR`J=`$gMH&qBxTF0%f32R~G~)Fjf{sfG1Xa6x(Bv#8s9J;+ljhDgrs|2AvCB4K|3JGJ -vcANo&x}R-%vdD!dF4_o-k;?06h=HJ;trSFGnpV=rFL05+qGpdONgIEi$Ae0VD)a*sDkZ274U@G -0!ihi_cIz`LaA&&yojk>;U(JO(3gY@WWi+?<$g)oyue^f4S_+e8Rv^Ns4|eXx3*D6U9&ERon~(T}VVe -+FbEhJ{KJA1jzVm39Uj3b$L(A>AIs0sV_CX=-@ST8Ju?Efy7P&2J94M#ZZfj0aPuV;|&<93~M6%0$Xg9pBZBr$YB(EF)HF^nSkNxwwB -3IzjF};1OCd>fQ+!CjS|0l79zlJTL#uhpdp;k4(X#Hm~9!hS>%|T7%8PLj6yT!|yst+M2)DHViYo*3+ -dnuZ2jVt9rYC@Gv-OD=@H%@`k)%ZKz9y8%l6E$b+oXank+MBp93NMw~{fjY|N>wVmt~|wh*Fnwn`tp@ -A7S}u&!2?cflSl58YR|UTj!3ofsPnjX4M!)RF4dlDbE;M)BkDYbg15C+4LZ-dNZ(@Z;;g_2srYlcO`u -0Pt-|<0r*tzx&SF!C~F4&l$THt}Uu{G2L2pDa0mUSwjnO6DF&xD<5mN5drc0r -gMmSEfMSK++>x2GI6uSME3zleDT|cINo4c=^RG@OK^jO@lwHNF2iRC9C?W{OnbxN1eUszoq2D2lbe?z -z1D+GD)?dF5t5L=^-_Hc)N|C15&C0e+jY_m%R9urT7EF!u3(7=6AgkKFoB57CvYJx0Ny} -064Fd0g6D@qx`kx2m2E(ynTP7g`e-k7Sb^vb!tbW(%^$GRXMFuXCJPn2BQ2#Ijb8)*Wig+)p;!)ThjE -a?DjbL@y*qEEfB?aAlUwRBd=++*d_w1Aat#GmqbLzU1Tx|+PXk1D#-bh3 -9JDyH~jO5}O08WX!)6ZmrJoD&Y}kk=R04q6E$=sXUxtrx@_ju4Q5-GFTa2x&ZB5SrC)Zx;%o%MASN=J -ow(dD85V3-W$F<1O<1Z`;%!NqAM=vJX#^WYU^}z>U?Lu_E1xy?mkkf5m}6e{}98`ddlex|J~?{Ei%a3 -EPcFft6=9M}TTI=?GA*vIsq&q}>eNk}7wK-7`jSHAipKnjOI09fsDWM)TLwAvsuXENIGaYOTK1wEj|6 -YqctD9|$*bEqjc3bE(zHZ}1!4fd9mYy703P36sbzP^abvsMYc=Nc^`iRW+tkx1}xyUHG~%_NRYN7>$$ -b#m275!UQ?`^a@P*O#68O;M}9slX5<3_>jUv%-#W~3gyp%@{iyUeVJaw*k~0v*?D$WR7gp$wkoD{rxl -oRR@5Hm%S(~D_-jk?2aWlerFb164H>nNnW0vMnGvS9IY$gi9_R`O@h(Wp1sM=$RLt;X^uf!uyhu->LO -mQ(V-FX2M)QNCf?-y;6vwr8cS0$Z5;=W89Q2#?6}w#dr!AScAJghn*ufwTf$*4 -uL8zP>EXr&K`9Hx3y#A@hpSU>jhHmo=MkCGmrAey)@!yGj;E1dxUFw95)6`L1z!r@y1g+)wq^T)O*ax -`++aG0ItF|H}-t-$`M9bjjg7h&3Xm#cN_tfd*oia`EBMN^{VvuX|b@`iPE_iTx8Q~VAUdL9fgttXiLP ->sQ%M48+{u}N8lk$2Dr!ZP$o(HA68di#p6sCCnMu2I3KUwFapaW6zFQTP9prt7P4rIZa`%P -=)NMY0!EH9<49nf60sE_rdkku5of4Kd95Ea1Jc;l&T3DS`T9FBZ#DA>W?Ts_kC(e@(t+aSO~?|z2}KF8&TN!0^mm|gQB;9MNjhUPe -^AwLEe9mSeDdFTuY7D5t{~5s-x|{jDnTT3HmH%YRTov29$Y7X`#l&W{v2NwPUy$?>MOB$A9SAngLT3L -vTkoe%Cmdv0$UBpey~a!S^X#NN*br~FyL}#Zy(XFk8tp>OO3;04^|)#%5CJXxc;jd-D5AmkwI=oK?{c -&CAgPfg9GK4H1_awN*cR0%Hkchv?KKPjJEjp8vOapuZrdT`GYV5sQm{x!eH*{_t -j2z1=9Vc)0VZQTYTSxdR!6;maJD$}31CQCs%t4-XwaOHh(H`A-=s)lXtWd9TNzBjAvnz -KT76|5jRIIfPdU%T!NFR?2xuXM|@ApSKeKRzbk9j?wSCoIe2#+-dd;f-xaqO%vJeRJ6|w&)Ahl5n -`Fx$rKJTHytZ!ZA3>a5rQKUs{zsN9Vf2r+I87YDYU{U0=oi=7LhEE2Zhp{=br7uba*MpeQnH*CQfSj6 -?&YsoVIEg9^$!`#x`UO<%+h_9Rm)wgYieuO95pj)XM`AEqMNv^e^qdIKROM-S6<5$h;T -nXojzQeg+(wq_-E>!eQLWjjSA&Png>5Bb!)zoO>95W*)CVW|)Sl3D3z1UXS=GCw{`&N9xuJDX}{jFw9 -_-{*+WsIA#<-Hi;M5hHKA1uNFMzdK^~(|AdKR%-moBZO+uL76jG>p#$KHLj5WU^`r(Pwjm5UZbEA7SR9q`ng@S#; -jaMxrovwi{8`}7jBO}?yhkd3q6gjt-UQyg@a~0oAH4hE-4E}6c*o%#hxahNhlBr@y*B}rqwQCvV!E&?hfhN7UU5z0j&1cZBCN(H@;;uV+oZPC=ywB5=UwM_*zm$KAsG268C^$?YmrdH_ -upU-p7xf~G8`u2Xm-{1fH9(eA|ne};|d1mIBnKLtO5e7|3cd@p=PoL;?@>D9~RSG7z6Q6^POxJ(dunV_Elf? -))U277coyl{wz<45M+8Rp(AhNOX;7N(}Gex#6G3JVP(ml?uQpqeuK(Zg{DD4XVE7NK_9Ysq+qU=zXX1 -Z4#K2o4c^yOhhO9r3yynXSldMP^GfTaxKdrazf}WcrcmOQtWGo@9E~E*q6c)%5GRjLM#%>oP;x4E7+b -4Q0XawadZiR;%n>mloQuR|=kUEu(aJPWxcG)=h@DALf%4-IcRTFw(;J%xLe*`2x3qMQ)CA?7ttbI@r( -fL71f*0t|-J?M=R$?U18N2Jdu~lYWn@*%W7FHO1^zbkY{^EUCd%k+JJv+T1JOFO8JQC9r%~Y2;;>?UK -t@t=Y73UqH>5i@1H9x*2DTUs7@jjT7g;tbQl&7!X3ET2i_d`$kXLKdu+o#o`Aa#g1=Ebg -Eb@!$76I}LW^QI2=PWw5c>U7{?biO5?jdA}I=Hc}FF?Qm9j31t^`HucMbtPc5FMp7#?mzv|?jJgu_n- -2HPR#JB$h1&id0Iy%iIJ)NQeA#cFLAFtWWdV3@+0R?$M2*vIDf{9A&_aNA=8DBsqEnVDe!00RzGj;5< -Z+-bEnPY4tph5#&Dwz_Rkm3;!~KAkiRqDFEb&%Bs%W$m -S1rW4tHZr*u_RkQ}snro^n-7=TrJV2IHifD(s_M@tkGYk-6_9nclf*U+z0-Sw9czGmrLf6DZ;st4SSV8uDM?Lt`9-!V7TSbF8tb2?kXZ_Z|3)-! -L5w2SUZ+wU7t8;7Mq|&;#2I6WvkCF-JLMNQFZA|9zGqg4+Z~^LZbH};TRq=YM8h|y)Pk7N(J)VvyH;P -GzyVV(EhT}$|o~6HZy^44{V?^E^jTUkdwnb0Bq&cUzT -(P5Uc{q-5z>B?b>~U>`NLwl_;XBN8%2qH_8GYkuGlD1ijDV>UL&KI=pt2F>PeX%`c -f$%}Pn)m#rbzNj8%on8oL1u(Pfu&I(4@!QqMrX=kk%Sj$s0P|G3AeHI9N_#f_lpERfS4?cSRD9TMrN{ -+j_Ej#zm~K|8*bGnO-pC}j?tV-!1^1Qh+!=|tmlZ?ujY{epy@*!LCO_s8^SVI}x$CWqO11gB}B3oO+x}L4AU|qphd^f -I?vegXhe6|L_I)klUVa;MIE}m6V*%}0E5?g!2dIwuWV70I{9M(Q;wZM8CTccrZ&(@)^w$xD`hBt5aNP -zYCB3N-Gvr@&@F|eLu>v&j?vGpEU4;JyL{O(#Gli9{Py~Ditloy`_Wn&Q^_39bs6|T8Fs=D}wd08}JkvmH>44yC`1bivAnhWVds;Ga`6 -C?$y>f=`ODuGn?F+J?-9LsN$)@0`!!JC`xQhz`66u -na=xcLNEJ=S_&Nqkdo%3&GCAMd6v6wxc-z;<^=_ -!j`1b(+Zs1?sg`(UwkAB*(=51e>v~6Ght6h5StE=!G?CY1b?_hBNnZE5SwFw`NVX@zxq})X6+1NL6&I -OhZ+hVWe4bFXz6YZT<<(Iw6Pk4LyZRQh0+@0^9j|?cVuR^%i2-i}dG39ebO0`fs&szctO~uooyPpsH% -2YI&Y>QfyZ01W}HuI$~o8RW&we-92p)>Sb^r5NfmBvCum8`)9FQFXRw75jwSQd_LW!vj+D=S4J>b5dp -3eV5dIVB5 -8QVC)saJIg?qs0h~5?OZ!uMN79Or^_s;@Z}VhIw|74;s;-(5^Eb>_}dg)bm4DVwpN9|%`g>z?5h*R+s -gJJSXh?*hA7REM$2j$Ry^;k6X0L*xXW&?_$S#Hd4%`1-&}aVTW@6FTu2BXM&P)J+DwNDuytQ -wRLcoqDq#s7%HoNCjs`*L=#)C9>Rfu#t^fx6XY!)RaUSmZ7Xjr8m(_i!&0_w7;j1=;ei184jpPLe#VQ -KhfQgVFR9xP)XGqi$lJ?6u)4kMF;R=>_!haw+updw%gN>H_*L4y_~vnv05zaLHh0&^0&Zb475$EJo^) --uIL>=Oj`J-_yETL=_Ul{5+EHggco$#`&8t{FBmA+b?c`MJ$;cLD+B&3KJr=dJ7?(38loq4*Cn(kcZ9 -AB){a&tryu{vO(U9te#p*3iM>R(^qKaF^EM({7l4^<`u5JwLqvq|}7>3ZcmMa5y9=>QGrMIWhi@u_(r -)z82aYkvu_t;m6V{mzESYO^$*uh=f8YcCvVXyMCU50HYwuartTf@HPtzlflRbHrVoGnW$7Hkl^$59L) -PbVAB+-l{S=ISP~INl`26@xd4L7XtH2sV*rlLLF1W?{VFj0@C_yD89-Sh1U_VSGx_aaZ2Pd(CXrK -u`rK8mI3y+wP_p!d~v+)g5OnG-@HLJI?x0_(dGRbHtuv+>92qu=rz+g{}!YRYmj5T+qDP?8eJn_0E@@ -ZLL&>oG-Uvli3j7WHzLFWn~NEBOJ92X0AZ>Z7$Qv)2dUg&1K9zT{!g3Wh`{s<}#yH=$p%cbgBKU+Qmq -2oQylmK)AZIEW}^iS*8kxYiAi)q3$e;Im_G1^eR6#2*xf2HD0)uKiB_-QyNyskFrMhA| -&UnS1em`_F+afrl?vcIBpTZJnmC(kHf%LVHLKwQ3w3IB0~`BLQD7fXBel4?Rkp$T7T -Q~2r5`rLG*{ouY9aEsJKSpra>9X{*0F+9^s{$zUaY*y*t={p->J0Xy^CIIE-dKXN|PP*s=DfDmyy(Za`VtMvXxA`#96ap<}eoW_S^ -^duc@3Zq7#dcT#9XA&VR90UG!zH!ia#jFhV8XCSAJWnZzpi>b$(hI#~YcdN -AS0&e4GeofA`v3=%+W?8YL*-FU5YBgAJb}LYa*w3i;&ZDfrIeB*nltV-vn8nQ)vhwY_X_rz~HpZjzW@ -gTpT8k&1N!{ohRAFfVO0MTQn`xGS9U(-JDw!~Bs#X*drroK@Op3K|X!>*?t@;bz;DponI5HdC~#b@t? -^>h_|Nm@i63AFph!e80q%!?`8uhi!~k_Z{TB0jvC>uZSDPqv|$*yd|o6;qD{52hN@`xH -8-5dICK-_SY!Jiq^Q)2v04|McGJ8n6JJ`a&dwJx4a&Eujb&dmWFxbWA;_%yS)-6?#aSz2s$Awt~(GXQ54lKu*66O -w?Vvlv7<1+h-Oh5{UK44sxEJ4+!g9_1y)ke$%Yh-g}T9-8Mi(2t`Egdt6Q;#ZUCo|tn@YbE?LM?^?B) -8b8-c`ru#l2fn1SA*ehHqUT(`z@xe!NL0-mxR$0U@nzw$_}!0i~15XJ-8P;(W^`I+YbdI{rE9D~?wQ42N9!cnH)&SoXirjUv=Bu&BlA(|l -&&2{uzxD7Hx+P<1J=D1Z!3ymk)x&%pnFZg^Q3qon}Q2Gsv_s{RVs6|v{$r=<|;ct!YO;kMgh^Cgo3;i -vF=UtX9gvk5YS*1n^tOCEgs%6M7^%r9lvg2@WjC$A})8a6=?F!@uAq>aVWnswO$%VSRsrdccNDsw$<4 -N#?a91&h$RgXjfqax{YYUIBJU&qIcM$$<+%^OM%%*2|#m^*>8lh -TD~trMlIjYzQd3gF~uy{dS!sJ8MgL)d(|?^{Yl!nDZeP_N~{svDABf0MeSNL^VjxGt{8vl?9(qN}4jd -DULv?s-y~8T8d-?%X#pZ;4Du_(#~Mynt2rSQIBY~h-oJ>_9T=R^+DwN7+~}B*o=T-UlqJp>8Ey(s%Vq -TcqbDYs1Y5av!e+#mwT_+>8*icZe(5>s6jQo{VN8=D4-fcW@sf>{*U&9LCly)9da~u7dWKyoR -QAVm%h(=)%eft$GG8M91Azrv;6)Ilu`r|!FEj=yrxzf8JH$V;Ks{n>A0gmmL;|@|j8kt4xmy`Ag) -d0(pRy3${G|nkoszGrag`Mdu6ktHVlCJ-S1?}jx|W@i9laYmGA#R|;mEKXYf^5%pur=<9$297oV>T@+ -H3VfalXk%8H}43obkRTkvP@8sUz0UcW)%0>s#5JUOY=9Tap(!VJPN|^mU|qiW0Y)9hJ~|Ov<7MbY$>R -q(RNOPRVh3Dc6y;@~bPqIwk7ehW3`BW!Sx;ogMI02A>@eI;N%lW;KwvX-hK-WxRL>7wx?V -x=mZW6BMk?@_9~kaOl9ojr>wSsO$6hfInA+SYu_e!;6M^S2X0bk@9G@Jw^aKDe|X_1=T -UqCOlFmH*M&54-{;%|)8laE5VDUa7aSW(VGdUu{`~NFhmSVdZ$Ee8th0(jwWJWy0sa^M<#9N#Sr~pbH84Efx>(_gqQ8cwF_KUS^&`6JX1;H&shZgoIo -q6W_q-b~v2XqSy)jmUnpLlHKA%o5vMBxatg^i9nCrP3oY^E|N|{g_WlJMZAKag{eH?dQANlP>f1cHFf -=jaoAG1E%+8j|*$cI3zmDF~In#&cWbn+uGL=9wco+`n_j21-@tVkG1*6Hh_i0&zt0;@_J?EJQo)0=J7 -5j<8=U9yVy!8o~L#Lnez<2MXd(1jgqQ`8C;WOMIlMn$5(D1I3MjxIKS`o^yON-dkUBl&9UJWWq@~*jMjEg76j8gp;W~&w -X&5xE-rJBY#vj-zQ(`~v^kf$=J~_6^?a -+#iDTA~ircXd24~dDcU)H{*-}gWI0m)W>Up)!=JR$kO*`{%++*<+4qv&);?)>i>K$bkid6Y!`Dw3`IV -V*~IOsUhzWjt -81iVf=GY-nDG;Y9}9jG@N*A-a!X4v89mf~sQ5!$Kj+SJ#nWc0^eBzx_@%M_L+$4s-vX{Z{x=7avr_#xnq}q;E~|6kmfi&AHks7(hzZbXsEvb3^e6<;}2<& -0^kT{qH7d7j;HLmlpLhf|W_(vfJwtnvou2Z8(SUYYJ=Dw_nC74J8#EGvx`ZZ%)K@KGw20m*#6?9$iu4 -R-!cZ|cKl;vkrt@uh2PK2U}{K5^~|^g^8Si|!YWBAuG|$|`jZFWGr9xXgL5SlWh#`q&yd$~`TPP+`B2 -WXbeQP|oed$r@v^DV#3>YNWh#4-{3Lt#EzdxYohxl; -%e%JKSqWjg^Cx~XEvsE&+17Tm;teFEyOP;{{w#SBDwv7(^+BPD%EIo9FJMWggxDFJAc~#S|y|L1lie^ -2#?6J>Wha(z7?S8i4usyaO$_DDU*YhDY+h4~5z^r7YJ6mkSl@u2q=rV99a;W_x)iLa>-D7W?>8ZSm6I -<3-aniP9B|)LgetQe@TESjwuC^T|K~6qghme0Y5Zk1x4^#75r3}8zM1);7Exv>{JlIr(Ge$~#za{%Bt -5W!I6nx&w8}>-`D`|!SfLri+P%tCYeOw|o<)?0?ygYU#C{xN^Jh_WJ;1{F$B`de)xUOG4#d2B|yuZ|Q -2q}1^&v@**@LAja7Y=vaHzHYHKSjG9(Gh=6Dr4@`b+2T_HwD*G*)Q6fA?@Gp=KZx}iMp6`6~{o!aL*w -n%?SNaZ~NJK_$Vd9L#vfI7rwz|6@izvud-`CA>D8{>wSLC_;ZU!w= -5dvb`xnkIOhGjTAEs1LoSt-mE%A>NDiiwREO|VNX3Uy?{F74c}rl_qOC!nt@tBg;s4 -B{JClWJ|oNYgJ7zdO_m_pRD2Ny^MZ^#Hb;9G8zze=kXyf_LTVnKgH~Lfujxo{1`|?en7o;C44V}vh_6XG*ozZYsu*EFP1CjSD=(&gOYKchOjIPXbpkU&Wy?EkLdBO5{G%yWj|w-$5t762FKbhlP5NR5fnn)ljhE%j?hih -7hIE3|wdBWpAQ)>PXM7DWcQmnECF%Qzn>saH97L%s4LxDy&zGBmCfa ->_|3jVmXcG_IWKq;ciU%_Wb?(86+{h0TB#R*+lDpI?{qHG^^X^~L*bvChNg-{As@8;$uD_>@lfFD>wo -v!8LCFxdiV$FujG+)~0_Xx+9-I5~YTr724 -X6vHEO-sTg08r#oX>zJc2e(!o#c}qJ -y%a0H)x-XUxyzdCA_Cr~9wS9wmBz+TzdYjzGkD?XTZl3lWI6^soqNZiDbwj=reA7!>Ro;YUyJ -}?T{GFX9R4c10^n7u-ToV`DDt(;0I>AzNyBzhI)EV+rc4SgAN_FQ8Bu=?*neIu7dy?yv3|o8hOG;M$V -bzs%PwIO8)J^)9T)x={y<@HUB;FsL=#2Movfmbuc6W~7*2q`y+G56c$(LeAGbBaw3Wk}#UPttx|0z@!mMOP?huxAmlVCl -hZ1I5&TBr{hJW22)YvVCKyaGiXiL{+6!0mdTg*od^yA-mL*!m2X9+M!2K4NU*WqJ(YUwe%1HFg=yGX1Of1916TE(g;APBl3im{<@1akwt%mKaECb5=^2$3MNL2QDU&@CPEDMo}#Z9CSo|h(PFrW6;a|&5zQ -`l(CA -W8#FKKEkEZ?3Hq!@0sQm;SO`G1L^hlTR#Dsir!WT=V%IA@8MhRop=ru*>6|?Bt3 -tIYhac)63%UDrKphv(Be(OdEKaL1CD0?yFYjKi^3J9hHkOZU=GJ7Q)l50$Qrt;e`KqaBk*QLvmz3%=)xgoZ`Skn)xw^8vtp;Y~s2t8=uAyH4JLIA+9YHQSbewd))ki^Eo%p?|ZPDY~xkM*wT)Y|=zysiSWqs`>`u)Z7o52)by -`I&VU*ErwAEY$xFXq?Bm0vEG6w;ke;qxe#oztkV=IC{?CPh8H-hToA6i(GDW-{hIG>KB*P;z=HUWtEC -5qj0~&Y|3_8pdjU&e8nQ3QlKftUuk_as+IU(j>+#%^)*ZZ|{2=Hig -Zshv|A^E*{bT~D{B9)hPiEDv3|9i75`4r;p9#amSxuB?wihVr>~{18HwL6q54ez(=aFUU|n*Pd=F{Z6 -J3dW!j1$ZwFLy-w#cP-~CcwDGMNb6qa<_!8BsFh9a9AaEG;ucOjp;l`BndYJN*Pq_-p3mAR>CW2U?W{Mbe`c4 -XA#u5CTBrv)iO#TyDPpRQ~9QWQeE-Jn{jyhgCJ~|G1-g>@jKC@hT>-p+=>iHm@RPHhIxIIyE7| -ht#yhD3HhFMd{@v*zE|J14d^I163=(*h-P -mdXvS@ekb_#SC#J!Wwx2~_Nn1ku(>)~OS%T)4w?rn~HSPO{~|nrO|n>5h^1$@Y93ra!YdjW~NY7i45^ -UIv$8YThI+KkLLidupBHJx=0ggAswVa@n#_n#7A7j5s9fbdtO>9r!hD$gKeXx*z@u=w`6N -twpDu>Wmj$SIoa%xXxGeC8{#4!!Xq5Qz+bqzdw6sqwD{)QV{wQke4-Ay;QH{a -5sV?d|QUAo?STj1^8y7vg`*(k>4;UC>i5wIa9W!{y(Ac;;hQ$xRGhxKY#8IP@lE;j_Yu -xw=cc8yYg=+^)OfaE2`(Oc -8Ga~KeucAGsd59_;bI;KRvGbf13UO3!W>>bjp9X1i01wUF%az0^Dl;+^_MkMgsn;e}6%zBeh{AdE9Yw_tELd2w$ho+5$7 -JHeSQ4IH{YH-^{>-P#dnq8|M26Ps-J#7d+wL>7cTz#+wawvF3bONN6>IXe@z|1|1|yo)A|3~JK~1@|5 -xzeONg>2T8nrS**!J;!v;Gp6Y|yUOAPj<2KzFDeYwH@4}<-m20Jbo((RiKcAW0hNKKDFy%=KE=f#sVv -eR;AB-&DK8Kgsz`{;aY-klROt&?oA+37iXQ`sX~jWaAY-xfK^mNDI$kdtfAWjFO*O-961im8*WgK}mj -i_xUPVrIPVoOoB(_%RZ{RejI4XJx5Y+<@SXHDZ6^;Vrz~{XJu1V!ZJ538JwL0-Hk;#`yS(enCOW2|m= -_n3+W1d#2n&j}S9+XVT+KA%u_c^(DiX{(N*kco!BvP&luUGVpky@PYY-Exo)bhvMR5DzKoS!i2(w6uN -7dkc8wyicgs&B;X)6bJxO!g%nFrHdCfd@%8nYnVUN!H@8;$SP>XbfHebr2x=!r2KVZomPJZ*4PQoOOt -t3NZISi3C1Y%$&T?ec8b9jul*7nJo#UFKjmZY5+ETO3F?o48dFG64^RQHV_M|CR#GAlp+OP!bn1%GrlEbvRG!ZW94n^SWsP#T4Y#!rRX-4G_vnwn-#&&!!gp*gzfcnijxkwooK -!gUOpLWF62j?0-y__)N!Jk4&+o0XA0*__S@UE!Z^wb=~bBHxxqBA#@-1BWBg_Nq*M6yapn -I=6Yt|CTX)wHg;3T{F8WOmoL%v`E?YHDh!P+C)`rjm_H1{@-`bm>mz*af!yDb|Up& -7NbknyHNIBvl{M;l#_@vYo?4el0lWx8EDb}^@F*h5lkrCbjlU2f?@v}I-G%s`@uT^F4z<21~NdgLr`vK@t+Z|-W -HPAx@7y4gB4*EZ|ctLHP3L`oByRIFpBQW59^%S@PRotl$3OLWj`O9xlIG1udU`LMtKU}u(pm4*Adk%` -fX?LYcu7S%V`}`?8tirPjUL)?ewDEl -FZSy67T;Oh|3Dr836be_8J>iINwTs@!97G2%nf8*8DKmO{ -~`84>=+W!0M_&0gGhRz{xHB9HmZ5A=~oGYlv#rG?Rs9ye3MtQENBjr#=hZXj~ -Gdc0WwUj1P$ZTsK#g59!&dWrn9tMc5}jMnKc9m$u0s@%AiR#-Ld?>!_UMj5KT1l+--&kVc~` -9F0uUkanUiZ7A^%y1u)+HumFz25A89+W0XtEiI3+3HKP5lbWXSjZ)|a4jTwpQ_2&Hh}KkdtCsjk5tWs -bufN?9Gje#$Fn!eI6ezEeq(V$*A`?mRNER_}iMBlYk0pBha|kNxiCoMgap< -kS#+;07QtiY+_o3F*T>eB$yvKI+bF2)N19?=Uqh{qI<^y$PDpDNb@Ueez^$UIH;60`;Sa0X0#188%{VRw9)m;}YsI%$hpgd -WHM9?y=eAl$w=sUtQ10?6kz(jO?f!JEi*_rEBC?E6>l?Sd -u)Dr}+lM#TS8;pr#szVPu%p~4#=X|G*z8Gp)~Q@;^1&B_6ux7qi=(Dsd>Tu`yh>wiDr`M=C$D6}l*LH -A&n2hIJ+--TD91Zv;$d%0JSQwO(zpgvtrXonhDF6w;j@IGUGNx5`E%kT2Y9Lyr?O -F;MXK1re=txrb`XZF|Padc!(BP)_`es#XG<=im@7(|M{QvgB_b|9f`Q_F-qVZnVIa27Ry3(ON{`JRoyVAL -qzx&^X=zpI76A$DGTjzAy@z6}HDd5{HTnUElhB&bo^Zh#w=td#~ -#>fcq_)dmrsRQhSfm-V?MqBQ^I#%}mzPAFJh^rMXWPf>+P+jSs#N%hPc6*1{KRIM36}`I^5&^DolUSx -$hZgvYe^bs9b!wEUjd+_!4@eW3Y&s`BOy{}L6o1maA^$%cz9Ikr$wz9BZJ9+}3;cT@{{|n`- -`wEyZ$|9D>1lXTTJ>*u(e!^7@4xf;zb*sX^Z&RgBzTd2Q -vdk@H^BD?XzW&&Ha|7wlyR4cP&D?yA;UhJ33xz-U#K|Yxh*M7}PmF6g{kiMdHiA0j5y$R6W)>;OGLQA -TGW?OFUmgEdh@NxRn3!)wAG+~ti+F}$1HoE?)dVXD9wb;yP((1BAeSJGU_3zr!7zfM1knT*f^dQmg5C -r{1h*4(B?ure6SN}mBk&}s{z?shj?C`~P7)j?I7G0U;B|u62sROHAXr9FM9|2yrcatp?>2%gf;58h1f -vLsA#H-&3EC0(5}f;z@*p@wu#cdO;B|sc1kVtxC0IeQj9?)_A;C<7T!MQDh7ni@dTZgk60{@mBe?j5M -JNOx5tI?UPOyn!HGz%b9s)f7uD;aPIP!0OcN16QihI2DC+Gyxc#6vUH1UYy9&ZvUdVg#AOSu1Udj9D9 -HTOD?hxX|4!Ixgd2k0n;jjxu|wLNC9f3`Nh*B!rg*C2?>W?0)lh63&BP2m&THVi0hH!W?W9HdoH{UXp -GeZ9i<+~MW@U#I#%kNVA)2amV9(r~1i;IT>}##{^4;fW!f50}wea)*4pPA1|VA`|`!nS6D#nA3M1BSY(PNBZ~F(SZ9i4YbWkuGHg>zT_gg`wnsw3Ni1b_O -V=5w41=Ci~4)3!EWLi-hWv2Mp -_#zKSn6N!)&F$w-dzkCGDIXNCyR`X3}Lt1)q*N4r2j&(V#Nya^wUp^H{N(dl$DigT5CLKRvx#eJ?=x0|(R75AN08t5ts-UtW!OO23-?@lcooHGTCx>jH -;AaNyt`)!_oC|26Vg-zk47od>b#3pe0beel<>>FqrH8UOj!iw;yDIFB^&etG2hSPD>`Md{PK*W3GB-n -#n0K_Vd?{P8{d!n_t|)G;aU3iZ8I+^hMp0|zO@VzA4%`q@W&hNuDf{o?xvH+0x|fWrdF{rkvpd6A;?9 -01|}!TM1LE><5bEaUJ8rMxtH$Hi*)MtI_H#p;Way_x?=LQ%aDp3mtxs(N$!jGO8$d>3ku>Mg3dkcR2C1nd)3LZN(PRifY=j=ZBD+IPiD%!antUUa&wBDThe96xX~%1K(61hc{I{{V+qnPkn -)EM7d8o&;`@b|+rGW@_h~PMhX&#*poj6%z@+jCJhCvKd>dvGJ)Jsr5`lq%A}AYv#L`Fu6*w|R+- -G~t*L{d_c7&~^Xm@r|2n430OOrAVhWM*cHsZ*zlyu3VaKjzGtBi7j?#PjzJ5UDWX1-;*MidjQCo -Le1g&6NHOlT6qAliG4XpT=FOWYN=iz^^5x6LBab{HR<2wrR!~;T3TP@`BSA=|dpO -A;YHpDkm{Js=_7{#AR@n=%}B@}-H#ebFJZ>RWsDL&=7{0oYIisDzf;@?gw+(9X1Pznnug(oS6-IT%!N -};N`6hHTr;@k)+&QFu#!g48oeOZd%4@+14wiLe`#gCx)BPsqQia(v=FQoV@DgILw|22xglj0ww_+L=` -N<(~KjRV(H{I(ST7K-1Q;@?j32U7eo6n`4UUrh0zqWC)~{xL)R+E0r57@eY`21O2vkDk35>I;C6JE?qhW3>nfY>pxakfJw -PCj*2a2B(5g9)`E-of6r415j-Rj00Z}9W;Yc~uzz(1ZJO219504ZPt{G(#xW8>oDW8&M_3PAo{ZsYU^ -#Ye}*#7D;uzPZiyS^)Up+O^v-p{5_jS?F9#2}b~pf1G~Luy|r|d`w(C6Tvy?{3rZVqI+6^LL8;hX7Jz -^Em}|jmw!rM?-Waq7|LKc`QJQvFr(1Uo2o&SvB1n*G{3HAI2?}oH;d@;yc}5K)S? -=9CDyqgmC1p_Long&M%Uz@5``dlhBbBfvA{nng2XjW)cAuxBw&^%&70ks5)~g2MzSV^F -@5zJ>fbyxK9cwtYw$+;(d%^yy#6+mJr7CN{Ev9d8j=`-!jPEoE83MN?tK -aZ)78{vLgnXZEH*(}i)<@=Ahq!c)r)Lfn3o~NGio7WC+WZ)?>Cw5O-#*eQsGS@ -7sT4`ys5-+;G9P~UVXQZ-Vgt7XlHw1LrOpD=%`*Un?xPmEb -8c%Qb+fcXf9t9J>_;WLhcjOOs~GQ_72F@Z+(xzyP%yPe|qrT7+#A4l=WQT%BXe*wi`L --Ajs`1>h-O+WV^J>@@o%Kxi+N*k>WXw#+*FSWGhScs?9C8wfAq<>}Ha))*ZTb ->eQuEkLLcSTbt5*n_D_|=|W+f`?v2A*dtK1>u_7w9yc}a(VPM_YufbYcDHou+M`M1t~YBAW^>oudieV -Kb)`7BUe~N?n^rg8)}x89Z{tQ@UVgWlOl>^9+uU|j6W_*g=;7b~dLK8R4n6SP)W{3z-_Xjv1-&)t*tk -)nK&oH2bZYC-j(jP~P4rIr2exb3rDI@^9)Y-Dm-4?YFfbr6@RmTPuN^&D^Sk91b!Dl*Bt$qS;XE{GXk -oz35C-A#p+tLieh8O>+`~c4S8Zpn;n6?o@HT*#mg|4V^H-KdfG<9wxW0Y+_FyUi+aNnPYSf5Y7CzyYI -K@W+QA@#}VdxzHyB-fMUB7D#55A&%g!r2ufBf-e>UZ8cbLPyye*E#r)71BT^TQ86oFengTS -FTVKV<-L3NI^Epd0>i_@duTMZ($c{vDd5AO;UCHx9rJaaJ9q9#CV18C8soMaH*Q=+UwX*i_R~*4T}tC -i^3C@i|{X_ -=1pj;bk0K5K45I()R31O#Bof>@c;>F(tn!#(wzcumuAl1R%NTXlBew~3I;l=pB`|i8)jW^zqgr9u<_1 -78iQ>RYJfBoxU^3b6}^6=rq91d|vM}YfDiu3r(FTXrz>(;GvNM(z0I2?E8=H^B(S+XR7^lIRS&w~PQy -z$21l9H0UdiClB-nEL3j_!(d|1ADz&z_Z}%PjBMv11?N;gavZ`%adXmAUwQ@ZdrD*=L_Io>V@JJM71g -AD5qh{yD#cCLKuUVUuL;+)qFKbdlulcS=+F?YH0L&p-cs_T!H~e&gG3zx|r>`W4}b&VN#U>q9s!LEJx -!Kj~A*%LTw+2hgAc%0vg?uhXI1b*M{=4urD{sLWkpbO-zu{CDlzwV2AW1Ia`YXxO=PC*u$KICkt9m%) -h>C-@yWqE1j9X7k9ABMhh;C=Zw@H`E=(dGEdV7=M%@)qja{xP1AtG(PnHJGocGpXzY0KZF1I^XDaXLo -ELxAt9Y1#{l5}{`>FCx88b7QkhHAnYj*w|0s|B`}Z>d_kH{Jaa}oj^eEdw1KI${8|n$l2)J$eQA+DED -I-3RviE)|d%T0oF{SKYCgsR?rF`y`l)s!me}w8vyFY{f_U+r32LuH4Asv1RwU;OlrUCeZ=in>oL0JHI -*irUhef1Rs?BF^04SXR7papn?|0v@pzLzrk6DchpN*Q)g%6L__wcQl77tGX1cWLEBwR6W4_Qg$o -xT%Zr19gFBEc6oCdRhbw3SE|4SOSRWnWJ9v&Vg4{s<(eBcijS;$&@W118m4-ndNjZ>k?N2oHA-Tyts^ -Xt_2{q0@mn4mpF|qh9DH>II&}6H*Q*8sbR)2Y;&4F -yN4sq3^3S1W{eMeW#RNcl>$$sV!dKsZ*yuR1Ql}&(OBiM+aoRA^8IT;g5a+@zBl~pQMviM?u4vQpOSu -F+{_rALO+>KM_3I5dOdZ`m3aVrWSw(9dtVCE0g-@`2F|a<>5Eh$R}sV$w#L}$cJ+*jKp34l5+I7QjRz --Wjtv3Osmf%GvRuD-mlhYv`L+}tM$3t+iIPr7WY6y_)|GA?%lh02WroYfIsAbC3pqB;e1KxESfIqc+vh0yG`TVSK`P7U7@(H404bgxnmDo78hJ@qL$+w}J-ZzxfTS|NA(Z59-68+IyCNs%uN2524QKbm+8z2J{CF$rkWOJGpsYqzO -@FdZ&&Zgp@e@4oCDv1U~%H&gOeMXxU_jyfy1`T?B1`T?BMw`_2El#HHsq?K-&(Ob+p5+42phI0c>Z>C -Njy!j!;+ -h(p3Zio=l}U(RpEVt$%l7*5M|+{mfB*jdJEJUgKz#+?zzw+Tw4m)rdyjDq+D-IT=-cpYpC2OMAR0E$? -JqaY4wD;+hPw6nA!?JBPmPp|?;Ru;W<*KH9jyX04&9%34dI!1R*$7l$DYVTS837;jv8+gG4 -PQV-W0eI_Wf;Qf$AEW;TjgbFc3kS+=M8oSu!)tSh2C56F&!FK6jfRyP4a-17<{-IX3ek`rE$61iFb#O -nCiOSy7=7NUU;fc%pbvu{0eI$_XXNwGKQEyd>0m6AtJRZBmoCXekEP0TM?d-YJfeZ>!mC8XOIm$Ko3z -e8P_D@vC|Bf0$Op46a%onibP^2@5DoK*hB-t7p1L~5-AC$ge}F&90?R+ibrEQJ;DHC^#*G`9o@=2)rv --79!>`JnMg3$M(eM`0!1bAEK%1o3=e5)(tUEqrPh&nKL?p&t9C|`e6CNNQ_>W;DMdp_O$qD#j>eJ<7 -NbDig^`Va6&*$*8$6y+eFefC+_y`amKl$6Nn)2F*=xEdW-D-%3ulU|#94fUC5sHdH2=xGf;EnBv%oZ3 -#=rArr?l9D2yeDX<&emOrsU)pRoxp?tnuGe3F`6ahI(1q%w1$d)xKwAY}2>K|-19(uM4?bm=)xXhrWB -qhjeb#l1m0EpXMs?wj@PGU5w@sw$jMDM%)~#FL^z`)Xw6wHJYDc*oo_OL3dFP#X%EZJ(Sz1~uAAa~@` -QU>OGCmmJ17Fa9z5xA%P6x&?paJbE2jr)2k3+BVVncK4rPJ -*fI7|fnaaUfpP#K$pAT$(9D3lYYZ0E%(9j20u3X9UAjn&*%d)Vr5chb>jvYJ7TW`Hpl5Wko01wm+BY* -}S>e2#$OzCN(ZGC^uMEQ2Hh5Bbz$3Xx5{G2Gc^`DdF=kINi=YRR-2$lCW&p)hKu|gIV6`ftae7T%IfB -r9b-F27D%F1HC)3}ml2{fQyfKK2BI_lDbISBN_kbCses4JL{z&H|a(2-DfprxLN$p7^#@aWIZ{~$8e- -L<*7xnJLZ|NWPNXL52f1M0L+!)>?SCTGl;!R3HHL!aBx=>WdKU!U{E*Z?N#1L_FsL*4q0KHE62*UlAxC -HrAXjLQQFi+L2H}L|wrgF#VEl>h#eMts?La&%LVe!0Z5z`7{$Spa>Ic)1nwlzy4I9R?wPC{s#vi-}&t -V7Ns0V0&;11ms@&jEP^#FAMbpq+44JO<#Q#wVhTD7uJxj(Uc_ija~Yd${Lia+u->OVSP0T?d=A1Yf(x -&^)}=K4V8ElJ*32GB==$9f!nJ`wFGc#8J_l~-PoFTVI9_kl0H^b*GduZd3zwQUoqkDN`o?Svcj0f8Rig|WWgEDGF31q-!h!`0B(+)GPa7ZLrUT-jok3fK2l9h45dgS@uE!sL9CM -6o-QC^)EbcD+b^V|CT?88RcCkJ>z;Coc)OYhZ0WyWYww^hC#vf&)>kwGif!sruz;o2075JF{&-1+&{z -myn8&S89txF3`%(0IjKVCla$RjM@M!xHSaF8X)I^NL-0C#F&{gIIl@OI0VE%MPvA7y#g>o5Rx>vQwaoA3^q(bo^C&3xL!!{fh#y9<9~zi8B9jJnO$$^@`>?OKix -x)2_;0bj@#+D_1-<4*eNQ-4w3ufQL;Q2k>0r~bQ0AAenq7JbfBU%x}yzzyY~ugRgz&=z4W0c%j81-Mf -lf2EzdD*nd#AAKx!wK9Qz5B&%4SeFApwqWkrvxnPV@BsA{@(%n_4@e$2{EfIX{>J%FYA0OtKcE49C-f -Jze~<(8N9a4jV~jb$dz6Ddzl(CfJKB7-wP?p^Ou_3KMDyQ`JL3=8y_%diB=5$y2>$xK1^5gaA?qYZmq -|xZsI1Vhw)vZJ$AjZYZumC?^1ycwf6GxlvXDBL9W!QB3mhwjlXQXrfLhWq@wM*YqyL627^Cw8R%_JQddl-5WbRd1>%;b~mIvM6dvCb -E!&E1zx! -8}-NqOk!Yg+4Vk9KVk9nXs86T{d-E~@B@55TzYgP44UDSHc)R70y-}voA-ESVi6ZBs{ -oH{0-b|mpU<`QiVaN-YArhKQanqA&)3@7vB+A`T5eF}|VQ%TQFGJc1F@`nx#T+si -#wQ?%Yfnh!vbMkurfV;m_*FCY`#`1VnU2DS{59ASRR9Nf8I^o#&IO;wXwlYau-1n)CdgypHnn}w^N0RpTq~`+{tjI5Y|_>z)=yXGW6z!WPR -{$OHV%--q&o5#p{8al`E5scpz`cIZQlQZ^N7_))z1*yycPHKU_2X?l&p(2$une) -wMR%39NS-^M_tBYu2pnf`Wof*il~Ex7I)Fv`DtK?JXNVXX*rnwT5cgv_ -2lTa5i-iLk;x`7LL0Q1B38N6|E!Z4Y>HPWeo}`_BYkC&2vlCT)IwgP~4foyn=KlND$<;9+^Be8&@faiMno*T-k5htTn -z5#JMig`){Ktqe2LdsuvS+@ILy`78V%1C?H}@YI-RMHJ@!}<)`p;u0}p*%t$#NNJirUINASag_1hQkt -Em(9$)iEm>TUm_W6z#FJA1)`1yjL?rAwD`yN7lceIMF?$O8BQSw!B(HK!lH`AGio%_meR>d0eOq-(A0 -YWbs2!8`}%birecuc$7%=F;n~h3RF3vUq2Cf~-3Ekv#M5CpGeDtC7c5bH^h4di#G$-(Al?DJkhhL_`G -7yJBrRBO^mDTC|AAcfd(+3-q=UA1V<)K_zdGZS>8_<6S4jdS4u~= -q-j=6K^=1iP8ac@viki7TadwCvs$&w{JccG7cz;l@3zy56__))h{#)C8|+=nDvSJnTzb?Y{o>OGGG(b -r>L25U>CXUTEn#xdOu%{A988@(UbzpbR?@!j*)H~16(kvHid-(f8g^Tx5Uu{{3@9Hvd1#(YP6ps$hWG -N8{P>+(STM0HkH)?||9eA1Dyu^VIlKN?fD2d{|t%ce}3vIlECn4=#(dbC7YV114HW!HKE_^!*L{*8!k -QeX8O@$-I4>v0;N{~**Y8-Mh)*XQ_=26Q{{8*{mkLCmFNT?6&QxQ>7_K)Zl=zy-WOyNxyzc<$J-W2v~ -dH43i(ix)3WUAJysl0N1}IRl5ulPAl-z(6^C_;AKepZC+(hY${Oqqi6MF7cIDUcr%=*Iz^4oImnJ`{Q -spGLatUrv@>Y?P|lk+ZG!y$K)fgs>io%HeX!TW|1SdS*B`ZS4L;TF3nPxZ -)!KUt_@h0$#=X0)ctVA`=db*UeY@rc@udE+eM5dEk5P|5{`hN8Jn_VNYNLL9^2sOv@zhgK)oOP(Zrpf -=(#U!4x#!rO!g#J!vr|UC%okCldQlXBSpr3w7YEAFGwe(|wJ{WnSuIXbUqb`{GgE|J@`tudt@G -k^g&^DnS0aty0$Dy}3$mKbzZa7IBJ7N5Y@hip(7^?))SZO8Ug|$|U$$>lMANf8zHlK>@9LZm<`FPv1OHG?=!5icP~UnWhV?Dzd(icu -YeLt>cw^)05>5kSj-iAH%5Uu0vAoWWHVk|?zI&bAQaFIelhECvw`1IZvC|yu5Y8j0zN}iciuFN -!BZ74`lqKY)t}cG4d=u;ab0)cTZV+byig;rju-FU9ln+=24D<42gE7(*3jaQ?2Fcp!Ud>mj -Eo%aJ2TGEdP?qb$GL`GkCB{t*8DbIr^<#XU$s+Y35Vb -d_;I^e!g|;#H?B7nNzc}^9OXW=VkZLpESifH8sE6)Qm}aIr%y1wr-PhruI+GpW1zT&kp9Pso5Fn)_hx -%H7`FSCwoALp522w3~buiY!0{O+4K3=AS*O`47i(HVUdHr{EbC-zzRT -0-9mALD5hBB^)2&(NEc_1WkeVNxJw4}MYhDMlJtJ}wE{+(`Aw4xK-`Zhdc#j4m*JR$K;oQS})WS8qhl -^->5AUJ#b6`SbLS%Gw?C>FD#%PxRy#Iag=!E^L9(V;c3A!$*eNgA1z#vOdLeSkoX+ie}%?v6CDhgT|^ -lZ@ELB9uG-*Z$?Th9eOU+Vcr&%-@e^t#xqQSi9n)xjHs-w6IT_)M@2?$bN2cT(@1-m`oEqxVa__w@d< -x9H>5r%RvkK4be#?^E38pM75H^G2Uf`kd}_xsPYxW_{cAy|r)mzLvhj`zH2%y6>BPEBYq(ySraOzcu~ -J`n3+}5;8obAY@_4(vS@yJ3@|xG!E?^Ixy4`x+Sza)YQL2|KR?k`p@kDSpVC@;=-nc%?$e`?CJ0q!nc -HP3;#NN)PV5=at7QtpkToA0jmbA9q{&mJp;ZNaC(5-K)-=42L=qhZD80y+rYU4Hw=7!;5!2k47@P#v4 -{;3TOy!}gbUo28xj;BG$v?P&knst^h)lP-m5tH#(t;zUFv5Ktq3jYKO+3T@VNsn5AYs%Wx7 -L332*d(&>x-2c6-WJ9A&%d-nTzp69z~&%LvYR^UvWgV*9h{2YEB{~DL!SMhFKgKKd;Zo;j&1Am0OaWD -Q1e}Qk~7&4X2B8g-kama(@M%JZga_um^*E(jkk_Xw-vVEMt*!+71`qwDr&Lwn3L{2>Et^3PNB2asdwISTAXj77?gq* -qa|n=T7|OFv#1lDLl;pl-UvK);7Z(xTkwat6JNlW@xSorcmz)-Q%EeCLGC3<#3K)o#pK6i1KCdMNtg_ -g+4NqTL>JMOw3v?2c&NEdmdondJFJ8KgPmg+*%daxzF@c51Rl-5&F|*l<@5LgPPycUr|`x6F`mw!;+y -yu{t_?a75p_`!}s$8yqUN04|pdJ^C5nxi(KI*yY=p2x5Yi~hTWU)h&xT>h@Xkyh;ngQyery7(0j();{ -Cxp=rwxZms&n5cgh36^dwO2mDgl~TA)(Y24MTKnxdIrs9(~r=v_L=&-07@u$f?$O|?sHmd&%juy5Nx+ -h+Tby=ZUPz}UePkuxOjf$Dt0*$E^Q&|1`uZlQH}GkyiXfsf#$K<*L{y9erK4w+8~Sw!;44)P{xB$Mb; -x|?332Z6{>cp-m*zsuXiXJVVzD?gDpVLW^FDV+fsjk6v0yp3%50I$GOC)1(GppVf^{3v9plXx_f=Fs2 -LE_$AZsmm6!d{)BtviI2#i{_lK;F-J{_#Nk;@b9<_-Id~p-fC~Fw_Ts`zh%>G$nK8l0Wl$Xdl6kDHz1 -EAI-O;+c3$HiauYg>2VU4qkPpi_>V8$Cf2Vir9z -CEF{rO`KP~z`|{?D?7c9Y#=OYC+#WJhge5z`CTjRUtUb1I!W=kLyiv7Q}vqW;sbStt)}Ky~OaYC|Jv5 -}u0F@G_hYocG{;_;2_u?t$8D1nqm-Vb%o|c8lG?AK`0xviGF7$2;m>_6EF3axV1Muq;xS)K!(Ex9C!R -M928rPxpW7KjjDge80ed&417D@%#LKf4~p>gZ{8T>IcljW{F8R8D^C^YL1(JbKMM@VKZvt?L(lZ7}S* -7GFuK^S81#46+2+VcF+z-xR!stRtq}ooLJwoDdnB``TnQP};X&!AZ-Fs)yo-PLgXBT7 -wCu|PUeB`K;jI7J#TU!|T_`D(o?QYETPRRI0KSOG`=NLvTv3xoq>=aZ*8L8sKIb=skpqfsK73waNs61 -YMwWVs84(J17ZVu3So2z<5)s(2Vjk=Z1fWRYT0Ox@-Pxi|J8J2@kQ=>AVqEs|! -z6(^xf$rJL0o?+WCxiA>P`?E9X8?gLU=Rcf1;8N$B#MDWDbOef9+g0(TJ2M{s!r9b2GyjRp*oMLcGaO -eRhK%egih5NI;casO4sT-U9TH-lWx|n{xM$|ZIVrjNi}Kz?YN-Hhna4@37H~OY)VY2sfN3S|6QMq$9R -m#c#Ow*{6EIO0Z>Z=1QY-O00;mMXE##&8nXOnzyJUMh5-N@0001RX>c!Jc4cm4Z*nhWX>)XJX<{#THZ -(3}cxCLpdwdk-)i^$z-Ay((X1OecOJIdX(FjJ@OX7lN$ga%FMnFJOLBMEAE3Gul0#?ApNoXn$-GqyM-{1c~K4fQ}`|UjE_MG!f(SvIRvmgi- -_%jSas1f+T0^xuEr@>#pQS18&@22j!s>T%9an-Cv-(TunQu@UAN*DgnS-kK^KYBuOKJu8eH25Ru_kZN -{PMhic;S-NOHX$=J%@wPoZHWBhi_5NVivOkLZESi8o})c)r^2KTXe5-fNm#DZV -O}|Gn6A13mBke(@r#FW%SbK0$c&*<>Mj&4sz~xDH{oke-w#2zw#$4<1)>8~oV$6qtnAdy*hn@ki)=QY -1`T*qj7!1?BNV@yF%ii(Z8lBTd3Yd|7J}-k1*0GLx`3txtvylkg~Xpx|3U81a8ti{5gA(46$$$rF^vR -w(e?@lEVR4t~Wf{a2s;S>vC$hTm?nKnVshWn>g -~0VEJ~a;?G4;MP*&^db#qDa3>l -#;+E(j%|l`f~zR*MU6IBtXd+Z(q3*Rfb=ERH^7vHUM%3C^IgTt{PBd^kRqJ%LNcGBiGxg2ObHe+BxEW -y2@2vE2KA8_VOL&{*WqT$fD_DK7i{vULjQ-T$JZ?e-;QmmZvR%JuI>9m35HzB4iO?tk+ib7>3LsPuS~9a_`Ziqi}MH^0fO$@RvYwhZNp;9||x$D?|ZTBb~0~TB9GHtY&u;TrGw!_OBwd|p=Kx~K1+O#jI_I4cVDCo%%Y-JE8I2hDkZ1{67$m -VmApTbOT05oJ_tyh~iu&l<(+m_kmcuUe@4e`(fU+cd{`5POKEi0^@_x?K>;rl0wtsOZD1|7 -oZo=y39V1Y7pOPzg$DjW4W9j=z;d6C{R -&v2?$LKv|pql;Eey3L_0zmFV*61gD%T#pSuO~jFUr)0s0*khX5DVi4_$vottnc=&Jzm{@l&?%p%;JbF -^b4acwZjAjsOa&Vf+sQ1D&~>n>h>fL&hwSgJla%#C}&wE*VjA*fordk9TVuu->Cqg0RfUM9ZHbxrR&E -Dx`f$83eYk~{z5-mxb3Wr55N%BjKa -$KT(!S*zTHPF>F`4giv|6dyl)taFiXyb@d&QYS#)JtHGR1U!O{WRziM;W9mViF{OX`O4oGE7EB=or6< -9}h8<(0FniCPHH`A24k5R1b@6HpN9_T^8p9wfYu4sNX7?Uk$0dMd7iopl1fjOmFbtToC5s64bx?uXIB -D98xYL17bW!2aP`LICWHubFJX14fdV*()@=O=HA=7Ef^k<%_4Kv-%Gkwc5wRdAE^Y;+B9>>$q2O0a<^!UqlUq}2;s9_b6^@n)(7u0LFQN5Idm>C9Nn?kIqEhT>e6@!_sMj -_p|;bkujIpxV08hE9|-Zi@Vgj+29W;!fbZ`^0wc5IQ0hlr1SWR9AIjT`&zuM{ -=XMPRp~z>VDW{e{Ae#XpDdmDmL>nxA2M6OqgA5Op0aC!0cAuH%(@rlz8*6R)&hz=@@@<0L7=tYC{qvj -0t`jOV~>Zimk*O8iR>Q4xH!WG$5&qa0Rpm6a;Z;81`C;dgtiiwI!-&G|!aTMPv}W^dn4;*Q7QjVfP@1 -n?^6jM*n;|HR&u-pB_0{8QNRX%~;V(RMA+d2zrR)qB$SWyEzmq*F}gCtDChf9+`oyiPh#37~tn}XddA -)z*36=q*){47(^~kK;Cob1FiwoFbAMv2>`>2tX|q5elxF|@W|^aghviL;&^0jGD7aI4*^M!h9Q*X=PB -0kv>rW0tllN7br!LDH}1LL0MNTTz2OoY0zqmZJig;w&ITs>Rz6 -quXsV8Eq^&et8lL{e{wJA{7EqU;&r^CyQ@FJ_nVOqmW%t*&VH{aK2Z5wA2rfXwh)_@#`9k+M(C4lW`5 -Uy0LTxLCp?mX>Fhm_@KDq>lFnvy0P^|GhA^ef#A`vA&UBJL17X)(0lLg9j{+X!9eoC~l97)fp90&ehK -$jwo$9DNRgUbCIV8kw*I#Zj!_L8zc4q^z7S1D`X!Bp;ST0T72p+^gMZr|C#VSSiWBEvNx(jiC{AoZ-C -H2q=vUPP2E7J-*;gu;3}Q;85Z!D)CjU#PQR8N}LfdFM&t{z+)F8g97dFx!9b2aV7@qN3hp#KrI2b(pA -8A7SViko#FGrAYlW6ayav$(>M*lMeWtzv(W}y2?RWR8?uby1u!w|adtEpvR6F9aNMvD1n8Lqf&ZB08X -3IK55&P4e()>pp(LC -;iDe;ps^w-@M~zhTOF~5SAdeg~I0{EE_EWbA3Ff=aLu*`onW=DF7$h7goYvo-;9UiWZ13H3Eis_FI@8 -K&W{En8VyaICI7s#7VHbK7ff0AQKV@0p-_br1L%R2V6z8U3&_+vF%s-S5hL5sv!AH_GB&`U=o7;<@$P -iNmspL1e3mPkn3CQkpsXNZ;#Rc7%HEQESQX~`PdOIE%@9gCAL)t+32M@Sd<~!Z^i=E69yyOdd*mzs7S -ehC>ZkWp*+e*5CFt@9S`l){&^M0=K$H$aX)8j_fZ{L$Pa9SoD+hhwZcTTFi9CPUdpL$hv>Cy-F5mX5K -(-%j>KiJB2F%f^O{VrO^B%GAc9(e+!ped^O4^wn2FTM&j1#;$?O1(Bk0ifyMVvPrb1a-F}$+|;QeaKs -8JG$NKOcuk!o3>?G)`#moRpu%nPN2jBgBv&%#la88h?gc1O#EUG;fZ2+Xscmzps5ETd?%!8$H!w@_H -C49QXV|?epecRI;nLUG>5`p=4N=)E=-`tMBvEWEfQ>W!|^wW$1z<&#=Sm-%erYzw -4Wigs*^fLn*@_sVS=Wbte;{461`Pp_rq)DA+d5VL0aaxX~>!VW)}uJaChXQ=vMJZo|;6dD|c}~N2(BD -o!Em#9vT}HjtM?=)H~d23S4J&ypJeB0zGA?jX7}MEjMKrp|CYy -MwsoJ0T3%;^I9FJbZzG(qe&T&P_11!}B3RacHxgeD|kocf%W?x`L1mRVx?Q0o$rk%7To0f=_D)aN~vw -?J`?ihaeJyomN#tZ&Lxj9rf8JK^e@-nvuh`szU+m+q5MfOb2GfTABrw4Lb_hcNp -nRVg%$1z}+>lm!FQjMag@VqbT74zTT~!?Ln?#E|8-9;z7YX<(w|Ddc++i>N%-24SpY7ZYfb4oXCi%QH -qLERGpKUWn+g@Py(`pr^M5)H0n14V~@OwQ`>(#@E+A71;pxht?71@w;Ge;rP8pJ6-#Xgrbn!9$f@_{f -&2!153EwI`g@#{3tY?wwm3#|fV){lP&yYT25GY!2+p1WJCJXEa6HWLa+m|>Yo0Z2Vjn$MFYp -4i<{l83RE^qEU6zsOp`-;SMNK&r;l3ireh;tDBSjMl<%g1^c{B*&6R#jp=mWI*kW0HO5gEt4q-u;244k`+y#9&}m}?kr@U*|HofIqeKx=0sE+ -$n5-^3po2^IWr3~YsMuzwP#v>KX4{HbcM&qo-^ig^t|bVs!-@c097UC# -!E3Zd!x9_*%+NT9uOK-(PShTr2b1ugi&#)tp?QxA`hNmFZ#?Dy96Mue{ ->qGd{L6;As(mdYtr;Ajs^-8C|3;z6+|mcDYSrjRDxJi{unKRZQu=xl%;MPONg!15461+GqTw5*; -rl(Ycb?B1h2gl%7)m4Kjs4}qO~18%M$tms;T%>W42Ab+9ie!F&0Y)?ZD-Ames;uotAmUxZ%_5CuSJDR3p$IfG4**dkV2Wc -_MVv;|;?7SN%Um(?4NrY*>i!GNt|H6)1D^J0cds@DlZa3+YXS|^qfn}nXXhWNaf&dXmFQ~ -`n{nT2FUb>()^;gfynEX`Jotja>htbmiFM_#E`yp0Dv|dkq43Jd@~sWPuY-;tg@)ZHefj=wjKFd?OWJ -vtfR7S#U3^@t823jvIo<0mfBcjWE4tIod{etW~q}OZ<*8Swb{ -xP2l9A&T3KFNFv-{|8+EeBTzU!+)o`{o0>Y+Hv1i38?OjK_myrhn6goG9JoApgdl*b{pN#wg0y$6Fi` -a=GcG~=u&0pVRmDJBiO=XsjqQ_6pkvhFrXl-SD6iM267=@=XIEL8IU9!13-iapaM1AS0uEH!d9?%Q%a -BUxy)4F}M!>jheeyTx}3BYpwI}5XHN;+l+vd5x|nLXu_!`A14O}`sjrjMlO~@wnIwSV5%_EKmxBal+_@ -~Z$=8lpT~8?tTU;Sudw>Tx;38c{t07VSO=5?(I -upKDBj>EtbR3_0;{k@31qdmbT+Ivt+%^NLNK8KV3j{(TBM35|Ne;7cL?GrwvXgj>j8LO}13iT!RknVo -*{2r`z7?KlM%>}&f;LX~71CSUy_3J9@p1c+^-hkP%wL1sINsOMZ-83Mv_M7_C+FvSk^wo1A4#z$$;Ju --vLhV;Q2_$~$e3K+BWl1bb-0+(!Fne|V<1HeL|3E$RwfkfU@~BZ0h=?OmxqAV~I)HlPG*s3;l;x{9^k -kZ(9y{+1J(Q&nlR6tr${_f)Dg7jI{js#tl%_%#Zd)wW{|+qFM3nog$pkh9;!9h@J|o8RFGlr(g6CzN@ -9))3_HIszwPT07FWR9giH>V8+IjECgA|vho--*{^;}Z$V@*zl{ptm_bsusDU*V>0$G7HGRR8f!duiK! -WF>Xd4<->umHn+9?ITW!6)J(;p`csN&)x}H0Jiwrny{Y`>qo{5<2$yDv8dr50>Ka{P;ve2=qxb^N -rJ!bcem>!c@c+#9o0&hIf6L92$w7rdbY+VhwzukG#EJI)3D2nL7?@#i#yq%8m%vzYv9T~Y~hE3&aI7(peBy~GD)U+xzZ%k<5_ -12y&0XR5o57@Z%amG(;jr2&*7y-B~TQ_516+qJ3yZ3q_CM$Y0}qw{vsBTeNnV})vTK*&?aVb9aF#V2t -a7mpLv;;a~j$-QKc^r2l)xXBUVgR?PsQRsq~9nPTZe6fo|~J>^U!=Uc)T_}3D4r>tl(kyA+-kC_I -}G!^Iwh%cplUcdd2lm?B>c51Pi0pNn0~bf(gXLt0ATq%^0=!hQ<{Udo;t)vIobr{w9|797vkAXqc!yp -UC4-)egsm<2s)9=dGu0Tb>Ww_R$CEeG=5BEtnI_OG?U(kXI|39g9LM1???}B0g8U -HiGiGk^+nPOU(CISlCXlYq3eJ27yqjMXN=x=-U>+lYGQG6TiU8Mq&Xd1dCmR#cqcmeHe?X@6k*MK^vq -Dg~;vN4e+}b7ylI(>HNyK;7Y`C|2XY;4{(c)$i1Y*B#?mRs^X_>V>403`}0~lj`m^ -=2r?mt^t-{QUPPH8cZ<*5gUcV-Qd$^~)d*n&%t#046+Ijix8i6rIi7T0=98orMV|d%%Zm{?OxD{?Jk< -+6G>922jMFv=y-%nPl;^C-aJOx{BD*06Q+T$eSf%U(Y9RhvE1IM6;DU$6>@czj=QEk@Sw(x%4cUC+$~|9m -Hp~!Hy%TMj;^|HWDyo2(?8_a=K3fBUhBu^rlnsxcB4_S$2yYo@QebjIFLTg_+>7EW-d%v)=9*vNTKo9 -K=p@9Sbzs0e2>|#Z4Ky*$aFi%$v+U@!Ym_wrn)W^~Wr-`7kRy4Kq}l&u4AvjlRm0iq-4MQEtQ+&*SHn -ajHiEMiF3f1u%gBGD*;P*$XpUWNwm-ws_Y||5L+-R5DRR`?Sa5xwNl+8sA@G>n&#h5@P2ER{0i_uwf7 -~*aUfeVcF~lnLX@yX|xFzu&!6&+l&HVfDHm7cGghR;kQSz76A!MZbIhN@B -@<%wfl{h;QLS?(LRnxrU*jWr0Y?}RIJ+2Idm3vEA|qR%h4|q=O{8AaE`#PdJdG{0h9DPZbnc0@|#c%S -M%22=-+j6&ThHuxLkkMEVFHLedNw?pub&v6hKH^|9F-dYdSoYNZLcPF}C|%K}fW5Q0*SHY9N4#cGIOL -?oO0wdY9WKg&ko$@b_#h1#q+Wr|vW_zgArTVO@w*q>L1iJ6=0@o`E_>upSbY80DG|g-1)WU=VkKf7byq=T4 -drUrS3-1BaGCmLkNU-Vbyt$O{;L#y2~-q(1S*lz4ZT>6%u=SQk$%cVX!1I2dx+YdELIK!SnO&N>Hr_# -3a#|h^L>B;a(t{=T;JJG&%sbOg}&;iXUB48Ku%E?#r0oiEVW8(pKgJOKBh}zr3I?>p`vpm?kY>~OasU -seHSgL%!Cg=&|Y|$Gz^u`ldRN`+&6QH>X{@~F6SwU3LI}z1y+IcZvDQXvuIq+H0Z_v{T{T#r7X5s7X9 --?7CU6=ujfFPHIyYKmZh1ph?Qx)v3`)veo3GEMe7R58Tgbz$Yid=N=(k%UkNdjxg!=l90xHSSo>}RaPs%33us2VgxGM!y+ -^8f5nH^;#Yx!`Iqb8`;UYUXL`8OjH?KbA|Dc0NBS|GMYxu0 -J1!V8qtml^~Av79efS;)d-nY+OWT&N?vn3^d_w=gNx|r=vJ*_8rBfT!OQOL+AW9hgy$6(&JK`j;7yj2HfipBuD>3~(dYUhz`;pj*`&RKM9%TEzsKS -bLV$h&{(k5mSF~d#!za|oW$sBf!F(U^qbT%^;W+nq)LOL0&$M>nbX^rdHa8HOg?<;8suyXU6RH@e_OL -$H?;x`?w%Z#nuzAvy9HY)}Zd0S+aTJjIDTAT94qMmTd!Jry%w3 -WTTIVZl7mB`K7YFb?=Gd$jTs?Pzc3t}8<8Xqb=y@|xN&Um=bg(_*Eeh!=qgW))$8A -wpgCEy_tFa7vnC{yOK?UGY}s8I!`;ecVSD&_-f>+DMjT}KV%HfPM80aS!lu|MP;zh$z{x-4BR|Dg -zHrds4u9Yp^ZoXIFf<}#`N}k(*CWYoYz$9B>5%oh?(zk7Lkt~&+1^r-vGIL~LScj`m*-WUE2iAPl+r* -=5PkoGVfjFhXE*m?8d!dm2HKt7^)Rqq7Krq>GeEpUX%d;zZ?8-_sxfmEq>z}c(xdkv=Gi-s^vDhVZG@ -ID1;sYDGXTYSVNJJWhH0 -D=@h+t=riB&?MPT<5@x2FJ(HwD=Y`ut9>j{3DQuC-j!>)HD5|xfcXIS(^(q%)ercF?P*g5kXyImziKK4-olX;O=C*)#F -KA-wiLyBluH0*xK442>B0Klz}MMkvMV$1h&m+5UpJlTx!K^N$5?p5JczeT -{`a1m(A4L^Y9>(6dWkX?{6aM(){WLQ!oV>;PZ4Ea59)Cg^SGEd4R_4m4;#ibZUpiT&te5DgD)R=?ah% -i;{wN$K&+t18gJGB(kQJ)j#9A06BvLy$pE+q3K!t#aYm;UR17QVm`|}xf!Itn?1W%T_+c -Bquul@4PAY-*(Mm9ks7ef_aKx0f%ZPi)**`vdX@q`TL#R_CgcV^hl82ym)I8DB^e*;R@Mp+&tat>b~z -QgELLWrSwe{V>p3h|rb5sgqFzQWkpJ3TRDA$hy_9JKa9Wi_yv4=OUU`jWE>1#4(A9t8$lH#NHf^Z5s) -;%0#6-dEfSir7Km7}*l>pl;^A9JH+!#ux;rJEAtC?#df((ly;yG?Ncc}?!*m|-KcS1SNle*9@G)W`KX -{H?QG4QRiT!BYnV|f=opuj69sQ{|DYLVD!p7XTXRgCE{Vv$!vgSDhd9zn^W4Rr!PGwTPuQw6<6=Daw_h=o -&f2_thb*jw>ne`Oyjs1qc$n;l0c8M(~X@>{V5hXhyE#Eb`(nf4|05#IBM{z1;ru_+Sp1$X;xoUcJrVWioDYPbumMiBiO>90;D< -H7nS|c`o~=t~uNP?YH_PJWHrd=Jd)i9-W1enc$=rt!Jcj|YI3$PfbIP85rG8BN*vpa1M7iED%i$4GQl -%FDkw!R?6jVD6hnvD??&)tdJsQu`X}1=wP-&eQ$uBRQBJ*|dqY$qQbH3!R^Y1FMs>BRM@%tNLA*^MY<= -l%F1xgW+|rL!i*_|SxbzgZ_cHRu%v)!R<68SAdNYs-rW0#nU3XZByVn<>4^OxDI_i}>`BoGwzA_;GuYik<+p6{X4PR=s30e7&Os>x|2aBO -dG!jGm`&UN$8f!3#27C9HqZQEAf@CFQJ|5poT}F2JS4q_885WqgS${v1yN<06# -mo%FmvLDJ}gRrT&6~s&`#(q^3F3xS3dP+?5Qyp0ORnF&(uN>^TAjR08C-awPx)3s(X>jy~miF|(4ySs -2ZzcJN+;5oHJuw(|MNRwv0H1B3(z)go|civfpox#p1zF*E6y9aYOd#`d?eY`s9Yls$uef*-KEG -Dua1OT7e7MA=;yFKgu|qLoVkP-0#uT>10BY|_;g2#}54mq8vhVc!z;sG&2q0Qs}C26qcuIA}M`yh8TM -B~atVB_uj^iWRzWFXE5cO9DKnoC7=XRqTljf_osRQR+0Cl+?0R`xP}$H~% -D8q4|ds!{Jpe`BLH*sR})uz625%){@baDh{e4qa}8YQmG9dWM9deozYl?~ -qLC8Nqybhmjr}42+|Ev=94f)v~u^8`eiY$3j1)vdlV*La?47V-QgC7T!k#7U0Ni;i*pTz19S4lCX;)- -mU;;9n_2N(Y#Q(I@WiNpu0|h2VfDYepjHYRIYYRnMId4nj?$ -v&q_VmZz}-i@qUY+YbFzU#Ch)MksiQ<}xd0tIjRutqa>@yM^4hzR~;!i6K#>muQ1z0&X=jIEhH#ywA` -xN@lvBZI#}`2J`d8imTB~+`QdyJ|U}hxoWqyG*WJ87m&7^iOxpoy$h*rHHbI6e$Dsa7Xnu|J5lEOLo9 -MDMcy+471xMav?pPvL#r*JhcmqSkGh=Vv(Hfuuj}f(xvr~~@p*Gh$~bXdp14jndAgT7a&|$Tw`D_z%F ---;^Im_>_TU-lSW;eA@B=w~*T`DLfn_$E-@Jv=*gcl=$QwWf@R-Y@3|AwWifFVb7S^B-tFc(n6{2PUJ -~C=7HdF!B^oLOBt_*Le#HO1=58LGMYCB-M+GMC1&|Ks&&P?|FZWwT74H^$N8<7t$9oXv`IH$9I2tV29 -KLx-vl9B$KCY`B2#4H)Ts}%#wMpWHVuGk$JnPZP^JlInEm -z+~rs6Y(?ge{5dCr8(`kbzs8|qPn9w1*A``n`gNv~4ov5;4SZ-D_|P`+p>4pS1#x&oB8tZI)^%%VUMGJ|4V42Lun>1*}D*<1@n)Wg33 -{r#rV^Mz3cHIBXXq5IES16b}pCu6;{LRJ+o#VE9etgGoIBV>IN -U-knpcKQv&Kn;+3*1F0e7jF}*y;JQaQm8^+bT0^DoApoGeoQYvi=eS;AY@tN9XeuiRfWlZJ7qYE$7FmyDuyD>#2ii!}A!E>P_*lQaODf9Is@gd#aghR^yIVGB*&(`CHq2~ZY7Q7nfVai9C@go -Jz544exSNrhGxIR#~x?%FZM*r>qW>1GakveG=a>&3sq2Q~f0^B!Qzc+{*=ETH-4#Om~a=gF|StK)I({ -kshPLU`}E8LVOyWB#lu;bgmW(n_wC))@!n;`dWTukc=s~n-HXNX{%wo*&uglpy9YoLyUZuAd>o}5 -z(${x!yBZ()6l`oVB<5j6c?6NGc7XCQ8KO23HptnfZRK&(O+2`c2eBIMZ~T1@31ZghCtQUzOs&Ofz<&LUOd= -_RwhA+cpPI9gPqg)Y%$`4`Lm415kt`x{ELLqc=2M@JB8R}H+4`h-D5c4Xyyr&rb-&m`HZpt*=_?a9Cb -&`(mY*14{Xu$GZjeK;!M4%)LlGp7@ktoR$v -WziAsk5p*h5%sA-Lhu@~dN%NLn@W(IBbU;$RWP5h--vh_G?ziG))`in-S*qF -?^J_Q_RquQvV8rIDj?zU~i|*~~4zZ}OJ4A0~9;mF*JIWCHdPCgH>kYa!`6!-n -IQ45Q>z*9fm?Cgzh?|b$n#G(U#vV;9;Qt(<1^f=Lo?JYNy^=4)?|OY9Vz%Kp{(}M5BB{rsQm0@Eu-(c -)i51w2ily*r*k^!ulSv}GrzZ@_(2i)8ItcBmH5n3O+pQV -UN(2s5C%pSr6`#!3GOYLj?#r1wb6=&HgUuDZ`*a~e(s`2hr^rocSycWRR#_j+^j(WeBHKRWD@t+C8Wm -YEqUIbQ$h;2ZLH{S$A3Y9SEv$nbPt8Xtopzm`&ub!|6LW5jrJYp+y9|Hc>l@-WoD-tJv@K}J27>lOWM -V=3q4la?(KNUKP!oLN2Ye|*s{Q;CY}#`{tlSDY#dT0l@XA3eMLV$&H6SvR0Mt#WeH)XCdv}UUX7}4!vldMOfn|yu*rvn3DBOa6T6J#>R=pL=1dRfgWH)Aka>iFM`y2%RlHUuy(oroK@Rw!v@*`dyOi3{Lq|$dBi7r3 -P_p<4+6uxrqJekX5uqJtGND&tjzMK$q6es99pv}4(L_a6mp&@AHsf$#x$F_j#P6YQ6Ge7E9w!u -T4zt4lBIsn7WY8A_-+P7Ms{L3X7+KAC*nLuF0PkYdz0@79=3(%eTH~_sP>aXAX6HlJZ;9I_-2o61y;{ -(0NJW~1KvE=&3HkW`f@TINCj9l5YBwzSBBxQH>~Oxqo%Uwx}6W31o`pKIcvN(+TJvY6^kKn`8g!u%Z6 -w}pk`>G<6wMUBlDASvc5!%&^wZGDaFcL$-rrkvfI06@r`*>4GQMIq?1zH1xehv!&~*k1xAZ92;exKHF -UMTX;R))kM#uDH~NBD_~qTY_ -yr9cl<;_j?Rh(2FiD!Tc@}UA{M&%);s46W{&U{cdHbapp7Ri^&E|`K7`jojH%Va~Dp}l2zfo>>@Wp0l -zOCVhIkr&lu88_0s5QbydPr2%+3bld7vp)j1q-v#woUS}=;!l5Uq0^9my##E4`BSJpiq+tt%fyOX(EP -FNLXueV9CD3&luW7YjSD(XC~V=GxBri?{gMCq?WlzqwHk`80B%7>-ISyowcegHM<^Osqg}QR -((AN+v0${l?bFcEW%@O*WbX9&PCmf7oY2pX6k`Q&3+WU|IxsD~v1}9~rQCb8u)e{|RGjY>fJ|{8mWA@ -#9K*E6HE=k+KlRb>KzA=sPG`8CJGxPMR{xTQw$L^BUirD({V{y2tPNB$$rLL2IKqP0s;-C97mO+3`JpC0lL6a6AJwR_;!si0drw#(nFQrCab5akabtxEL*zxcY(GLh-uI!l8j& -E>YSei)L!HH&Wplee@8aq3KvPu!*Xr4%mHpS4<8y+s-W&7Pv*zGsvA1JQIqmvDn4hkLu^B4fqx}{6TH -j{@_QUB?&L_JyFKaDgjmQSN_s~s?0e+wFe^kT=cwvjfaMY>feP@DBV|TYfWu68QkwDDLe!(#Aj&-&`e -5uK2{w%aISC0IdZ0pzK=2S9Er2N7E6(AQ7Kt9$BkaSz68U>h~fI^kz*`nBEx4|IfMfmLkK}nde!vZ206nV}lHb3xZSHBC(d#*1$ -^DKH%^JPkLVR``y@V3#bv*hiU)bOEl)W-l9YIa=}F1GN<=mmxp5a*6?FB^ -3&{ljf{lk?YLartr|!hAKr_q`B0X2OQPBcdN8;TA#HpW-aM23{1wv1=LrP946rV|cp(s;^ukxD=lTqI -fzRelWtJ}3kO8MnJ!(?E&l;riD3V6;m)s?^>jMM>AgraLonEKSr1baVb>JUD$`HH --xLtQ>uYHgh?Z2rG*e{S?xPaVrhfz9Iyu3G?<%5K@mhf74_Ay!`yGi20CMSBM?b^d-bTgAi^gTQ6<=y -;fpbZl7SrCWmCX)MjB^RJ%+^sjX2k#crCn6gs8LC=r5W1$Se -|5zjbvYaxo>r!bJAWrobnUowuomyhU3)J0NCi85dJ|k+o4Uq3J**>QKX9-PClMQ2gyg!bj&KC474MZx -f4U4wxvE<-JB|`cXt^jO_L2F%^NB;!`lr)TI1v!F*L+i9Ex_OQqzPpQ8gNBw{SthCnK{GJl?*B?huQtz!76G=fPpPsDnUwgS&OxejmT7 -(kRzKqT)$M3!_#?(%O1I*?4nNRruFG?%H^GHVUGPe9k1FvAFQm>lUX*}ib<@e^3dv)es!YDP!{2%M_D -L!`UI2mAUfc0Bax -uO~y#r0jB&1@$WEEi^|mw#en@NLqbPMmO%vvg26v;nk=V!h=_YPp)=)JfU{#d;dvaxv2O6_cv+P?sy~8prz@v(B7W3xAj4*nr`SxM*N1!$~~(CSF+devu;3&?4Vd3;qEG8 -^$w#|dkHlWcN&VN^3c;?e#ccC-*q30Q|c_pDj;VusNKuP_?gDO39yKg;a68scTN5ELUjyqL#y+F2p0* -|^oPbyEgRiTfd_%MgAUbmU2stCokX=TT{F<~zVqqr=&EZ*GJlyHjkDLTx%W()-!J~Q%Xyv*LXPmyvaG -I+8-%o(`2}kS&A1 -)Eo=?li*pJm3vKd==g_5eWIpP%w(75`(z4M9OJ^#b53K%(m<$9w)8~*p8@2Mcpj1Z6IFD;fy*zJj~6& -tIl`{?-*E@VUp@27St3jlGJXSSn)Mh$Xa};6}}q~zX8vpRQ`;{!hecA*T$Z{*z=kcdR9)4b*lDJ%S^GNp7b7b#EPeq@Z~{eni^dwR=h&##bU*16Y} -JXUEWROQSX^Q%e7dnoCi|6)VZZVthm97U0DB_O;kHA{Hr%}<8A_hh=UAEKyGWa;dO3!&$N;+vpF`j1j -(fuv2gm*!Qv*t8-8N%ue|{5-ki<5qh1!(pZAKJ@_g*L7gouO-Xz)ordusrH8u{(_nrWYM&_f7Q`Z*!h -*8k&OFsq_R`#=zbb+VnjV9XmRU8v5X43K5Ay|J|^kzRswS8M@h(8;OSUhjASYgKt8rSs$rhTo}J(F6& -Q&8Dxl<-O{pex48eUalm7dHy4K%8r$V0k)lIeE=KxcYM$7yo5e;&M+9zVMe;}AxqAXOSOT~(}uw*cngu+ej3LdCD1C@uRcXS!1l# -d)|bw~>~4ui+@w+v$!FgWVcHcRG4R57&b9|Q=MhbyrT1QJ*g)I3DJm0tk-pC_}~RB -v96SYbwdZnOgAd#iFHXU-W$uz!iy6A9iaQQsoJf;IF+rA?@h5vN75HpyeGzNWls9(J&Jm-c`ISySIXi -PK$lfgiqhc^Txy%Ongy4>HRfz5ylU*t$vL#tU+BCzPr)9Q_qKB3(=V3#_OLSe%&SYh3`peer>pe`rf$ -=gYq=L&<-*58!MtRQd^BF4DG?4Dr^IQw{9^8o{twrhieUxB6xxyi}0q3EF63&|DHwPL_*+3GtGZ<3hx -W5p-OE)ifz$O-^j<&yAerkx9zH8fQE*yaH`W0(vS8JwVa8oFsm&@a1%QbGo2JMsNV#&WKk&HsWVN{*0 -ggVZNH!os9w4Tu6wY;CX)8LJn{?3{!ij=r@V@!%z!91+QEKd -=UCia1g&)+*~(kEM$`@J7f5{JQMVfR*-}FW`Rae0n`~TOUskbsHMl6zF3T9i`^?$3Huy-O@#*8~vCo_ -pF$YomC#-optthc0(sBT@hcp_edL@eCq-85rdtXWQ^Xdo&F=ReE>b!Qy}0#t}z=g5V<9Z-)uUahjlc@ -->OFa%5*ilNGYscOqff_A}@6{x?HU6pTrSRdL$)@KAL5tG>~NgVPQf>1nt`aHP|Dc!wVq$NV_S9v`Qp -3@7Ca8c&tdenTl8_KC+G!NNS!tmUvSl@w6EEH6+#`$%fW|T(804_Y=XVF!)3wh}fwHv2R#D#$)EAb-m -=|fqPB7(_#f4@*|<7W62e?W-$02fZ)7j8Q?lYixAm~x8O`TB)m8-}Mqlj(zF_eh$_y^tM1VXz6OlmrjzcRM!8^MoIssK~W%)Tz+F@gl*8*q|%Vyf~BEM#BFkb -1|6ckxuRz=;DqI%>)s4z=Up~KsqbYzKlB=8Rh<;kJ+i``&){Sqr%@Nx`1Jii&c{5|f1Vns>QiT8XKKq -nlC8h4z8E!nIk0lCHVsa~U-EBQy!$-0+C+?{Sj225ueN9Z0mw}c+41GHO_EA%ueV~j><-lY#mG&mTtBq?@nC{L6` -uR*S-%%OjTbqx9xs(l#^P8uRhjQA~L(>9}p(FK#}?cwt9beSXWm9g6%=aa-vnIma^&oukWfz$B{&4jf -`9XZY7r*`@6^M^JiAY&1{^4s@g#v;m5KUWkkZ;#zHwOd>IJAMs+t^}(IHB6Cn&WY8QQJ3Djk6)O&*?#2M!FujE~j3f;$=HQ5?pVx(-jfp=!QQnX&ULNuhDKv^s*oiL_)D*7Fj_7rinpsq! -6Xrx*kgA*L)ZBF&?6;O%h(R)8{vEpN^IQ+wINIY}x@kdIg`4){Tkzn6oi9AHBEnC*~uNvj^~nWx(abP -P=^AiCg(&!`>PncI*myW017wM!kZFa?cF}c=+WHJ`;a)%%gaHOD(GJYbzj8>Id;RVQq?)>&JapW9wBh$)c*RI -^W1~icKjZgJ$~eD?yDpGnz^|s^{VedVZ2;`Vw(9%-%Qqr&VJt`9=O2k<=TXegMiF{FqIfkr32*Pk{eF -NxzBjip{!OxD;VC9^q?C)BHH|)q6qQ5Phu`OV%J-nwHSd%5a|{~U!yZE#qS$ -DHI1bU}FL8}Gr=Fka)!@E+;x>Gh?)M89J={_z8HzvK>Afs*`D$^ZhN{H$PC{N<~hCU}#JH5{dnR1J76 -t@IDj72!C_YX)QNCo-Dl&qPp(yCQ#wUMQv(?8bWwr*Ms+@&Mq&QTsqd!wFRlQ!urlq6TfMgK3`bV0LH -00+TXC%bXJPsKsy42v`;f?ntQT^j*Yb8IH#n#m`Oi7tzN8lF&t38+RA7SBKH;p}yOSMh@>C}S -JiJ4|l$4z&p&+-Ja&+_ixp7$jZv;U3Z(#r20V%_cf!WNDr2xteb0`h?c7oNEmq^JM#=m8J9WiVOCwOo -uCDZ-prJ%Te;<#vDJhoEA3*@;1GJCF%#70|~>X&;^{swP36RM -TrdB!PIi}00G(7u!;4KBAv3>SyYJVAQC^(Yb&gE*LuULm41U2S<}ZxrD$G=#M;8O;s4KE8 -!Lh8sISH>%Q5=)5!biVJqw$e4NhtWWDVVGcd>>%1*RL~nr^Ua>)6f0AgpKzVeZ|-}tXun^I^;E4;_jN -y5yKz9AR<3svCH9S>M*3%+fo02A|CcMFSS6r*-y8%a%MBYBpZD?#%Ds2Eou#B210(D6fQVVW?_E3mzd -5|uBLY0qFaYT|Hg;qWq~a4V_9X|&^8 -B@s7>`B(iTsSBpU3D79*t&H`cKO9U+5EuX9Idkd49N0+%p(=Z+ZUD`^2H`hJHtR{xAB(;hk#wb>;d0N -$QQmGg^IcdH%Z)2Q(8qA$m85D2=^cl(MXdZ+_VmL1MyO20BK_ZS1!XC~wo2Z2^`x1yIYn(ugujT{-CLn -tuykq~TW9hdCVW5{hm}2DNIctJEEbS!^rSwUg;M6#IFvDyJ!D^^9qnZUrs4;c}nEb -?Xo7cCujIXjnQ}Af|yVWBBO)g_JessubC164$vgWvAx9n-+E8r5PZ#prTV54lM8A3(9(&N;3SW27ixv -QX8ijf{uzHcPC7fSOF6ObL~{DWuDZa6@lXv#iLw@*4Q?GXrc?dCmG2xFG?M=8TDnJxk@K?`PPbU!R*R -TrJo!wG?nFz4$_Tq={R+jod|**yCZskqXpYfZcLdAUBoT}r>7%$DAOuCgSLrIWy-`4qjzb0;>-#`vkY_-Z|o(#2Y1|#>qp*4wOBFk{ -968nAY+v5Ikj}ITpU0n(Qaeu3^_dLlXA#YZ!_$%igfDLmhgA(7|?M%F#K!z$$&S}SIuDtskalzj3RFk` -fK2Agom*IG3AtD70Mlu68c#bK-8A((F6~|)qSu5a+7bp1QDGO=ar=v^U;pg$1gww=34Z$iwj!vgg>ca -RY|Bf$%(OSo-rL`5E$@zDlH{JAy!{dLQgJiG?M42wY+17Voqr2DnMcZF4h*=^Sj=c-W>eKH&WH_9C-r -rro?GN(e5x-r4`+qKs3mC>4zSa;krd_Ua$C?Xx4hI0C2SV9*Kx_W458!R$YjJaOj-l1DH=>bT!*{Khl -TCWQ9>#qVKlP?=$4}U6FTRkt#AY1q4;Nl-c0F{5O)7z`-tem$IxKn)OH7x(@Z+myO0X`qO;u!0&hmviH}acIg~+;=JTJAFTUdI`Q3o=%fp -eB76e&V+XEJTp$y?0g(js;`_W8I}OJu>cwlZUd*6gd<(reEqP9(!_t4BitjwD#S3SnGCPhAmjS$j8V_ -3WW|pOwcjlu_@y`6>;l7>OvMJt~Gm_^_a6@0z)sO%TelmOM9ic{enn`2-V;F10^UYktlKqh&ta?l?2E -uPW)hfg;2!*;bI!K9P*F3*RD=WaFMiWS)F7@1?l{Z4>Ev>}rckqiiljmV5^Bo>}N_+5Uba&_PT9FHMe -JcPd`8ijiWB|9ybte})M36j<=e+z|60uAO%o)zOP*|`_eA_KlZ)_F3KwX{|px -yZVspExIY1`ToDpIp-ZlglhM<`@4Mp`@%cVxjyGP&$*xXJkRmGA#{DvBB|Ci;DCt?<*s?^0hbAHijwnJI# -N~_g};nXJ&hFE@^hlB+$ulN8G?wNKw0N35wj6V{yVmq~z -D{e3at))O0rb;@ehd}o)7+Jo)Mn2+hE2P@(I(GfZ-mM7mN&%YIqD7YyyMxolhNVzS$hZ6nfQHAu1TiU -TG!a|^ySKR&3HzV)qTd(d2-j#@pN|1HDo;NL^5uvb*|n`@pQVzbIRM*^b(z`^M;#VqO;aS-N!pAGu5_ -(rmAMwRqKO`|H9bWhW?htTgz)qYYgUkcp+zLuB!|$H1#wYUic!a;?*FK0(Z)l;e}5lN;{dtWjIVf5H8 -Le26L1v1m<4wP!5iz>pAIoNkf{&91S)p&>;k&h~8=A!SI73HL+lzRsFQ_mpqn# -|1U~2z}8(w~u$l&1TG$2CMW7erqoy5olND2(!8N`Tqy`fz11_T(G#xh9Ze%FrPRrnl02G=^eka5lpG~%UbjMz`Ez) -?#H5s)*6)wEuCp{4s%R-@sZOlSNp^~9wf${-N9CWS(~Y#?Ovm#W%CLNl -IlYt5{qf`)?Xl}8oZA-=!Uy`W;{(Vp%oYu>DSgnuthh+gakcA73JpC1>U(la6|C!s&-_MjHMleVL)zI -I1?EXM}yb_a!jSUA9ZqNZS~4}L)Gue!Ly&&v;lSFsfHOUBjGrn_a+YdT23E!_<3&9&}d0LwKU39 -aWQD=F#HA^s_1*E;bq%gv*$B9;t``0M?5A0?zhydm$1_4OcF4}Y4C#X>ZV!JL5(?JsOMag+6W -Ni`O~d43(ra8#TohM|C83&C2>OU);sqk>;ATOO$P{Kf$owQa}C@CME8kD1-aXp#EO}M_<3^`M&8W<%; -NW_vLA$S5mUyl_|trqC@XX=JF-EM%qZ>>m5(G4woV4hC92^4m@&i_~j)|t;p1xc%CUk8S+s(wY|L}fE5 -9mFMidma{jk)j?sN{Y}Hp^Nk{(swuiYboAr2@b%sC$>+v2p<6-sGOFS_n^-08iPo -XE}n%^8p)ol~`?BXJnq)XUn_PomPcYcS@vX$fK=#U>gk`XxxLm -4T0w&oeYYtHDJn4~%(yGL?+o}k^lrcVn@~P5qA~3x)h`axFfj$r}(2X=uQ|)}t~KGXVeNxr!%gqZJzE#z8bjij;p>CKKnYj -obha+QWhn5#p+X6eT13v)1-T-HQxJCvB5}dGreOCpVF<)}4*pi|$wda6Nt%$du15{y@`6Z%CqP;Lh8z -pTqtWLlPiSPUbRr?l^2`j=Tj@(owW%?S#0Wj+ux4^?;c|th<}8vaJc`8nHj&0ne|#IQYc7yfobx$;a> -5WB6lRDuhoxE9)X`i8WMI13L?L#hasEVz^s)?lLbFIPG0T$`7DZ06ux3P&TP(R5$!!QpERuU8xhv!@2 -vh6HwKiIdwV|9CfM1lG4LAgg*nDt8F~1~!X8D-IS}4bu**8%E#b%M{CtSg}ZXy|zKC3#~{T45tQngKfdHFP}>M~J -2D2sCcViM(3=T|;iGCksN3-Py^+!S)7Lda0at&!Z0ky``k;w41IH!X_XIc1`NsF9|)_l&3b -PLrWZs8NdirjWL|Vy0@lG=|Fixb~2kR}1CjHu?rRhTpD}F7MpHLu}?DFw_KJ+D1qeoAlo<{BwN%pK|| -t&Hp#T-{|vygZppQ{FmK873vr~UfCulMg0-{-NigO#!D^SRKimoycvPKbTRJT+k`UF;5)^I62IIg_Ie -g(rGDhPnMc{g<3=vo#`CMjRN90R*Q&Fwar}k`^=$&z@UhCom4VQ~n-o5Rm};hdN4k;JqqI$V)*PRvb7 -LiRCdP|JaHNi>cF2{i#tgSHsk*R1YPao+0LtG)fUasxqzs_v$I~c`CvxZChzZ|h37;sl=XDzw4B|n=C -pX$W9Cc8+dpRG!vVCjQd3%299=@#Kw+`pW9^@-s{sF7NJT}@D$_G64RrgnP`Cccwe9!y(&$*%R?1P#Z -&(=}3-oN?zz9u5CDNGHyaPzn66+N@=kIICiunCx2~#UerO&j!wahCPrG -EQNz3+bBq|1IS!!~tQolsifih#o`G8fC73TxpS9yX--=w#nCwL=Zb>#X7`4#Wp2Yg*n*#nw@+K@eIv; -4%+vaL0wD4_agyl$(tdL^~jYt~bHeFbY#z31kfQL4@JmBrIiJqvT4Ro9q3Z)SMvOzNv?DJfjH1YP#iO -v1;Q87Ayj>r?mC%+;+3@EkLH>}8&Fn2)}PZ%JzexbVb%%i_(ur3zF6!9b5Y7WGK4fv7C)`-X8q{!3Vw_xy4>mYEYE&EcRr -d)D}ZJSN$1*4JBT_Q{!lgM_H(Vw#rv;+v@V;akreGD&irQJSk3X}Uts@{G?#Uo -a*rBej0nXf4xWRv)8y-iN;=^G@4gG)E<|&;5Z~{#R<7q^{0d{`W+2z0Otdxr+U%@g31oV=iRKOT5QQOm!WccP&sStQQ8LB%~!}TIcPihF!ht!86J{kQnnGcN`7sk*|R0SmWi$MY%}7ekyb=_(q~hC!6D5 -2rU3D6V+gDdF?nw-|JJeRqNJE6IF96{%9c7Xk8A#q1|4MansHbUnovho^b8+jEZtXkwN{MA{hjmzeuUBvs^#f -XloNcaoBDw0IS{*=Rt{g+Q9C|~byVy93K@Fk#41k;gHic|Fbq+CCk#o-J=_qkR11e -RrCb=S$}(ZdR*HpTu3{I49A&;RELLU+LyD3q3=YL43}s5nGM^TIWvDRIZI+5rm?_svH(@5eDEehSCI8 -CBrQA$xQ<{aD-^+SZn5i8p$Ap>Ml5$X(iAzeYFw-?D%Co{uXLyyZ!c0AxvPGEbOro+;n48I5DaQiQ?u%$jFcFMQB- -|>)AT}2V*GBUp}%>3H524N;?8D+09ZzS^$VctyUCxv-2nI977tz_OL%-hJkPMB$-uB;H|S~5F?xt`4V -!rVaSxx)MqnX`nM&WbB(!rVyaWMNjwJVcnA$=pkrTgV(G%(RuS1PQaA%q=d#XEL7_=2$W}3Nu&2c~qE -(khxx%NmI7+k}#)`d7Chk3UB36VYZTavoMn?Z)Jlp&n0uYFz1ljCCrP-yjYk?t+6s+n9InVEzIR)HVg -AQGN%ahMluf-=FMa_3iCr`?k3Dz$*dRVZDhV!D$0V)&82)w%N6X=EU}=qt%q7uBR{y0Uz7PNk1<6Lmp -6sW4&f37mjlA(ap5u-E~;?ZBwTXf@||#5>r0LIEmZsc`j%J(tP}xn6j6`f1 -;}GFkn5)67JA)o_iU?L2b6QH=jvz~?*4RR>vB7@rdw#iniHy_V9k -XV!?M>fh-Z4bp{ne5@5*>VTb^eHV%guU@@=nCyECfxxb}Mu);LU9kEwe`)zT))My$LCV-Y?;F396(K` -zY(n8SrJ2#a$M-LfDfw?jYQ73xn}=vJ_Cz3#f8F!xZgqXswk7jmn|-IpY~48lJ`?znwr1?sq3Lc9@y0 -$kT3Kh{))m}m8vP~FX8dUqDrdIe*YdpwM>WQ=tWrwuq-;Ji-zINE;F{aXAuZOiWq+EMaW@M~_h*Ao$K -HPl-T2QXm~sdrdDM6_EJQfnblUi*sTLPk(xb7;AB1IjE@E3=Q=6x3nAf_jD1R-x!y3v6jLl^2Rl7FV4 -&!s^HMpI=t%D4K6Q+Mew9Ks8fe7HRbatkYZ70K@ZjUcKSv1Ijbo_@@nbP-vi^DELpxf~T#Qvfyd!Nfx -~7-!2P&y^sY@Hm&y)1@Fvn9Dao)!Ml(oc(m|&YJ&2u5CcE_GsM8#l><+r{kAoy8^rw~OYe|-OjR^s`s -BbJRxYhnV=L!^;O8;T%Qt%zpA5KJ%7D+uJ5yPMHMsKZU78H|LqZ1p4|n<2(Mfk{5;dE-M9oG&8SwW)N -dD*z^=x`rQ9`CIbGu;dwEU!WSczun&LyaKpqKnEv7z -pzj=Lsljm!aTuS4@R~C>^J!_k#@+79bTrbs}$WUTY1kpJaHxGPDuCraC2v3L(dYzRFNJiN4u+>MgW-&Jz;ol^di)da{JyNcRsV+#+FRC-FHmo= -5=&6)pLOyG!YlXJv7KlvYpCq}6G!kxQ!&(xlaU3u$$ii%Y7%trL>!-MOTCq$a6OLS{_~K_qb=l0ip7X -}3ocHXmfzMIw8r!b`jSc0cM9t%pd=yyP7cRki6Yk_tZe3YYT^M*K738J@nT -)JvZIJB56C9i@a2QF_Wts1PsL5+G^lP=T)L1iJ!LYfRT*i(&gzth#3Ldoipw&mJXZkS2WI1Ni21QDB2 -<{p1$dXj079SrGW<+NKoH2)8o6EmDq_S@Ajvgx8w5WP5d=0Pbxjnee9hnmBkM*AcL2)sc#pLZO3=i-G -f#)-5GMK{ttj=W!A65bB^>-11_>mNG-t9w6E=m}tsY>-n}I4H5yE12kI`Ub7xP?=^~($-S9}Gr$|B)| -*qJ>AYqgLVca^8oB^$6KNgLguu@TA#mykgdn)3^33x2LDTk`rKt@O -dwV&&vfxgd*6SN8s#fS67#;+8&G|%#=#~B7xR8yih29Vb}Q}>svi-hp*B%{yu*0`5teTF6>{B^TfE&- -Q~*)jt&=TpGMDR~+`{etBHd^7gf)y~Z6nehZmKwS&XoGS$uRYMbg214rh8Y%GTnXKmFW)9M7odik)oz -*myqZ-bBS)+(zjH34VB$>e5D^+o|+^i{z+FHJog1AHPMwA?kH3F#YOIPO;pr7R+2`j)~F=gy=qXaME5 -W0VmcwwjnX7(Zm*uAQaCg{t0&U7l0Hj%|*34ucR$+#_`N5=NsLea7~o^(-q|3INHy@JarhC;y$BEaZmpg6H*r)z&%3zA -$=C}4OKVs^BgF@5mZ|G(h#b0!%$3TU(vau$dcewYT=EBYk-RfF?tn}<~DPs{3O<9PRIw+gwGH}6XoX8 -%}1XyDxV2a?uUG$+}VDj+gQe9}9_Sfi%4(f#bxe|yhHX@mtR-pj ->OPO)`+HM{E*7)QBB3dU~IC(us(oyRpZ9EyOrOrOLljrZ~xq>iAKnAqqzG>pZj-)rs3qCkMWEky4yYk -(aBy#5WOl*#Kx5wDmxLx07qwHXiUnXdTcU0e~=GQ$}I-EaTnZ3Ag(!ti1+$~%B1fo&&0>|{k3tQPYJs -7U2OlLao_n$rD+YF1}eXJjoWAvJt#GI8Zqc_hRJh@DuKDl2@9A1etEBy|28-Mf(PL8-{z)i8k#th=r} -c@Z_+pdt_7Vt<~8`Fy@5rO_Kp=1jV=>@2cYSdUrccI$L}y#SNtX!s?KuV{;%ts&Im(L(@9~_HN8g$Fg ->K{uy6`!s{cW7t&D!=`%8R(uH{Ay^uI?yrLfXB1v^`zs%a_i%}sZl^*`$(Rc;YGQ_yo9Gstr{(aNw&O -+Jji9ed}1#VN$%an!fbcf$=M`7oA3!Mmz4-zA9-7}b9yqIwVb6mOM2$l6uBMMAYHSIXqHr*|vMPw&>V -6+(b*LxoR*?q0?v=$59A4@6p}#h2;b`u2hL^=^@Vbbh -NJ>FhQe@W4WwZ5RgTr0o1U#WYGZ%wyZOEjEP)g4K3R8EhGO>s|fe2KQAF!rPq!WOQuu^;s(dGA`}_WL -QJO4!|3c>pQ)OHr1t^%Z>5&s29bKF5`990@iM1y9(=Bux(8XX=#bmB}`>8#nHH@YIxF}}t%g+GI8hI;c-i1;-1D!=qj*pA83!tZJb~wVlZRC9(*oS16G9g$QuG -4Tf%zoTA{38^yDCNf;e -v_u3DEPsDdC4eR2;hHYOY~JFs&vqq%*o`CtKc&rQv+#cZ^}!&xz!<<1)k|Z)(g)iF+U8c;@O18=fW)% -wg31-rK3p@R}3g?qk>qKf?ibfB`I -)L!d3SU^$Jl&-!YNRkrfS)nh$uV95*I;iP$RLu2(=zYHXEhyWM%$zW-GaIr{El-&Cn?ths$D;Z1Sxx7 -8%^EY5M1Y%42S``1sL9)ZEA%e#ijSIni7vl;&*nMBYaEG>@jBQWBXP})NHZVpYo0TbQt<;O&t6H+VAJ -}b_zZRLxG;D4x~qhaEq)JS-MUU>TytLS%9!&FYrpw4JFGHto#Fe;3ANNmW?O3_6MxG~x{ee9ndxS6UL -aIFR!oj4Jlf4rQ7nlVVFO8gLm;vyG+Xm94Ya22Gi->Uxq@f!3!IyrIKx^R(VM;jKd1~0RmZeU(QY{p* -ip7dl3oH5n+u=iPAI)Q)E%1y3DU{rua6-J_0 ->La=&`V$rw@6Nn2fd^Jby|Eyq!Xo`7nSZg*#QfP~3KNvLhH-bU@ei6YJPlVo_uuqM7_!{0}g$I(#m() -wEcX;(`O#anWqsba$@>~=dMn8asyo##E?^l14u}zvBB~_Y`IH3f~}>xq@`+Htjf1QrIyZo% -aBhiWPmZk&|HI=W*1SzSoG7dFG;=#J}f#l=c^Zp{a~tkS$7i(XS~JL3Mm&NOOgo%2%?UhRTr$qP%zqr -QC~BZn%Sws7>SHo`Cv5dv-N64AS)X53|JdcU>Hx{?f4NKmGkVa|nmPuUPMBM|bD0UtOWQbK9>v*4-H! -a)s_rF^A~dB6WA3xZTInbGQ5H?z}TZ>hAnlxGFna15UdA$8~qA!CT6SmGAP46qI-P&2s5cv;>K)m=de -spB_&h-mb6&S!>dbaNwgB1)>W}^7P`GXrIh}#raF_NM($V1n)$!V|Z%hwoPEiAS;&TH8EQ^wUy(b8J* -!}vtD1(nC9)GoLlb8LFICJ75NaKtZ7laQ7S}8!vrV2z;`S!iMFGyo(qQUUm2>Z_&E2fGVgKPvm91g#& -6Ucwn<1zjHY>8+T;9=AX@JoQbtiYOiJbL6!DMKw|C#|6t=)#?|TEYJRg|Wr>DfP9v2{X( -tbN}w?Vt&P(zz?w#f?=Wzgeq^0**yry6Sp5-4U-&)t6mm^%zLUzRv0iF+8uQYj>(cyqyg%+er7Ba(Xi -8jRgs!=tka^9aU5Ul~v_8!O%EawmbmbUn5gIm!y1JViEo1Y#xd-q|hz-vpBZ1}=dkf!-XAM2em! -{QU9>x9{d1Vw*Y9y0m2y#Pd3tbk@GxXMW^+6(<#R-j*7<8be8GAr@(%b -J^X5|9dX6q6X9Wfz*CrVyLiy+*s9heZ}}hPVQhoa^u<|mu~jHlUFLBuvSC_s+{5qmycpP+i(TNnoeuk -$Hyp65lYGQMfBQ0`iRuXy?251tF3v5F;u_AulMr*z(WJ~S#uO9?*wBMR=z_dCe}(qO{v;?+PuBHS!c^ -_2dqbFA&Sv;`dxmbYx1Xj7qVi-s0ijxu9+IDJcEX?QP_K;f{oI&lh5nNRk0lza6vVXir{gPsH3ooag~=N&+)4@?d2F~qN1$oz>`MC+SBzmn-6DPz22vmQD-Zs3Z=jkknY7R)G-l>gcr_-_C{UwCa{KpvQ6a39 -BMLNOAH1y9qq1s(|FnUzDG4BS#~(byUr-+L47Z;1Vp@e_49Y-B*C`XS0vkR1>l%a2fsI_U)Ju93<`OP -s{1(J->dRHhe`=_rdnDBTORYq1!qiMY0r -IWG?7W#mlhgUkrRPtQ9GAo@V;I5Suh=2wB{X>f>ct1D#H_0yALxK9Y*DOKTtUt%$Llb&nWQDaAJ_Dl= -rP|1{Xe@3FR5>=y&2X%P8fn!#AURfX^rm>qsY0>i9wrn$}7>!RR?BbvxbU@zr~&+eyqS=}L^nOS^H~Ku3PfOa<`PA_}ka=|Lh39j# -=VQ7iu(Op;Vb?2B8~HXFt-d&qa;j?O6@rJ9Z|??c-*XvJlD%k1;zu3#dEUYzULI(EwGS#<_k?3yg0se -Y$zZMHLMUhl=DHuzXePhM)BRum`)H&H;Ed-&mgg(a2jWhS!jjhg&tj}Z=%VE;Pd^(8sFF&U7sm6?IR} -+TGij2baG4G|(VCUoD71zbj9naH^^7hnp@rHHCc~!v*3{8X*xV(g73B+5EYj=Zy$P#aJtkaZJG;MAYk -g{fYUu1awzNJCA7q2gZ7^hnnd+BV?%{* -LmET-@Pxf|7ZylyIT3tm^#ln5}xacfN&|*Yx$VN?jgs?xUK?0jc{98(f!2lC`!qm8{fSLj`?r5cP)in -1}=nl~&q^&O4M<9bXUj)$4&43~wqTE%lgTyWGUQ;b7j&d~sJ3(aH0+lKG;jb)aw-`FDoDjk>c#)|zge -lzBHxO@s6`OE^x(Z2B5&;M*WL!(hRBzNCk^wh0}GGN4GCh*Gn@af)DOIAP9$1tfX)G(GZzzgR85>q`0 -X7F9h+!3K(8O~3m=`}W{FJDo<#LiyQgtkKV7nXasuBIb@mXzpmLToKsY-4|6UhR-Mc=aK{V$;&>1`OL -k&S*5@79}{jWWSn@qOdczmv;*a8Y*OqFvhOQnys8?kkG6CVYh27D5@`qm0-a2jt#r=D<(=16zd@m=U=ucBK3Xp^I64q9`)#j{_Hd57zlq>kJ@Lb;{TcNyY>LejI*p-L>F-S! -1qoFLH;`JN{he0wrdF(-b}dHt($EH*=jqZy`|eNs&pRYZeaEzLg{Wu^5`-TH{pfxsR;$(OXsB1C@Jy2`Nu3mX%;>3 -~3sn0OC_CkY{k@(LUtoxE{VH0=#}?(SfMmZ>^<%m>>VjkjK9=JrS=>TyNH;Ofoz_U#AbKHLdxCMh&y! -E9mQG)edF*Qw%kx>v8rWHi&YRT6eJytn@W#TX)35e -MY5o!9uS+SnRK4d8;U`$U2GhCYakT?kEn~q%1Qn=Wu5GBvc2|}zYW@BNBfm<^8|Ddqei`_q^WTrs7mz -?ceTfr04mn(f(brWiw4)$^LBo~6<86fO4YneV-)?O)?>h%3ivE5-|Cr_#_v0SW|G)>Fw -uqQhAR3*V%Tm;*{L#qx6aZ`8X>!o&{rhyI;fp}whsNl(*;_Gt2_ZC-BIpodrP@*9M9oe#=`vZC3i6jh_F+7-Wm!T<`PDI&iLE9lYBORdL+?ioAP&iM&5=m*=CAfr)mJc|+x -+moBGllaO^zkvD7))3g`xE9k`~+>tBn#2+kpBa{q&Mlj#AI=miI~Tjxtp8YD -U|$C-{BRGdj9Y`jdI8-+j_=37hXe>0zJq5uV>C{d$wC`tFma36lSP(gET==?W#_vJ0hmDqM@~oQhYCA -faiT+U|wY_pfUILg_abUU8vxe52M0o#rK(9#ufsuJ`(TfZXr2^6RAe$33fZ9Z#Mvm42CyPZ+lE^>y6- -Yn97&fC**pt}Mm)7$#BzuT_UJOZjY~Z#p#GS~FY6m1@>2GiP!p1zSD)y|Gv5!tB3LD5Smeesd&d6^($ -az!v&vknJaj(!AmT?F6Tp#rK_^(KN3Q{(2#Asa8!lZsf-cMMb33*XJ*}I;k-q@q-uWn$&?aF`}shXY= -2jC@z}MpR`$W&?NmS%KCYv7#_^Hc~7fP#owt@KvyBA=eOs#36msZ=O|e+c9MT=_#`PK+v24-JL$-xl9 -1nSB=GpKN3Y~=ZHFMC8SU%5cD%rbYi3eo+dyY9uE@#C9Olxa9G-74?oK}T-S6jhIfuBAx^hQ*QI)ad+ -r(;zzq(Ne)}#b8R%_T)=fPk5>BqH88c&+F=S9Uvx`wV~MV`$_TNIucE5Ep}+pEgC8?U6Y4Oh1;Y^S6u -RwgmmC=5Z4ij~QXw8(_X&5x{_;LmUOX_28l5TQjTOi@p_Q?6pCD5Y&0tzNwscF29chw?*iyDUgkHlA+ -vVE=`uyq}K4yCi%_!oNybFX7t~DiU6luuFddhfA0#;d}|560Vc*Q3+p=@C^w+l<*4)*#H5fBpf2)brK -#NEZ|EL{#C+F8kFI-O1MM9y%IJ^ctXN&CF~S0U{49hNH|l%#S*TN@YfRlNx~fxHb|&Q7&TBpql76ES| -yw`SLZj8m-1XSh;_oy^UOnTr)7MLRR%b>ffGHS+M0ER4gMz%rH1z@L8@&6m -MF1DGdw;EUA^V%wOBhiWg(bkLc^M&XZKh9QgzRJjmx33C7%@s{A%jocEQHlAV@OvI&p?pDBYF5zJpBS -)n$<>I%LV_69PEr&}!a5&*x%of2`j1ZLjr5r;mF7hwrKDmfj$ZnV6O5h#_ZfN)^Tt0sDxW8SdX+&ynj --ULENVkNiN`4Of75QQajKkrR!E-6FE`e()w^PVlfmhH@`6B9^JS8_=DNG4+ZshoiczBVsT%NMVr(ryA -#LGg2v4dtK8^RLdS_EuYbM8@1$n(+U&(GX;IaSPQq#BgROUKD+ab6bF%xSVAZXwTS+wvaiEAL{&aPhi -P%(=A)c{L&h2jb?*@)g*N07Y)Kk`g{k{5a}g_x#fv@e}py%5t~+@jV@QX3Fw$`g{bZOE~wat^PaeM_a -xn`SPLBr17u49OQSvkCEsvG(2uz!V4u=e~cT%3!>8>r-tv^f3iH6@tpp6yK67KG59Jw?rq$p6}};ZtXA~4gWt=e=bicpYuPrO)fP2 -t?iU}UBc_h5Z>P|=3^7}1a=?KMJ?&Ly(amU-_NI)LWnv_Wx9mhUG37F7a@d(xwM@U)$q6 -W_XWI+L~9cxmIL-ej={)BHwSlda=S*2h?9Q>j{+o2yC~*kdTDR`Uf4sWyT7Nt!KGMEU+WTthofUSYmY%ftllGi%g}qGUhq -N!((v$YvHTtCeqO`VrBkZcQACq<)Z~IO@FQNGcmBnm6#%aA?I!nNx5hZ>3j4}(Rg@{SDL{JgtS8l`kA -LjcgYr?*Whg>4(8v+C2yOq~~W%#|G$7`F4#n;OFas1hrVY|-9FDw48gA2Kp@|m-E^5x%9K4%htMxV=a -`Nz0>B6m-eE+_*&n`f9&*nIfRyq6O5PU?ZQ=LS%o@Uat@`r&H!}C`H6o>6K{!bK8Deg$@{1*j~=@6b=K7u --Vf7(jNBu;&+8_ldJRB4-Vb9j$X%x75sJ~I*8-_6GRz}65mIGz6XT%IqHu9lvLU&E*2(c+_CS+85N)M&$FB*St%g8#O}{QN{=$wqZC$tq*E=h>GmwEHT=4JAu2vro-)m5_CY-Qm(aOzuVQQV^TzF -5>ty-Nn4%O%7)vm4PkSndd8K`$DHX*Xd(eW^OUJB3(+0@DpyrN%#mC;x8v$gool&95y4@<#y)hay*lq -h0+AREOt9feKzpRo?mSDbC~HCHd{$CcbwstFxN$RC_crZa1@68ng62;2n-7D6rv9e3y+BGY>0~P(zRR -6Ro!EI^o;A(yH8(Zzy1T_2M!uM3SioYSgzb -pN&{Ig<&{jtBwcK$98vBvLD_cQ)&kt -?eFg2^1y??f9T;y{_yByk3X^XkAM2}lYjZ^-?lyV^fS*s_x$!9J70M5rN6(ttF~_Up1rT^+h2d+)z=Q -b{>Gt(!$;mc`qta;9DDcpd+&en;YW=hpZMhDsZT#snm+fQKJ&$w&0l@}&9~p3J=b#n!uJ<{xTOA<2ZW -A0{GT--{7>iqe>(kt`+(fB|Njd9)A!17zxL1@_8>p|uiMz^icr0u{jN6lyW7||wz1#S#(r-b`+aTfbc -LwD{kb-F`ixF%;#$1)5p}X%`}Q!WusFYD*$h{%s}S=rxX&uJJEtzZ#h&NNC@v^*F5w?p&dM+g?e^m;vQ5$IWn#*&g*}A(_RC7wh#QWe&$OhvN -$T^u^@{y!2fr9(FgFI%?$b{35w9Yvs?(!X@?+x69OlyJY+%x$9JP+1gjzPtJmm*n?aw*N&5NUAaX@i_ -=-+G!_;cvvS?Vd5i57Z=t}KTUcbzH@ZrUB@TPB(OzcHbGvdE7HKQVS;b@_{{j@KF}K*5>p;MK#GzFN3 -VL{(a87$}zOlervIH>%ngRW2t!x4Zte|-=AY-W#e`d)-(B-RM#@pO>=kmhhMaBY7*cJYzc9+Y~o0Yoq -k*$2Uqo^=XgwTA%1Aj2D;{fotJDnZ-&uVA4G*9jVy11LzzsTdO%~B@5RB1a~gV{jDECr;U2w`Sz_`b; -Q0^18+#=MezyRoFe=+M3e(leazeYURa6FGh-;6k2CqTJ=v9!r@64OUXh_Y{krahv^fwz~}{RMol-^s3L^I7XN(=Qo;e_5exF;$ULS -FY2~`R66;SB^ZtGE6)C)AA?Up+BxG_?>U(Rlz@u(OpWU&6+uBSW5flGkCyYW3J2v)uJ{jTp7OKVC1o= -sAL%-rr7O~b!EJcdD21sb1rgIftMPG*q5S*DJ(GBmpEL@um0)u7NV-j%9IO2(LC+G%FLOv#J;3NZf*3 -Jt*gJUof+G4V{G~i^NhRy^1B&T2a+Z}pD}hv#45{QX@Z-6-FzDFO6Si;AuXSeF_8wo()p!@OB_Y^1x2 -#ooS$D<>YBf7O!9C?{zCRM9>N{nRnNNSN3gER;jHU)LqlY3xZ`As*t?$ChcP?e=0*|z7MNH0*>#-)Sf -`NzNjgIiGbDFnhLPcp=w4y0SH6MuO76^hIb)lzYV6j~r8bJ=r1ZL?zwOtbv9OONjvisGhbxlx01Z86h -O-{YusdUFdkl*l-FL5n#ko4O?)j0RFM=6Hg*iJl1~mj=aE;Bw7)bHMf>;>hz{jBr*RgQqT-Pm(bxSs| -ZX=_bJ2yr&gw^UDAvvA0qbaSuNW%q~ABwc}tjF}22937z1X9$1eofLA&GQw)^QDFP0YgeiB4bvK{@5@ -U3)*8rdo1XPoi6gL3(~P5&=TFP6YG|*2R$J~j}OmZMl$x&$W}Z*MjMqy-6+Q9CNs8BhA)8m4nMo#Lnj -tCvXi4dy7!M}?C|K;^g<(pS!8l|7OCsTI$?gKh5OqW^h4J&w(?^EbrAt9LKn?+#t3H2k7mZ1Sa+gqjm -}=pJsV>iuBz?k(DjNCWj+&Sj&kZXy|vt<4X78$j{*5HOmC&<>j{i?!F=L=Nl%aAp{#fQUe-H#59_Uan -RTv>aD>ZpZVZ-r3<+Q%y8C&2-y5T6F)qCMAuI;@j~N+V8-1mluZ&YCF}57<^BNzhoF=yB|2+JDm?X;@ -FuHpf>L2Q0awO|My=!xHV{03sF!xv)>zl#YQLP;P%0Vl;f=tF7c)ylms$hN+ZxVz`QogFAi@vesyJJOk>xE=vs}g^)}3FZeVQKiT3lke=1`a@MfP7u*a})7MDMb#m&rSami -CzoGz1z5)@@XO4NHKhO$1c=UAWoXIY=*XILNIHWnqz$Pw)853&UhLVP@+^w!R1>|MN0Nl%ZydKQ%&#i -E?8?UV4N{6t$IT*^(1ZJO7LD_ZtLn*WRij1}Uok^Z_aL97ePugksR*}Awe^eIuuEBY4HW3c&2&ebxr+7Dbzve7a8dmQ9@JY|+rn}*JcnIaC%Iek^hgS4eUl$&eRW&d<-MIKmxds -%uAqO-m;LK>&@bx>)wR#pqR*>9A0u%-1^Z;!ztU*!hW-m}pxewy^kWgM+r8-Ds9nztL%R;;?OOEXz@H -B|(^qD-(b1h)G}4S7d3ioUsu@eb`{z&m(?GwCxZM!9+jOMSJA(BF&fakE4foz~?>(|dWA}!bTAn`gV* -qZRKCg3nUgrcYpaK1EkC`E$r4zM}TG3bI1+G|xjUD;pebiN((2h2>_EEa{FczQOgT;T{vpKf$s)la0T -^!LlQQ5rSPuJ?b7>hI#ZB?9m5l-W%Q++7MD3>UPYb^K*9y&xF%tsx(sogqQAMoRKIsVgFAgzgXu$g86aT)uGs0rtgY+=pY4mT8k%t*e#_N#bpQX4*7~81D@1RY6f-r;M^lMX8-%%$pC -u#1|7}X$h9+rJs+i`|>)XtiDI|~kA!O1#|vlvH#E9U9Wj>w#dY+b01h04$-17&qjWuWNjh! -*;0Q&Wz7ediE1LDqk3wDT%=)&@O|yGk8_5Q_F0w)S-?Kr<7uX=(x2)Ay;Mf=<#|Mm|JNmS4J6q{2Z!= ->#{aW4D!ENi;ti$I&=hg-M&$)F0|F51~@2m4a9$urHYjQeNniiBvUH~%%V}-vm$7{uv)k#!Qe8_;A3P_w&^4*VIis+6QITC@T7r -^`{Abid?%;o`oOG`+g-(bnoc78pK%4@oPNy$>4$r% -oN-W+Dp&2TyKpMm^d$3vi~7xH3eGpt#2OxYPcdY@Jf3GDEHjZSnB8%qj{U7+Wk0INOML1oU^o7`-oEf -nSu9B`sUXD)Y8%nfbol!@IU!sI$#ZU-@Z4tpa=+c#@1rxQW5iWl?b^DSk0b_bOS@aW(_KZg3z1}Q(X8TSg~j=(`{b5YQgW-?G09z=M;I){F52*kC7<+Mhs*7xTIjNu -x!6E*6HzT?>}zHrKBPMfT_}{I8Fn5W{1HBE$pH1OeF_}&27>lo`7*j1aGDo1SKxJV*Z=-0pEHN-E-G*d%9Y -W6b1WpHCoB+0h=ofWTu!~(FtmH|xjk(C5Y#RI6BHk}qS~rFTUUW$x^WLEy57y(#9s(`X7_2q@nI*pdf -c;VQ8`*XzXGw9MAPh&;ZDDz-%f5s@#F$EXUSMLiK{JZ%b_cs#_A}%$hrKV# -0JR8XnrK;~uK+Kf_OpY0gxEy<@avCmM#;KM7Za+9?t%go8l6x?<8@|lk9NLxYb0DN{ -VSw@rNl$}^XNpvgVO%6q~}qY-V@S&yQJ?8>Hm)OC%wfHemwK%d)spOvFBeM{vVD1@5cX+#{d8IAysDn -_Uwm+oW{Qj{(GOO4j-KsJ#zAqp6t{k$|LhS#=q -)eZkmP(&$Q#eIBsMMj^A>8SSDePgmWd#me49;nuIA5CP_F% -LZgJS5=Kd=XWF`1(y5B^_n3tB67G;t!@pJ9H%quqLWhJo5?Uopk}zJvUJ~jhY`i4XlkmT5-W5Oo@_mE -&Si^ho^#19hg8}+ih!(_dX=`~M~?Y7g8r~iND`6+pnfHqH{e0&HbzXBvbq_$qQ{7TgT|D{LUD;h -3et^67!te^3(fve?nRN_52%e^F -1%@75f|`*K8%@RehBazyyY-=>&uv}uP|o=7D#hB;2vq-3wRFiI+$AkM;Ng#kI}JYz)z%^?jI=akMRp( -o&-G7U&K8M7(D>vKpfHnoHanW&jma$%@+Z?3}kFC(KC>~WeWNUE*vCyRStOT5R9`3Qv|pjZ%{Yn3-AQ -qD40(I#wB3PfVmgo9=u5~?*;rA?-mLJm^oC?lLZ()Or#Y7xEmFxu?NBf_DaN=T^X*Fy+bbrDO8}-^TkW+>Zg?H%idI3Gmm+sHbq>3>Y|C+o(un7x43DFP?KqA4Og!QW@0ucCAT``LthJm4Z}UJU5G0eL|f7og_`fqw(w-Wvo?f)}Nk;K-@MTnn -hnMnBLUyaKG5&R7=A8v);(F7O-$yk>?l4+Y#eL&U8IoH40vI)4;7_}mv7NsV_4Xyet_x&e0a%S!kG8M@FgFMDHJI~rNIqV)ku1PX3mMyhdP4B&g -`%E33)nqR;Gr`sqw_>sDS*GiyBTRU0QSkpToHJTfPb;0ox)rT_@@GdhxtjsON(UxxtOs5C5*Y?PWO>c -a3Ecn(*O$`0{>#bFC8L$GvMx0{@|m9N@aOA}&E!1^9z7<$zl&K`zV$$5qMt3E2Bi##X@H2srDPf^TyHKlr66(?-B8>qJ=-Tu_ -a6iZD5Vzo`~!Z3cX|THt&i@LOpnxYr}_5FEcj;7J2?)QGlBaKhc9-%A4=vysLXlnda{dqkg1@FTnt$h -!hqa4*^*%!>iN(tH~5w)=$H1$gm3!7GA~)4gmk)BSAOTaY%)1p7aLdI@tp;OqxPJ*foT`+%Uo5wP3Cn -9Cy!LEFQ^-2oW;2*yRY6Er@GI4~1@>`}p!t$@oO6Xr6&9goR=3~=pM>c3-Ie-qe?B0`Q!>AXI!W -~baO~^oFJLwUR=+O#hYf&lO7l^`HE)ReQwccy5c+PIlK>w*BybYUXaJpXcLAX?}4SOMeS744`O;3LxfDB!sFP=Ba>0fxN~dSH$KOnqO_FbH_3EmZOcL1s%VeFhjb_ -Ck!Cu}`DbY+xL2D0^ZetFkZBI&-v=>0E$__ux3zNmMz~IVPV);F!o;2mE2nkW4nT^BW>rr93LqCZLAO -DR77SPA^zAT7*A|bCOFmlLaTj|?SGv4|x>+16%D42VjqCwU-@7_@GvMmMM -aKkAqxe>AN{evtm*ot*b`_W`wvwkqq7bkLWm8-F8#$n{%%By2*B+vuOE7}|C0xKSbE`p+B8mWL3IAj8 -uY*MhnWXkE*>hc<>3#h>JPJawOr)h6dwF-+R~zOZ_a;0p$KmZ&-Ioc6W$y@r%iY>{W|#wZ+5Y7?drzB -@(HK{ef{1*yt;BGI+_k%oebw6Z$by}YP@PW)8P%o8-mw>x35a|JWAH}pQ`7{$;r%Sv#}X7X0Y3Dzx}d -0zH#G5_NPDni9P%5v%HSK{r21J)TvXxdhVd(0hnVswrvlglDNZhhx&ZMF1C8tm%9pXEn%xsL5VAS?OLfD3NTyltwgKDR(!RXupuyjcs_YV{Aho|{GZcH -Tw!SF7robLX}(UW@O*ysd9vH7ca9$^zxfe&p4{gvi$*_(VKP<9yP0%p^Pm2M%Nj2?;DIDT$3AKc1OPC -YF(r!Fe}r+B7zM_H1_JjW@EJZ@!tW%Adp*En38Gx#bqNWXTfdbUJzev2x`~_ON>b`}6JN*)ywBS;Zm? -+i+_-+f-s=_dC#x7g4j(?ujvhVAjvqhHKKS4R_T{N#?9H!L_V -LFb^Lo+L)Wp91@^kjdd6hLcH?wo+&hffJPe3BZ2dt+_hE$LBOc?4-I2wCrG+?9Jg^gE7uzBhqXc{J$c8E#e*ReL=NNd%*7(0Y@O7k8x!Xwd4JvM@=A53HF$=jI -v`8`Z+eu}AQ{o;2+{Qiiag!tDZz76q#tGN*Imm~gq#D4(s|AzQ=h<^m}Px-~iy9?tk8NZLXtrb6A=Lb4mci8Mo0vMn!PIGYGWE7COu -gr6rao2A)WaY7#Wy1U7{t#){Dp{LhWK|O{-cQh4C23x`1=tbY2Ncb;-5nNW?%fFz%T_E3W4F5!0;F_> -;;C8fuT8CWnYg_*|*bFcJ?-vox4Y6=buv9_lH$q{5ZrPhWHZ@e>&plA^uXtUx)a=Mf}GR|5?P}jrfNU -|9!;w`o-5v4#XgS9OCyw{6UC66!EV|{JDsK8{%(3{KpZ07vdlHi+}mEKs^3V>FEo7`xysJrue|0nVB&mb3yN}J! -0XH07GPeK?@Lnf{7xhXD*2A+O>!9=QPImH-g9vAN~a~-MV(2GM)!W-~sv>DSo<{d`;xvt!wWolC-RAC -n!`&AJU5xue~1@gD?2l#tl7GMFff&9}gwv5b7o5j}mvH8lX>8 -3%Po9{b7^DlkL3$9cGR!8Q|AMiJQK6l5x@apXBob|z6Ht*_{Y}@7P8t;&sPB>i&-96?%gM><>8<_?7E -ClvP3;^KJO;+}1%y4r+?xJ^bP6&xH8LP1jr`Lmpt@$VR)69TDp*>0bmyrH(rpt`QP&vr$1fghRPKA?6H -afWQ9rui5?g-_IU+-~smV!w<7ZAAOY16`pzK89pC;;e{9YT;Z+SC)oX%Z*0R{Vej6(?2R|x;B$kMCq7 -~)PMlyTPo896ua})ZeVTp!)t7v3@ZERcu^)c;f!%XXWlzC=_5j;r#-2T6d-l7gZ&c^beNfMO^dB;C;NXFY(NTu0 -BVq5^Z@}Qe2pb*MH!&eGf%WQt&5*?2VTsWQ&^a=)Pp^Ihha`rF4e28tjK(3?BJw69$8Rq<>99LVQ9(zXYDYUU=wCWxsyh%2pc~8%LXPf%5HWn^fl)hQiaq{=Q;=h-Ce9co -5@{_On0Z(L@kB`Mtq1)&Gv?pV=fPdg;i2Oy9nJiK+CG%D+LOp`qwm_*Imo&Y!LTKu^KN1~iWUtDZoKH -{xf8C%)3~NY&r?```b54#u4qzx?vcPrvx$i_b9joH%pl%qhT+zWw&wFR?B?`TqOwKed1VeveM4OBgq9 -T%ycVti(ei6vT&rgnv}lG%$A=G-%KOK;l*BpBXoH-n@Ae#^8ZD?wxnuxf|Sv#QreZu*-+ud -T+MrTD`sgDS>u;6(kp~sy><5aXG$F4aA31X5!MeJ-)e|R99K}RAk;q7QCPX@j7An^;`I1=^VIfhG-V} -Dpk|m>BT3YBb#?VkBS(%T-o={D< -{^alAEp1BZ@y76m$_%afB~by!@EBJ{ByOow${hzLx&Ej@4ovkrxWGFX(w}IW25@sd+%{O?t9==E?l^ve*N{=-@NtKTRT7bsWhCV;1ub=0A)#2MOhyF8X&WO4pBma?+kvAg8Oz1yw;DBu1x>c0tqA|14 -VfG(>?BBoNOlaS?Z=cbXs;VmU7!23|{ASTL~c&o8?i`qkFgOz5}M^1{w5(G&Clc^Pn6^1+~dxC9HdAV<&`3J3enp2H*L2 -KmSCYR+Z|dO+#F_tOA|?jMLmE3I7=Lr0aH^r`^;$p=MRZ*%U)Y$W~aGsN0|V+r6=}2c^66JwJpYCpZs@3dC`8Y&EunB -A>vhQ&`_KFM1dEW<6;dFgZ@|K;lGJIctqqrFnsLjv&u}A)#v>Iea0r;xFev?ZMOw5FM%xHsw@#wcA104+gz7XlFH1+z}rO#k+^tl~2N -p0#4YLot3F|^teu&p|#g`z(^JiJE!)yL!KFX0FJi$AcuKp%K+F+jiCJ=wKzgshtsC95ZPlM=Cj{uvJRvglJH=2fGT`fgK4X*me0ouz!C>_n3|619No}^8%lsTnKYE6L(Kx -GSg2B#U9HDf?Vqt8a+F905?jpX&y2{!d#gN@iPM2n`PpW_Y&Y*OTbfPc0&=_ -bW+{nn6n$Gnrc8dkukG&_a!EWNK@NJA8(<9|&#jr8A -i&RYRDrJfxSf8I&n>0T)P720$ms!a@WX7l-GIc~xnUgh04u4c>Ft}rkc20~@7yWAQjr=P;h0qOM9H9x -i(Ff?ZJi*4h<750U7?JK2dhhxKp-GQw*vLFDVAUqtDo+;;d*{o)ImJ(q -m*nTCB`XiIX{s;R(esT`^2i42<9y<1Yt8+aKsxSupaia-9#BC!Tmh%F4v-Vhr`qeRVGX#`xd2JeQ6 -?!gKY%^B;Wh!9HneX>UR+`iKtX=H?mCdNRYpK|m$Xw)13KtH_i)vFhLkhN ->qn%Ik2X7=palAWDhgP}eg_3?y(P1=y#2z^!zA?!?DtL>DVZn{Z^3>hM;R;?2Ja%N_xOq -ei13JMC0UVr}i=f>_33x&c0-S`G<6|oTUDER;beSUX!mYn}p^9^ryjXv8LW3i*p^HdiaqJP`AZP#h6^ -Jhzc+qP{xjT|{LZN!KX->Drnd?+a?kp~`lK>GLZFHb%7lsxy`bFyH;0z(h^J@kSBUx1&mILKkZfIUSH -@rA6hXHHLfzZCk<$eSy(FUAj_n)i3yxN&2d>agg0l9Q7 -osuRNVd+)v1#0Y!$?ltlN?a&I3tXx@sfDhRt&mpdZ7w7{zZS-0B;MV80LHhjm<`u+&OB*9RojZ44uz2 -xeQwL#fN0%ipFHhp*2^pz^!X^@l}^7D;}7{!jDg&zI@br=K1)Xpp3&q?mozywb=L7|;uFLK`@Ou~37+4i^m^-`~q|i7%;$0blPIL<(6Ay;>3xD5BLmQ+p##H -7y50@m)w9O`hbq055fA5&vxe?tf00Z=Q@7`S!5)#bo@Bj> -Ug2Cp!DH}VciOOF!(4KRE1@6RWFkw{n|Teos5xh4Wf}eL(W8gN#>P -s!cI^xwc%O5EafFgBs~h%+9AOWTE9^16v-J(7iFR9K`xl0O#a+;;Q>Sp4~> -1SPc{A2f(Nxld@%3IOcg1d^1J}AFM<;}poShZF^LG -?f7QoAo}+IZp#^@Uvnr=1mPk!aHMUiC-S{_b4f1W}5IsOI;R$jA53tG -Zc!V1+Qm>f*l%o*`figaAXE6-5H)>6KfJLq1brRk9$8|~(V<1$%zyd&UW -;2ddY -#si{jf1`2v}uzpS+c~)v(;fHxNU8oxQXY;jO`z&%`9!&wCO)Wdky_=zvzx(+_6o4JYg0U6`AwF#pl5W -y~q}}6D*c?jZar!p}b#0KeVWR8TnWLop1B6`morVr|sXt8(xDCwkHSAutoF|=s|%6+I5X9u`~73@2>y -YT&g~v5Z@F3@SMIJ6WQYU`s=S7yUQM+ugE*}qX#OFE3YE$hJJVbQ|&}e{Ra&APU08rA98>{!gsRAymf3E#iG!w_u;ah^(s|UCG>uS(H)j3Mw* -u*(Db&k!Q<8{ulm2-@7j#HhZ1ddHO*8bj3nCA)x_xCh+W;0Jcu_E<8o%?m33Cb6FPDdrU9$434t(F@5 -MySv4la!S7pvL<>)#h^>Hn*J-bN{=?C8u2b^Rpt^M@4!a3iQ~h1=CZw{WX!n?}!}w(a=&K4PgCKvu4f -i)ZA{o>hxLcnZ}%_)!u%qcIoeGmp;+>yhLN$F&YE&9fsRj -%H76&O_Yf9`wrweG};S(JR|BmE)zj8S_0u(nLL!l!8dny7JZy!$>3_)iQBE%=|Ui&ISvjCwFNdAmOIFUJCXPx@^}9;*V -qHhMhBBRwj5o%9I@zGY6`XV=G%Yrda0Wy+K>?tZt8XE_pE`*M4jS|asa>WJ?3>AliF9uOptu}+VMULQ -Rs(f)TcA+Yo3(2c=6(RHy -x~voO5K*Z=Xnu9!4wQrgt1Q^&Y_uh2lmnIJn%;%;j8ybu}R$lCV2d^L83l8o9!~fkgV@$t`UJ*4-YU5TOsf*KJp*LZA -T+aGaM%-=Iy2mAt-QKRve`2!Pvu7tRTed77T_oQpJ_k3num>F9_a>XZA^j@qs_UHE_6n!JfKJdKp;wr -f)U##}7;YO)@768<=+clKmU9@y&>Xp=& -*UUy>AdY*bD3t?=k4#`X0Ne6QShMC2Jw=KQZ>?$&=G&&YYRbKFpmv*VsMmF1`=@k1Vhs$RcaIdrsdU{ -XmW%J)}AjB#$X^HNCR>*2kw%=b)y`9+O|GF4ol2gL`3?H}GQb{C;xss}JPF-ws`r#|anZacS;AmJjLw -_4?P?_2c8?zl@2AF?CmZ)5*!n^5m0Gn*0u$tSzv%68^9^KUIGs?-Y-fmuJM8djYIGmQ1=^)<2sr-+lF -&NFDJ{baZrw*x1-f;KNHo&eRx*FLsmjH<6`G$P_XNJO(a>mRYy4b;*pB_CmWvEhOQ)}aez^Mx@Bq8OdCwdOB#OIJ3YcIGjasB%B#hyT}(3oNDANFU -)j2UCN9yNJxoZ;mql}CUV;i_v)z%f^7kd -qEZ1TZ_2UlO_+Gc&$QCnl|e<(U^4E*AYFUs=e%T28q+eppH_7tyhZL>b>SpSPGf!D_1=$`FMLIW~JkA -wQt=FOY!eS%lIb`Ac<)IhN_*gp7NQBi^X9oM~>?FrORu5|ESlNMJv(XWQ=Tb<*4tGt*aO=^Ajmf6sEc -HQ6ItvSyVn8Cllav9&-4Xcw*^@pwMdQauC$BGpzHk6cu3Jp^?G|36&39$FE2Ozv_1?zt4<$spHDw+_wL=)SdLJ!G}kyoGQApJiL+y@n-@%7T9=2Dy -O`Fs|cCWf=|jMXV@*^qAoITP{e`x@5V@kXuq*nz}gxNA|Gw$SJ&h=%I(qo?@rr<>6OLWc~De%>AF -sbMBQlUn%AMjrRN1NNz3dOo -|Tc-C3E=bq}0UBwyDX(Gsb0(8#$rv@NubK5;IfVW#1MamYSHBJTfWM{_n(Znvju| -Y5vP&Bd^vWaGsu-nKV2rBYDCk=efR;ku*L_S4kStFC#fSIVEXSQfAGY?zivC(Np=Cl6{l1lTyM`_}eW -!F|&7C_PDW08R21B$#KK^*Mi-`M<%9ZCWS{wwXfski;K6fd-bUHwP=lMUjtg7N42;68Qm|gUtG_gz3; -y#A;Ed@`}3>!od3H`QTs?qb;-$+vn4IOExoh6^So=ywv_EFt17E5J6m>bdCT%P<&ovR$`i^*m*hiPY{IFxCUL&k1qNu2JO=(5xmeO6N`${WIt4fcQR+omAMd;bFdVW8>!ce_Nx?Uwuu -QN}tRHWCc(5vmz>s9I%kLWc|a#i28z81cgzA#@KUxY8x7whZg>*q`G4fT!orTcPxdA>!yBHtQcg>Q>* -mv5i1(pTj>;;Z(Z^quv2{MY(h_*?qJ{B8UZ{z!kUzn8zCKfyoLKiZ$}&++H^XZh#(7x|0)Yy1`dE&g5 -pef~;+mH&vp+OI%jo0$Jcmr#^bw5VuHQB_gP;)vqN;@IL|#r=vCiiehrE~zT9JLd6T>t)x%yluRZ-dJ -xhZ$EE>cc^!?H(mE}k+-hs<@fRX`2QdO2T)4`1QY-O00;mMXE##h6S^E|CjbDrpa1|I0001RX>c!Jc4 -cm4Z*nhWX>)XJX<{#TXk}$=E^vA6efx9UMw0OF`YVuVT>xzgeylgUr&{Gc*_IQ1=Z8v?liiiIFh~w1L -?nO$K+*Kw{qNV0c>)8Hl9Ro=xn4a^4uWS-p8kFh{`q6@Qq7L%YUg63KTC#&YV$b++D+APyb1h0!lK1rJleuEF -93Q}knsxXbSjtRS7W{d4sUdgb3aozdU+(b`&?Cn;^|6!OQpW&QFhDd^mr9dWJtjxt(cM%!4GEE}B -Ipk|fCHWl=Q%KZCA_WR^9eN@w-Xj(jmnYw_K4^$p96YxNCq6HPW3`g>M4izb`ZG5*UsBbG>rxEkgM&V1wU -m5LKp`0YQqN-sCl4KaXf(`jksxVE}9g}tFqBs`NJ@Hdvt#I>hSz9d42rm=-uJlqhav#k4HyulJ1M -0!2i5C`r+{9U%M3svUQ}VZW+7xzJw_Q6LN^N6R6cBI26O+<=IcCB87QNAAhcJYQe{Jd@a09l`_(y(@Bo=Z%WIJbxeyaEfps&**_<{_6~Rmx24T4>S9%g<` -LqZJ`&hfI(yMv8ALIql4c-$;j^CanC#OfRkN*NKg=HD;h#5cxNO3t!nkF1(IfIYvmy5SVqIXr#&BfNKc8}&sIFdD>_fG=Yag?k~4coJ -H_#PSz_^x}9eJQz&b;V0GGN5Pn#axPgcpRqZc232rZZzZk(2-$R|-a0d%$k_w(`jkIBhj-yXhs^Zw;}nDcF60*W8r9 -lw14>L@uo{@YPFz={8S9q5Gxx)QKq=0O<7zZ6*>QNe*V1`b^%wP*IPJ3ESzCZ|VGp%S!j0RN1tFbsF1 -e?9qgKL7sW?|YYz20MHB^)~~}lRII`CG_=k7zPmf+6o*f1Mf!|>cym)^GY=4K4hOcMG@8A7;$Zyl~*^fsr4&VLIX>?SDAM1 -y^-(39tWA!n=d-deY#@{2V6McK}_iryBefu9D&mIj1AL~a^{BZC)3&P1?&wqUX4yupB-E -Vj`g{_xAJ8zdEvHhZsYf%zAeH`+)_B6{U$-I~>W(xP|Vm4#?Avy;rLRj5^##DhdZC0XQ%o^EILjpaOI_0pHHvi(62Gv=S_Mo -~3KiFcqN-u_{#D%JPxdvss0o?!B6TV6_kdu!|&Las9ICY+mW&-snq`etc8fz8|bie#4!^DY+7?Ty0%E -plyGBe1!FFqh~k{|$4fmYQTBz)8kt6;=cU4pj70>aZln;tWvHksi2;HifQs?9PT-=I!~jZ%e+CzpMro -?I8j4U|(H#PF1#alyD8<=bz+rN1w!0FZXH$Yv7~OEOkY0+PI`Dk?Lg4x*Ezli>NYKMrCIfM%6F5!BGRgSzo8m{_tIB=BLBbNM#a8JX%38GTBvr@EX)r_zb|a>59Kub652OpJM=(fl>goC(XG -N`B(&t8f1RZt)p9bHyP+gVlNPy4cIUaGW==1xGom6Ny5lL3I5=gAv)fY!U0>S^Qv6&?-wMoUb-(qh#( -0qhrWmHch&fsUZ(k~{SK5QT3H9ULxEH@UQQxMW>OsvvYMENJKG3`1Q1RZ^Z6?5zBfY~K8c@t3M9G_$* -I-%HEdyyOw5%%;(6MPuOn5tvux(wm4aFT0Gh{FRRNn#Hik794m!o`Zj#~<=5vdZ>e&rW1;T53~8U$t4Ppb6TeXAqVU|^w#cqLWRwK@Svh?VI6jo7=HY^Ym11Kj%xfH$u~WtX%CTibO?i -Ab>{ZYz^|TfifeH>(6KLLy|?wC%e+hi&bFz*432B0m0N?V{6A$lvg9x(Y+D|-+4&2-smZ-EH8Y>KH(c -bPKW4?E4p5l@{+NS~=mm!Qr%gL|;@EtD5A6_6*)@F7zhNk<0|i(oHDh6D$aHp#z;9LorfaJN{Ah~o29 -iYudjXmuf+R?5pwlMSXXctc^}4o_j*k7H-a~WFp85~Sf?W0V~gRkUd`sU6VEQEuviooYC8>2!v0dy(&;^%g& -Ou#y6Q%<7YvfOIym7&^4!4})xo{D6Ul~bRlM|*16v(1uofO8}Oo2$iW&)XwwEYwyYb>U@&HXtm^9uE| -oDzasRu7R!|Yu3_|ke2?)D9T|K4se}(nYsjJQCOSs<>EkNmHQ_8GId$u@)ioaWiCPzzW1a#+h&R#odO -AIN#M<*1avR5yos^_O$3@N%iET2v#SI|UH8vYdhgDY-C#5ph-gHU`k`#k~6DzU}_(7DQ(zaCx6h-@*Wm)v6bhZ%E;-I8Z -T9B{{iE+AsBE~gWZzGt7^Q^APfjk4vT%cwx%@w#e@@T^J7S+IDvkM>J|+wxm|ihHJq|a+>uotc}9DU4m7UhREW{S8;!z`RZCTzP1_~%utOOD -^XK3RnhoI7_fW^P^9uBd2ULFx%AlD5XXUus2au0~XP4*!Lj0h`NM{TV}xh3?=v7-aUc -XaNM~0?1*~?ij6$CFG;d`rncD#azY=v5d5Uq|RJ^EWbvhNv=)314$4x5Y5`(zHu$~g8=|Ko^C^{$#(| -Vj`U5!}dGwkr|C5F``71XbkvyQ*i>Vu5NL4>R!l!egm2n34c*8#B7d3qx#(yUw!ahI7d(Aa6ltwilXx --BEMr&VG`RN7Jo}CGu|BLU-|Sy_o+L%Lx7-_-R;6BH~^? -1lo*9PC;E4{rHGT?WN*{;i4!Xadk^@!jHN{|4et+itDpXfnX(e)4`@C3?cnUctYw{BNh}qTuyR~X^iq -xYd_{$&C=e1469KR1u+SCtH-C#zStrTl*C`6vh65yX8`ty8ygaYfgBVy%^ZozkTpC#dinnJm9%N5uR% -l<`_&q^`QrWx>V*#O#Z7d1Fs0AbP_IoFVfnW?dSiknh_u=0MywQH -h-bEj=B+dR6qT^m#wm;xoF@=rvIzwY}t%Ep#N9 -@S}1+y9{{styA6o^7X5~lw(sqHm>tj8c2HFZ1e4?}XGmIU3y*f2gm%NMSxO&aW(*hJ|TTw{?3s<1)cZ -!E8hqQNbzs)vRnLG5KayXmW^>Pll@)(M+&P{lo228+8p6E{802WzZt_MWLEvXVJ*f2}pUp_))bq&&!z -<(kIVZ;pMn^_5A#? -vXuuW5v*uE7IAP`*DxjNh}cL3Q<&+XR>mSmbWy^@Z5)=o$cx3*wOPMR!UL<6)}LIZvUj|Y*16hkBc%- -ig^%Bzogcn=b99Pd&VD>RJ))nbCBIAf{w>YSIPbQ$m73X^;6u$3h_Gdipc-hhv}xDk -ihUozF|b*igUfz21?VW(cE}8Gl~f!-8urhUMXKm9F&qZfeWVa*w@qu+^T60zEIznvre!?F*yD%}G}v! -}-Pl_s*)Ym3Gs%NT2f@=P@U#p|WG9Vs*Iv<9T?pSvM@yBYZ#rpwgQVgcB?vyy5_?{pCPi1Ey}Me6RM44_64LLI@hX-ew9PgM68j0tIx7!*+ -*$yR5@cPLa8jl`M8qSA^^}jbzmD|UP;>xS!zg@O|^}SrZucQioC{65@DC>SSANxXO?dXd;&W-Ix9QXqHW*+5*-;SN8;)S1-hk5W+=C( -wc-Trwyo+SLyE+B1l&+>*D7$`G-bX2`0*7KT#WEY)Z=nhrjLoUKF&bG5cT6{|ML9KRsQtHt*exa*$gW -Diw8j!c*!%s7U~|OVDVTkyjc{=Q{ejDus)P7zM<=@a -~c4gAw5*nZ7wQ00fHV3-M*24jGZCsKw|DO+aH8oU|Pk#3#>&C)moC>jfy$s`-6jj~WOa$3wlQzeLcwM -q|wQ%)Dtp!7Lt+C*sT4#|i~Y%0URP2e!&N|b3nUa4ZTmKE1}j%|%$nT_y-1WTYa?zGP#IRH)CW!TS#z -Y67Kv*1`X1SXcC3P)57&Z`ArhTjPTX$pNTO`KAKg??IQD|sY-sJkw$M!>Jwc)*@ZdTsVFE#TR}P_RYD -+lbs5=h3PmNtGNOVv=MW=R;W-Y`kS%4NukMp+<%TltHsJ_G6FSjOY%-2pxxs5*$81#PA1%Q_q1Gy=eg^Kr$AQc!jeXG<7PPkRDQ%Ugu*x*EwHVt4K6G*1^fK5gl-=eZG+zTn4gSq7pt>LCFA9(Ah?9jpdB?Ur>nTk3E~aW?E-@;EqM4~urRZ4>L%sVkjsmo9F` -_ir7grmotv#G1&xVYMpgfwQGVHO|-h!Dvbqc<%PQ6?EuBe=&SeC4-`ErOeZzi}I4oy4|HoUQR!Em!t6 -#v`;6|LiN_MmT;>M@8la>Qr-dv;6TtJEV)>k{jExk4VNf*Hwa=e~ -*L26iC-cGq1|#!O(SiJK@l1XBM}keF2!v)L#e-%u#B%q3&P7>%JKN-cP}8nlWgVZBic9t7`IvA~1Sxw -wMu>Q;aZ`=+=Rv(+~)umU)tv=ClgQbn9f(hh-eQDJJ)1WPd0iF#1tv5MuBju2bR!e?1jH@uQmvZZ)_G -r`X-CkxO)G(iJfus}Ps&!E4Hbdv5=OiYl>(nUUo5hW2+o&jccsZ~!(OK)U(OHN;~JXSZbcAQEqlhnnc -8Vk97%D#AtG1{_NC(Pd)$B(4^Lb55WT;LS=k-`Of?AB5>0{B$Rf1Xo4Fn_XIP5VezwGvOQ@jfgP(~|t -;E!!WV*aJlexU~<@v=HYr)W$ZTL9Ic$*Qk#Va>oPB*)%vm6C{_^^5WSgJC2$vGUQGuJ_&a|F4B)rU)U -jqNX@gFLU(Bj-09>hJ|WA8hAQj2@pKK2981W;`hhI1?xyhAbYKJ@X=5L4bh9Qy6M@!^I~ -xXWWSpn>vNntr^>95}eZwVzeBFTIBL__nS>KpxWrhNp)DYY0pCYxN4)t!_=jp=74f0ap_t`#%Hiiede -Quac_^e%FS)IsT;UI{-Xqz2px%<@`60+Cc#Q6!f;PDb-J?ghJCQ%rJ-hx&?+;1e&3q_2Vu#)3*M{ -(jx)BbW`I+y@3?#87l}jBF)*A?Kt@3b*sU!V|3(sw3eZ*ZEc9LSUVNg5JTCo9Wt1y*UQMr|EOlzngeO -~WlB;qLxCn?xjPz7hpHDF$6Wi5HdfH08OR_Y}=05#P6Y*EwP;{0gv -ru-WY*I&=`@j+e7XHk_pSpTtRs{AW&1qzuSu>+q88nNt-v)r(8A$#=4NjK=p#t#vxwb2~^jn>gZb_ta -01VpFtqCuY&rh5}QD^I<}9!KfaCU%uh9ZP=oQ@KwVWxoMRqo_LfXohIF_9@r+^v}oLKnC3iM;BE4yZZ+&+1j$azP6B8WtM6{|DjJ+MG5NQ0TUO2;dWG -eJ_quT709&U+>hJ{$KvhjWOs-(XEk) -LGPb$wI^v4DQrmauiTOl?B+GzBlt7O?W%890ya&7ttT8lGIR*{dy-N1+2gr+@3(1fwYWW<@%b8B6B6s -_Jyf0B9@agH--)bOHdGxJyiQm0hI>V2Pg}bIC0q#jIENn{8ADA8kvPm(R+S;I*J*wwD6A?;IZPRW3;@{mE-^))DSlLRwa(x65%jMVGJR}ZWPPh`4!ItHl?ByWZDI{i0@>e -xpL2&$EBp&n`ik!%}Y-r3~S+f|(at9FO6v;Ftp&|*JQ3=qZ)E4ySHtbEyDRqTWekMJ0uX?xjm>*N60B -m41fP;oVHDj}3T$%-jXXm?nld4iIBwX=C$&5BVvcDgA7;LefH$(^CzxGPxnK$n1XvpQZyKn-#Vl|?9q#Guz5~kaA5!aIWEc7JxFwsQ$#sl^m{p -Hm_9C5jad7?E*q!`XXrOX9R20|=p800KeG=!-64&r&KzWAlDT7eqF3FyvpsaHCBEgtu=qMLhPc-C=nB0C>>5b~s-U=lM{(^6ezO~%NtPa1IzQ@ONw -Qh&nXrGY+eLX}n(KAuHrAiUw|gzqA7djML@&U(O2>^1ZR^(@*J|rT5ws)Xor2se%(Kt!!^dP!mkn-PU -ENL?>kk-Eiyr{$yo_|&4eAe{#{NPMOv>=6=(ygpKz{ZwI?%WRwsPXVm6wsP3dk9i)B-N#3$qI?OasWsA4WYs@Ffjt5Lfg|)gv2Q*_zDaI{ZA24)gr{Dh%@O!Z`W4Hk+Xn -vknH#}f;iG`~9)%a+#%d3{U*)d#S8eo&o_~fU|ixXOxW$B9ETbFp`J#z9&4Y*WdyxVP0a#K|o1bmp&( -GwpwRK0V1S6fi*97E{4u1mh=`;AocA-sf2VDOhWy@*0p7g2pBAYGnEKgW0_ni0gjmzFJZv$lTA)uaJh -{oP`&SoxE-oF{rf<#lZS(QM6JCYN&^TXzh&&?c~m@mApU47kteODyE*>(S)%!~YXhmVci4`sbOif83d -`-QfKFtM~deF)f3Ptz`eFk3rq#=*HH^Htu<3W1Hg|{VLaej%n~c^Lz|^_vzC=><4u*mnYEc;F>Zx#qv -x!a3Gm*gc727U|C1h36B`+Qe;e$%+oASk~l6`!8gGfAJ6B=*{tjS-VOK?Q97fJ7b(yvX+*3HC>WXH+( -W9Kp1AKW1t?ERO!-NAjKF^hR}WeSGHYkIwu?$7VJknb~k$= -AK7o?iGf(Rh;$xkH_5QXv}YVEXI2zhGb{H44Bo@c`-rHZp9`A-27!8;SJe6J`fOQ88ERa8B$?s+j#zy -;svsCuuNAmB~DO{$>V_gh+hSJL>K%WnDp8k3KB2TyR&E?j`6Ls0P}V-`un_=N$1ysw5)_#seR*vPDrQ{=6mUoUc8G -^Djc6;Dx=FrM4~1%L9}qBKgbDhLIn4+NRM*9XQfC-FL>j$h0xn?T9b9zsmXr>d78QPDW-GO;SR%L?ZfKRm{`r_OCy>T4&rhG!Y~_R*R+1RX)+LtqNV4@uo&DhW( -!D*C^NTALRd$6gEmH%1Y$|<;n*pRXksb38${CH>EENfdoS};BKdl5Xa%30?PqZ4hYUYPFQB|3~gdg&f -2`NyL;0?QcX}PmqW@JQGnTxa&yvk{|ftNg%D%4$+6@0oGg%P7JPc#jk{M!$E$M0Uhr#yVJH6O^e;ADS -Pfo?`(xBL3)EUa)qmS?3Lwghp`z@pMBU`dz$Jn(u5oRTf-t2wgmiRN1>S;aY%e*!KYscR=0AKLR7OtL`mHwsEaIk6g=IxZyW6kLBOlG_nux-g1RjbR# -B<4o&D@Cu6uJ`CrDbh9>-UPd#&%*wI_0XdW`X|$>=2q*fH|3R&qLMGRyEFBBd{S{`|>clL!#1>HGjQu -Y0FOrsk)|966u(*MX;?b;GR$*XVZA1_sr8^snr_t-IbH -CQ?c>sRkMACEw||x&e*9VihRZ8zVAQMcBg~UT68cPxnyVUq%EgnE+{>$mE_M2DpIng$;Xrg2b)B-Rx7 -VbDUh@fpkTbj?25K@=(Z_;rTYM70jm|Q-nI7!Rn3=J{H#Dx6;&TrUM84-RmjBI@;VtKsCNL!gq?{a6W -x&x63Z4S(lw&?kFaRkgzs7HyTRdPf+62>2X=4WhTdVC(rmht{qD&H&=UQ;-SwIKUV-v55th!WX&77;z -Q)kTAoU-AJe+!_6FMU<>1-tkswqJbpU^o7>F)1)9X96ho&#RddrW}6`+-8!!`h_{YkE8@Y7tF6rk8#m -?2R%~B+C -`FzVjK#SQ?I@L1AnW3{bUfec8+L&xOx(G7IHp;Et7OmJrhRXP(GkA -9c=IntG&4=zi24i62DyoBJux^mVP1!#8Q{fLbmOZPS6#GOJootvA -~4F@3m{r*qi(LHMA*movY0@8$>rtP!Bz0ly#=RbXyeD{1yxW8Wq7ytsGyMn}mn~~ifBwBB0cK`{WxQZ -bOcVvsU7I}sXIc>MMyv961JpSJw_^dp{J;=)dI7zTQY*e0bR{xRe>YI!NrB|t`ab4mZ-w)_GzYMD)vu -y8X%*#$Q1CP0Yy10jCA$qqPye;ZR8HUHe_=-iP;{LTnhFk(gM+C2#8Qx2W{tI9Uh7j~ZjvOQ75~&rXs -kmr#{PrX{IXwb)tt}2UFz&&?z3D^Z%pzc35MqzH!HGbSA|J2#&I<$4dZm%ihIVptbJdb++qqYDYm^aP -W{dC_Zvb?oq%vfAPwq_+Nso2|k|sb6yAD!Djm2-%|FB$zzeUd-xIKO5`Xo=(qEYu4@9gZneE;_3@cj7 -2o1^6X@P{)#=;}%(D6GudKku*z;|7CDhlIX0R1!s}0@LOaS&#x@?5k8sH#y+nxzKb -YEXCaCs$G?ZkS5w(vB3uSt|c>ot~DKRejUTSf>=@F75_-d3wfz`j)xpF9cRtM{c)#D0shL!ZwzR!VBu+L3>KC4`Ew2?En9~yP>d5ZuZRbqE`I_^yQn1DQ?^v7P` -|r%=(~8A;uW~08mQ<1QY-O00;mMXE#!>iZ5l(0RRBY0{{Re0001RX>c!Jc4cm4Z*nhWX>)XJX<{#5Vq -s%zaBp&SFKuaaV=i!ceN(}1+b|5h>nn%^g`F)iww{IpIjlhj1Q^nxNl(Kd$TFR1QzS#8xA^ZT*-`7J* -mMz1@;yC1$x~RoTY$8cGKV{8sa|}F88&58SlOm?>To2;S2MW%@bMP*M}%)39j$?#t?7?&2w!Y#DnZJc -B7k;?@O86VZ+Gj0&IH0#uzJ|;A2;_;`-jI}Ool!-nN045{MA@T9%}1AnM(auRVy?|ExbqHW9!z)$nA@ -OU`(AN0<2Gw?>u9i3#~baC4A4MkVoXTvnTFt>m+7#2uZC)sr$J0Xu`ml{a}od>+TqY6#)=9;llfdhT& -OaL$K-VYv-&RkQLT%yYr^wwbD2b<+432Iq!GQX9FlM4E8LCdOvC=GYCdxHhXSyNUbw)A%pi3Ggh7E3O -p%HI=AA4BbEJp(rS%^ooUWhf{kVwGPx~(j?`YHD6fnsVPs#QKjUYw%)D3}WLaONucYiVkyB+$cx7Vh% -j2vj$RC}q>hZ~`VGdhs~>$!D|CIUcXrgz^act{Fzo -CwOkcJq+sOod*GPFqYuPPvGVi_IgoZd2y)VJnrFLvA@Vm4mb3~)*TjiUg! ->v*G7yaYr~K1UIc*}l1*x&;S4hm%kg132=x$*d(XBx~jU~T|KAf@i&jns#@pe_L=G0&E -x;TUrtU>PR)yIf2i~Ab!(CrGjsOj>6!U(ZOz+5dtH_0eYI(Cv)Yla*`p;>`~q-o5_)#}9Aby~iJ6+{t7z`Pk+~-X6@RD_1zZF`KFeT=oY*h9+k9>N@{~-!^$+8~SaX -*LKxb^})2YwM}|*^3zX05n>+BwFSJ^RXJ@5oN3`{ZJVmAR~8q!F|betzt(1F+YGSJ43PBaYz5!|vy+p -2x3B8fRE>UW4*p}CwI`dp+QH*=pS9OU9%Rb~zv{S6xy#zs^+{VFo}C!@qdBXpC@kZdX3Le%eUTMKwk+ -(4{k*dK*1V>lU)FV1k53*Eq0{R7+qEvUwe9}4%yvg1>HvWCLsbqyZR>piYFpm}iUv4Piv@6Kv4HOv6O;zzM78|eWNzG7{ -k*Hz?lbPPe%AlbCUaUt{^&Q9LVUifKGFa6PJbb!@WcDPUFBKv3RaTeA}B9E+m#!;%Wmv~<(_~5Ir?=0 -k_!^m^rqK#n>Vekd&6*YR~~&Bfxtz&a-Xek{2Bq^=uvNKutaYdKBFH3YVvJa)ph||0u#z+a(QyHDzc_ -AM1S(K{FK*Kxw9qj=!~~?4xN*J6)1hTM?nL4FgP;}qd|5_=4J+@4xaDxy`7N}5z=&fABbuOSnPIa>Q+@(tZDV7H5R~huz -mpfoz2$23UVnH)tXgS3fvliL@;qT>w~~0B?JB(L$#LS0Vi*Bu!v}Jo%N=vNDvDIZiLLs!KiPtyl4mmu -k}B|{#3UOA)%W718_Ic^KgjM^|jrYK*y6!Q?KS`vu@hCDQvlIug{-;`_0oQXaDXAA`d|>fNTv;eO%-> -)&KyowFY6J;0zxCSi~FQfV_YpJbmVLW7%y0E1a7mhZA0X=AP#p-q>#QEYv5ngwZ$d7hEE}t@G9hZEyH(a$_k(y}L~b@S=jRa)_s&9UX0 -up=`uv5>eh~|ch(;g?`5pU1WT5(pxtm-)YOY8z_yYtjs5eABxh3<+co;M09kORrn!Gd@`snhGEo@p4L -m(F2S+Xe~wqvIT?W@^UFdHSl0GcaMRg_r!85B1fP3GBwg-z}Q!vO8a>kI>=s%vH6LkrscH_%zFZfx5C -LH1L=g1|0KXAvCWEE18vU%Y<*>h-HP38+TXF3@Ms;uSrg2i}5No;Q)TMm{5JSd-Cwfi)|c^V51cotdm -5RrbsHQDj@Dw>k>G#>kADqd?M-fMb$|&&)D!n>)nK>o(xAx`rvCPDlHXs^Ojx>~qJ{Kfn3@Wyn%D4ki -;+rj(yKFlS%Ag=ZHjE$%#KkwPQXKu@AIa^gSaS7KC|i$~NOMf3K$2M6#Li3bHLR1V*cbC{p1<(N-}qFe?UL -PrbtqUVJ66}CRxc$K!L-l0V9ARq`nn^Y}Xt6_s*7(=tF$JEvn_?racrCP0%2kLF=HurA5HtfVvdjn%! -=rtfOG7k3Ppw$dV>tBad1y=yyytFMSLL>L;_&Yb&6hE{5|{`?ZXA?IqZtOylKuUV4DkS=NMqmY5YP9E$1ZI^H||!nRQlf0nBz0gA4KqNN4H>auEnFC -YF8oJ+NW)#jK1u{{JysU?v?Po6=T1HeFH08)dcnG*$r -5m`lWAXrgi$Y&vtw(cykY*`ig%J9P+1=+Iq;+hlEgB7T*K=mFUA5n=Dz60H56>f2<4Q~gITva6q2pGt -U@#E^)9+bCbab6zW8U%sYL4gNW=XRYcWt6|_#3fhCgh&ec$|=Ws#9HE?V=HhDEEd|H^%^D%5z0r4Y<5 -h}OUVI+{T>MDAx^WLk27%~4Ewr*7*Mz2f2xkG0!VngAIF4^_Xik(`-3L%P<0&LWo3)MH$XSqi1r#d># -#{7jcjxJnec*V;2c55jNNQ7<*S$um$UFdt~5%8fMOL!Baq-8#;_IJ4zqPOSu3gG(Y9-IJ9(nHL~N8$vm?03{@2hof5mLinW0#LRBT~by#06#MV$n8n;$$P-s{9VdKzfQuF -%*I=T!@(_A7I+5$vkZk8RE@L85Nk(U;6Z+yzyz~*MaSZfk0lTfe+sd(Ved$Ean%Rq=+gr95VfXE<|(E -%NIxcog7H?~_*I@+Iv9#hgjKmkjyfC5F;GMkN>aPell3XR&>^N@si+vtJ6D3HQK+dcYgg6U3=19iz!N0*)#t2i9;}&ZWg*YwJWQs!?E;OI9CUd0%Ju6i^$JYu>i0;M -_PTFD+@gLvqF#L;P`Y=!fz+UXvUvzBiPR)-2frDZUsZ&?_$~pxj?O|`5QA8iYfm5(H5Hb_PWf3eZ@By -GW6Gt^zOfkGv5D$UK=1QH13RVPc8>JdcSx-nyd@BY`;fvWBUaeJj -|L&UJx09k<=_$|5%LxfsrpZfy3T_t{o=1awvc`wWdXQ_f6$W<(iz^Lfuy_W52P*>N*OV7yK -8JZs%#d7T((zg>Ka-S|&+sJG6Vt#0G${fe;CIT3#&epr1;w|=vYOYM7%nmwywO};4u_!jfn(NSYX`&PrmT*9G{axb)I?79s!Rz=X87y-*)i(cMgh -1k1oV%MZGq?^q!LLoSx&xe}~ef0!dhKaMX7D!bZVnbHI(}G07|)vQe2rxe^Jfa0`Fr3^qz(TpBnmnnZ -AedWm&AkbHw0-IH`Dt!#(m)gKOqYi0vQ9(r>8JWw{524N{x#1D_!P^!S_E_2A(AjN3F1TMR+Ieq%=xB -od@UJXMsdBLZJC|{x*ata#ev6C^Q5>!Wp+8F=2$X~p(u|4ND4l&3UlA}Ni%ym`WXguF5h(sZ#L~s!|N -5W5HXGjM;vquSWs&Sl%J3_`yR}^C*ov$$65z|Ql9FgFo9RW7e8hGE!3<(LqJP9Stow9uY`du<|ydu_7 -SL|6xXBz`QH!#`*a)_~NUpz6frN4`i-p;6@@<@(tPK1UUv|lL$H0PKE$bqdZq6XS}YMvYS`^Ktn -moQH294Z%jEI^VNRZ9yYB@GUYt-Gy!1*A`|=z3UWm&aS~gCM#~ULxXKFoXTenYR_&DD3`6)Sj6a~E}? -)1HX=G~9Tb7-TTOU5MQ-d~4^CO++e>h=?iGbQH)BM4W-=@ZbjIE) -8v9b=d7O~EU5DqA|C*TfgwsrRk9|DU^Nz))8?z@PX6Get~RhwHHrzvx)3tj9dV>I4xCg5SWMpdzy!}J -T#-fhD58)n5(tVo$`GEzW&=$XRVK09Wl4>DmRk7IH02Rs;;~+DcAwG})?RLLLvfkX*%0*(JtR -X+nw$KfEbJb5RbK{!|<$b -8AL!S_Bd|ybrMuU$TdkN*ub+n*WU3~QXHZC}dq>m -KvVN3;3n)Au_OTM4X4LFx&)!6eVphop!QFkSL9GDf*!&?X*L<>aBGvfYd`2OidVas(w+!pp!(<@;IEKehuHN?e1FM`P8$H1*&329_) -a)_O`r`6QRY5&0zVm1WBHr-^7S+G^OIjDDbGt3l=f|E1HNSZPUb-5rYLbJdm#-em_Y|*4x2rTz<@Rff -gF6JSSeg&=5~JM>>~gZ$F^*R#%(A5@$-}t+{p^96YA?Dyf6^L3_+4(XNx#!WOHY3(PR-N2c9xuHpV9p -z%#^g`oaML?Uz-ivIO`xV50MZWKkIPt$%_+16dfE#4Xr7g&qQ6DxF4rL;y#bC^J%C1^yj>Dx%`eo51c -K0-I^;j==7;@Ps7youdqjAR8kvR*?ExJ>wPfLNvwQV`USS&Vm{h3$Sd#!tiaOcG`P+IR{WrA2v5}!!s6Ffp@po^_<*TyXW#Vuf -z3JOmvme0^E}UYjYm~mMJHXYc@o2@ZTTvcOFC$!5WmkYx6=1Snkr;_xiiLoH8~Cg8bW3r_h&S)J8ui7 -ZZ+wJT85{DL*eg&*c9o!W$yymtwwRasy78J1_`YQ0^{ouEBw{w-&8nE5^Hd5VeL;ITQ?we&U~STn?cu3umUwu9*3z -BZ(Im=0K)hmsoJuI%7X%RJ4&dvzi|=2)`qOjBX9A4yPfj)XoI|vtnY(<8dTv4TZnNUXZN^9uFg(3 -;bH{svsLts%5igoijV!LUDoUiA!xkuEs4rrY86P?0?QvP|2r_Jcesu)=ed5#qi^M4qp2^r+h|O5k75l -2i^LH=)@cJ(=7q8yD`}6Y;?=f%X(!%x&CPU9m64hYl<{}AmHO_Homvb&$OtI*Y)sM+X%;r+{co-y3WC -;|19D~J>%ssHkdtTDbXJ4gpWd{e0({l$*#2J9$RCHY7Xh`6XB=3D5UI@jQlRuQ^do^#2Cmd>w+)Pi#3 -ai>)8}xbcXwokKiU+Jh;6o8<32|3Ff_{-i`l4*Js`I^XRa5t>i=P8ec&OfCzBs#_IgR%} -Yx8>W*XMi+%C`gRFT)km2B=MSy#@HHUcyd;No=cMJg -U#j>N}H8<5NW@4Ar66akZq5Tg?Am=s5C*j^S<8=KYOnd?On&l$AQ`AyfidJJw3e>m)=k~PH$`%$B}(Z -!l8S1|F8do_p4d8FnhA@0vfTW5Ez8c3s3Z -0z`P98H>dnSfd`sn*M!sC^-EsiWDO%%Z!K*9`8rM9lB7Q+>>1{%G{ -SD)PtO?!~;ebpgEU{(0F7u%FVJWRW?TFcyFS~q5E@-Tm%n_XUZXt54L;A6TNzLASduB`r@neuZ7G`4W -h44ph}j8q~fT*RM{OJo(r44a~hiDIg(oc3EpA{#_5r@|Q5w~%c52N>U(+@@IVX%G8+MJ0;WH6~|tIvl -LDv>WPn2x^-loHRVH8QkfS?o3#Q4mraYBtc@%t(b^M03xIUQy?nF+fDu%iNH+Wy;_N-GiVo-D_sF*o( -wwr@vAH=h<+t~<^-#X4r_v*nWLF;C|q|OG`VY=^a>Kk$1E)HMz>njVKsLhAH~+Z$v|~iw`&gQ!4JUa# -FfRve$Tib%ehH76Tgbmrdv96VeSbn4{U_b -JniOI9NW)RSq{Qm`2@ixQwu-w2RV_7GH}*m?)^OvNX;OLrD9!a!dzLQ2Lff8T -t=0L4M~Yv%V#_5-E+4hdgoD{8qDAy+jUG^((4`o~ca?UG2BhQ#l#`id;Xy_o1LvyL#DbuOzPA_z`LvJ -eqD`S5R1D#AVS!!+dM4{x8p_~Sp6g)Hc$JIX;R-X|dqW5G`l8{l-jIFix3*&3JDNYq{mZ$TK8_ETwZ# -Xtx4qsHR5+_BNI)R^x9al-)J)D^tM6ma!_;n77S^ovv5hiXBjb1YA;q`5sOOKDv$)dy4<$7rU7C? -DD>tA{ -7=g0xTGKMbx|L)2!`b?O*D&An$KZ>M+&q~~IC^~fg+)V1tVMZFB@-dz_sbxNugtgj+m`Q5tum#ri8UD -Q9XjPR8foae?S(Pg~%&5k_VAom^WVW>6OMBB(M1gA3LHBGiwsecPgF^;D=FhI1cDZ=3lBP^E#jF}a;1&Qx-Op@jGV6dqId6HP5Q-oSo~%vf4N+q3iiS)J+bxYBE;-f8yrmFD|1<6G3mb2 -p;suESHbYBNTU9clP>ii`kKkF_4Y;H(o%!B?IFh*&O=un>LSk{1x?GlW^cq`>; -}1$)9{bpnMHfeFV~E=W_a|4Z{nl|CB{Zx*Ebk8dMS@Lq=m*pn -ywybEMWBSuoY_ih5lQ9Ir}=>0h6oc-}*gYG1tYI=!g$leUC+n*b-@aaDYY$+Sq|wWCV^NoCKb$h;wT43Bh-Nl^}iz_PEYU@ttYy72idReLU ->~ey77D8AfkxsNrM7#a#q94Y|-9fMQ49Xo|kRr#t_)s_8|~KF)GC2L*j1_Uczv^MeY$c~iR=6LIYz&W -0(!8ekZ21_$kclq9|f| -xpSSb6eQ0)yPS=+RGs393Z|&&4)wZe8&@K9=bNB}*vryA2a$PqS+TGX@6aWAK2mlUeH&SmF0Il``0021(001ih003}la4%nWWo~3|axY -|Qb98KJVlQ7}VPk7>Z*p`mb9r-PZ*FF3XD(xAXYEzXj+;Obyw6vRlxt$7+;hq)QVx+eIawAOpn=xnX* -4}-j4bEd(>&H79&6ZRl#Au*?&_K<7x-8b<0UK|qBkOBFW8?s)Y?cTC8zOR7H|gZ(Pj-qlYBV+VjP;N0RE^gdF@G7MW8E&q`yf~ -Yqa|4fT?mZgayUzMfr444XI4&FFF7ptHgNIA1ihN=R&Ruj7Bv%DfY%gUlV>|{KayWSBAR-wQ9Hu8T%6 -)+ONSiL6MJ9)!g7<%^7Y=_9e1b#;%cJxHTL>S^J#qwXDMza4f?i=j8lNm4)#GpgC;;iLaX}0!9y?N)t -bu47erS#WumCjf*OQfx9oP;;$ycv@jWWVn_Iaf5(pIN4=9Pb?nlcOA=3SI6v`u-d=Zf?AWaLz>TTm#h -LB_;h`U)oyoL*F7La9cS%=Up9+%VdJ@(~W>^2#6_$0qHfMsKy24Bp@#lY2)hv(l0&~0H23tXcDccb1j -=c*%a%{jqdZNd64ybYR@6|T_VRKw|^v8_CQbKRIxei!za&3BxiyN_v4z6Ms0y&_jp&Yx|y(-s@{2$GC -M3eXurcVC(f0KLOWbOtl9~rmLrX8m2(f$`uO9KQH0000801jt2QvP}Cqp2PM0On`_04e|g0B~t=FJE? -LZe(wAFJx(RbZlv2FJEF|V{344a&#|qd2?fLZf0p`E^v9>J#Bm2Hj>}{E3i`XkV+&vaa>={t=q@3oz~ -YR_G7te_H3_0Nsz^uBDn>;4>e+210vHT{d7lB@XQO8$HcRJGa=FdQVljG+Pu -BWteYTfocX@QVESSGHU>h%9Zm`oOXUBKNGELYxT@*KA&e_|vOy*$`rAYvT#+U&ImSt#t -WYipB97{`+d+hJ!k%Dd#nME031CyOZNNx0(Pu+?}S=I*D$e7p*;I0A7(!nHMjPq33{KD8gjVS!t2J)^ -UkT=QJOIhZYCw&W{rgQeA1tAwW)uoH8>U=tB8_(bo!kN+9S-K>rPKRGYTJYjY}YE_4EG&T;x7(u5A6t -cjx5BM#gl|?v>x$HPOJ~{fYgT2$qo89pNoQNWe0Ehw6_Z!&RAO?dq9t#Dj-+<3%VZx@I@l{sbF_=EgF -R#yDT(Bij#FX=d&6Z(u$>+ogigzNRV3i5M02Y8{F+0G8@B}I=A=w-8M8O8G+FqaMRZ1j5jB8bx)p8Es$uC*tmP5hEZiEs5CDnG6(sryG_H{6 -+Q=HIJ*ijIi41Yw8@_XCj;o=)dNBS -`lG1E4Vm2&1R)%;@T&ed5$HGFI|#)@6tEL3e}Fnk*k?8w@BMV}{$L#7UM(_T3{1+f&deT&geK)Z5u2B -#BD$SqIjEpp*d6tInSvT>kcl;|;Ds;2z?dkR#pRsi@ZUr}19Ja;{ZKs{JQ4h9nqyfJk<(CXyl?#blj;P@SM&3Q0OR~hn7?w$YUpZ)E(i)TL!&VR?*Bmv)MAU -r0LV1+MXYthi6ZcWGPh?jVRumn)HzNbK#d#WB)I0sR|SHkEjwPmHS>@gq|0B^M|Y8nHUexk6VQY-d>(S)F|kZV@ma=uEh -x#J|(l

8zv7LOlL-d7Qo~YDs;hs4x$8DryT3r+tvZptE!>yuz55qeCy!Vh=D=sM1(m -9-k1UPf&o2SrqeHteUiG4>DJ&fPs_}IIcV-b^#cSeEZWJ^T?j4#nb!G~sKLU&aR~+LWOu+ -N3Y1q9DhF?DV1J0(zhh3B0yL$pN60kWW5i$Is}1(NTcqdj$fK#nBaKzX?zuL9v8>ze}wK0~Jr^pvSXR -@|vU$((ed)6=v*nJ@e;4($wJsTfsk#1n{a01mMd0*1#W7I>y9j(ES2%p}E#FKeRs<@c;m|p)zzcp`KR%?LVKVI -=RWgM}LR~)OIP7A$sDAu#9yuL=&m)PO7u1G3=AfQA4#|jU+%Fk*rMnx{11Ne4BWyISu^qkkJ^{h=Ev` -;BR@rN=RVb!0$=pA7wp?dT{xWv=w{y -)bwKU?;Mhj=%IjG>R)^wBRSFi$GBJB)@IA$UXlo9Q|W=^xqfi-xs6*oLoE~oQr2W@P9veHc%u^;Sm7z(gEcB$+_>J!DxVSq5dU6&j# -ns@f*(ZzjX}%-C*3uDD^qC)xVOos2|W1GF)YbB1kiy7zD=?nP}PZDA5A)j$uLeS~8Ps -8z$u1U5r0uGRODZP*?rwq9#Ytd>6e{N#y;#}NX$1 -2?PyVsAxjRytU%q;Vj4m;<*<^B3iZDQoT4Ccmwu170+Qs{SOVbZ8Un0+Y)+V%uy)4*-`tcS5Ef;5)%+ -5HG$WZWljjIBG+>*bxjhRKjrBAwyq?|Gfmo%yLB0IYc8blN;Uhc6syl)WC*OA=NN)$TnMqaZI@jNxd` -}&4l}Q!Hf!Atlfi8i%vT>cfow@Xz3T^=>g`>I_*Ima`tNb!a0*8nA=zd)&aPh34JM2ojn`n3Q9*251y^ypfPWD;q0sVU-sQz$@B9E7l1h-@LYoHI&`H$sZ -aObSkk2mwzzuUzsH>#wz(YAwrvq)&Gb0Ut3Pf0orcQe*Ww1+*}dWlm5m^7b5NH4{F4lcpNE+8!NI6c6 -pVZO>ZlEBgnLD|`El&oBWyFU7t+g8)CwI`F&Hh$47?p4Tn4NsmGjP%b#ThoGv&sA>j3nn6a|~-X@+7L -947#AL!}=cJmz8C8uEx!zVCGV6fe)1$jUrQVGSY!t4`FRLNu$@_Bq3&kwE`21VsJoAp&a%R>JSs49TWhlY|D=qX68{oQH1WvM8T!rCOjLk99Q{L{_lk-=(DMwl3}_w5vyfrQE6CtMOzT2KcT;xwGoP -$ITC24h-JFDKC_uEJan0-$b|jBf^P^cNLAmV2ox^NvW0Bg)3suEZtk&?o`Ei|U#yi6S{K+eYCP`snPb -=)pPanM_8~^nrmsEUdu!dJSfh6XJiLvmW!GiUC3+WkLOG5)C8pX%yBz3>b88WOk=B-*PftQ)fpEm-lW -ZIa(Bi(A}GX1^n1Gd;a2IztMWG|No6XO4#nq91qz_V6Xi94bY{Lx`i~ietSC$i-Uzy*H_&&qg -DBD!3YopmL6@zUCT^+7MZQG-Ok72yd1=sSjC!qHv#@j9gPNt`f?Bfwax}tVnfCuUq<2rUN|4@lU%a2m -78>JNW2L{mc>wNt*mIq443f76bxZqiHCjnO<9kc%-zJ!te0S{=xW^&})k`qvM;y5AMDgS9kP3{IK`#m -;Hm|zc#u@Ry~pIJ3gXLUXb0*J>&Vorvuf%Z@Jl^L_0NhW$bO-_YY4zGl}-tI#a5<&dO;FJGpy&DB!m| -vnG#b_lB>vP9z4^|SxmQ -dWYRYS1`Ity3cNJZ$VCRJUZ~^Z -o&iuwxGTWkiHnnHZiP_k^)dPN?@D#>4J?NXOVy*yoaiYa0f+(V>v5OySNHtL1ASY297kDwo-E*ShO&95k)QP(6*iKBjp -NzVwRzq{AS=U{{hUQ}3TR2y5Te%9`XOanooGRH(is&}j3_vJ3$GE86}^T4`W0)RTm!?neC!h*=k}v@N -5O6kyi!Yh;dY5}*-aTmOL!wgy -5>2Ety#1I4q+r6biIx*NTyyajj(H2$|@S@eNr>7^mqK9%q?JvI}Q5oT`Y|x|~+8sl#y5_Z5ta%1VWpR -hBKorcr~b3>+!4K44W98s~GSYAFP1Dw+AheKN{9$(dNf!#gC?Wq8fMH9*0t79m#bNjE0Uxhm9z0by>y -Cwpy`3OaDQNs&~QnGzIUIw^}N78}Z62%L*K^OUrdhBQ^Bc62mWA$uEztX;70s!M7OL;b-46R`x<IE=ep)7=4WtT)Ap|p~Rof`iF5Cs*JpvEcWgG -Ubk)YDG6TNFryZWeGiM<2)3F_v-Z5go -e0UQE423CllOQ$9o{#g+y`F`>n78-CEN|b_Oadl47Bm0b8?M^7P1kYpA?O(a4OOmC|at045}9x1mWm+ -CLHfBS2AD1k-|B?lfG^%97Gr2jED|nKczRQAct&TVs*TEd|V*a3`ytm+i;a(02Hj$6%*2&96T7$6 -H$;gZwqFyyXk$yv+zo6_#(Tpjnqq8sUp(Zii8KUuqN24k*-3Nvrr+YcOnM)r?UsiQ_nXOyC_Gr37?ZO|H}Iy78RS;pGMCrucgeAm8QLT$EyXqLu$vNX0Ke6Dz&@K`HY3A>d3I;c@x{m;}x+ -bGO`9c%`#Y-CsAmoztEU`)dX98~u^@p5OoRLq9(9eeE}3@}rbY5ED+64u4p%NN1skbwa|yFxG{td5~m -8bz@FJWbnW8hsu3mDNC4Vxy{oXrRmxB0a2B>CqhyXrFMOouctw7dKJBnP>=w1zku`RwJ6lfaxoh*KvT -7dM0FL65%F*F)KwFg+@@ywC7j%7^DI=>X}eB=t8H~AY&6)Qm&?8(!&&Up2M_rBTs7Agu!m#11ZBe67( -xGWVjn1$8BWw$0)%9d#(Oaht507QlvezWAg;wpSZU-oEu&%$UP#AbMgHA=J~n62^svy$QV8Vz^llKo& -AlS7Z=YS0i%T~1|}_o4nJK9_1#!oENB2wRtG2}kLJ>M!1aJTJ}a=8PGUI7NIP*@B!I7$Q*dhOx@K&=t-wxh%s=yu29+Wz5bgh30@n -4kYkA`oRkjpL!(SaoupF34G@)Hk|CrZ&0PX!8p+(0GK_O(Z0**z+J -~wU%XgjlOKo1_`eX)|2I5YtO{^_%kSZ#+=zv6e_%1E0P~a!LBk-6#Q5Jzs@^snB;3P+#_e#;cEY8hqZ -2_e3pO2ppV4MWd9{X_JE`G%P>i+6o1!~WM7mM!ffE93cg~}y -VSK?15z$qn-A|~c_lvm0e%8S&&bDbdv)+cDq_jUOLPX(qA{$54^9fc{7TdP~W*siQVS9c@bq1-B0QcT -^xmqKq2SVW6R-B;)c=AYIQ7ro0Ui7AMTrV&6YBeASTj0E1RSVXf%gd-wFB<(PF-=a3P&?gCC+Pf^8$r -y^vQ%WSk(yCsAh00L-WLhy=hNqA3y(z&YjHFQZYVXk-NVyTlct7KEsXXy;R+ulF({sa8IMSui`tWG{E -#sE~QS{-7ioCYwj|7&5W?^1Lvoa2ITnxQ?2y-Ytjstk`FfXMWHvaLD04>9Oj&IZ(NJWE_yo-|ZmS(uJ -9p3gFk{k6rn(Soch;jrKvC14s#Wyj|F^axFqUs^(iS{Q_rWs+48d#HH}&YB8{YNnTwQ-R|3p;v?RAN$Jt(8;`XovL}Zi8=Jg;ueA9R{KIQRz2;RGk*sZ-Y`<+G4@n)04VEaq;HZ>C&ISjUh$i#CZQ56npKJg=IqUQfBk3-@{#0z9wq|)BUK#FeB_1RF@nY|!Z5yAs%jd!211dN?~1_c`;zO16~8NNyPR{s@N^?bu@zRmyy_CCjtO43b?0>39>xJC8h -@eGll9br^c=tpS%nwb1VZEnfB&&3NeeenaU6IjV4QPW@7^{gEnoKYa`aSgcrnhZyT%V201jykV96gq5 -g>6_&SshqUshwVfX9+yE;|mBRz8K-H=N*7Be^t@z*~a#TnU;4OkVgb_3m#KxcQC_NyxDgHTPzjPW -Grjhpt~+4(%Ucy9Qk(htS1s<_X>L6OUzGc%x6^$i}&pht#vY1fpbA>MkwyLUAHG}%8mes}cO_Xi(NC#Sn7KOT@27rZb46=@(XYs}Xu` -#Z&KNi>b(sJH_%q>K(}>=ot`L`aF^S%`5KJ3U-QWdyrSRV|V_2NIB2#*WUa%v|2+``U7F7tXctm@O_< -iEYdOsLwW>UDLfo)mermx?p>DF32vDm1yn8H{qSYd^no5g}#U+sX^Td(wR@S{$T?|eXD!UL6@v(ix%p ->mU2-RaB37FLLWt{?ZEcN0k}bgw9LjlKXMo81nh)|vN8*^OqVFFny>A3z5Gzxx5NA@Y0#i`(q+o+EV-&rK?1)j_X*Wo-f -JxcHDX#(iW?d?3f`lKwrN30}AZ8up?3X>W!Yn*G$y*yg0E@(`}ZLgK#^?hR#p5rDAs2&DmzJce=BFXd -tWpvze87nHQFIPHi3NY5)%&n4-+!j(YBtU`G!~scN%`+3w?OrYnlqrRaU~khNQFVs2?YW*5cLi3I=*0(8U -_Q$eCTC@5S1O!EP2_DveV@kfQX;+m6oY+N_{L#9sd@*h3jTW?xTBZ_Q)Kc@JhDG>x*6zZrHti+Nh57F(&0;di@IACkj1mOd-iJM!DCbBd(UQ30*WFE$9t5@!LO4lxZomT+V0&*S}q4Bp5@O -}DVJo@#kQwMlvJON8N$5#?4;f=%edlF1tjII%aK(2UU?*q;4dr!qSqdWeDfMKGk_VePYpeTgsQ8xpV> -Hb!q~((usX}j$7;tLLmH=H4ct=+A@d%$y0}t9 -ao(gc!KhdA87Jr+%Re_`TylA6MD@xr&;90H{IebUuQiZho6ufQCQ7)eonQMuP)h>@6aWAK2mlUeH&R4 -GA46hU007i!0RSif003}la4%nWWo~3|axY|Qb98KJVlQ7}VPk7>Z*p`mbYXI4X>4UKaCzOmeS6zBvN- -y`KLuAlIhGPxYdJ4Xee2%iBu?t5j-AJLHtD9hDkae}H!`V1QgPhf{qA?(0OF05oV4fO^V4o)i3A1%U@ -({&3}!aBzx}hZ8C7v{na-2J;&x;6kAe6+U)&by?5c{o&wJ7C&dzRh92aHuYFSosGEU~v4|DkaUo-W4F -in1hdI$4)MD@z3NXn%6oJhfYao~PwiKbof4!gyK1!xA4(k__r$=l+@(QJKu=3?s$P@F*DA_IVhvxdo1U70Do$+{ ->G*{2FTjjJkt3E0@b60|a2)sN59(D|3JbIQ%1-RQ!~hy3FVE{04eWcx2NQdt2_&Twg$ec$|MusFzGeQ -I=QG3&sm)j4@-1kay)(4CE7y5icH9Km?`&pGse`^UE>NTvnwpQH#8wc5w(0E!7*Qxr?6;qw~|37w-YkilM8`+3k1hc6#c4#%3cRDkbASObqt}OL&wqj^2hWazgb_~7VuKYDTS`ry?e*F6Pjf -C?66qyfgepAPvcG=BgX96Y}`Iz6E-K0iIVID_AP7=^Qo8p6Ay^F!$G!P(I{pbs!!o}EHVIP6dj2lfQ( -o*XhLoDzHLpa}kcdyZdmJPCsrhX=<1?;NX}#c}R03n1{(=yF*ti)1v4(rcuYXi=nD1y3_tyBiywPUkF -%rx6uL%DgGkDnTL#jtV4RT*p-u7n7^>b5ahl_{PR)^cj{CR0pv8QRhF-lFupr{1131ZzBA_yPd)JgPj -i4h?l?@3aEfjH6Q(TxwDfzLSEYScxex-O@V`9C93uxFW}c6u;SrxduMlh_i;4*Ztv0V-p(+3umcP_>b -@+}egw~7CSxkri~a+lOg@+Cl)xaAqv@WpT|`fxK7RVd0{WPN{yn;ej&H-Dz-pQ&*W+a|6L>`etG(pz( -|+(dk51C$I=M}XK7N}!{p&|(DRT8`bdlcxAIqi#7_3cmzd51_D$R#7XXS0FzUKNHG+L?eNl|3E`cb9V -NnNN|PINJ3Me2KzY;07;?cN5Ctvs6*3t+%E(~acIBw18~(P2^K1($;Y&|@e8|DNO-fPfvT9F(`$^ECS -u!L+|ivuS=)BAEf70xEhk*olfbErD^JJA -?cAN61#0**OOxNTse%p51cN0S1WI-mm_H@eE_Q`!X>(0TH_NPx!9Z?DHW>^R4O+M6Q%43siUuuuGrO8 -b~U0Mt!X`aLy}C-HS+4C4YeXB;|Ob3%z~4({Vxna_!|K6EbP;w8KUE{$K0vdbL5rsYU#$qRzr`M9wG- -2`G8sO6bLg%3L)qaUJ&)I!$ ->MUhVu*vUZz8qf2|r*h-$@cHT43#nd%x(}Sjt6e0MyqK07uTI{MVDCA4PRJr(DWb^0c@sF&ES*HNY)N -B-5)z0Xut^@hcPsw-Wd}YTv)Upr(=TSljpM_UR~J8xP7YopmcyMLuZ!35m-KphZ6F(y0GRVcc572{C{P^T&U -3wUVPOPsBOCp^nYBl#Z&VPBW>+J^XmBM5Qz{c~R&UE>Q!Sb3gqjHf)*bW&^G&rY$qVUBdqFn0dhoj1 -ro9XUoICU#qDjJzkTxtbb!MbBb={ulxu|Z^rHj)P1s9+!yl(eSO_R2yi)s-T86>mYPIzv;U)b@I76_w -yVClRyO3I|@zUvS1ja&%UKPnwXo>))Z!*;Z@@&-c+J?q&yzbx{NT5CsYqwH+hE1dcB5U3HoyQ`G0PIG -k=uy!07g>LdP7Wejfg3~|i69rnO3EGZk~um&enHrD7IAfjk{$9Y^}S4gCu#2*#ruvsI-O-Y#kVv5vqZ -*7zv;^w_~CHHmzTiqVZz3@(bcrT{iaMR#tuiNMiCx&!)UrKn@yt`BiL}ZydHzZ+9xYV4zpG8-VSS&-W -!C(f=ek#y?y=c@T^AbpEN3+n1*OCx}4{6#Us_31fE?7p5Zv|0jBEr%=t~zKo2(l{f!*y8EBAb3M2atl -IV3lO}OLz=yN<@CNyOEq>AT*Z)xg$boBC=_QjoixQkL@&5CUy1WUsDs6G=D1x1g^jUy{j^tRNT -XuXKgoK!sO+g}+_AmkL9tf-?F79&gVM4_;_IBD+*f3oXCNV2{3d`|j-M;!q)Am1KjAQS|Wr;d9-zRg@ -7-{#qtzu`%krsu6)%2qH2o^5p_b)`;xvHXx#k)`-A7tUyHSoEnJiJPMBpG5{!PAhNR?Mnn}g5ZM{7K! -odj+tN+56m75R?_yH_dRU;a=j8x-C9d^uC##ToPJnZ=9)5W8{FKbB`@oy3%k8HfLrFJYqSil4Dl+Zgm -KB;xCOKNv;~i0h_v9&Ld?u{3hXPW13t7AJ4kL@L8|xM+)0MnzHhul-_qbo#%N5TPN%j!urvs -6qBaDU7__ni+RVY&@xUI`hlv-W*Quv0l`nYUNcmrNUCL#MdgP*M(1PnAnJ<7xs51x%U%x@_mj8Bj66t ->i2OQ8w;{@1;cnSTF9_+&G@EuwM`b*LRu<7;_M`3Lp5Fecdmr`|AFZAYrb$D81^=|$fGuvsyazFMi`( -i7PbcVwjU*j%pxA&r^i7V|g)$w36sB4&QP^^z_JN-&Yg-C5&;vnnp5F{q2TL?pK_4eqMVDA%ukNe1_^ -A)tqhKfQ%6xR^&xvtFF9ixoGJ>rfp0Thg%LLa(pHIeOd|4_ -fXt@CJ0;K!&{{1e)*dF$J+rxnt?WIx)A_caqFq@I|NaAKDKuGcgYReKd+Qr4~AUc4B9@7yf@4$!*%-u -Ad#1-ijfEDT!=>(-9fm5$9l;8AuV5IPqiS)v0-gS@87?V-htGdUW525G_X|y6<)=k(|lRbQ8Y~P42Jh}tz}L02wd>B_;9Y=fjSD|HSA6v_}p1 -q2^or8AI2p;xF|gLD<$BnBF|k*eW_Ep3?zE`YM`3_Y<~v??dF8S!F#fb-IID0cYh=`)~F!0y8yeE*2+ --6`_$@e@^K`1r}*zG8J3k2EBEn;(%k(Px9T8 -)`7+r;q;>?gk&M(&fTI`x(WR=FmUQmfXV)8?PN0FbAhTixU+q~*b-n$4lYeploFW3cE(H_^!qi2vOl) -od1BQI4m<&*3>JFdWAMWfvve^Oh%p8yJF73KhAF6$_o?>4~ry?fcqDjA>y?rT1Swmp*5w=Lr`LL@GWv -^q{ErH(mVR3xE&Zk`^+e=l3iws~~vplYDusf%7R^58M2v67({rTbD3-;v(0>fPAyP|^PvnRigiuUnHx3gWr(hU)0HzF2s -?YQf`G3m&fok5@h(ubS|9)q=-q3m&H}c$^9zf4g`OcvL1H^hiOxFy5Sccx;GTsHmxn|Ae##ECAa+*(n -X(RhigPI8;=-UEF-(|7$M#wq$8v`3KC?vJzoP>%E{Tqu;|v%`2F&fnV69UN0wNC@JuK+rJhWgfGvtCaL!^HxFR=j7=lL}% -JLr|NF6{VooX!dOq^=CYCupwIU>oNsKVGj3UQX(OCUcmRSbQimq-lV%Jx@O+id2KGnYIDHHGB4`Ns*S -D2mbJSQQewgjqgqUNU)B84gv-FAwv~*dPl&Os@Dem@bu+f@in%(7Qg}f%NoFK3r(0tmg6${?^<~aGB%#l93Y)`CFhnL%Pe9HqZc2Vd&A5 -N30U3CUU3vGae&ryY0xH(e0hUp -osMS+?@uFUsUCejr?+H9qqDA(41Sd^>t}*(l?$L2fS-~2sO%VJfUxKItV*scm^sR~)iJWXkNi`X0tC5U7VuGB3_ -zW9aX>H=jXcjWRy~}dzQ%})XqOa6lQo|j(V$qM4c0g3&V;-`oHmxNv0=B5M=zY>(&1I(EcS{KB -GgyUf81vhE8G~4684p!wQSjTkzvY?{4>J~EKp{nEFSO~HgfLC2WK!>nSBX>IW8Mw@;n90j*P^4RW -6ji#!G2YTvh*D#1uuj$ATKl?PZbkgBW1TiZvf?w^IMsw<`!^s5q8Xx<;5KKfq!SvO8A4%(D7c*E|>fM -fm7P7x7y>VvJJNM+Dkk9Kg4DnH$8K%i@gI1W)d?ZHNMr2IB`yB5)xjs7GH7@WUlhvVVb%XXlra{Q0(_kH8 -Vi^G@42N#Dgf}WI(pY0mJ>x1{Bch8P4&hG}n!eI3J@b&2U@Nb95cLTCh&pA5El~v5$Hcz{L!1FIWg2x -gA{HNRN_3Y6ajl_D{`E}>vcfalqAO5;C+`<1k(E|hY1M9#C?yGZx8h;)l2d~H%`R8KAD*DA!=IY0 -tOusiexd5(VK@4Ro4*5f!N-Wdz0AKN_Doyf<~As)flz!hsHKy&@SyIWnaH_W)HXO2m9g$)7;=+pusA3 -d1R@Yf)%4zi3!IZOmiuZzH)#NwHR;r0*B9%8kw>NPyEms -g=fLEKxNM>2Rv)*)w;jcwd=7cE1x|}b|t8Q=27Q8dDmg#An4|k(qZvod=@IvW$Sp@*$tiEAKo|^*A&IL+N^K_C{pc_u&vQn25$X3swp9cWpy_f-Bo$upx$Ex{p{-x#_* -YR!CndkW@?NQ-5p_6MStqod^$cV8ffqe2vgRCLpeKdkJ2n`b;{W(uTl`lTg`8|+d#$IIwU)_&>p(zex(ceiFRIgg}*dFm=M -_Y_3-p%v&1P4_;%!~b|O%pwsmaC*rOE_C`~syR}nbR!HRHFo&la*$;~SVfvSxld`vA2U5zc^&V?Y1O~ -3hAsip!N=M_`FQXBPUd6PUxW^Z&U)Ks;aHMKg!(>aNLhQvv{E$$;eVR -=&D$p@l{d2Z@3m^S_Jhq^rU3lKa{FWrS{IV*ED&q-Jo&mHY4k-*E#y-11tCZ_xu_e_yXTaZPGInI!Y^ ->&eBxt-jP~#?i`{;>;R6-P_gCHHlw;WP~~kl``zcq9-wD`zxsaI1Od-%T>OcPuP{0VHBd!l22p83d-nI;uc9*az9CLwc%&#SL~ -SAh>lAy~7qS3#ZumQrS1C7c$W@?P;wieS9!EEM@hL9yCDh?d4@Nvg5C!XFBoJ<)1E^-I%8V-C7w9fCa -u%@k(H@?A0D~~GtXnqyYvN)?ksF;Qz#=H}P}3cI#p>`}ZPr;M;*R4VAB&kC$X6fW40J;s2?9WJrCkp( -GmmWOw@di`@t+oK%mZW3%ony6{=Ul{Tz&FpkuGUCJ8M}0eK{@IvUO0m25b4UVz>Gd+^vfEre(KMloQ; -qpz2!J1waDPdkgi^6nX$i!=S-VhE;7FgWBKljUoDd^A2}sQP|dKZ9a@}e$XHTQ!Qj|J)=>#)yx(8dZW -T-o`ujr?KSq3$1y+*GE;h>9Tx)iKz%KBrUkjMHIg@Nyrm9d?$(%cW3cDLa^|=w4!9$=37B% -MyLbZ~^prZ@{>Ju2#PeyJt{n^P?~JOWAOIPakDMBIaz;hQ=kVrPr@PTgQuv#F##sCSB73?K)ntC6~t# -=Hd6G$YnEh&S#Wt@eA%ps(YN)|-1b8V6L6=; -g`l>=b#WbaXwPV&r6GvS`8h;?vA^mb-sNOzsX4f7a3zRv{s>lyDodj59TmN)D-9?Knqr4YjJruyx@E| -b+5LL?+Zu!=*eL8@YBs;Vz#>vPKN47j%OfGE-3xwsJEV7ejK{}FHNAF;WO*we4IY{;1l^PdG1kO1Wkb -n+qvC1t~j>i>h(p}qrv+LLqW42h-`gwDMttLIieKaT9b_PQg3uAiYCpP$< -~Hjhb{{W^!!Ce-@`YZN`+8-3u({Sp4+xG8LcrVp_Qd=^Fz;fCT;W_+^G@Ig!(chR@7HYB5LMx6z&zg2 -hRJpDqb|&v(*^zWXUf3`M|p)O8?6$}#k%$|Zu9sCPH#UnaBKwxMxnhgJ@hGbdq4Qf!t#M -v#>=1=I6w -WltJ;_o_p-U?mY5lsUn5tZ}$>yUBqi(F@>~N2l*Zyv=Osy_c52n$fZJaHl=>0WLSpP*^#5}1OqyNdZVyJdZRXW -yMMy|R;vwbS;xfX1q0XIu-crei{U^|hmdEUIXiB40QEQ-Kck>D#QPjs&hJ4D)P(^>WUBjL0X9+kU{kd -KCG?7U0@7w~EDNT&6czY`a)23pIJwE>Rc_^b#D_%=qL1ECJ@8yeSN`sTVVn>9o{b0{lWS(sCbJVtP_Q -N<=bv0Tm__lG7@q>0(Djg`blf`(yyvlq}NxHYBLV=1rKT;xyEivJw$a2H)0*;LHWn^*T8u$i`HHKt}>*qTD(xuMs^bGCU+(Uz~pT9lxqz*O|1=xnyF0|>atw?ZKL(mBIA_#5 -$-W;C1STRz7v2KT$lGlcXeUrbJHMimbqD}%kuFw$_zf^o#~atPCmlv!r6E-Cp0QYriYIe -1p$;Axfyc0O+dnvZRCeXdkG#NA_&v?=d!Qg27O*oY5BsN#sSP*s>PQgerf>;L -*;}x3(27IeLWlGBzLWq`SB8rsvrehiM*@GB3^riKPlKU`yHd;G&@+XfT>C!9?=!A)-T?Ggra#EXYqCQ -nb>C`Sc3zekkxzm;a -4{sm9!Zj7FMK7e5T}>O-%@IWkH8>x;KvDM9Q -00-hH|*4vWk;eHW^IRBI8_j5##3#}Lz$wq=IW0AP%{Gn@Xvo!T_aV7Sy9XfN10K8mnpMFc68GGOoFUZ -cv8%MHqFsizXta{$J8nKu#26^`7ALUQ?!@V-PSD@kK-sYDdDLOMDG8)mAKN`U|#9}n+>k; -gyY$-5LNdXs1_Sddi35y3(*12ama!)knRK6GqJFJlKDZLYxiRf$3o?j<66K&8&5sAaMlYa*vr!41Qsm -sD|r^L)DG4o1DeimKAx6kXeFOkW)oiZXH>_rx*b_$W`V6;UMb?hQ~74F#t=JvcE$(k9veRs;t0%f#Rv -S;(&Krs?n_H1UWOa0qY8Yzn;_x2+yL@IHdiqgRE3B8ZT4gJ5mhwo-NG?YLIPwB=ohOru8&DzY4Dt=W$0Y5>VJoe5Lv?uemCekuCM~od{C+C0QWoS(1r_uU>qaB-B^ -QQ>XLt7BWBvILy6mj8B?H2j|a^j`W1oJ;PQw!rvADQ4#SoiDzzpYTJ*b95jfy*N?iEA;-u}Xe_^;Z)E -A#HXrrn;VyxjIkq5t4z%PN6|YnZFJp{-10x6jF!VaS2tujS)9Thg9i!~H*)p+P10V%Oui=nG>e3rI>y -$jmHmKmOMIs?Y`lFNo#YmrIRg$}lZ?hCjA5xu$YmCMie4v3r8m${#v!5o@qI$@(m^AL*q)X>!vYB=09 -B=^s6lz7K7~z1YWl9NqCrKAd^?6hS?u8}+C_I6Vu~Og$x7{0KI-k>K(!jf|j8W$ -1+Bov&Rb*qInqg@6bfWevqk2D*1kdY9$bmR0Yi_Q#Bv!9|9kGld{ukLH*bgPN<8qQ}1$r`v4j8>zYtz -M%wsKvsC7ww)p~dw_mh*4-DU;$;%U13QxIrTpp5|f^Ojw3%4#go!EQZO^bow7Y?In@goGm)~;F@?PB- -}5_ZO>M+4|}q0y*WF4dGwwV!ReBG3MS|1=Up+(_Y5Hn|XnUMx&PCRGS=WaGa1Q -mYkd1S1HtVR`Ld-Ae-}k^uZcD%%MrHowKB>#i9;u7(k4HF4|&GYSos5w4GjUoQrfq!Pc6*fuUo-dgW( -#EH4`&Rv7NCRYPr-tyRYQ>;g(|8Y#|jzxOm`1}tZVa{A%`v}ePVLf4*=x(6iL_f5IJwY8<$)WhACE!n -kacdTuXws8`={-oANrmdB1JjF<%M)dLHHdEC{S53DfuHBoKXl&P4{rk9wN`e+#YsNJIeMskK%lojctM -7fJgnxE}bZ>S0;gd&{PquS!=SlwS4z|iLLU|Vn>chw1wFKE{=XHzt7UZL8SN^uefkido6^_);CZM -w?T?(Rg$`pxQE;7t^Mb-}c;K8pnQQL|oA1V&>rTuG=WQAM8hUxCRgz>!3=KuGbkwsn;UfG+8@HvSIO^ -1Lv=~fw*=N+!@$|ModEzat* -~Q9L+l)4z)uZBqnFPu_mO{dBGG0nzU+Mn(YptFORVawIPz?#OCd3CNwUAna021GNyp9}Ks5cXpoEqXC -p)%f}&lAw3k;FjxSk@*M>+<5O~b18cO;nk(Rx78Lj*aaCFPC<%qRLxU^=Iuh=cbhEXVWJHnH2!ki>$&vW#(N+Ec{Cu3u(kwHQxbdLa1_0G2`kZ%m -hyGOkni&e{R}Q#TfsV;Hdz?KtzEFR;&te`c60*gxzFDNu&zOVGIf<9C=f4r2TcJ3#CrL7$CnbfMF44Z -rA$70nJma+b#ItgJ^4?{{1 -!EvOv%+V9);3cGCfC%%vr?#w-H&D=EM8K0v<99acmmYa~*XUZg#3+aUR>6JgAGMQZq9A0O~2KH&Qj=E -n4nvhAQE7#CAcZO*&ooA?VS4eN+004;!YdN9o``=F6SiwH4Gn1DE?IwF02jc4YDJ!!pty2jvZH)b;T&yFmtf&FE_mY+jFg9!jTZhAi(I7SMadUmo#N6x6ueB4eX5Lsn+dHB>46)P=etfj?VH*u&!9e+t~xf{bQS+iIv1(RrhBHt3CZ_7h(_9x(x -Jr_{1qQv&#&h>oZy_s9@`|tK1?tZ_rp5cM2#sjMDJ$(4xN57yro$7)Qp^Zn6je@m-R?vXgd -ygBa#Ne8zAawohJMuOXgP;~e*rEs=4CIwtHi}EOMN>@Hk<4QZu$ay%`311KE9)qtp1b|%K=}!y;H{{; -%|pwWcyaQw4$g4@f?l8_h4{5fPx8rRxk!NnQjm4o>XzBk$iBzEu#-exev*4Dl#7*Y3y%~`=DEwly#28 -monz8J^5nfruBqBQrufyM9weNa6Cks;z<^Zrfxy5h4gCDg!P&XP()iZk!>3OiOB6ZWM_ycECpz?_z|m -A=o-6IGtf&od7E&OdXt?{)mz3~>2bZ+jShc8zRJAyU`iMGGTiWj;Y)R*J_#PEpNZ}F?>Li?yWQkWF;L -=K|1=f=1bHe}8Q@67yt~-40(bI=}kG_BG7KBN4?nL1I5c%3S8tiMJ)~Y;9uJg~R5lolaG|nnsQ7SBeT -9m0ti$Y6j32$8`#@IsidMi*LSkP*-Tb>y51$&;L#mP4M;NfC@!lP+ewna3iAR(VOVj-0u;BgTAtKPT* -8b$(Z7o6l03JXv2qdjJLNMuq8LG5Ur_))<-!j?obs5-bY~l(gb)RR7s0s7?3MjeBLm* -*ig6)W+_T#CS)uo=?Mw`SLooRiBF{EJqNR|p%xg1N});x-*Acz5#0}(Kw`#QcsIfxFthtX@$4FnEmwP -DYw%IvAUtnoc#Xp7>jboiQ;7dDCX1r#qqGFssnFc=(E#zNS_X0*#qDq<1pX ->O2K2#@7fsnn>ObUv@!B|H@ThlA*>cCJK|pbCG@4zbSdt=dLuPMQ^5$I*4Ja&_So*yL4Z?yE8(Chgdk -M-zU%vdMTl4h7rUWdHnfMq`RVb -&+0pq(-mL5e+BX9&c@EKD#qlzoSC}=xVlnm1tM@Ha|AuE8HX$i2OrhYERG+f^Mjp|UHxWXD#pPeg?M+ -j3T@_i*zHJrevNcDx0;U;NJ=#i3XrI$U*OMgM<@wt;Z%)rH4qt>eO%O3Zr3;(Gn0&#u=czDa%DIQi)H -lD4)QL7n(4jRAN#KpP96DPj`-OtwJCy?fqmq9y%uP`U(%Sr%4kzeJfBTQjfc@SEZVP0=AU&ZSEA#`jncM;f -{dA-_40?qjrjIUV_2+Ca#vURM*a}8x$CSx&QQgHi1xgRwi#J$6WW}M7&0xS!r7dQo};GQat>`zI<{}Np7e_*agfZwJwjCZQirEzsTXP(~x-~ -CLj*A2;M8}2JX{nH;Kx2yf>UQ+*5hUNP-kyM$6I}GJW2hE0}omyuO3Zc6D6eymPZp24?y#Fq4XrLW$s -&+G_(11aB{1Za=*`dP$n4ZraLY=zfK>RP6^!)|Ie@4#|OP%vko2fSqDoDK=RW05hKle1f3ctorhA@0R -_6~4ttdJB6Qjg0;S|NqEnc0LW0Cif(ezk@G2ROlf>+~#ry&=qom4{BYB5iDmtd|n=J3y{5H}m|5A>Tp -&t@24c@B3AK!`}0?BL))@Ylx -_I2OvA=h-h@5x^+OVX&tGhmCqxSxarXrQ%8j;k>va4ENUU^Ms4VY)Ys?v?xZN{pa*FOp!-eaEwB=^|hO) -4AmQM(E?D!ecHRHq37<7P|7&0GW&fDESg2oskud4jO;hkA{QYhe(`a#!+k;R~c>+WqrBT0j8L7QnO-V -$7-z%N0W9|w8T;nw420%c1bx#W7vY -l)Q!Q6wn}?OtTDIosY#AyBIfpFPob6C)to>(0`lLWOx>ip;wRN!n#h7Nr~)d;qnAgA$1l$PWumCK0WE -rMo<(~)Z4kj#NVdD5wd1nR0EOCb+?Zv!J}SpIPsgj{Y&|V|99bT*eJHsxHoP80n?gQCsOx(yP?T5tF<`Ybm8J|=J&O_He9P~!(i9!g8?CphU1I&Q;SuGYTCox8?$(M$2YyXw&^?Cq&;{+OQg$VJF5we -yLogO?2Gs$)^Z+8Y(6{N#C$b(NiXxD^w770R%r;D03M1=y{Ll>qRv>-zVu>E255{1~;J$Z78l=|WisWeDkA`kZQQr86o9~n^5pepP=m%BdezfZa#Nf0C!rQ`0xH-VlU5*YoV#qpO -sfW&7MqJ-rK6f&0e-pJiTP~BDMP#e4G}88`#@&fo*o=r+;Ku3N1`q|-GV+H&)o|@rDsg5 -2jt=)A4Bd>8^?=Z}4$d6j%j4{o37><3-%Jk@TOWIT5SPR{RLDs24(`f>&UQe}V_@1(lRu43Kj6#nBtN -I1O#i*B1cCNx5spShxl`WRxb?MEo2y{G3VjedyxVaZ4?Msr3OGtkXfL)`b#_-h#TK$MFwm7_v()unJ= -mUk%Hi4JtGA#OvR+_RCqqa}ebF|I8t5&(s=+$AtWmMNyyiEPr&7qnvk6xa-!&5t(G*ni0qWZ|ooR;MCI&{#L&h{1ZeT_?)=X7rlVjM2#|GP9kio8{4UIV*bz_hHmU^DzBZ;E -LoD{-dNXe1+Tqhb95at4wapIiQ%)?Rq?Xl}tP0?Ay2v)xauoj_i|Bm5+b`&VUg~XIWk(BMie)x|kS*DE2Y4<>N^dcVk3`XJ-u*t}&Y0 -3^3?o4p*AeA7M^=6nFDSY=z;k0SZsS7MO2ks{F3W>786Ec%#8nYU!T}VjS7=qy-c^)Kdung{L~04v52 -4*hx{IW6Tw%-fLHV=&u?j)@qkz_1CW|Bl5i$Xyg<3%!Dv9zqCA(F-}J+x0O_3+GuEy=F&B|M(t -*N#XiWjbE&WKh1vIKa>O~UBH+l-19}-G;NqG*71Szv;aBjp-pu -?)S3K=tFR9t5Z#ZN*!3$%53)NL_X?ikh%EqZ71pLzN~fyJzSEhm24Qks&=st5`5Q$C-+UJNrjnUGIUq0N6)y00X`p|IY4!3K(tYIoj{4|qhkeRKss1b<@F(KymnLiFU;Rnxb$0!y{$fp+a}nIqgMDVs^=rM|O -1$QpM|1FXPfVWOWjrjWFs--2wx-oX0clE9o`@=n5~+kCPfH3%)R|h{#HLEVv7(|fsb -~2#(J8J3j1f$A5>Kv_Tbz{5{UpaeCU(lhQeTSzbuF3JGv^tsye+N>T2*Oqic<0$y2m6f<(Q)a$L;pK^ -JsT(4Q-#V@p8IoGZIzB7~s&+^EkOwL9f`Eid94>d5QY8#cndXlBVuV%_!>BtRYaXP7&0 -{I+nSbx5hx=E<`bChX>FabCmxRJAbxUw)RBua&7Z)`*K=ddD2hgLT5xcGj2dgv{T)huW9Q3tV{mSl6i -hZMh-G<)L|M_V%S&$s?RBdDp|25z65UfhIMLFD>wv&FZ+{-tS{fIyr1NAp4GnQ=+(kHn?PDD$MbZ8n% -w^-N*yI4ESHO<=xiGpu*)VUt7TIe3?)T?&jb*V$$u{qYp6T6Yodl2Qw;2MLN|+*K8;(>vQ+!UHL!y^D -gf!qr*95VMz0Sqev)hSs{44!0$QMzNlx=6_cE_T7N{XoUac_csv&3|{a)41#O~SDV-sz3GY4o^PoUW% -nV}v;IU-Q`iShL1bDYj`U;{H!TwayP~1*G7t -<3CkCP9RM7AQ59Y6UdmaT6K_vvT_|+=Pa~s_qYiJ&ymnuV*r6@+>hR!8J)svAR@x2g>-DLm3nYp -(cVbcw_b)XwLA&_INbFb6_}Q6gz{m4v?EQyJd{OQ-9r#G(%Xs8zB%KGtG%?>iWuCqZKQVVj|~DSHM{j -3nzP?5~;exCp*ApT!YJI^fEal?VAIuO}`*_0Ht~>uV?fU;hJ>FH6ck+z4r$tIs#;qYYcLVz$2@jn3(tH-ZX7 -V=P5#wfi3AM-|6|^MG=zO}r?iOV+ps6+}G-HcqVv3sgs9=Q&i-tlk@em0`M!^NrQ?=Fia*B*tcEd5SIR~KqCwYFX#G%NNeuaZf ->sifGE=3v$~qq7lYI=k|&<%T9l#5#$kmL1#?XX;SAW(X~0w}Qn%4Vl)cvyx7zG#w#XK)@3U1;?xGptg -@E8ZN7Mh2zSwxWtiS%@vXrWYV}RQ9XRr)U`TAeYGY0E04H!v}&}+u99v=W0>#%`!^pKh`M$i7f`=-dh -+}5Z4wv&P{!5U5uzwZv9zQZeAVz7R-jn%g?j;?TyJ|4P+`0L8mO=lMUDtq##0F%&ceqAqnNpR1|Cs@W#j< -aoF(^B&a@gH7(y-HPIePt%g -;Ej2}#fXmFQ-9J8(vI^7c5oZ|0x7AMN%6=SB5tl~dMHlrJ%u>T;padUZCwZQq!OQLrd%O-^2|(e`+Eh -nTg>Kw|@MxpZKlh?y;w{omW4Te9)Bk53KLO3>HyOnL3+bFF7{fpfW9+Dzq47eKiVa -rrZt>Fc=duhi8YBL^as#p5B{)2>afz#GT4rNo<}Hai&z4Dq4?f!k(Izc*i43L(}br$(|4C_w -e~9zPU-F8%#%lHtI2ki>opBmj%^^ZB0I#rvDFxC}K|#@&t11bD_^>R3dd_w{EWTd7yLV4H0R_nk0%W^ -zBmwFH+8e3Da{#vth4~(8N$>Mvz0H8AQ_y&yRHHgK}%oqOYcH>8lCqqt#<6>ASW=$BbX5tnO@+$_qQd -gv2XcpW_J&%Iinwut>$)#ktF8B9m5pFmLVN({cPT+mCayE1=a_OD)Yrds`KT72#s@06=C8MLPbw9}QBHM6Ws%eR5dP#0>K$)X=ww -{iXA^KcfHll-R7l2=1m8>6gw!Ck0zq6pJD+zb1;*->hV)ri-d6f`k=3mYf)jaF=dU+4I}Z|CrUF{ltL -qoTw{D{rsyR#_R9S20KF2kjxBe>OGqRdyG{2R(WRNwbH$;=>ltZ{piB+VRUu7bLNo_Zl0*_ -CM?d1{6Pj$7&vBP_{{CFOJSaWai{)3)jUvx-FHh>%@L-n5dS@=7nqZF{TifAd(3_@fNPx$n&4tx@X?8 -_Uk@7ZbQ(#X3cdQ@~Mzf-r%4wTlNE#tsC|Pj0FnI1EfK3BN*7bk@s3oYq2lhJ5C&FFadbr6`Hw)W=0{ -@(&PfU5Uw*`0z?Jboc&>en1UXHcft1yS=y*7Tq0S -%iwWn|n0Hb7s^-LUYsKew`E;l#@LwYhSWrGSDXNsN@F80TfOk7gk^fEK1ULvL0*_s%cX&3?}HeT&Ua^ -JT?m9|1!*M#<9Lr@h5hNI9skC9<he7c-89je&& -1^qan!Fm%ey$VoK!GXBgRibM$svcgZp6+i&TY*FnRIPKb{Oi4v;%3|HuEq%0T5}{=k0@qtbzB-Pc+`f -e0mt*`nUy(GM}UCME(~|L2c3J<{=I3ZLE3UZMwitp=zFByYePLO+}N0r&CKM!YfQ;>``*qj{}bUqd-| -W|zTKk`_Jeso0gW8KbuGr;`>^-qqtWt)->kL&J%~{Mvgd}9X!3p1PN&xdtc_AFa2PD6eO|YJ?DV~@Wn -D_bkTUJyMNVG74X$SdD+0OIFeAAZq#{9EF$mfF%s$9deQMa3s-y^*mky>=&wk{bqNvB$96BY=ZgqA@* -TmG-*^04AOymyZKF;yH2zv`yRg*#3&SQdE%jDB;=Yh|QI!P<1pdh(lj}wUh<69M@KoV?76oL42o>I08 -i;I^@MZV|1X%IA2#Pea0WWZ@3h-(i>x*=0uq0^@cO!g<7D>miDlPev3T@3XC5w?ckc>WyN_7)SP%fbR -p*1oYYE@n&0lUYZrVx#Ef3UeD-nAuhPtRv}4Cw%KCAOe#u!33nxuTzVCtu^kB<|IQ5KV%%pKE?K86R2 -R=Y?2e_fSb5LXKnkWO+6gomu_cSs>_u)Q}u|aSy_R)(-7VK1*ZC*kecw0;q~1Ez#7k{XbKW!eLU;#_U -RBB>1a>&eJakWzIg>d?un;lJ49tFzfQ*a6c#(JAXM?i7H>}Fz)!ZL=E=Gw9u6C@zh74g9P9agLgW@LU -2?lqgBi*RpOuNH$+oTtw$*rNSobZ4Y!hzlF_?v3-OINb2GGpeI$OIJukJ1;7s3UNGL0f`f3doDKBU*i -B~W*oONMXNuIgyZlzt_dvU?F{(}@c+H=~)-*W)5;(tC=N1AFc09-1S|3N-RtiV -P2~dOsIdJAK8&JRl4ev!##-4J3x(+tcz&6b0x@vv?BTrSgFG1?E9t(Zbn^u`u=S#A+}aJ2 -%Q{7QIWeDPB`m_I^;qYus7vP*%(Ox(V5<+$bMUis;E=ftHB`)mqopi{OQCzV&TSE -q-(iX*T`jn3U3pF4DIHnW&#m@c&h}#+z=68@%O6GJ9{8nwfCcxxR``lzL3G{cI0AEQM-6J`+=$rq=e- -u~of>2-V->rBiz**-knxgiyTEz-Twc9@RygLOAHT1C^B*oEuGZpQ&Tm$1cr#GuO-O&*ct1{8;V}inNL -->Zpr<*8WH%4LD;x=9QKTSz~VVyC>Oujm@~;JKME7pS9nO69iedW=Bm)HFd>Pc4t8T7a5}~*DdyRyS~ -pSrpzP1%V&ce_`lyUAlZN;?cw -JgX31h#<8Uv@$mwSdCuAT{`XP9A0rq{Ro%5_ARwmXAu1IWVF5A7Cj=eziZ3ugB9kiua;;V2g8R@q&Td -xiQZZynbC^DZRGzdaCcNWnpX_+A+%5^Z_q$C=3?^l5co;Ov}_7SIF4K@CuNv$64Tqf`CKerD-r*Rd{k -`u=$3h07qm?Ar2S{GUZD5(rF;~cMdf4lOj5VaZ!ZFjNCE7dUY?5@<#Fmxo=kM#$;zP=R+ -B`Yxs$AAiftD;(7#y~?#>FfVcis3?LMP6>230U%z*R3tSaBr4T3Lp&=(gRV(B8~QOe5*IUf-+u(HbWs -_4?7@ysH?8+2^##Gc-^&v5O$92#Ah8n+UTAG-D0)3TQME)I-$7Nd|b$mTr&y5zI-f4&54T-@voyk6b& -GU6;YGJ8E}js)lAPi|LO1ll*Ln{VBfW@G*Luxbc8$dYM>#=4-|@rw3fV@O)Zo0`(OR`U=1E-kw4B93IiJ1`8jt-*on*2YPAOp-WO)rQ_aY6S~)Ct=pE+xbp9tP0K4+_%( -XoeaZM_oX(M?0|QCflZEJ;pV*jijq%o7vDpA&Y!XO|qv_S-D2S35zu<79s{ybF8^dUV{fUfGw*&5(G+ -(%t7pT0Xz*VaM|==gqitF2}3K8ZEMOhQDr$>sp7KCCn-^>&bujW-aMC`T%o5--+?!tf5NAHK-)JR;M5 -5gPDk9_Q_p3NBKtdXj$^as9=lp;v)CW7;wtWfhRbMibz7#Bc<$~iobX|4v=lXN!qt;liX6 -#u#M)!Ow0<67CGu9i_xud!`U^4nm*XDvN!%ysUw{Fb3+*DU-2pX>oc=5FaC)1)s>VA%BnVk)YCrmCKYKG9f0Ckz(VZ{6x-<7;FlG$eKo<<>}y4q~DBkvJWedp? -IEFw?^h2wNM-PWqTif4aLbArA$z3?yH^=gl{n!c6hzN8iES`q^oq-a&ZH5MB7j>dp6yC^9IuA=bwZlX -^Dd@@Ly>fp`7C&c>RSk0c82$@bLZ7`9+hWZw+|p^m@gJ-$jTi^JOv7cV*n5GW?cf8md)jyI -6#I9qRNc^4r*VQu%q12G#Vv8=HRvmR?27BL>erJMz7N3iiNUOlLi>yFcDm8o(4KG#X+a#61V*ynVzHj -j~Q+!>54pLR$p^4~F2%_%9CjZf%G#i%9E)_Vc=l#@Vtw>j@BPwXBaj`%Yz7f{580#XJ$C7I5_U9FzZ(`)e$>QN*K*y2&} -xE2BfhN|>1eP?y*x{F(e19im3EnV)oDqPzrqNRl4UxT+l@do@}Nu3>N_qYdY7o^Ii!~5IYs7~<{)PeR!`>4yx$4bP~Yz)% -KET-#~YqAgTTytzKsYh%?qz40?V&MU}+$*Tn7PvLHkoOC(;OAE5#4;KW%)_o9?n7&F;eSC@uyt2(`U| -Uf0RX-Q@a9Aegn$^g1oCuUO(Iw3zCU@e^_HN7}bnkBZs0=IS9)+;UL-`h{f9))ry1b;s8pp3a|SiNn -dGY5Dr3uQ<{hVQ^J4BRMmZ<2km2coF<`T-bG7tYX{HB4(XBn_#1<<+ -?Tk>C#pK4^$w5p`7bo+kT<(v>s6>g`nk2-kd3~(ry7(lTC>S+hQf$Eo)#f@!tx6Ni+58DhDIH+_dxM- -h1VxV@J|V+H&31e)6?@e5i0R+lY!hV|tr;M{y44P6*mQyu -8*N{RZSW40^+$I79Pa`A_Y#==>h{+G%egKCmX{TIbysEWY&!L9$X^+X{PD-1{2ZrM1&rz{nd8y8a@aC -FA41_}^~Ni=@-y@=o@0VN^0&1&F3Kf^_us7)wrBz4TkvS^9p_brPHpJ_u&@-4BWv{K+8VnuElW16Qkc -vNvnPUlvH%siYVwLW%*tgUotk>OrBhufjA|oO`t(;d!g{u4~dQnR1b5Q#$b#U{dfaBA*k3mk9kBr-zQ -7sUU9j-0Kk?Fpoy?4M}4(vIJ9gOzS6yHxoJdnXH_q$7m5&9p^=b)!9#5gEO=?-|%HSSo&O5E{)^)W~~ -my%J_&U7&@|{66Zzf9=4(jb=uMhFsSXyhBcg=QVa}wH -j%}*#&!?OyVUS=4*4ib7vX={R1x_#`RHv9Wc@k582rBwfbaj`}na_t{dC3WzMHfnP8Z^GI=6eB(62C) -gjF_=59!H-*Viq#X~?{QzC0Uw3PTYpfam!=8{BZfmfj< -BDyYTb`Rd+En_G=Ue0C|vzB9;)dAL$qG(AKgEuRF*jI5;0f>zr2Ty`VIWWL}4b#MO1Zyrdz;@g;r_1$ -qRe|v(tpr3r;!Jd(F)2+SbIMMVaXk5CfYxF68pDCOISfJz^B{}#35kmJKOLYony&eh2?hlbh)81j)pO-{^GqRFyZ*1tFM0HH@GP*z_M`|fNx6?&C_d*3)cQ -6>(e7Ri00H}~QI;*TK#mt;$wk|juySi&4rX)IFZ&{PdW+8E&<(vJQq*Wb3a|Kg4tJm>LhR{IFC?d7N) -R*r0p$Lz1tQQ*My^8PxM`TIrfgVpPFreexnGZo=FRc7=(fsUdhN@6 -aWAK2mlUeH&Th0Z>U59004*t001BW003}la4%nWWo~3|axZ9fZEQ7cX<{#5UukY>bYEXCaCv=HJ8#=C -5Z?JK4$P7iii`|dgr-1?HqFoi9SmeB3Yn5l5)q0N_^|8_{p~$cmR|*`MI!z2d)yt(IcG2H@84h))=Ax -gl9d&950!A(fYIQ4gw5;A$Mx%1NJuwgEn8U&FO6pJd+$eAtX5Mm{M6;fcB|eG>cghYVNGWvF$>_vD3bq2*)+lAB -SUW8SbY%G*6m8ITvH6qKALlO2^qc?w`fNoPT_;qngmc%h*qRg^2 -nnwA$RVwXb6-=uf^+%Qh#%2F%JvJF01EX$=6qH;zBkLA41ppjeYXht&#TGrI^Qb~_iD0kpEPqna|!e# -U59$rgX4kypUE=Mmjp8*ePuW)nd1MC!cK^=D(D@&mi1$}~_{NyiARI+ybSUkp!OEWw>P8>b_!a+nI#r -QAAZst+zX;SB#Dtwx_J6;?X#$v+v}?P -Pe2J>I2WT`J-3JYzNpQQ(`p&tz=^loMjkvjS7I*jS&EW95UoRg9aYOY}r(L{T^o#ZC)OlDfnsqB~mWx -4b__9Aa8T)L6F1_cQ)nfHVHg!tAsf4g6k1_o0x6^+!qNm=SP`e1YfdyrugFie84-m|6qsI7Oq|S2ca){XF@Y3O7)N -%RA{sp^{L$2?2(@q-qNy~dG8Y`?vr(A&#i)mc0D(m&Bv?YiNp3k6ILrhsV+b3Tn&4+CY-X9OhsfqyIE -$#s;LM5~oT4z@3mT%dW)PUHGMtpWNZr(O&@1&^tta(hSUNYckKo%ze@-0Va!9jp_Jq_=h+}L{L -k14TDoUkpib-J{nC^sOnq*oyDYP(wnKJ7aftgw`Qvx&1tj!q>ky)EF8Y0tknr6jVP^%JpGD0k~YcM0k -GS6tv2(io}mJwo^Z&1w$vCJZt`4MsS=$Wq_%tB0V7MjV;LK@V@SVs6{NoqM*o|%oYjM1RXY>XLW#L+u -j#&RP(b~k%VMmt-Unn}shggAE4lzL@mPsp;EIA-2+!Y~JhC&WRo++vt}Fg3Rr=7eEx5z8sYav(-}B1C -v@VaW-W+%CPGV96~kIl+?KXvryBavK{t#YS#oBQJEU<|PeUnhmxf2MZe{1vyw)2McnrunrdFU}4=U$e -qHvQ_>Mo&dbq^(%0ujNfA~0=Da8abT0!l7iB`-lezAm1g0sbro=SKL+S(t9fu{u!CEr2ua*=)r45oYr -6E$iiPcfGlafqkdlkener3ilTBjxE0(vrI5AETlJ;*9@xe8*-frVA1QT5~=ccy-F4U6X%#Hq$Z -%9Gj3*yOotborxEmBo-au@PoQIHM*#@3L5eO!syx+yefgaPz~q1L01QCX_c6nVN -S@^vB9g;*DisZl|_O5;~dp2oh`6YK6w+mj}`kZC_YYer}E5HR$f9Jy;XYEoMZwk6Oc?$7*0qsp`O!9!ApgV=Bo+|BMiW+*mh5-dlncD4r -uw4YlT^B$?9osz`HXHCNQD8qJt{^D(EDCA9|SPiC6N4Q)<2w -*1jamru_HzRUE^@4G2+D!udjv@U#auI)*4%uW%@tw23soGe0M9de;Pu0nb+2(v<`uvw* ->a_X)FT9yKnm7-S^>ZT~xJ6eRflt1Qph>C(ZdKJl3lakTWY;92)6DP48N@`0Th%zgMJ38RyPC3;(DS*{DEE@)U7?aM4Ti2|bs3}zoN7(HOHT%*bgeLOIF@? -oVOD|P4OPU???rsM7@3wqF$w*E9Qj|yoJ6USzOG%2ZB`7*<#Ua`#`$PFbm$g3L@o -PB!Q6R@CQrZ-n6_=B#d168Vh@O8VvtP23IHgHMQ<6y|%ORQ6% -48&ySv?u;vYD01NhY^?a?+DqnSx{rtEZ&*OJ!)IfLgez6qO&E&=7^zy3xF+HoUe+W*4pJtQUDESp%y%GE3SC&U-0)Kb<+ -{Ib&FSeRC(#JRA@m_VFZpK;N0%3NsGXr;{8tQb8>QoIr+YwuIqvWD@R_np}a=j842UEFuch2wcp!gq(zW9f6rI1>tRL?C>Fj!Tphgb16szgx-Q}5gJ#${acD%!}XgnpMtf#_f&ip`b2dr;458^< -g-U$A8!etzGiBY$j>r}Y>rG2yux(~%dbQr%@#TV69b#$oZfq9A!)7I=#-KZtY{t -S?;Hj$A+OIc*Xsy7}Xi_cKr_moJa48Y|uh&#`52JD+i!MsmAXz&dY5}7pnU9U>f8mD4ce^`cz%b@a6Jvux!l1}!;U!05S$sK>Z8LxPxAq%+_CYAh?yP_BA9p!G(_i{U-1-_5u4)~pQMFQ{}ITaU2 -0KRljx8;=Rnd4n=1;VL`1+jX#6B|AVJ1rM#y&cu7<3oadx(lkeH_Eo9<1|QXx4<~6f4>XH+3IwCd~wK -iF?_TB3VWB_nV&=O`DGxj9^+mu=+WE#u+r9wzTx+RMwLTureoLH%tp14yYkQPFa4H>r}OgYZYPxs&+KFy2 -9j3mUM4>GGWWsdt6JJvbtw;moih4OPyfZO)WmXypn0&+3Bl`vp-&4U7lTCeg8jKS3jIxJ=T%@ -m#9K__1MN&k6nEA;ClZ23_m_-hf3grGDYJ~(I!Ac(nrXW%Mf+j?zi9i -`uIA}{1h=~Rj0X5`(04Rfwt4iprVZsoq!!QA*mIy60Xvk23Um-9GYoTZZe&d6}q!0s#qDDoa()p?q&6 -RNEqb2fHOB7NI@Qfl197U+qn4PF*pkP6B)CP(Q@P&X7Mv2HH1`wI6q?k`EU%}1-2r~f7!jLKo3l;%>7 -O9D3v5QIqu>@+8mRQPV#t=}9DJ&RQX0X}=g)gjzmYPPcF>!;U3K7o-&iqm6_Z}7ay{I3<@hb@Zr9)k_V(Qh(H-tI4G>-2ojFK4!}47<27UmDGsDKz~MlJ6Dl0*gbQ*95bzFDRAZ)V_+Gm$vD8pC`Ch~K8ot-?z4i -fQ?T4V8Dr(?5pcc4YliM}iuF35>M4vFB3i^Z?jCO$<7}OLzb%N1=L7mjZQh?PA4GashW(g>CF*I}Pj& -)Y^kSZ}KY2gs7VI=`qBe?1Y(^faIqJhhVUyZ1$DXMCL3gOoPzXtd<*mN3Cnb!cZ26565NDX462|`db6 -D&;#DcV08EaQd%X#hw=fHVN40U!;KXn;h6aA*(+4f)f+p9YRJaHJte8Z7*V_R|J?XoJ{j1PzGTXvnt~ -%cF&FEqrU?TMOS>@~VYbElqt3=UO<|l5=esfhJT@W3}X53+GyLP5?(SSM7p!H-X(v;Aj!Fp9-uCk@%n -?u_90gN*%FcM1t`JgD}EGaCGMZDEe{OB>Ea2|FEPM!{@RmadBj&vNucQs^durTwU+}advB2*ewx)>F8_v+fQA4KAvJ_PXhaq0#gxe(p=dM*#jsHX3ZaOEq6V}>C5DMHWMk6EFe0ONw -U{MkRDt!pp$f!m7nK^rsIyN}*xitK0$l`k5%8iTFFM$SGtg^+mtYVRfK^b7KuhPrG|alBf+}bUs3ky4 -KrKM412SF6K^ss7PZyI=3?X&+N!o(K<*xBS(SY1U{y?@3P-)T9HdH~2Ah8ZTJG6I-HAhs;-IglC1yw6 -@?#)Bcm?{jkp-Kzdp`y%`nV&+_cU34!8i6KYsT{?3eWDRq0V*s+Ma8hBHB}nW4iyfut_B4Qq3X-=WhK -Czu#PL8yjGPq<_dvM{#}1MbDS5>YW)v>vXwUD1>f_z^M2m^?@O0;9vol&)3aeT|6B6lk4$a>auiSnyW -)rP*%mfMf|6SdwwJ>;pkoe8X)A#E)j8@;rb#N{naMPNU2=IOUyLEE^TnT?DMGY9%npBjD%gOI3EyFk_ -b*B4J}x2KNwq#IuR6?_K9nA9XFR(}jt3fSr#jKUI>~_zHQ9iW*w1(I;V%#MqQ&Lakz8SN`Tfejs&s>N~;o9ViKD;o38nBEcIiPdmy$j#*2%c~aGgW+ -lT(`0;es9uxa+$>g$;pS%Ai)DA@^=7+S-^&DO)qlQjIP##^xV(E#G#!S`m;IA+_Z#s}8d|I$>ZK@nf1 -9uGl;t1pA!XBHlrC58lky`R)p~PR3DMfOtgqEw+S3DkEhlg({`+A)2uvXjAThQtXC+GKhnPsX51CJNB -6PNU5NB_YCsC3;pKLp>Vh^@01$!-fCOiovqU(va<8JIDYi-zXIc`JFn_GqQ4?o$^ZPsGb2nF7vei#Hr -u%qtciT3xh<7;*4JKMQ4d1?;Ty`AcJ-Vb~;^zRqL?R4^}WG*Iq7ts2@IGwA)bYg7iorbT}O>8aRELM( -E;XuRWbpL-n?cN}dFY%SJTemUN*y+*Wk*4kiv2j>k1x;>;;r`;)tM~8UpTGCd*PA!5=C13$f+??lfiv -pLLR}?D1$Lxg=F`Cq(|CQM+#J^9v({7%GTWc(a)}*oYofRB{XSmL81SQ>R{C%xK%QJ_m55whCNkqSm77WpXKt}$dqDrrq-CfqW>7kux}nmOI80&_km=`&PO-;Hu5lKIqw#$mM@pnJ$*+ -5MB1QkES2%!eet<-uT*__b1)f;y6RLj`bNm)#c<7pPU)_5AJ-kPsIqrex;4b?spWleE~!IcOQV8eI{9 -=mQy-bQ&*DJ+_u{07e&-)*fRBlm=e&|;oIa0~GIVwXH#YUWsPq8O4ugv!nWPvBc -bCj%*L;@jOv{!x%+t$rj%SbpY-Z;0XpxW1=fsd(0vxgBPJdmTZcLg=i~sZ9T~;gnj=bY)CYF3YnUFns -5h%o_urc3?RC7Z?VpP1uUfrNqVn;pcnt0RNqD)Z$_D&X)=~Jw#+@U^e5bLWgYG9U2RLjC;|rndXQJpx -fBJ4kS-1zC{*1_WvF@pFJ)T|B+aD6CAlo+8J~i&d+5X8men*Q8Sx=EtIqpdht1Zj%`QXv%vNmstADx9 -=Y$o4+;)dU;@Km2C?jrL9?)E7KV0{dZJ5E@u)W=+hsV2TElbUEaGnqrjd;9+TR#hL<*HE+)V;8%RKpe5BySlo%>#iOy% -6!G9(?wG^C7(`NvMTbjX3?z5)28NA@qNhV$xTuvc{XHCmc;p-Pt&C4Wt3K1TML9yB*l1o!?Sr_j;rKO -0jl|3J+1Ex9_%$<;467*J -?})=lvd`-Ww1=e1H%g5SN23bGeU!XpUFlG`$`TP(uKagmd*STc-R7@V@3Xf(#Plzs#9ty|=v~oAuuG0 -0?TT+`Ba_lET2|QS?0^A<^ZpE@wM6A-Q63}|6b9*NA&M0HSJCC-$c~*?S*c8q1#^SwwJo?m2P{b+g|Io*ShVUZhNQOj&$3 -RZada($GYuAx1H#=Q{8r|+a|hgqT2R$RU7>^x$H5v&9eOW2)1k?IcHoo1u{}KP4kSm`&J!nF^2uW0K> -o&29l_ZSXJ`^nJUTVNy%emNET&t7MC11yB*GMlln@6;BY*~z@Ig6ABYWLzNE4s+~!R>hnBj`=S|E3B1 -_VgFQZgKP<$<=CLqL$G^*inuPRtk&EzT&dey{N3>PEEwm6NcC8~hqYqsvtUX1oG*&&=i~!B(H!o868WISzN;chd4KKX2RQo^g7eS^Dcj%aef`>;yxIkxf&ars_jU&C2`;_3Pl2ch^Q4Mq -DL=&CBM^Y|jbP)7ws>0cgFn0^5E5CQO=qiOs=8sHB2O}sIDg;0BfcIo@y7)J*jFw4s)cxZ_yF>v8})y -tAUsno&s7UC`@^7KsQxb$gqN!2rD}P#8CI`U|JMq_Yt`~jwY=L5t0UF_NI^JOEyt?mWHYQzRR2>2;Z( -IuRLf*Dtc183s=p@x*b*vhS~OW)HxY8WcWR_=crA3p3I4mkOJDX$D?EKiU!Lvazt4~9-y>>zK}|2kmz -Sq_SiuN5j$+X4sPtk`VAYolWL$r+)qeSvFHi6A$N_p=aSFnK9W{#uFZmp7A0Dmx`Rq3kO9OH0d%d1`j -FJVxR@A8i85Y%So|Evoif%ZY>24q%!MsRHmfvPu1m*lnJ!c77HYs0$na1ZJj93Ixt*XgVxoWcO3WXb* -CxBYBB9n(EBS60a$KVvJD7!~g&!=#>0`xQ? -YL%AloV*Ft9ShS)&K!4Z|SaFe6%YYM!Qqih%;a0T8 -?TyVz2Mg0@zR!o`6#?Zxip<$-ln5zv!Emh!Am;|E*L6MOt#yPlGRRi9zE7S)RLYe_X|H}I8O1!2CCFs -Czlu*ibyw-bx?!}1WcYD}!<-d+KB5Ypyalgj~nBZu3olpsfkp)pp^1lPRRy=jTspUZaDu>W(p>KU%ZS -T`6Fq<`BPZNwxI1wjywbqNs3e{Q902Q($i`*Ry3`31R7(5a+r2;z#PQWD*VnPjWSaVy$2T$*4Fe8U?vkLrjWnyfsgZFE*=z#m888f5c6jvRy!2<}Pu@gdR^*^?RudPAGMPfW;{79^jud_*2v$T -y-Z^e6qlG#E-ccnS^mJ0Bi6Q!4$Zz>fs>(6>~8zi+x~+NggrTD4;u`&T!x+XdSkRW` -sEF}`N*|@IsfIu`>becC42IwjQNoL^wafiR4x_kZnMAUNeYeNtmoL5-s51X$iGu8`o79#XF#%O3l&1@ChOvVdIFT -22Vi&wy~0WKns)9)NOCI%aeom9sLxN#?vV)+KFt@-0+6kJUNx8$vzLuX&dI4RpV9RKRTzlh)BSfQlpV -*v#QA38mhHInn1S;qM}iV)!D%1#w(rCQd1VKI8r>4E}#JjJ>>^*os1&@d8Hu)WDqHkeSK1}O)Sxi^Yrs?Rq2jMKH@L&Be2_$Wm&crVleY$y5q -(AgQ^#kO7TbIK~|4a!ZU2Cn1iTR{0Vnc=&;yfil=NEL%OzsXAwete@ujbyKL8ey^ -z)qgOr9TD=&oYcOVdj^BbV$7dbKz?K|rA&Z{}&YYmVdEFnF&M!7Nj+;ae;}M5&CIjtKK-nQO-FVE-K_aM4EQY#kHeWYtsUb^SxHLJ%Uz*J@JbLP?5>n2>>pI{fXi){io -E-l$n7NOrzvJ43dsA(>$~ng|DJXWTruPb5G+0#7KmoaOB#g@cNDZK8-^h*)OlzTn5*vp1RWj ->xwe*v@U24#Jg6gQCHiM9ip#w66udfuzJ9a`Y+@DArB6g$)*SJG+Ev}iKE)%A09+&cuUy#FU>C1)Fao -g;hIjc0{&Q1G#yJyV4NGpTcrttI8onq~F#?>IB5F-hewXQFC)laG-4m21yLXr@rzj~sdV`NnjwTbI6} -u^+rt^kKa?^9nO5nZa<71 -_?P*Lqe?3h@*+{8+?F|bFf!>a9du*Ff8-6rKxj+D>!h$^d}`UNs0QaX$pYmVv|y}{={p#yvj;H!6CUS -Ton#H)vKu7@ByZ8I<7JsQMSoy3n8?$L4pkkMb${SUf-~6c`X0p^M_RzY)fLtIpkWOdM_GnZ0*dNZ3_G -}(OaDHpJ}c397A0bt7cl<;C34yRWk8pN)A%_mTniqa59+$@~nEl4W0(mb}vBp$Dkih2L)N-Tc@$uSXPB7% -cZSP%?mOb_#sW^S*pUg){!$isOnm+O@X1H8JLlvAzKxY#c3m>r}u`<3kPJU1-64)3e3N;-6&&s8dyZk -8-X2EijbTNfDs-$Nw$N*w5xnBYS^%Hj!b{@xs$q85A7tjscc9ntOA7jsJbRc`)|qb3JN8o)S(GW{(F; -vmJBJNy1aL-zNi$=n^l-|(GTs15&7p-2F(7A-;*5ngxnOY$62$SPW^*K6(mUMc8W0TiCk?T1z(Ky7JK -`z+`QeA^2;hccG3I#_3p>r{X5JY$YFumeA5JtC$-3sA0Vgs&mSvs4&kOirz2~PsGms3|8;Cp*W2jRx3)c4~yjra=EUxmDOZQc;Tv}Hg -`23!T5`ZD(6NUF8yl6n>Y{?u+MQ}pvM!Ys$s*`pWzNkyL19%?LocIYiT0E$aLR2LRwbT)L?zsqdQZU3 -Kmot=$#q-a2Rz6S0h#vfohugILAWM)376v^xa`L2d^8LK7p+IxIHj&=FQo -La|-HJ9&9tp-hJ{=Wg1_9fu!TEVYKAsKif%q>LQ7pHmNK&j0_U%sX@9L$U%(0HzBpD0DYOP+5g$r1QX -+y;Zd0)4WWUNj3!~0;kP|l_uA~WDf$80l&6i?-t~Bep`+9_Mh+fhA5LU3^M2SAsQk7Oz8g~OX#b=LES -~SOeSncg2a+71<@*zStks|O*hgVm@)(f;0hH%7@Si_A*YaIbU8&UWn0_PR>dt8ECiRvS(}O%$Q+|ZS2cLc6t$wmSDRN?__Z4j0%N+ ->JjLTIE8NkRmZjt^r%@7}BH25GhgjCY=AYFCn^zae>*Ky;^x{4;-z=`th`;Ifj}cXtAs&6h -?8)sDIb|Jb)~P{6*}MlB~SJ2bsxK1Y*GgwO*1^|mkvNk5UrM($&Q6*Z`UQDee36nM-sJ8K(a&$xyGeY -3pDb&xvPF?e0Y>~Hcbm;$$a2XC-(o+%j$%N&NAyRdd@v%*69d#~kVek+T)k=$CggN<^}%WuKlR}0@8^ -$&oBNbwjtTwJ4Gue!TWk7`AIPR9s*#To|R@b9vMGg5%yI>!y!AD%ASfbMG)>Z2AwRv~_Ibq5Mnk+715 -=4eFjz37GSh;=QwC$xC)QEPQ9fbYLS|JtDSPA5u=yP;K7gaTn#5d)`k2ia*n4@RTgi4`|$Q)H|!Qo7 -b}I0~v>RnT6w5P;P^x!@ofTnt^tv{3ZIrViEYi%#LWG$|IGclXr2=(bOQw!D*3^iWWlVEta~sIEJKz_ -CMYGBS39nb}sLcCnKBs93rjVDqS{_se_IInqpjlt6Gz{O>OjCSa@2B2<^Tj$-UodJ#w|U}_N`xDtsJ3 -~(B6kdPC&mDyGRXAq#8OvYwQ*AUD2t!nYFSNm?j-X*3ae9dft@u_XjVUpDx6wEf2cG00dgmenVJd`q- -ajcsWf2Z74Eo(7UrR~-TNdyN=?SrXqqAtsX9`>IC6)|qXeP~#)+P>=&!CGbvPH7+>oT-H^T}f+y==zu -U&ZvG*&mhj+TxhKyDT*Pos~u}KkIKMyBZPVG7qz~tYrZOKf-U-CngnhCsFo!Hm~xZJDCq@(8QvatYr0m6)484(qZd7Y=0=*n9) -<>vK2s=G|${35WY`zn8j-}YYE_SZVpT(q9?~-e>`LN|H0}$r5l3L}A0?cl1LU@58;fepabtoa-%RSBZDB*0#30Le{er4zyf_QhKk#Uge0XS -1LVJ4YQZZMj)xdn|_tmDKElUcm^4<=BnIim*8h<$)m#xWES@f7O4Fc`nX>Ll^QA7?>yo6XvMaP71JGjv^P*HilDJ2y*iFc* -fK-vVTs`q=Aud*)QC!%!$5*Zx_++CjL39?w$}NUn<%wHdH%_u9^S!FFF(N6aRB5P3n9wBX$?4;9(QK% -MQlxmxwTPLE*pyh?3)V=FDY4*0GZ?@fp^G2>y|}|yV~zuc=sdxh9^c!9;205E2`dl;)X}a-uhhU#d}p -=Xq%x0d*fDRI9K#T>$oTm3Pi(r1raXC#bBGA-S1OXbySDIj5QU^`&05Z -BL~%8wr@l8-}wbcOeaGkrpln&!UNZf)_GB7V%R<$mSd5%Zr(Z)HC6K)v;%CjM4IgggGCErn6%ctxah( -@x$ZRG7!dVX9B-RgAfwcAwyD5cpUoaYc_gv=2 -+Fzr*PlY^9z`Z$^k)2x8Z<5(I7M87j%{8^hkuK@qQmroXS*zW;nayq}AdDTs`+Tth^RzI -}3sL1R5TR&Ge>IbR|%N*r`h~GS_b<6VD~2h66p3Xn{^9M{uzY{PT%f|zAD*4(reBOJfvdJyjx?zgr5d -AmZAg^a;|a-cCr{Ike>5WP>Aj|zaOfLOMtk&zdjIU{SiWjZUHcXg8I%yg$W`i4`i&mm+);Q2u~Zn?AA -S}43-%{x`-WglkAc*WLJw#0wEr<5yiV(L?6p8G-2E4WHfqf-o|S=tjjl`;il26Bt*cBbz_(b7Pg4XpT -yTRc9F}A3^S~gA~1LdfNJZJer%a1&V?CMz_-xbd!^#qwOx9NLBfn;fEABQkV|CD)F6syjcJ@*Mb%juE -mx7Z>zI25Oimq%svdV=$)Zf8aW9WlxSqPTX}ouWSa5KF(x@Q3->LBqFJSoq_Uycy6(Syf!U=l`PQLng -*2A|Vj__XLO)tzlCjDsSo*ao+BVlnPd>vsgI8@Zb$zd(^+6306dC7H1tm+i`eB3vdE`rD$;u_zT;VzhM8^9NRkc0%MKCQnqf>9U5B -zr76AYo5%7;~mYn+=HcXDtys^F~e!gvs)o1Nio1d_#a6i7h6lgfg#cd7z3i$9Gn#6!RO}H>+0 -{Ied0gugb!rX5WOt&xY25Fj|zs&@GBK02h3NjJbJh_}aEfEsNBeEtJ|MC=nG~3@Oh;FB7rjC9Sb#y=8 -4^o&rq$C2bnH^a?UM8F?Fg3OE#dtWU4T5Yfc&f$VScQ(iy!OpPbAWU;d7=!O^mc82lmMg|u9_Q}T7rT -B3$=RIJ?7FcGi1k=_fAniV47SyWQ#8!&U*v)eEGlSx|F%KHaEf*e&A9zx;ZsMbo6%udegcwM^2)uB{+ -ACimt(&`#8;8Ha_SVe`NAx;C27X{J%$f*ERfooHIy40J0k^<93u0VI*L#z??-(KqKerl@ -xTJb*ttC~c$6cEo -oyJ$fB!6O`4lQrt8*R1$YqY^gn)&R!O`aNjdNN{xE_RMSkMt;DLp5y_h(6c@d%-Ut+`oNuE&5@GqZ7( -QoA3CAmu-r|SxsLBcJnyf2-Fg)Vv!*`dhJjTPx2f -yM*y#><$2_oaggGQ|eIn<6B=7n#!*)d)DN`#j}#-k{ts+f$MIQ`vfSnF}XL{!n2Kozo35=IhkucJ>u$ -D6N#@qDwxkV+Eh3wNxPZWtPg;BkrQrF9(~2;u*9PuKbQ!>ci_u$cwSGhW}~4MLqVB%u#q%j?ReMwk+$ -;6Sw@%k6}$9fJ4^05t7o6GYh6dtkBn$DV_w04Onuk -oKyuTbvZ%^E*=|I5Qlf-ryjd@QyhRBbKL(qV)LP@*BBUkRe8{|!(}0|XQR000O84rez~H4flyPaOaN@ -GJoUA^-pYaA|NaUv_0~WN&gWXmo9CHEd~OFJE+TYh`X}dS!AhaCz-rdvn`1w*Nn$0;Okaxsg;S-R&b= -d&i0GX=al&+cNR=S%sBOOcJqO?eB*B+Ny<&1YjVu8Nz9uY7)YEPD=+Ovi%&gh)`i?rL>kXOpF(QPeCmzumfq% -lHhHKl@@PQhOikbBHfcDAHo=H7wo?3=4in4iJcdO=`Yna -ex<`pS5-ha-u$(a`F?__Ud_@?wM?)jiXa -Z3rby`^lo1TaF_0vuJf;4`HSw<-V6t-u4VlB?kbL;?Aw!JIL{NL{S}16!l#v+`%os+z5F|`G0-LoQ%f -G(vA+8r19?{#m?fR|xIL~b0Uk!h|Mk%?=j>j~;mPkczI?vZ!Y4`!SL*e^@BB -k4eSnQ;;W#Pp@kUO+cPp@*s<1aH9T -eQKu3$chBSkhMvH08pWq(%(L>buf$tbdVAn7;PxDP{UJN4*%UxK%s;x>0`?v6CIGpVZ)^V|DnWm2{4B -QEYNLG+fZR~2>!%#gYkqD;7kH7bxfq{kb4T$?kK3OFIfdaz4JhP9xpMssBKC{az6nC2Z09+NJ$L^fDb -k==g^OSh9Zo^Lr7;n8j&>2G;4XKe+M)`DRCdrySzG(waV84q>@&L@c&YKi -{^BO^|Y%#(NLeEM4sqy=FWPD2cL?1knppp`Ajh+Xw#7|D=9jjU`pQv(;MoYp%<8kAY-wg=*P6$a;+T& -4tM7v;~AkA@YN&lAD^F}pAy&OY&IgNMQ(J!R^lQ6C-O0=VNC%xpfos8J^B;8o<|wjpN=gI$xHCgHgmz -tfOUI-!P-AG0uCxHl?d+Th&ZkveV-dRw<@z&DUMGEsA&<9r&Kxq18flD0+ahb^!xD-o^C=YbVQyUCYC -W0Y)lI%p%4cTso!Hl-zKdhKfykXTLF)fqQ4LlM5<}dGvV^keOe$b-5JwReWv;?8a0C`5I{hpWxCG3Pb -L=B;&zv?z=+^CR8efDcaSk00~?A)hX!XLJ5ew|E6sy=JdtdSgY@s}_R`~qIK>y(M}0JOY3QL|bKeYOv -1DbzVkhh+=*bcO(9^WxZ{U-Aai0$QLI&yfpfMfBCp9vrai9jE3uZuEGzBKhKWPkwpo;49jDdbBOJ2sr -u2OXtRreTua`>ToGyqLH*6jh#2xb_>3`VXuaDdI8Wej)-IoJC2Xkoi|&=u(2pISUD_$&VW=~JQ+)CNx -WdWRoRzdt-AKORY3g+JhHfSv;YlT6#aq}VZ(dUAM<N+<3;>Cqv0=c#)~WAj5hBhfS_ZOftT4i68XC}am;f3J`oNRR(^rmXTrCGN1wcjw9~KNMCuKR -s0`)%od}x=PBVVVd;^L~PXWUGn}u?_<^T^Rw{ZbNu%S|Du)v@evhx&8HEmr_ndxG^O=TRP%2Ut-nRz{ -JklyzehE{jc9!vee+#YTHi%AzmI5rAAR#fQ(8YnHBTa1C($?0o6>q7)qD}rdJ%nd+LYF5RP!vNbryYd --jvpPtWAdzF@b1TSxCcYVd$#eqb3l?%eM$~ar^b54jQbWWXA5Wq_ -xwvCw_~MS6GS_!#2Ug9Gw7`sGFR%a;N&4pPC-sR+RNnEoM0;N)kFcUgQpPjKKY$b_a -GEZ&CD>o7Fh*8I4mr33<<9=aw1-#18~6i8r=bG2{!=I+(^giLz=(e3mO&`yP2I5-=cuC@BTB^}vRJIPg&-U}GX7;J6|cI>(@Vs{1&bjtPZ@ -f#F|j1+$KPIDRFID+!-353kTOX411b*UJ{^!Mp$j^P|?scGdn_Vo5ZcK+f>_h5XymQHp#P6BPoIODAL -Iv1Y2HKv~<)?9?o!6H1MZvJ}kxcNV)Tz&jnaXhX+ptYqgKa)eo -A&H;9HYEuw^r%C<9{NVm;I_;@2i!;$5&Fj=0939%b|mYD5(JS{#TzbefY7}`TcD5M~!=8B>3krSWTRE -JKX67h0iB7tM}A-auhl6U=n;=-KP;h7P&do55W=)*y-LTq3n&8SGbz+f_7AQzmA5xjB3@rjOa&h-598ND|OL6{2VN90Dy2%Sl!->wWZ|R&}qszR8FkxhURAg8b)bP -0h^|);Xl+waalHnmQcxsGc!kLN84Nh$(kz}ax;!}MtIENV}!TC%v2qaN#BP&ie1G||YiAkjCdHXyAEr -_AObqI)Xp({fVWd0>^*y2vy;&W?*rlqC~X+?W)Kr6s_QsN1FR4ACsXNX>TQxp_mQD+RiIsycBdPyV7; -Pqd0UJ$ybddF8-vaUfYA-Q~|0wzVdzN$jT=vhzb7(E(?mD&MhIGmnxJRBfWkzgvOmLEx!vdp+wlvlb{ -u@-+y>W5yZX-$luj(uQjPnXD=@N_y_%0eN2^*k^utWJNOrBvei?RFf(xtT;B23jUs@g!#@keQ8Q4HskwCEScKqB -sZ>BQ{JPeK*zf8m~oaDjq_Qy>V7&_{_FNT$hi7<|26D_I*(&xPe#u=F`Q8O8~WG%7$=|Ai!d#k#vZ01 -J0?jH!cRD+C9QX+vOyV?a8-h!H4m)?vvyB%{(&UA*Xy9$YXRW<3V3o%48MAD8#}KT%R?g!992Jsz55P -+VF@=j|4)p!?y5greOpJmfLWXs?SaWnaYZ6uu%XP59B*_`*oI8gYP6ZB5GHbyyey016+a{~r3D?l2pd -%(EM)a#PiGt4BvEoZ@=`F7&Z>l{Xeozfal~mYpkuUqc~zA5stMDSa&lG58xf<{zKcQm2JSIL+^R-rC@%MC=pW+pA5++QWptca3u?ZAWB -(VmC?FLtkyBb>VdVK6^}sW4wU2%Q%nQHB%~afF!M!;D-^?z4$zzT<`Oc-8S&PHs-}v+K~|f@Ee;*QfS -;xUj^sv0uX=o3rw9&gj^COyl%21MKtE?LkJrcwUePV!%M*VMuyoCGIus696Ye&dqY-JRgxEClV$$bjF -G7UPQVA`G=h>4eH4TSZ^i@Q|^*lmpqn@!gxQ|n4zeJm*Upl`SDO+xe{G#`-V8(I*ar!%JT;>E?2 -e{6$M2>~;k5W69&Ixo*pmPGXoj@^2F6j>>ps(-<`n^v-`YpJG8u%^RstMp7*j9jTn@+B=t?iVVF~hTF -eqpTDww@==b*f&!ADyZfJxx@7X6qorRuH|5px3DBS*={FW)-M@tn^h%C#U3=1J^Gq!F8&8x54a`8a9U -Mpodk-z^|*Ps?zw8^lEx+(A8tKbU3WORcDCe3#RZJP-T~CDX;_8Bj5NI~ -I4*{IeaDX|`iHULuFC@@4YDP2dm4u0QZ_tJ&ZNZ1tA5hdl|d{CHfj8@V)5l$OswAFzD*tIL2W1H_o>j -oo~mu!7w;?l@pC+$p}lmt}i?qaq#`uninpg>JUP&ziH^9HKAomD&ORXce}fM)ewyoWQ;k)mH$?>(;tx -p%k^RK2+95HPvF*HVl!vqgB}1*NbsW2}Xi}hK?s?kn8>H;c)Ss=&IO=X1mZku_4FspX}>lZDV~=&>UO -lQt(uoaaVMcj$Dt%yQdaHhujvcx~t6V(inGy+eb?MS);J1dJ-XFa}?$8cE%^Yfim3g^;q$Oe8J?ksJ> -z)r+3QFo4^fo$@DW^p@?_Vg@GkgtlivEh)mgpAL8Yh;(e=;&ce5_aND?vr$5X^usYHmV_q?%Em&$?Zg -Q(sBA?>olgT?Vl)tRl2rm|h#v4CnRv2;y+ -l&KA5C8(spr-fdu3#>OYe;oEAnS!mYr#CnQ7K!atUKwvghTM68~9tWcBTGM{IL#=C#ZY=7NFLc$K0k< -mpU5+mFulTQU9ZPp^x9R%h93ghnQ1HDav-dfg=ma=Mf@_eZ^DVYOjPEJ?bo=dkQs; -Hw~QmBgGEvAENVcLU93N=;aq7{pkA8l3deuRZYsk%cl66z)X34+tEs(7le{-~|ikEr4o$L|9|>}&gdy -tS3ztgr-9EaA)JC@GRD`tz8n#Rq(?S$f+aNR~1r3If|>$~GLlm{ya@vlkZ&1y`W%gCOe9Nrxct`?86GbYr)+Z_3AI}^%JXeI~%@H^fH=>-nsjiL -o*C`E_rMRqEh<0s|m#I{(vWmyZ->QVdRCxyD>{Z9=xIJD^8b{DNBEzcdph))Au&3O3soO=^qtUmzA;K -ah*Yty$i)1EN3QDgk=d9#JMCi{wPp)5w8q_L16+3C5!K)hNRkPY|^qZ!j7xxlO5CY-k{#=Q(Rh5*1%4 -COpWX~oyOx#SML597xgGas)h!=vo=5yeaC!aL0}^bnBa4)zKBgTRW%+2fsZ@T*7hf;o=BGnA|VU4E0c -HKmF}lgpTVM0#r9RZ^+!-tDwz;LYZ!F@18)QM-^ZUPzrc&}brGI)EeIg4(**69Gn#7T?jG7>w#RX?$) -VGPqUv?sMxS=bC=w-qG9{{njY)j|KULk|~@zvQxXp?VU-t9|SIW^7OXN?7Q$~<&(`-g)_^BD%_a2EM2 -h;Gjkw5fJmm!jR?CmD=!4O?MClkwMvB2Q)3e8;eQ9NU%LKR`)W_FmWgm${!{f6zn1K_PQo= -sntk^l)0V;fwUQah2no4$nypHGUX#)~Ol#=#uLHw^#Zh8zt2J%Gs-P5=Yvci!QwN-V;$+@x-4Zf${wD -KeGSyP5VmTb=<{Bl2>q`*l1*YMxRV&nsQQ%ySLOn7GpVr4v)@K^*sR0BSo7C!1IjW@B=_8gQ^#uiZ3A -;`dNr`$Sv;pFeY@hWX?IfaT1mM*Oi#>w)$=>sfMWtymA^YPI#&v%j42q@30kUuM?Oh>i=5XsO&(Pvj^ -#&o>`Y22OInp1i=aviP!tqs_sQ;|eHZ>&BuY=*f*n-lF)W*rFIE^>PLy!xi}}iye)!>}yQaEDm4Wv_W -ihsx1K)bRm~uEe5F;ZW~^1GkDu5y~3eaYNmQObAbXa7fUPEK8-q3!`fALn@U_~{nwT@@kdK&KXbv21u -VSt^dTw#Dn`DT?&q%m%_{vKd9B}4q7#SS6GIdXHz?p9uCaATiRBZWi5&_=w{5YfD|ROmseoURia(Dmk -NM=7xE|^)=}9-J@-1SFFJ9wMdf>ZL-M0*&EM0)Q$D8MS(=2~jWuu|rPQ}JyQT%7<(U}cCuorpeejFer -I -$R~=hYs?b#TZiCq=HEig)Z@Et4DO=bg{9xQd3zzw>T*){Zm&Kq=`O0EkB9cU&V(xX0YN|0S>Kv=1kgT -SCQqxPZ)`%@GdlH+9)zNnx?$bly6EhRy%>C2-%uEc7229CR`4zOS2%I>H-oA@8e%?Rm13d#jzYw2&{C -okQ%R#TVKgWXq6_sZA`K|a&@$=b!_Jy5=B&d`kZo7gpMB`DTbHa@D<~aGuZ>6zDQN<;cAB0d -;pVH^MZJy&4L@-GG3Zc>5c19Ja}o&d^%0OsY%FiJ;WTSg(_1=kxenUhC1BK+ugtiAJ-#>1L!3iN -<8aDL4ncqD&;^A$vng5`Yg!&VHRRWJ1>97xAY{O|h4)9ixF -UZNy;GD9AkwbOM}4wFXr=;uhn#WI4{%*@Uuz>kUFp*JQU19@wS{XRF?2OGGzwXR??S(OfnzEBC=Uf3k -wp0SX;h)v+SGnJlZwl5KEXh2?}eJqV>x^9B6eP?tJqZ{u0Q4Gg|^Cb8xsy0MUfukr{GRreGxpnoRjJ? -QMav+qUi8w@BsuX_bnzE0zQkp6q~??P?6euqn74c6le?hYzbby@v7chNdg*D^;6wliElxW>b+HGkVic$CJt -Nrc?Xy#R=MXF6jFMc#&YRh5cd{i5 -o&sPry-P;o~asr@dj*+Jtb-EJ(d8s4^0RAnA_U5CgN46E?BvU7_n_`vbLhD)!xgShR!cA!+m;`(psZ# -gQ7xL(Gjc5rAX6|+9dWfMZhZ|Ce%6xFJA7ix85U8)oFuG>^LIp<9s=P|=owzt{$F7YYZb%;-X*RK{Jt -@j#k)YWeA^K{QN>w?e@i|TK84MuC>EA&4A)fi}>U>E{4q&ZeGNv+?&7U -n{fX{=l8CsI0z_uRC{9a$(-53kdN=$5%L^q{a45*qKlt>vD>tskSP{E6BVcU`Sn8-@;kn-x{;7m1@_2 -E?)?}jt()NtT>K=^gX|+;_Q}0C?K4B?QXl+rGWcJ>H0ENh`99Ph>)wq%ru+!c_;ryGzxewyczkG%lxZ -8*3CB2bCS -mSuh`!DBtg1U7WXyO`dTuyku*cpK3moSE1`Ne3kzl&pnYD}a(p6JBoy#lNT2NpW|Tyi1~k4G};#;|13+5XWzHdk8akpDWBjbJqvJ&lM*48<- ->r~Zec)U@Gm5UL5)L{*;6ZHU~SnHJMw_I%_~Pz=ifaJbVw3%?qm^~PlO$SKura&P$);smx$Ce)+E)A? -OK{zP}8*SN&J6LCE(`@#(zKOFbaz(3-vi&6%klszVg>4D;lg4fuDr-Oy{;*yG&`c@kR<5NEn4w=sfUg -y@PP^A|44@scVG^)pcq~6zo9vNHyA5cpJ1QY-O00;mMXE#!g(}_vl1^@s<6951n0001RX>c!Jc4cm4Z -*nhabZu-kY-wUIUv+e8Y;!Jfd6idtZ`(Ey|6iZtprELnDaxb8um$sgHLbCB=vJU9iop$3TB2h%GAWQ$ -61V7g-yNy9?JNxf$Rh84_kL)p)f&=tS=mbSGzGCPmA1eZMirIiseg|l7q`L)C1a?h$W+eLLRhX@VS-> -u7iM3&#%l=O??-M`O*KrHF$foqccb&+tZIZs{{e9fi3#NWUSgndR@8z@t_){)MK0cd0Hg*rgKE66e|lc -E&QR^rn7nv6rO2Ned-;+Jc$z3ROLTcLlRcrPl_evQQIa2!Y6fZPD!FbT!KN2&dwM$%ZWmB;*kp0JXz6G?vMXN9lds70 -jed$^-bwL2{ngeie2FRT#F`qiri|%k$&oMRjeGFWyN?Umpu&Dt>nI?AI2nr)>2j+R`60hU*73Zd%AI_ -rPA^P1u)}sK^YPSiiI%AidNT6NQnJr;)HOMLTgIs;SkOkhfuT9v51;O0DVbpJ>YQdq&P ->#a9@W6-}08!)CrA&jNWysU?_*P#+ny+?GcOumSxfL9`05Gt1V-aDi`fX6|};Vcd9g`%wlaWa7ZPM%RLz0<3uC3rfEdA7<;3q(WIBpDMjm*L< -kqz`Bi&^9Reg<^ph*NFY*UOiO>o}fe2XGts -}-C~25em-|1U_-${q+&CL;&-*(c*#EVy)J6N)Om?4~A?qzT>>{>G&22ke?#GO87cncQ=k&qc2rQg$@) -0CzG%>@uK^R1E44$HSDQZ^OS(mCUy?y5n_Lwhdr6b-j{wjo_nZC6?`0rNpoh(#;zhKD7oe7=}9k=SJ* -j%ItlK-Kv(ixIMF+YZ@B#dGm7=la>`px|hcX2j>}XCe;27_WxXECMmoA|Lj=vC5|_gdz>@NaEIVUva; -*qz&Dzt4pk2ihbF_>Co|s{YXTaOGz`c+9yp^~mx$T6C54bEfrMFQ-PC*C -btUbz9O6)$<5{Sdl#)oZ$9yyLg+#_o4NE%V?y-pg6Ej_cAvHy^j~ik7ekdhii4WBis`BU -afH>vI4&$Hf;!9*5@3@q??*|T{TbXEdOi>f#0Waa!TZ -H;f6`KmK{ZyDo^HXZ-{m+UMaF1qpt2qH&&HL!R9_1J8zxZbK-CBo)mcrI~ZpRodDA@FA<61r^D&Lb -UK`?ypDy=D9zE6@E=f10|XQR000O84rez~TQUPCKu7=p2u1+_ApigXaA|NaUv_0~WN&gWXmo9CHEd~OFJo_Rb9 -7;DbaO6ndCh(KcN;m9=I{P1IG&xgy<@p}h?H2I?pc*3+v=8&vE{nDYHO33Nis{xOezl@o}K@Ffjsbif -dompy7#^9*RL!_1b{#w5C{YU$VHZ}d%yj*D2p-+fBUT$tv6{_^t^eV#$^%yR{wt93!eZ{$7muIU)kevU7e~Q?=4q2gNx?Or*T|kh>dNbCsRBREvd} -N$`-8fj1J(B^D08mqQw{1p{pMMZO7t4eRJDb-?ACeUX9r1m8%Ifa5GF-b+)MTvvfj&&y@sq;li9t#c! -kR2I9z)1!EKZT>1}>67>qlZsW!aZC$h-)>U|%~AsJo|F=_P79_ZDfHpvJ^otLh#k4o&%W!l1gh)+9TxIW!e{g)&Bp?=U -}z5>-!dpr)ss9f6*)T15*_$x4|u(_a*B>wA)i@#4Ub(_C4&gGKBu4^mU@lLuDIb@X%{-EOO*RoBhvXV -G$19L&|kxeA44J8Nszt?44Q5T5+`$@Y=&)P7xtd7+H@!P?8N9#Z?iqxRm@HjVY4 ->noqhk4aoT_`Jk-B$kM*;d9Lz(Ss`!(yfD4CCBrd8fv9sC3N_mt{LR+LU+1**jk*sb1lFPyX$jKRa~R -)uuIj-7S5Fj?fH#SOeNteN_uE!%zO@Y2X#!v;2uQu@%#L*0@H+&1$v$twIb{hjlZhqyk#v*&>MES!ZT -e&2%-rW?VM*F!p85UGJim+V1*|zroIoth%i^C^vEBd#VzH=bBElbhA-x8ZxRTmCl9{vbIM`0-b68wNn -05FU?w%vmppTb+`OS3};o(!yDQ^mF=pxS;r^gb*Y?KJ*;JNU8as!pSZj9Cq1@p8MN2d3&Ss!=PO$gnz -Xewhn{+i>c0<}3TUG$v~4apdt^6L_2sMEv4-EC#`WL_X*rL>gGvNnJE^N0dQX3O{A^z<+GzfrtvuP=N -RrkKaC-kuY=T&kq>!2eo1k_%}P+GA#vOzEWtKb)UbYVpm}d;yY=TAwO9Ki4O9hpH9~v -IZbjHZHb`6Zb~kRR!R|V$^+k8;t19a~J$UAjS0$W3Ag(8B*lS@`8c>b*16ZdvzLxug&TM9R)Z?BP-b1 -a$17uw3>fceNHEs6`RV*@X&#lc~*irJ%mdr);W_>X!P?q;1kxR_%9c56bKr9Lm=CpAX{L=G39HyXz4;+v#^LyC_M*Y -*nmduH(laf9zF=YX7R%O_z1r*>u}ly(0{1lBlh;ZtfsUQ=zgN*wa%e*O9P!SnZY;QI_iFMHPB*(% -r2R^Iwo6G###c#t>mKqfOOr4y^X)2RbE5}foByH(Q7exbrhEruTid9Fv%|qK!s|W#m#2F6Jjf--bP(jVP -g*!x9QEE7QaS;+j`bf6+Lsw;BAfCHCk5bd`I!zRo*GLS{?H}!y736sw1JL4oepQv|Eg|j($bmwpN=; -)9Pd?5OdyBb8{un*xZvw5gVyI-l<(}X?uLyri(N^2)!(}j-WcGEe}Jr1x(XkMND?5;<#;bd-b)Y`?{X -FY}_iOE0lDf?G -h?%s>Sp!vV0fqfi0XL0uC%vK11B4+CR;Xz$_e?A+BTEACf@q5f;zv}s*CIM`!L_Vv+JU8Gma>>0s2o8sQ?--7OKeEVq1R(CX2D@?O0yZXJ)KG%BFF6-OuDe+`%`B -v#mo;t$#I*#_rXg@#IqFhH;b{LUuOL66)RpFK0#uBpM+tgO2dq(>8HEqif(gQ5zKd9X{@VdxUHTl+{d -sm=sfmXv`62(KJG5g#6DjD1C?3i#ZDYM`X8*dkTTh6sEOICVMP2kxX;h@R2M;>1>@?Rkhnp%6>-!;96 -hg$2tf&+WnJyptWDgJJ?@U@mDn0X2@+{_uSES+BS60fcJVA-TInUb4!H}P~2{nMn|`C>1WZVz+Yd-Z&hR~ziKk51>+$0lHdWUG0b -#bvaOg8?#T1MY;e5>r}V$*d2yWH>KJ8W9GO;WT-$Yh0@yZ4y=r;mXp>c&Xi -X>n^x7lEcB{F=Qp`i$(!m1^1bJU|p`I?}_UrWl$3c=dqi$zW@8#dB!0tvf@Pg*62Hsge6rgo!9@2or( -mlMPAAkJupiF{r5hZ#^vMjX>YJ=)ksNT~;hu`wjztVRS)Vx^fYZLlRX%XFpfwtEF_2`inYQ<5GYc%!n ->VJ#Px8HnodwcuhcJw06mfsAf)9E*N6}~+J@`}|C>f>+TDuU`iZ!g+1`OVT@VA${XztPx+@J>yWt6iK -__?CDZ8$Z6is97<6r6NhbgOv*Z&0{U6+)p=Z&NkYpg|*1iFJYpr*wepNwLOI>|5l6e*XPPT*=%BE9iK -hlLF0Q>G

A#b1}XJqF@ -&PC$V@v-EXyp{6{&(0&`!6*(-zPzi@)z>rqBoJAO&;>$L4c -qqLkScA19X=BJDk748eEij8d$?)0&y7c{IHNv|ARt}qUNPur+rJmcordxozVg?+Kqwgq8ff@(J78F2O ->=ZsS#UFBDXRPL0l0$;r3g`~m|NTL*|LAeBAMCRvkd^avZ};G#%V#tg3J!iMoV`7U1vO?t -G1sJOE6krLe*`@DIUU?%`RxC&WatL-(23Q-KIxX-Jy8^8wB$D8}m9ndwPz{bxgdXP=rrWAsBt{VSaOe -z5*#1O_YL3)j{7%ouaWg6en3p8|d_7L{SjSo1InpabL(e(!qU6dWqD-1J!pB{O<)5cqxz -G1TQ%Ucb&Dla0dn@y3Y8#Al2<}Fe=nJ!ZXo=(VV&S{qAk7b;?$M?ITTrPsBb-EBgE -tXyzX(@U?DBdnUfuop}FF_wKf53YGmqPLYubOVbURT;+4RZ3Vr+!WMjf?w*0pqMYk_Xh+XTNn5-Yq{)+7gz -7?)_8Z$5qBRja4I9MgX&h>2cI(2mo=~&PO@nj&()Cq4s+bX9OVwq{iuSA~#kwfMs3-9jII+bht3*oQO19PUA>ij@u*y0t#< -|wjKsFE6gL*z7M*l#%x-n$}nb3dE(pS`dR@N?BK>a0|->tR|?j(1Vt5R$7(R;e<=OdfW+)LUWI-XMg@ -A2^jCdI>`An$3FKz=1{1!gpDNXff(vo~UF<}qlg0sF7N&%g&LG>ku2R)5QN{i!LtA%IS17p1&hG9m4p -eruY-XCRCAEwUt@FE^V2aC;_HMURS3-0H*Ur%8K6EWIb=edMOXWdku~WqdZ_@^SsC8=?(d}*YkkAK9c -sDsV0yAv9p%zOckjYpiB`+IGXy{1FwgS}Jla|MX0-r=L$;zHUm!%|aZAEumQ{N-$HE>$98Hqcfv^Tx| -j%swZ$!;<+VAqv#IkJz!imrO=iVheCOYwRE*i^v6_=2q}ii0#j`j&aoE!n^W5D_Vd1^`mDLvhsJ9({} -K@^)OJGPtn-!KA(Pwve#%v~-V7(s}Yp`p=}L2wAI8i6y;yep4IL*OqB1v2eK(tTcvdVQcUy-BeU%Ea$2cB{fEV -y22U}woS*8L3lsrXh(tJGMx%-#Tf0@YSgiK=H}~&5*XH!RX6>SyzM#FIm*?fP=Gsl)aPYl>wXG1tR|? -~fUPm84bbm5s0>#9OWah{w@fdd=E!;JMR;*TaV#ePOLj;f3rt2e_HG9Xf=(NGzbdIM6tzMp+9Aa;i9~89}2A)viEF;YvvZWxJB9%`X~J>bC{>PDYw!mu36vm)S>s$5|==*jOhswRkO6vwQ{b$KnZ^TjSjz2zKYdn5*E!N?tt -u60n#~=)sqiHaHn1OF+ynz8#EIC+dZfW4jZ6|FY9%!^L6xKr6F?@Jg=^DGZO1F7ehIC_jjMFPAf%oc2 -z^2fkC%W>Yj?lT!$dDE4XUUXR56C!XuM!M~0GXZfI$x}bTJ9O+y@y2GE=0fWXwqs-A(;!g}fJ0KVMuU -fYE-B ->&PbY*R>e84oxeChBBDMxeOSy?I>{Dg00Z&#J5WR+u3ayoqtMx96$4WTwg&YKJBx1UhqI-mXo?01hzk -k09L_2mI)P_2_|9vq_Kb$59onVUKMFyer{2PLov)eQz--n$kub#jTa@zTGNUtkDyQXQ>$#c-Gf%z8$fwB+*B)CIXj!K7RPl=z;3S6Xt -hwA|Lb*&rV-HI0#=Ijzs6-*N0to(8Hhhd2rwfo+mWcciUrkob&Mmx-aHJecTW5@lKgscx`|q@$Cuh!! -1nO#~i1;E`TM*!}dT2?|K%s|EOnC@Nn&-_8+ZX6z(1E4#vJ{P!&BO;%gXY)67ZTb5`p0wmxulAH6VK* -+h}}!I9hOOgw02+xnRmmoC??_fz|CTvcSP>cK((s%$>WdCaVd04oM&8?ss*Ci4(^DJ2@99VV~ -Un}%2Ykx~UB@&S;;6mtM5Fmy|EQq`gw>wpHZvJChQGlduW_NhsB)J#J)Ys#%*Dyk_o7Ev{QFy`y!-5R -W(3KwY{shf%{L`UK${0Wm0aKGqc$>}4uvE<-DJD7C?eQz>LW|x=;5#cX2Agz)^gsMrvDW{(e)2?Mxlr -vJWcv6N{if6hm8s*b?r7|he{k}7c>Iy?YY7jsT2sZ|xpz(DROx~S0v*bC%R$)aFnN+dTR;u`s<&?JYM -M?vek>lZPa%z61%J+X0u7~#ZGOWkQsg?kb?9>j)p@q#J-=;n$N-4Zl1muxb=)hKY1?)lxe0N4&ia~RL -EEru9vqe2rt_G`jx_0&k-@Bu4QCZ1}(78L>?W0E>n&191EV|6V{;Pvra(wDZv=dTW*y$-)QeD>n-I6OZ5=-%U+dOy -B>dvXr{Dc-)#-rfJ~e}4Q7X42RB3L98=){{7?ZaWvQzLy35c!)Y&&fW5)v}z?d*E?Oek6`=}Y-7)`t$Sf1~&_A`b&}s=m@1jp6-2B}$YSoM^dJDC6`GWO1LHx&{BJ$nm^klQ4 -_FA{b8d_}0h8fKnNU$|u!q3bIXh_OEg(@nGuzV;&W9%p#_8SE@#Wu5ZsM&zAH=|vow*!!HU@G&sepYgmgTxGX7tC&yLlu4==^t|IWf{Fc_2>_tW -x5dbjDA)i=ECsYmc5<)6Ed5RuX~gMJaGoIF@wJ1{Tt_X#=kB{4hVd0=FtoMe*sWS0|XQR000O84rez~ -U$b9{*Z=?k83F(RA^-pYaA|NaUv_0~WN&gWa%FRGY<6XAX<{#5UukY>bYEXCaCvQzy$-@K421VQMbrt -Ts$zhVfxn>}s@M>ULTjW*XhCMjH)2=d=_V6*|1qIw6hM*2v-l4l$Q+lYr(hna_JP;xM%6Z)&v$9hAtqe|fMk)avSlKKxDnPeYx=q@P5mk(V-Bf|3G|cHmmemlM21W^GGu1&Q~z@6TKuQ-@w#o3- -$*DHM?SIB(@Di#JONNk0|XQR000O84rez~bBJCq-39;v;}ZY?BLDyZaA|NaUv_0~WN&gWa%FRGY<6XA -X<{#Ma&LBNWMy)5E^v9BSW%DLHVl66uMqB~x#F51&|xSJUAx`OFs#M)7%MiNXy;g-Bww0;zmJqH$xb? -;Ee?SjQzS)x{79zmwD;<9?}O8I_`}&3(~#TP{XbNP`**Jt{@vZ({X!ibbRboWe6VVWqRP>~qj7YiJ}A -=%a;>gOwbrR{7=)E1&3eMdVo1g}>2L1CP~7_ZKyE@LKLQ`}Tj9k}ldFw(5K&Tov~{+wzE4{%FUpQAhnk91P=>A -E=IQ4cbBCMD9RM)>o=Z=Da$Kp4#?pXX>ENCL9&%`lzf(Z}wDcT!)QZk}fgp^@&u^ANw(=#0Q0hE8rn%}3{~%Q-wy*bRx=6wflIt@5d(G*xy~;KhIi=zSXBRG-9w)R{cTWh6>7V)2FO*IR+Ec!G#A~Bk<9xW=issIqX@;{P>_v -AYTX~Q#Pu9)W9W_anSUWg74$8JlyTce!VSM5EJK#W{inzT~A4bP1>Htd9^A!q&BQ(|Twx?>l){vw9PC -cRkP>6cp5t|;Y_lBRd%+>KCK{&5E;{zXE7IzX^MZU_4t7Q4LSM(K>qQYe$q+_7I@tnXSj`GU3Nm+%QH -9Od-kK{M^)fTRJxG*Pm0QXSy7DcQ5Tdv}KxvhEvuY@9zY{3IqweC6y#9WDY0bz{q5#9X-FLV$wiCD6e -bip3Vti;<#E5Zz2AXkYY{EB~2{5XmtHvNHViZ4?~q$FJ -`XIL`0Ev+EWD+8h;9grYQr0&%wCJcW_**%LERtmogND6sETg}?wytSc}{C2h0QiRbU14N^~oUx;41RC -$h$RKq$HhlR_Z}XLV0&RPUqg+fMYtA}!u=_=fpL~2Z==xb7Xs#^NmvJnrkRQh`yf0MzX3zMx(_i_VpH -Q4`_g;NQdTO8xH=soQi02-lx|9?HmbdOXl9{l~d$oB|jqP89|9X3VP^g*_XuNFiSN3D862zO%1VM=t+ -UHLTwhzX)mn))skC0oxaDfro(ph!XCLZj}Gl{Qj46zD_kG^y_6bP)>%->Kd5HLPc#W4SrLs9Cr$#h_kuwB`4gJ%?Y0d64Eq~AYIVWJo=QjuE(_uD;}4YUM_Zk^U(leTs1LZg{2I -)GLxqf_63-jesFA|joJP%!Uxo{U~8dnUNqv=pLd{`&%#LrrDq0FbQ;3thuOpUU95OR&2E2Vn=6)pC6) -X=?>V=Kf)8=Nl5R$|&Z<@wl7YPikE(PX;5SSmcxoIc8(VrjGn>WvAtd^@z{Y5|1RmPb95H};|{9wRxW5_?!lymPI3VE4 -=cMySXJ*$-_VEScDeUNokhLy5u6y>Qy+-ER@RVO`QB0p5sw2EQZfuBBa;{`wJ+^wZ4`p9mW@6aWAK2mlUeH&V+1U)|~f002}4001KZ003}la4%nWWo~3|axZdab8l>RWo&6;FLGsYZ*p{Ha -&s^TXk;cW8M1%EPHLjJK2g2gZd8@H#{2TBLQO7!+5p#otwptQ6U6A#B -WQEWR&Ofp~CTG7-92y#XA$#_SsQjh)12#EKg--GX+9?)AdPRsAVDF~|r4H4wqQfrb}&7sf8Wx$b%^eV -xBYT%cyO7=Ayar$m9+YC>)Zm -iAJjHLcgwwF$fDeEgftYr!HH<^ZMwW_#;qHZ!dt!$<0GuzcVi -ltDh<0>pC@aY47(iNPbU^ZM-_6`;eDP%G*}ePqjVRkAxZB|#)KLWUw4f*e`r^8bF_jc*XrjJNKN54J`E8jb$^bpw=#z -8gkXbxk9xQFg6bEOtY8U}Zma&$1SSVp5NJzg6SFtMQ{yUGppkGY-C-s?m-5AO|2M>OT*>->=wql1;sq -qZroDQXChH#Ygea3C0{mJKnXsZa8pUmfeOtlr2AqdYt-36blB=Resjhirrrg{wMhRs^wB0tcePlh(9ruC_W(SrK5E%!-LC%aT#$m=|X*UvV+X+Vf(6zfpqG -F1fG>i;tv19ACY~{FK7fLj{6{`l+oF9UZntCx5dD<(6^OmI};|cirFrswdqu%Z3MZgAFmEj^-dJy9@w -2?7@fX(VR?911yQkzEMrjSg)D$0L!vMmPD55=$~^$sZhn3)xm-C?-k$DSSX4T!j#MISI|PMoKmTv)<0l;|YEPYg`EK~i>P{%ub|X{Zt!j5VtD%_9)&H&bey|gYZu<` -iI6ee?gaw3xnK~qOJJxqf$!%jCaH6l_mwf$-Q;842G){;D$S05eRD+Y4LpkfGlosD}wG86V~*l|=#&w -kY%dSGcQ8#zj$vYWt2_tbXB7WMyb?A{%_;mNP1%;LZugxF@P1*2?277rnmcI=k))8=d8W;yr*Y!%mZ3 -iETog6j#RlUb7%!re`+VKx%j5C#_%mEOi|+g1^GqYcWfzz7YYSseQDv@*$q9rvQ8^}LheCR%SCBrrqH -q?t`Vz;0Lpc7NPUP=1B!N{&RVIr5Xz>n@EgmL-Z_+<15W^86WiYe9r3$mEA<X$M=KhAxwphq6BM9RAr3w_WmJQc}MAvrrbn&B)2|?$TErBXfTtDXIU)s@F?o_QI31#^WSbe5LAze`A|B;z^s2fXG_)!8bDCRoXcof$@?CHVet(Hv;5U -Yt9^RK)+jz&J~ZCY{Kiu+v?dZO4EK}<%l}_%G}*gece`0!{}zQ}r8pXDn1xj@D!G#(rc@@e;q#Fg(jX --yxMCpN|LR(Sn?DMsMhT!`&!1sf$DVm3V}b#HGkqqxrgY2|!4_X5Y%M(GDzG}OHn+|^5B(;W+6=9^Vd -Smc$19ao!vtl29ENT!!Xj)HD*reIpJz(^b$2KY<2j{ -;eUD+2g0K`yfRB`V9`<1U_EDzvG2n8nUx3hO=Wk1g9(^qC4pftAlMZ-spQ&kgdtNxoxB=N~49AV(-y(_9{83h2e=3%73&MJa9 -%=uY4P9mpz+wyfE0j0EqczHK?GmdECl}F?vAmMkn2jPVn49S4q4zsc^(9zyJIdWDoU}Y|g~+3wO?z>I -xJSY>bNqL4${3@e;tG>;R%96V@wT2gaGfb?gz0GK%o*wWB6^ -LB2UL+IUJC#W;KBe1Qh43F)eRvqA8U~>>(8|Z<>rO(ejnyAMoXR3l6XfdCC;vm{>3M8M6`#%!aSQ$)~=yaWz26fu -QVQ5XzUYix~rY -2l8yAhC8puiMn^#XjP?7!n!e;kTT6eI$MIYDh4QA!1Wte$)TDKx{xvjnKYeCOtL|f(vsS7$lRv@LLE) -I*O-I1OrXnR)`#K2qUb`$~=eECrVrQOD11@-fUf1}1oB! -hz|7Gezx8mG7w5;-HO8L{BL~1{QqRv^xND>FLD;*#Q+>D8zBPb)wOvr6{^@In#Pl&vlu6t6N3?5XPQU -UY?UPGjzP8b<{S!N>bP$EN7#k`yki<4X5^@R=$STMgd+()F@xmGg4p*HK@=I=zBCYV{st|jswEIMd91 -CYj}PEhL}g%LVj+~S8Q$m@U(r~zs}sD?oHXjh@6%UL`%#VLM8(bSF3L31%+{!S>m5r4xYh$GqoaL4ul -23Djz5Di2XV6~A?f>eBS6U*b?0O()XL-zZh&wT&)vbgaS`Q>%SMSB{84IOfN*cbJAPEpnS$dM6!FTgAk2!#&((7N2=B)MPL^%Qb%BJr^gQdLm@vR -@*}xUYXEPBDBPwy<|R#d!^9kxBtpKFe-W&B+}pLPC(u1OhpVx9~5RKV4%$9L@&$xQ95^9V7X&SyB1(T -dL`52J8M^QwCpePC4<#kv3qM`ii9RpWpiR{=iFiw=?IV8e+g|Fv#8^paj+mb0}tgiSb7cCdU4gKOuWD -#4ruWUx?91Jqu?;An!rse(kMUJKY5K`t$~?M(`G;331{~YzQmg<6bsk0HQ6za&yW4c*}l&lf?9o;?Nl -j)KaF#3k0&qN3yv5YWUQmnHSeH>KGCYeM$&E18Em~@f1}*+o5|B?b_DtQ5lViAx;MdKL)oO!uerF!Qv -~KJmX|dm8hnG$a9vbi>DQP&NSS!kO9Y{A4eRy9EAL+grS*K-!~BM4txk;Usj5z^7R|D7}TWLdnY_Rg2 --m@&@#d_p5jxwjTAYuJ7*`0AkN)I07&hDYo{m>qp1rnVOTsHp;DX0b{67C2keXG9C#T$&D~LE3^kPEo -D>OOBfZ(o{Ahd}*w6i#EneKrptF$c$UHq{r(P_jU(H$evQQbG1iivZ@BxWMfC&-bd7iSRe)!}C5#4Ay -L-W&+R$Qi7h+Cow8l5WaK?D7nt)<>^H)@pl9s3V4zSXD(^V=A8N)tcc*%dM+!#TF!7{KBn60Jn-aP4Z -Cj$aju-vITKNf=nsS%e8dQ`?%4|;uKt?lEtF`Aqt-04YZ+k-hdElSd)c6e#j!-H=R>&S}PGG -wS+vnyDM5g*=SE{c9<=7ZU#|#+Xmf^PUT8UMX{BNDthOQe^J*AC)-DI|X;r&|V!84i&5*dst+FU6>SKp|;t#G(`3k&4#7uL9m_FZOzNYT -_OK7R_tv#$Pc|`}Mx_HEbQmgww^;)OPH9-3~v<7eZF4wiWAe^~3SkVK%vTgCw9Qvd~!~Q=FnYa78PU* -OF=&->;Eqnw)wtx*XCtmR!5)?Q;fHB6bY>(X^j@ia3%zO;`A5Lybp!ISJ$u -lxb>7?y^L0^8|`ptxjzmQZ(1{hYe>t#cRxAKzz}y1$NWCpvOBy{a&f=keu*gpgk2z-NAlr+503(Gqr8 -4F9{SDd)Wcu>87n9h_Mgl7#$1i1lNv=gvdsiiOVXAx*Mddut>J&Wpu@ijh56_|+)T#4$6t{^JVWYK0x -^HGBZr1JJvrH)u>`2R*_MqyYQN>|P!L!CPp?&2feaky|BM-K?E;}BGcFXiYqFkLg$mnO`m0? -nzNc*~;x2mNOEhewN`qvz!fdy4uLwpn5__19tSsd!`k%qR43Mu>%WG#V6oh&FtWOl>}2^MZ+z(4$!K)gupD`j-CnU%H|zQ9BK -ozb#m#FFg9oZ-^UA^+4~;=+hT{2TdQuh8LU=6_oA@8aB7r?!7`#-R%D5x0c7Z-~aZv@o~^6>{O?(_^gU)dNNWUq~<3>9`VI<`Py_&%Bw0ecdQ}Q);wjR~zr#P-A!gFodR4(1X;z)e@)k0sX>MKW(ApWc -pk}1&12fY-0>ybHm=V8tPKqlr8JSTfO?Igfa=eXJalp$>g}1-roxE$QKxxXsh=9P2rBV-zv7T7p68$z -bKJhrm<%rPE5gzn|1DZ3ARKQN*mflQFP<4NIOy63e$zn6TSnQbd6A5U`wN{%mEukeSE9TN>BG)1&T=2 -j{$wfu8;fEb-X7G%Rp>u_~2_fIwu3m!Wg~9$q)`=pUGiylHGX%6m&@#Ab?n2Rd?8ekK2e6X^Gh1Xqdl=-) --|R8|ueLzvvEk_V(fm*)XPmPS{GTz0z;t>8-fBw#Gy&B08=H!BtKq8=n(E1H`yMac~CqLj)&Eb|;=!==y>+s -CWbD$beK@GDpJ7?a-=E3-iEztOkwY6bLJuh&1rgMAL#s46yv!<>9o(R~b6@T!E_)UqUiTTMXHd=4Q%L0r -u!q4o)o|#Xqd4nJXD_+NQW(Yw{>Fa;l-WE8Jp?W$X!T)YS=Q6*3I5NGGXtHmJeMbD2QmedaozOLb;-L -(lc6HO#@!Fc=d*52i);qDI7L%?5py2TLQb#LHIlkG-~NfkvhY9s1{Bav4@W($s+ic>Pb -TQ2|R%<5Ff!vLJt?f$Ml}J$KwRQ2=xj -5~W8z|VJIiy*$?iZ70w~&gw>3B`CXnlz(={>fAFmZuQreyVyK~d#~mpR?a3)CCfR|axINfRMOLc@#2L -{$w1noQE$q*SO0aJ1RFK>Ld4<}DH7Q%x3@JbzaxVhUK7R#RRN%gfEiS2WvlJh<21Vi-YTd4B&`KRpLe -&*6GY#Gyt6Hj&138%2T@7)2Y%N&La+rXUPQyT)G1e13;f^_b}bALoHO3w(^RG;m{N>9}QkG|_#N^hcI -!oL2HhRoJ9NiA(VhDj7wDh)>RLYPYwyS04Kxw-+yIlZ<;m0xhB@r>JZf7xtu2N*;NFRtZF`geSzQhFc -^YHy3sfXofMu-EbhjmH;2rhY1MN1;ISYN2hMojv;_EKM+^Ota!IV5hEEOODs6{FspMnr7qh{b> -2+&IM%gr3x3dC4lWwR|%7BU>)HUpuhUV^d!TXD5itjSG?rgrV=Ev7uAoe!6Jq#9|zq>34@2bT-FZ=DZ -;QIf{dfvbPT-E1QcQ+Gp$FyY)yT!mJZQpH4)3BozW-GH^nZH-6zOzs& -}wYaBvYahndqdj*1cr*R?#r9?{#MYL$?B0)~$UcR|k=0rL3s6e~1QY-O00;mMXE#y+0000200000000 -0f0001RX>c!Jc4cm4Z*nhkWpi(Ac4cg7VlQKFZE#_9FJE72ZfSI1UoLQY0{~D<0|XQR000O84rez~VN -|*5Qvd(}e*gdgFaQ7maA|NaUv_0~WN&gWa%FRGY<6XAX<{#9Z*6d4bT4CXY;0v?bZKvHb6;U%V=i!ci -;qvt$%&6wuvLgw3QjF7P0dSARf^@}Dk-Y8;!*&Dw4(f6h2;F4oYdr!%>2A!y~Lzsh0NT7{Gt*CmMtBUtcb8d3}*hYQr!Ph4(tepaTfE&}A2;$s*9Cq4nOV))Wi$$4E)>?W@QR*g?s1-uvFnXv8 -@`j%n}?tXC(4@HgmwfFLPi1nCr@)hR;zx&IK1eW5`aQNhV6BuE3oe%FH0J-Ud3an2e0C2t|);i5Bc2-Z%vl!$_OtRLnmp5Zsd7CB#icA-yb&X7^PJ73EWCxfA -htxlP8Fw+N5Y77#&>Tmx>RpnhZs{Q8!|c{MO@0F#T#*2d+V;fuiio}#2b+uzcGKGOrGj|m03My=Zto^ -(S53SxXYC;hrI7t4=%0R@g9#`LsMR+!RVhmxs}QO0Z>Z=1QY-O00;mMXE#y|A2W)}AOHX=m;eA90001 -RX>c!Jc4cm4Z*nhmZ*6QZWMyM-WMy(LaCyx=YjfMSmf!s=Sax?v)w0%hdi&7Sz0+-znatkXcG`6B?3K -M5N}^)M5~-4uVkgu8zUKjecv7^J?k;BHNEC2zaByBYH~@?7uBzK;m9=?WZ1aCtP_~>?ZR=UaqQo(pKBeqUJM~ke<;pd`!t<}Spw>3O~zb7Xrt9%{J -S9zN++xaeQZ#Tt){!e!TBfuEYi#{Jk-&{Gka}}z_;}jse$LpwQin3|5a+#;Qv8*upd0*#0!{<>40!y8 -@`?`!?)q5U-`2He;kxOig#zxTWB3(SRc{A3AKhk;$^bnwd?DKWr`l#~7Fsf9I-F?+e)^ZpUVDB_&ZDC -BZm3XoPG~4=tYrgpL#q+wZaEf0PoBYSBeNpYp6+Ju2@0axs+1EGkFaH=#y&u!-iTLtt{KX%m(O+XE;&PKU4N1WdIWjJFlKyA5+4Dy+$~cby9cC>;> -4}~bu0Yi2-y*6sfuB#P9?c2Rx@hO~w8=N?akOn-kE2z!1Qx3rjc6#hWd);v-(VQ~vQ3lgG8sqbTr)b2 -E>z`ZwV}H3Lv%(h>UB}B%oeJ44t+x9 -O_SDtGXA|xl{+f>gXCABh7zaedG9N4A@CWlpNeucQ=J3<#?^(ON&6_BTUj6j3^NGLERK>zE$J6%O5;?K;S%sUvKo*joX??vClmtrq(=c(1;4kYQNoy=J;_=KhM|ua%mz0$_V+* -tddIL9nYFtTK+!P=-{^m21!qO5>BQ0OBn%8B9(!(z*r3cgbrA0d9)VGcJqKkDOSj>X(`YuVU*XTF942 -%zOD3QMlM4SV@Xvj6GjQ;y3F4~0o@pZ_!p<(HH#(~bbia)*1Qs5wK7sF(#5>yt63Kj?9HWp<3Fd`Om9 -5gXP!w1A2LypkSAF$kRpy<+`Z=q?&xlGesjFxW3Jiye|AU@v*pea6+y&}R1O`?us~=e0zN=q19d7Gsg -nkh;jN03r0mA2MmzU!xtLy9`s@4KNJV*5kqk~T%U9X`osS=GOfK0|vR(Z1o_62>Uey7n*qqHJB3-TKM -y33cvxZ4?rkpwBdVb(_mCh~vHyiscukK{r^Uod8HU*7*+X0f;0#&3wfAB`bj -19fVg8J2sio*;(|D+q{fW(EvqAgrgRI?&_NE$CSMaG+!HmFS^QzjA|m>A@D#PUrKeDm117dtbwpZ+;y -7Y7fp-ar-GLL{LtQlKXVE2#K&i&ZmNg^==C)?gdLDRUr8=IQC^~Of7hD6q>hVff=rSsUv)hK$D!m=T_ -yW=efCu{LaMH@Bd_2f*EcEsK0(e(M?wM=^YdWxjj7Mq=-4#63b$5Ih!A#N?aUf)v$_QIR6YEzD*{wKG -ir>!1brxIiq`;YLKJRNd_1}_2bAL!&Dlwc{|3W~@_S(I7I_L$MZR2CWt$;57%qx0pjU1lCUF4J>6Kap -1}mg7@;-G?=J~48yFnSE5r8~pu%OH{s0FGdGCMR&EV+oVoWvt@+E5yl`<^OP47)2O5qJtUmq{o2FkkAcquFEyt|7Lc)5bi=gpB?YkB{j>W#!S8EC)O} -BB{SI5r>)cupCjUMA?(Co0**kF6=Vv#k|B{R}6 -WXNBBW$P$RtU4{vyRO)`jsnzU@cIdYN;f#d>niBr`xKjFdQHw<(U|?sqv}$x%#*M5B3UHeWv{&5eU?s%_rh;-^hg3g1cCCA$23lF%1m-^1K^f<4V?(SN}NL7iTVBV -10R;>=-5l-H=78(npyGk`VFMZd1uM{hQ>0%I%exL=o+r;b14vNMSi<2f43qTJ^?Y%vHE0OAb>7yGsCO -NWcytHxedC@TIBfJdZSqlZV=j7g=pI8cVtL -uvDwnB3s@ypyO^0Ca}vL&9Cnl)-6T!?G;o~vv?NWiCMh%&@<3I3Znif*zOLe(T|RhXB|wq|Blr!!#Mh --wWq2n!Fq8x6$?4W3KL_stqlsNbW$|n$b*XVxIjaOvh(0uE{ -{R!y~%j0k+*jeOZVH;`~PUs<^;>_$(C(Or1#SS?<_tqcEV-CA^9exOp>Bt2YE*6&=^&T -$J45!=~(NVz-*f`$^|F_)FCrZ(AR~0I$ar;N|Sc#*N50W|>n3w$>7#~aefF(bc^nJ?Gmzt=tnTAJdMI -81CxnN~uwQaHA8+7Ze1*zQ5wblUrg87CwsJtss9V{?k1C_mX7>v6{?vQ;7>$-v}d6z>Qo`|dn`B1p4K -IC(Od@8~PW95+eHru^6H<|q}O{l(M?-fYgYHT*R*GP_{Cw4IlOragM@v6tL$Z1g=r)5}DF!p53x=z%a -L=i9~rMw2Aj=eso8(8Xag0{w(z4SDfX*UCDH`M=>BsdF^z!5k@W1$t&HKcb0w$k;FAm9oARxYv)h8|b -swdPG<@JDo*rUuc_9|b&3LdFR%O46V-i29dQUo{S`cV+xdRSY=@qQWy1Y}gKK^&Q1UEEH5Tp^%`T6TF -d8S!5j3kQC~@YbFJq6?K$Y53XB_k@OB-b`^Z1>n&F|1qJ3NxD3S7yXc}Ayj(3#qGRmVw^p@7s=m!hDN)}hg>39 -t9~07%MYhN>7@+@-HtS&qHI7Y%TbcoVruQHduzbFdf`WBb7Tb+S^&`uWO9)Km34ba;sSe3Tqu(RsmX} -X%`OMeS*|K3w-4S@#1XxHBj-vzSBWatcxJAx+ld0aNtG0z--(?8nj&ts_qFDU84fDpK$w=2oM*guZx` -56kUw1j8c6FbAa(;Jol^U6syD>_F++t7#6-{8pbq5@E#?HGjcgG?Jj*uul&>uOtGd)mQ28g?dA_m47% -zeZv!d3&AAbV6-5vvCz`nYFq2(o{VD_~rI0<(<<6`6(Iq(u#s$}# -a)Z`!nmL(WPTd(Iqs`Nq+&H?=H+wq7i(?Q?fQ93}@mhmgXzB%10q68|UX^pMlbUOC)!1(a&{gPQqs7& -F3a*|6Kys+%D2%3lUJis1k*&L?;tYp`>uN7Gnhuk&V?eH!gyq|u?>PM%5g@=UH({QnV?mK%Pl&(AS!V -X9m3m1jiOl?prw0l_59h1&A2~esH3@fAG9&3|PLh$sUFM#XObhsi$iaX;>q`EC7jf#d<9u1fRTa@GIA ->=}J(Eg`ws8lN#6(3vz@1+|({W7_Gu0>%ZM$L)@czmqO39CuAVuHmD-!+4I68`;y+h?1K$|fNM)t7)f -!_d4wJ8JaJ#Lp?0v!8N?Cc4y#f9D@cJuV2$c?*u(XT3>>uJ#9w-`fxTUX`lBX+=x1MTawSjf4bzCpnV -ux!^@XL6X?3$NAIt0Ut~DVjTbjCmId)kwgcZ1EVDCOF|K{Zps2qlCLt3wnC64wL1`>=iDzhqDc3p`|X -`9zGtMYQhjwV7-a}=0jBSYkVvLqJN*2Nh?AVU7U!skV_H98S49Bi76TRDANa*B!-ty$OL161rAr&BWF -IRPiw$q1G1aBsQtRftUIamZFR`G%djkq4v&P{>=Kxw?>dAx4|oi&!1Un9Op0D&!Ui+4Vcr+HIw$gI!H -{L3dK(g`*NcY{CfN>L^;LR2>Hm?X59^Q)lqE1}|G3TCzoPvRT=yh95@j3A$bX3VV8UOYW{z-$ZA7=8G -Sf$9SwsT5T=JvBjYoL(DGr$`CAT8BrZ)=DjE8#$ofh%*?o%`55PldlqsbW$#lO+A5SPU -bP$cIaB|K-JugJR6e$?QA37?j4`h5m3RgHKh_c~{2DW9j;={r^t!AGe-E8=cOPzHxTpBVb2NsO;zJ{@ -MK3V3M(-liSN#g-q5ApfV-zykEZ5f%+GoqKRlAxUW;dKhx-MpXgQiJ%!Cf)kFqICW2?qZ5C4V*vNEEt -YlF0M6w~MI+jGdW6}S6A??m_IPOgYexX_qJxXCW$L&$aD`Pcrn3jtT&J}7PW~AP8#ns}Bd4y6m|dO+* -MRLit``5(71glYqxS&{n?^4>3fgZxXb&9hH0{~0#~9EKR={*&h23saU?NcpV8e#nqJ;xvHtqTdC!k9j -xy`%QfpL@UCTD-n$j|3QaK&I{u8OJpkhW)HPcRGPB?kJm(u5>2`D2I -JcKfeLZF2DU{`sIyh86toFYI<>gGt%v#O&h0Y{P0nG@2X#1OfR1GHMsbEdhvzP;>#(hb$Fn0(io=Y=* --!Zp^kFvMoAnUo#)Lm+vQDq7)Q7Hy|`X%SLf^EUf8SVt}wIa3bBEC=yomD;X1ifd60=e#`dHDgeao0*g7pw|IqG;i^q7$D^IP+ovypjwzpxU9jg1TV -8Ab+=KG$i(ospk@ef^u|iK`}GS)Is49i+e%W4T=OW;8)xyf#xy;5QLLPR=hbpMCz9FTVWh>uj+EzDn# -%j>tdj__GVmGRs9x{`)>Jm-&#-gg<-uq-)%C?_gp+ka4Sq^XPDOn^qQbv6Ii-R4 -v$HXDajE3GU(qh`2|HAtyf#Ld%R3Qf}FRN4IB^Wr|)2%q -ZcIJ8aL<%1e?pPDL3l8e$O6d_{i#XlkfXN2(7hO*t8otK63?b0P4+Yj&}xQ|@b`n*hcUe=@*n-WIMfl -;?gg@^W2frtZ@v|WCwaf;$ek{%zi=A9BdvJR(#pCa#?hKbMyt%=aLXRGOh>-9A{yca!K -3&AQ)r8&O{5O+*e0N*u7M=qSLG5A!nw9d>5|ZB{F2u2nL&Cc2w&T%?j1o -jS@ODyt7`NcMnEY&r+1q|w|HeBzn!i@02oYUz!;n9&Mupid&$)dC&gxyq;zIXjdALOB%iSQ9(@-W4pu -y|-bpudkBD?VrK8%e`nT0oAHF*;V>}HLGKPhfX@LRRx2kKIrEI!h~~i&7=!M=9*lAy}LLP%^IQtrN5# -xK3#T3Dc_D3lvr^-x^H`*j$zQx!lUBP7_%i;UH$?>l7cHR=DP&wRHK)-^ajaU=LZH8Sr|nE--6yHF9b -O;38st~=*F{HLsX>B#y9b>*2(+CZJqp)jDox5Y74`fXnUz0WPFDYv3LXk(}8UkJ&i!%hVRgMpbm)$4C -FeVI6v>9ZdQBYzCG}!&DuRBY0-7ODu_&VKP-ye7eU5FBKO=I#o>g!&fxme2|E?6vC69218K~pL@nVCP -cx~yf$T%Gv8zg*F1qVN@cUbvzuMlh6Us_VAP_?nnd5Oo+ll(Xl!HzVUql1$8Tu -udzb9v=gH09bsOZ)M4+jpUp2P@G~UfyEEi=PHgo=dkMzkeh+Ju{sBxesVB{J;Tw(rXaT*24p`1aFM#^ -S*s|U1*!O-Fy%5B`h%F9TWY07-;RrPv{l`-p7)l9ER=}F@aVGsDtzv{}Aay7oL;Y#U9^Fms^iLf10F= -@y%dV9ImD+BG;e!Y3y*A;aK6dYM}h6j_oYr&$0e9-5|?`-`fDoP`xey^jInXZGB{KEC*4RN1j~~V+dALf@I+ -N7cS5ItUdfxfA+o%}DcOB@&T-?xIgdsr8U4MHoP9hguP-Z&VYwEVmcSiFo#+MMl_;tj2WBGkA$oyi+^ -!wGRC6(9T|=KwKp1tK3bHZ<#5%n0#?f81UN?EGBwx9XbCoYNr?(j)1j}dP6P;5JcWGxmMZ?)0ta3zWJ -yHCp9QO1a^nC1@?kk0+!{q~xcB|In?I$NrO+I=nX5l0Z+B$>WMI875vgl@PS)XoF9FN0bU(vrgKG#J4 -u*W=Dw2y#x^ND5~`xBd=0Lh=n89b^_z3{qcSYF$JneF)sBDUmwYrG*@CJfmn`2s$qi{V4MO*AN`N -P(BKhrdM+4{1LM=@cM&Nb)<}`_i~Zp*bcY_QWht;qmX#a-TOUP;^@WICVYokTixZTJ}5COlY -H{%GkCGcT8d;G22+{rS0?G@_?bgN1zk!}>}-Mfw(sbdEdA{NIJ~e7QDd4)4O|f{lB@FHaW#HWmyca1B -kyLRT-JRq7vkzJ+wc_5&le-X0{7-#!3{G0dK`{a8LMH_Sji -n5So#VH_axZ1J^`@%8mS9&^5JU^lQ!%*Dj{aQ`yhSz}d^h8=8z=GULiErG$Lb$Q*$^iMgp8$#n?gh~$ -H`(-pALpl?k+!A++TClu(v>E#&;Wgb3fx?(fM{9ZDIK`#yqJl-85xYpKywZg+C_U>4 -z}r00!kti-Qnb@qZ(~HzNvjH2j9*bN|2)42%c=GlpTSP=3W4?e!>8;?sKWzKK?~cQZ)hpfvzg@IQC6g -w7Kj*)VbS;6L)BUV+#(e8UE;Pv~uF@AA6B_dFhZ_Z^j3e?>JYriW@T_jGKpq7XqfV2{>>T;~3F4e7k@ -dp{1h^STOZ8DvGEbdaaPEM~hMJq>T{VxgrT*R#(%h@ps$qXQ+xCHLxn&I9YOB=3Gsp7Up4YMBm+)M2; -JfO&&GD=jQ87reR!Hl$5au8NVYI}} -kGod-#rKi(fcct#-kmulEIG|GF>hz&;FOB_1QEme%N$2Y;3DN)F -ip*l?752okwRFT%r#A3bXrFg{Ky{d;tZ<3l9;ZvhL93OMfY;%WE9XEc!SF(V33&C~JVCOF(UmaAT`sqJIaAbjX!xL&9lF-S6KF^(!T^3tK^D40Yp>1S@wIn>R(7TKa -M{GZirgSIvW*UcmK#+3Nu{eA}d6q@1@19{y=Bwew$d9>X(_-0=WA%J=&HwslHxD|N`PnyDwZG4Jvj^( -SJL`JU1^uC>E{+t3DCZ`e4>4bRXi`3-h%BthO!w;`8pNs2H=W_jiLEJfWdQnN*?9jQ=R?h8rit2?W-^ -Pj$YvG)Pu8<>StY)UH_Aa_e}AG0kRHYqht0WLZuFl~cl!IuE_Qr -*G7~VZfms2!R#V>FOW?s0W -F5I*n7zO$cdsz8-i2Uj$@>%+zb%Gdqn<_Fy@K_Iu!EdE-3sT|tYt(s-jEnR*#e=&fVk -mwe5aWA%}qojX&~fX835wVw741hdB=a7wjYQN!%Iz@m>FNsoQ19*C$B)f=gAj -(JK&9IWgt%uTY5u4w6F_0(hLqIHe3yh8yfl%ms`%0rFI}Ai`1Pr|lP|IY)oo5BldQlKVb6*!^H`gu-_*r1|J;RXq255H(Jn8a)COc?|0SVv#(N -);*L=XPX#{^0U&{D&%8U0xi3o%T0bkgp^9TbNNlCND0zGw#*GQ)n@1zkFC -xJc!Jc4cm4Z*nhmZ*6QZ -Wo~0{WMy(LaCyxdYj4{)^1FWpPrZdC#MZ`bQQR5p0>y3@D6lWw2DiAieU4($i8eB+Qj(Kg(f@ukLrNl -PIZku?;rt=C$a&9j9#ryODOJs~wB~ibr@q?pVe*`7SM(S^rKyj`U`km&tn1MJ82J%Uz -KGw9L3_p+ATs7yKfs)Lldpl>*t8qLVG59nhM+$7ts#=Xkql|A^*6hkij@ -fq1xFGuTpQPXhBM5@uR9^Fn$p$n6HY}|eN&|mb%C>pIM+Es!T~`_hKXS%?zWRd$IDjDwmJ9fWh#ky!# -=Zx1FhaFad09)v?ryl^tiIuzMRg;aB4bw^m`ZG^mHWm;86UGRV=4c-;9X4~Wr9n!N<$g*b?1^qfFU`_wHbNy5T3oU!0TxB~}jse`c#a0LJhgb2ngNbygRS9P%Rz%~H(^7Z+-v-;T)L1!E7P -m(6?w!;)83qCAuIhNuI78iQiWj1lmCx?Z&rw9x#+VY^?Fml -!C9}hxM`MQ)qRvy>pW{ -Q%t}mQX&xZ3JKO|#HN1)pVLEpJ*>OhLUW}fTF`5Hsad!bpOUfJnL~bT=e4DFHQ=|$Eu!TG~fVr=Ez2>{JepuI7vZC10Z@?0+$c{JZ;iO9sRBm?`=Etgwi+JQ4(&EQJz6f)#y_ -SlMb!#o*_|VKi%EHh;7n7H>75fVW`%)}LaERnaAwUI(?(4S~0Xypqc*cU&5WK6>DVBcVJFY?}IcgtLv -qE5DNtTeLD>irW7uCu?G3Zr`h+S}uSi0)0waaT2?Tzt=x}a~U2_g^Nq*YoY_?U&dp$hdzUgc0DQiyuo -1B#Y2_aM#Q^j}ff)Z5A5LLI-j6MUrt_7&T=?DvavP;t(}CiF-wrZcT6@VYMe$41tiNCRV4S9f`R69u6 -;Y^aC@29|f=!XWe|1oD&VY5>{SMDemnLD68j3^7-S*7UVmlj^o2_kusJ6i;vaH1 -&tf#l2y$$jy0N_9sW{M7uNCMj|cfT!XqAwDeFv`t7C^HkmWW4g_;Zf(l!3-^;;^iXQ`O&d&qKa|^QCS -qpN8HeIdg`=zn1IYwp}Ko8S4p{CwC>K9K@C2A4iZQOJKE}Sxs17Su$PHvXlm!->irqo -YQ?k@OA~75tqO6=ijH`=-BQZifu -xWU=;dxw^~HlZGXA|+JTMOR8BWZ`!)2;UG5w^dnPcB?qg#&vpC?h3vnf7F=Iu#yUJ3wpLL-Iu~Nu8Fi -`BmLtk%$@7-Mr!I>S8?!K9tAAx8m@udCXaI<~d=e@J@^V#`1Ccodq_y{>ost@N!xE|%$p?vP6#c!3+* -6~5W_wf%`vi)Tu^I9Ajx82R<9bTm`<=ZS{8K&FLz` -(zb8RdZA!e_@xbbjlc*2WzXvhX0lzGZt!*m=Cyl<)tsjpoMOiB%akUyKKWLO)LW0^u%W8v-sZK4zu_C2boNFQk1v|#Jhg%F&uMV0|C#Ffk}FG#_oyJ`mR^qtBddmZ2goWWOLnEpKZu48Hf*l6*uRj(gzgIg^bq -%{+j3a0&p3+OB}C15XR+Uuh-rnk$5a2n&7=uZ+|t>{#(>(6p>gpDSvt -?d^CKEJC9`($!+?hz(xdV|Ci{hI21R$^{sdWx9#AvkG&Em3pa@5kxgO0ic6+ztgg!W;x1VZEm$CiH>r -PiX_J|#(Zp#WsG`Atlqze7OT!#o^hS9O;E^1w6rr>~C6-#mCP6bITci_tU!A_OEHiA`LQbDaOvdLOb?od!Q --Wn+EIF;YrsG_Vq$j8UjbjkI77N(ve&1D+?^Uu7vMUuU~nYsLBRGK#4p`u%4MgrPOo7w%@o8e9gbg=|?b#Zry^KL7Cj%Lf6cD99jTwdxDS8UNwREa-a88s#k1?eBk}U2|3xzFDVse~VO%MnA6Pa!G_ZZQO8? -O0r6z$ZyfBF?$`eZ{`PYExmX9+R#QG{~Ex3d1-)>UmC?x*` -XUj{ZC-_@6aWAK2mlUeH&UWkiq(|>004Rc000{R003}la4%nWWo~3|a -xZjmZEP=Za%5$4Wn?aJd9{zR3IibwhIgML;~f+qpwR6)cj+FAMiA79+CG1C-d%AhbZVyX=lhfVu5bjy -A&_aFQw1M0mj<_DsgPZ~Y09lk_F3bLlI5Zs$8dmm>95JK;J?9zHc%-O9<_GuxU`L?0h`ZCfs`c&h(7s --I8_Qx2C!FsW-+azM(j%wPtYO#@t~C$mm$*p?SnnVG$i`x2X9bI0|XQR000O84rez~o$9{34*>uGy#f -FL761SMaA|NaUv_0~WN&gWbZ>2JFLZh?aCwE2!ES^g5QgtO1>v&V?KYS;J(zgvE7(h$4KX@&Nd%0HY3 -kD#)F|tw+c^&Z_s{Ty?5(Cvg@8%}Rl2i1QXG|$_K}8O11(mBkh-m$qovhtIVQ6p%?b6@fTThwqfm&%K -`TAzWx`7702fgxCF28H6qJ3i?Ko7xpG04MuOiBhoadagRR^tuf2n8?xt2NgWxU{&g?;wqCqIY14yVI3 -hGskXVu#*&S{Y1k*eriOr#nC^Ga&qlyyUMQiDGO3y4rR>Ym^$ajWX;3hu$paVtSNC8v90;IGResV%Ff -T6?-q=7(L!Zu~`gQ&#gNyQMM1;ze%RNiYPmOp*fM_DxYZK#@(B1QY-O00;mMXE#zINo^ -ca1ONcb3IG5f0001RX>c!Jc4cm4Z*nhna%^mAVlyvaUukY>bYEXCaCwzhOK;;g5WeeI473PhFI-)E3l -N~`_K^Uaz}R@vBSA|en+-*3`G{Bj^&OI;CEH0C^&!r@zIk%SWmy*M!R@tz`^{zzQfv)31000ggWDVA% -}Z-FC9p|+mSce6P6@!r-8p}(Lnj6kIYtk)s%4HMv<&SaLSP%`o;eDYG>C%hs -lR9S@IYwSbrqh-Zj(b!OnQGsO!W244YuTZY67i#?JC|Q$a6?xC+%*mVuJm!rYfkV+_&2wz3)(x_bY9) -GZ9BZ}d8t(Y0AKZ6b@g0?EGzl&q6Ke%)qrVSFst?q;OM|wj+;N`8mytKBcqb(3ee*a)*6|l)dzv6B&8 -eEB2^*EZ1Y$0AqC@SEAe%(aH7Kww-JxT9Dn?N-#yyR(p}D$+@=i4d2UruheuV{(WYtIV7rW>G=tHH@E -laYKqDD$289qL20`J&O;>~*-+(;SOivs9VUUsxxO_JxgMY9GRS+h3G5pta~FV-s)V{tOcn}%6Oz~V;fNn-}$q90E*u_Z*%bEx7J}+AMC5kdQ0*YO(b)7)G21w?2 -6(B2A6(M%ieR*AQ=A_?zH`t4;#>0GqwA&>@X!0}8RR!R3~ol_C@pF(#C7j8***Bvhe@p6f$P!5C`eh( -?*y{%L_KOI!PAAOPYtv~8QXz6q5pO#lXZUcb;_rFc?)G{OJTiKv*fnlw-9wK&nLEV@5vM7VRIEu+E2D -X$jX*5Pq4EnKC(1!s}!&{~RbY0Kqu7UO&#MmHy7a``#nB(xJz?AD^ZYZ|Hshcq;A-IAn#16MS(aGJk~ -9nQ){I80Sl!6%7af$u9CNqKrTNaIe*d}hLZq|_~Z?7Vd!L#KJ)Q;R4huO#IRgZ9@3$rEjr0ctdk$6?^ -H^8?}8z4o$E*N)6@Ahz=$EUsw0u0z9VlkT}`;(UkW8)u6Cp|eYyIGuKa>9D3egzci-(hX5H1|MA&?`` -dkaKm3Ia02G?zy}LE4Z3Y%JLGd*6~`NEX$MP8IWEd%KsB6hWpxI-8q>es7>~=~)^Go&dA^hGiON1XPd -R7jIz$?ta9s57xF5qi^Zyq9MHCOTT`5jnOYXvwo8oA6sQYX9J+wu4KzeWEiL)!P8V(3Ah&{F9hvj)Qz -IQxd*6HctQCLf&QRA{iG(DkC|Ihyg?wRMbbk8ruqUH{F+6=cdsBo%AkRR{ggcw&ay_UScrXO!}^LO$Q -J4K6*(#gRri+=%7O9KQH0000801jt2QXM}Nasmwi06QuG03!eZ0B~t=FJE?LZe(wAFLiQkY-wUMFJEJ -CY;0v?bZKvHb1rasty*nw+c*;bo?k&YC@gnvq3s^9KmZrl%WiLr+uasz7mGtKaA=86xRE7Qr2Mjn`|t -M*NlB!nIO*Q`Lto_BR`&DRnXZl(XAG|mEl7$i6N#2Zu4 -2AUnpHpZvXuGloc&yDzRraEd?pTwC^dU$sD7xbq8jJ*7@trGeOC#d;`?UV$DfMierz+w&e?~I>rGK@7 -pfGA+{omD{Zcp{it!zn8EtiD_$L`x%JQ=t(km4kSW4ttRI62_M7EiA59w86(OIATAhn~OGl;g*$5PmL -JD$~et1F&}HBatGxt%>^qxV%RDv^FK6YYp%tGQ3~F2^P^{Si8f%2Acrir{<}G;*Im|MM61R --@Qr~r=gq6ZLeA!nkE{ifEX#(0F(G>`;v6ff_bO^q>va#fAtA^UnnT?uGCKq_Nz=65R`X_0EGF>Po*V -)lBu@*T^N&8OOlh>Qy*oD<1b-ri|;$9IB!+ -$z&!XQ~QostPkz#dx#L*|oTpc}~1td~`a6F|Yx%JnHE(W3R)!3C&Hfl`+d>_CqX@ToH=3UcTj-60^=U -*n60K93dTYMNP>IZ9Q-?^gvLEf|WtOr6N0#Z>NImgl;xZPAc@6#6wBpk0DMtC7{c>F+T>?a}8U9R6H0rkNLu -DHr6=JT_0Lnp%J45a%^Tw3@iWXAQ*+`M43#)p`Wu;=ka#StKWhVmL)|r+FJ4?)Rz6DBb)g!Ma#TMJ4y -d_-Oj+iT{bA*W)dCOWy*Dj!QQy`e0IiU*TJ2jY&Im-KfLFmzrmzJ6OF6f^%f)21>W4ox((=jM-a=>2bEaeD0 -Vda;0HsmY}w109KZZJ@|x?3z5mrXoz?e^EAD=F}$!PXIW8{PFwWjF!r2A?S5mL&_fCv_|M`mCnf}|>I -7bfqO@%jNORYT(aj~Em^z7EMhw|#P{meQSiH8ZvO;Mm;Op0~n+!wM>ZRwbPePhT(@#P#E{oz`is_t9H -$|~r^J@A4F}%D;TH-bTWBH{%9EQ|aQwn^vg$4S{t-hNQ#+iOM9nyXJ;d8_B+B|JUn6sAsaMh*b{*&Ww -S33Ufd@zFl9R~yV=j{1&TL66EUzeB#L(|Poy`04@uO40x(7iW>cyuWFjbj`#AqjfOdV^;au$0S@BcJ! -&ID4QEK!)q=z&rf`5ITffXmB$Otr6}|Q&QQ#o{rx1dug3rl)z%yamrBd|+meG^b0h@$((42YJQX=z;Mpq=V*owgP0ZvD1>Pfi2P{UW*^8o2&_gzJa#a=7d=Ms$uijJFF@NT^2X3-6uBJzyp^rI&i#>Hlgq1Q=k`>5}SMjjX4|65CTbV!Z>UA<8;AHyEVjVm(AV#sU4-O0UKZQCm~I`Zy{^A}5i1w)NNecO=bmMGnV#cGcc$gO@Iwl`;diP|&^U<^`>ISrqQj5+=+nT -S8bo7yWMQV>dV%Dz8JM(NyeY8xZy*wbhH|@kUiP%rhv5r4dA;;&k|04#l?fPo8i9e15x^Ay%F0_s~XM -f`f`4C;!oJVQ7mY5Nb#+Y|nmzi7}O1P`*l+Jg}1NZ^;BDq5bjnhcF7wx`!;?}V}ZTX#7%|>*+-sfYnd -?m`U!+$pvKU2{&HJh+!Eb0a}n3^JGwVK;;YdDGd(?WM>F+M?^t`&BWw|U(J{@@NWtV}yP6ePlt5^&DG -FDO=XVbAIigFADTT9=tOn1s8VO@m@cuP2;vT(fV8g?GOJTl7txWJNB*fp``^jC(d5jLL?p+odb$3i6O<4Agw)*(FT7$#T#a>K{XjRbXzd?%|n}df%jx}p(!mH>WP ->z`C5II!e66rtBTR&)Tz^`3;pYxHt$>$aclo-Zf>?vqexq36g(?emZBsx22hIMirM&~glQYVVNF>w_s -6`YYbspBrNM{c&{`VmSMhhIM;JuwW=c-S1SNd(=EFOC6>%UeN)9o{?`~UhgAEk5N-F}%(ZeE)R62JuH_E#+#&5#>SOD-fg-^U%U~fI_<`$yA|Lqe^J*iM -hCD-nEIzx`o>*L$Y1>H=sPv6F`;=ed|$vicAMmWUS+H7OD#AH|N2N+T|y5DS22+<_AlSQo>X;H=9?}# -wH@f;9db9|CI9%X1pg5Y;-!?B=wO)LR(2Dg`N#u`IGF4!|gjgr(FWjGsrJAPnKFApm&+mU$j@_Llmdr -qOVaA|NaUv_0~WN&gWb#iQMX<{=kUv_13b7^mGE^v8MRtU++ELKR% -%t=)M(gj8NC8^0JsVNF&nTZO{{w}Wm;eM_`!Cdk2WvNBQnfZC~@d~yIN``tyW_m_STmVo@0|XQR000O -84rez~Qw&p9EfxR(IYd#U#PZdF@p{Oa0S+iBijHcL|^B(bIll_0I?dfm@{GXsDGK*~<~_Psl|FD5}?Fc{2l3_ -LHzibc`9uIiFU5zAIpz4wu#FE2FSfRP -OQF}NqJd{lEso;Q}YyG`}!dQqORJWH>zPzbq?2Yau+YSH2r1v+4~YgQ@9fM@U*O|b(G{8FBYVZ#AEj6)$=0_r>?R*T$keW){IF?4up=VEs`>i5>ZtAGpw*Gw_^l -yB3A1x=PBD{)skIbpa16`gCDbEneWm2cd_K~kx0pou{|`edz_GB!5NLAwh^0DRhi9T=jnY&bG^&sYA( -vvp9J$yXU1u5z&Am(-1|v2RHaMlLhwnYAv7`nLb?bjkjB>{koq042_e#LaKaFDoKCZ%8IWLRMR} -{h&u@6Dz1`cv=p+!Z8G?r@UlVyiM9NUnA^`1cr)bshqHIl+v((VdNrb#ca!hVr@G~O#1dcYkhVY+Tq3 -}}z~s>!Q0C>j%!*1aNUM^%%=2va(kK%3t>mEP?|GEq$ddme-DaFb@4?7OdbBCyb)@t$l4cJq05F}l1L -1;K=kUnOAc}CoQ3PEO%V-9QELn1()iL{ZfO>K;X0M-*7(GjPdG+e$Z+m7aq -XgtW&TEc(IR<`2voi;r7j+(&KyO$%FXAHM04m5}1edtD1XOZFAOOHT&T>F^XrRJuFvUOq$W}m}r35hp -eaA@(le#QXn`6Il?`nE7y|{@^CpS}Ahp~nsJ_IkGAALJwNAN$aIXbz#xS5v(LvJylaw)XpRCF{0nsIpGmrr=;i){t6~t9G1433?md9IO0@HS;05(q_m9;m9m+Ds>3GEi4AK((Ub-U30a+sYvP-5F{q^Y!ORKOxRAe79#iP_70kETj-)L6CQys2N9BL -mWpOkUzq;FfV&*#@)x6kp^QaBX*>hWm|&*c5o3f@7eMlSi#9|J4B6S7Y^WZ=(-C$ov?fpaJg)Of(K{E -QuTw_)<@VNHVW@jXK0a)-%#x*{v1Dl`;~7eop5Y>1H6~%PMml-fo%*YYa?8Dd_pdSAmuhuyqv24z^q6RleE)g7v{w(J>3HyQbHJjwwJx4KpKFa(@ZemKiv`QtHL6D#jE_KafsO*o~sh+sI;V`=f6`Ia4p;%iJ|D4f;&LJ3*Ee??%ZJLeU_#XJ?yoP#4rA -PH!nIfj1Er`2Bl4?5R`NrMn!r&uVbcR=4&9G{C%^^U3~-$f0~_*~-H@iDP|J{5n}ihilJpFC8C -tb8eL#iSP|Of?ZLz=2k!DN>U2k6-GB_WA9Mrv^9Xu*wIQ8HvTohFN)y_=s4gI@aBW0ZY5xTj%ah}NzA -K(-<=+6Le4a~P~mPO?*t-h(JBIkQNQtc*ZdaZxS^qbG -IlTy5gM;Ye@!ctKoy -smyxfg$dZHNYpof$xl0bb0JdTQa3qFT7D%&RZK;&mM+@1S1ymXOBsA*y&(thQoV(ILQt{6YC2*~jfblS -Iao8<0y2Rqk4;Vqo+DHeHSNpt3ZzU!TlC1~+Cx-SPx&gfrod%$SfFsqUN{}J6lANz3L%tG)c2RIbGQj -|+j7zk+bCKs_!(^RR{ls&r28x%+VA);>Hc~w4_oV~YzCz{j(JUxhH@EP?LIoF6y18J-_aE -zISE}VX}DUgcpHW>H*X8Qm=hT8Q7%*c&y?500vo<&{>DJC -2-weh90o9pW3veS{UkQo##cXXpnWFSk_f1xtw&ciz8?+P!~O^qAq46WS!Q5l@bP-f1*+o5MS4z+5){& -lbb$%B8P(xh$ni{)_QgS;pmH2HZ>V?-nY1Jx@*VU*x*e}$zw+c#u%+zn>dCw4ghDq3pK6HaD*j=;2+l -*a70xNkaAxb_u2PCK%l@T>ouDepzkqeFe)V#pb6060x0;xG!Wtte_rrsQ7LJiIIz3A?iZo8F8LZ9)mA -~M)S87^!}FSzJJQry+R)vFeRgwsdO2oqvd>KQ(3x9Y75XqKU!$cEg*6wD-$WJ;BF!A$6hFr0T_O -r(=MY>J7(X1Ec{>^VuijgeXQaHoy)yErWW7d{DA~aidCO8eC~Nr9rHA?G_(D9F+}EU&dy%DVCDLrZRR?3d8H^b%Iz0mO6 -&iGhJLb_(VItPsz!Aj(W&sXk2yCl?+0MY*^}BY%(WAb@J{sb%cV!<3?-A;RprR)gftiX-!UAWEXhvI` -*5H~4eny{EakTjMO}k)_<2;ZrjlTuRNR1JCmT#?~-{p%ZfvgJ;SY>*_w`!GNb7RogWu_ -5{vUt-9$c3ufDjOHVrk=uBc-3y(DeCHWpSk8b!w*c>y}-vx*pL5oBB;P>umousB--LLqAZb(+teAiG5 -Wr6|<2iMkvDM2H2j@9pwHjxK|x|+Wp3_AmIUZ5%o0?%b{P<%0snZ)=U&_!N69REr#@j$cFcS^ -CbC^+2Vc6hr<=={~^|iXt{J#f=iUgojpgTKh?8&_1Dv<+3O>%U7N2q<{d=rC)TgI5)g%1J^B5vef7w& -BE9H*w~-4o?&>qyzPKi*05kC;N%2d~!oDwzQliI`JjI#1LFT3ZS0X!82{oZ#uy$!rS>E-vUycf8(?=X -H^^2d_<`gH>{H`}HSP(i~MaRSu?Fi5g?7e&}n9(yZ)lj;q*ix5^~!=59fT{k6(vlob*FLdBnz51uADy -V|A-D38#*;o_A!Z<;`b0|GhsniGXsryaZF-rIg%=Qq*K*^kr9 -_cs=hwvx>UPx2$O7= -o9U4x0=LKa{_#hH{~)c0Th+aJ5h0#S)X%5$pmNx&}HRZC7C1=iE_C#U!ED7RIN+IMM=OE>%=&&@Hx$@J$qBm{PP- -KF0jaT4012(HamW4L`dOV -CC9=5U73#TDe%n%r4b*{YY-`e=zl(mI!LvuT$?j?CnKzm6&IT`_+4o!A|CqSa54~Vok(oT`9Fnh)!tp -C5rqqiV0fg#E)Z3`;e(|Js4s6%6IL+KzLxe$x)T(o@-an3+?c}y4z`9j+$N3ZMd2(`z-=#IBoQby=RM -Pfept6{@Rq!4Be*?%yrX4Xc{8th_Wu84&A&~t9s8$J$H;kGIlh6O@+#1O4O8^vFr|27PjB{jtnGuYxS ->qcY*E{6ag-5jiTvE^J{Qjy(J!w|1X#8qG|ci25e?5Qtzpx7?l2Z(!2s6-O)V$v{IDKJnc&6?S#9T1Y -iWNC!om1b=|HWgHk=czP~wMTunwaYgBz(^g~-FjTz{^InWQ_D8QI_{}X4;s+Ap@;CTSJ<`Hu3_DM7Hj -$F-dg-Fwky%=9(YsQ+kR7Sk@K)9mt9^rm2-N7F}DKB1jFn_cF(P2DPR~;-l0nd{0;o^AuCd`ku1>aU+ -OySm*K0YPVUU5H&-nhoiW34HfVT -PiQ*;8F+Mj?rScOaeX@MIw%y=XSw4+dhqV*MZZ>|c189O4XSaI$Pzd60*^ZtVl5{q1W7AKNaDY(TW4%&5|b;6GTE>{K>r$3E6TP+T|X*Y`(wTtE-u5ymdnvJ@K@vs1ng!OsmvGRfj -mpHDpys&#o`dA=>eo*SX**1=&RFliQ8jex*W9Aj2Oe(4V~OA>3;98=TXQlc(vxdq(sUrE8-HA5O^fVX -opQj)dRtr!qGg@3Aj63pJn@lx>8D+fs4zFX@@b<3Ya>bR)15mZlf-MJ<0Ld!Pb6|s=Zg&SLsyZd{|-> -ZP*It$GZ>GN}W?N1A2%JU@C(^jzgE+1Bc=d{I1Itw<8@nsCo>a -80GR-o1=w#YV{MQz=t(z7z-_kc^qlSQoE{b0LDY8uoa>K3eqiWsX!wXiz@PqB{25p`AxVFN|BX5guMO -O~^WTox9P~I9_ryRky!S<34^2-;jZ#UqFKXXrZv#V_f?S< -$Ddnn^5u24k<@oUj+Kk6!D1CuK6n&z>zniPST^)%Q%ZT=P4_l&F06>f3*RXcoji1v$xb84d>~lrVeW4 -ZQKEM+xE21D9K!(N2qZpEW>c8THE_VCva>-;Z){$ULq^jx8->@{7(OnzBCuWyP|-$3Q12-JC{yK44`w -`V+5q)i8>yl_}6?Tk6(`az^yK%AC?I3BA@{*xn_Q&c%|Jq)x0B@mVM%^{vkF)_`t#L*pKYTqC7u4%pf9=75x*YE6iI6a~rThBX9a&K7L`SS~2DB$ -^WzK?7Nczxe`9rlNv^auQM-%SQZOEzK?OY25fbCIIwP8O+9MPdt-lkik`aBR=|OLld~j{g6NUmg!!dU -*&B(@DwnDo>@Xc-pE-C5%q>{1=X-{<;#}{~H5dIe0D>p*G#_E;uGR&6IDZN?FzICeQ?CLM;6b?U|?++ -$B#3%Wk-9lgd1`X>_VSZ~ia}s+p3jdPym?#-Y2n(^baA|NaUv_0~WN&gWb#iQMX<{=kV{dM5Wn*+{Z*FjJZ)`4bdF_2^bK6Lg=y&}JJSrR_y% -c2GGuyq2RZn?u5Z+AmK2+9-E>KI)7E9*sTu!1IFReAX{uWPDC^a#s8;%CTQ6=^XMXKk{q;U;DrnapEU`0gmRNvw -lVol3kuG20&!Ki*u~Bv3*_PLQ;eZ>bi@K`RqATi3KQTT?;Pc0H34BP#OYKmo{^1+)pzS+%g)-Kj+qoxNFnS|1STYnO-%DPqgRb7|PkS{jdZWm -npS!KCuuCk^De7o1{wtKbCs+G!}tCv-)7O?Ce)Sr6QcAt5f_}-g(k>N=GBP)9sQE#&^A5_=uoJ;T2y` -7+Q{i>Yg>*e3qsM=88H3ZD5wYidwbhY?F11^=u7Ds -{n)F>!4p42;&g{im-qhQz%H2n{h(g`k -X^O)tpx@cL>$bD5ha08)98F$7_oi6Z|L$OeS_BhoRX1A}rJ8N)w!kj@w*CaOwgqg>)fJ5(_1<<`^i8Snern2TGE>!}&eg2Tnw8qua#q#NCM%0SD_UG+9{!a*&jCcbJxy>XY6iCs4!$ -(Ff0FaW&{fKp4i113!gXPXDLnlKzN%(Cn;|{TW|M=1*=x1T`m%#|_0507nvLP&!C`_MSgy1OixTjd*v -*7D$9!{gMw?+Y8X2~haPuYd&$4uA0r*Q@w$r5T7i*X^J#a>i&*rJm)Ubznl2y6i;A7AtJs==y3i#{P8 -IJ`Slh+JUSZ`G|o+Np#5Z9f>cLKxQs%D|8?wHpu;k8RXeYk8j!25LpV=mgHZ`HDg1z9G$x^Hw-AhJ8v -5cKK@e)d~hFCT8MfjRI~gFX7fj2G78U0o@uFny`#NY$ -Ri?hZC_9A|otbi4Zx$1cIuBPTmyHyJk8R=+pV4lSeQ@Vd1lJl5{!E-sMhWvfvKRqLsF%uy8CoSuHAkU -y3q4GRod2eUlc8yHjnI~-LzNwPYla@wt{-hCnJZUDQIMnF^g{d?5Lu5w?{>Q9@CF*ME?wFS=t9CG}4n|dEWn!gsI52wBj*NQ<=Ad^jZ -5wPrn-+Jf%ALL2(q_zyHoGZdFl$9k(m^m=*s#PzuGg?*;9r-4W|I(4Ln&}}ap#A -E|LWiV3Zr4B6myxe|8p7$&VavNuNx30$8EM$A!8$k2fL0bnX!Hbd^+0%+YXf;xj=T)%ucg~biT4*7vR!CGa?uV61Z$SSsEeE?c5<3NL -wTcB!ckszAAUgecjx`E~t_#BJ$*U%KL(*uYj*0c8eA8P#S@5_QFS#Xd)IoTN}pyD3A>S -MdmDcRfgiK%8R=q?=x2jOYeX&0}Ak#CCjqTIz$d2L4lGm6`2R>R!jKSJu#^$rWDc5rUn)YeNY-JKyS4 -G;kq<<1R-1&H!oPJ5lw0?ovaE}he4ty8$g2rwuHqwUcs_g%!|4Pl@gS+S|^l2wQ2HliKxVZK|>&_e$l -~L)>-RJ6POSa$drj4{$=HTwnHk}Gd|XG{I%F*Us@1$b}ioZn;YmHChIaxAlf#&LuLtx1$+|;E8K2r@) -o9vH>%{+Y8B2-N;aUA6&-OKm^&!CJqc)-=;bn*&xr@l=lE=^Xh#ySpZfT7M{{2QTZa)W0AvRsZ(u0_T -RXmi$^qQO@#et97R2IrM|aA{9u3~Z1r5Yv0tP4Jxo&zGPF2&0c&hWcU=9X8G&JHwS!Z`IEpM89UPIRa -Y1t^{izI-Y-DO3ILTSp2kJ5_);>ZlF9%N++5FMrsw867#RH-sr7A>$ct>?7`=!0sxgh!C@9T5jM*rG4 -9X75S?X)72XvQMLR-e=4{0lL3Zgdf3Kj6Zp7G5N)ey2aXdrqJNb -j^CS*38nvySLUEZV*a8=Id#ya9!6UH4_K37AMI2YYh?Bb^c-f+?X|ry|C#H#`~tZ?g)_?q)vF`z*rjO -Xz~uCu?>*6&{c@e0WgKF1LgGhC%(;e?5JQ6f(QLcSe-wWD5hUH*$rSkvfM3;C+vKs9i_BIpQG@anrqM -3!ZUIv$^5_d+nPMN>x^=>~n19_yZ7k3|sZKfpJ>IrjVyq+u@UXZ}+dZk?bW_M9!Iy+KtJA;9LYk`ugI ->m!IBT&#o`uUcCQwZ5ztwJwLUVhy#THg+_wTWg7)onf?YZ&W7R0P2PUNJwrBh#W4W_Yk99xIdL|*t0P -BG@X$hQkr9lJ3i@L2ig8-Bnry~`^{Mu_OnjqNt0L$6eu}omj8qu??8JjF_(k51NC|9Uxp~gaORsS-eA -}sf^KV-q@-29rOoVg(u8sP!5KUn465T*smS6!GVl?Nn&;$20VVE}N0;ofO`RmXVOfB{S{%t!xOnyXxi -sF^Mb^SJJYu0P>8UztKrpA*5y@j14e32`H{3`7*QFojnyJruTnZLgt24Cs6@5lg|xP!S~E3{G@6rn9} -RMtp=9C0LMrK+2rTwckxZ?<64wy8hus^839A$y)YiyIi}6y23=1UK}Ca!Ji1)}Pg3a#4}-{4QIS>IhZ -ORo#H_*w6&<380!O^6Koa28#t@1 -k#8s3}d8?`Mn*874!$^z}#Xn|zzDd>CB!Fa?y%%q3WH2LLMXX(O6e;E;)M!)KP;nVb<=0cvqQy$ThJg -C$?E%HMS5Am>Mfmn>pyrE|YDe0filT*{8tXC<~;@F$h2n^eXh!uv&W|X6qj-TX{v*by8_5|=3<09yAp -oK5!%w_VT0iBJ$f9Ak-RtKSKlzKARA3eF%_H;y2)%51y(}L9HrCNuWX@2hyn+38XJN)}kpSslHOi6ze -FBmp(=mMSShAyUNT!F*XUFn}-(`23r{kb3=T8Jldmf=1Ww}~-N9ACjD%DerB47a5%by>3wfOHD{9>;|K7d$?39}KlZ>x@kOgTT3FP9z -A?p@g>)t`Bcu-e^kB_v}KUTH`M#QfmU%>ykFf6_i)3omqivNg>uCcvi{F4#*G;XLgaFA#=2{T~rHSvm -keEa7-$MH@cFi$Sv!8*QGy_wv0!ALR!oO*0`wpDbP?XXCHwjqB`Q{(%u;Y^6`;#yfBHVGV=P%kbpolAU5h7NG0pLdWJ_>0PS> -=oP$adulk|mzF=)4_b~|Sn(=vT`i|W|y8$?^%TtbQLA^r^iLzikS;-hU0%#4W_o2x<01W1VTb+EkJ6d -((0w}a6QFC`Y5Aku7V0?IF#JhV?1Nx%N+k=&J`Nmc6^Yr8wmsYkStmC4@$Pua*;8oTql><2kR -bVh7f>hX(S|dJs6PXveGQz?%xsR6HCMIRn)`yp<)~SSPAJfad)!ar3Uy=xGa7x6v&b6fOcIuKfu48N2 -$B1!oOeBLc=9=h8{I%a@dJ#i@_ZX4p|n3sydgj|Kr0Qq+V)O@2PrZxn1k_Q4oqZNJVc_vw=H;kId-~F -kwSQ=y5Fg02MhZVSa)?+DjY&w5i?e=+sX1)f0mUOiz6+Qh*j`g!MqnLj$c$s@ZTO_!>vXIGJnWGh{uM|jpqZvvt&M -tHrX_A>^1RdwqYM1##hn;3rTd<>Gd$1)vJgP%jcqS#lMqU%g2&@3dU=83S8xZ}(S77~VCq -JulOA`U6FJ~M~%_tonK9X@~hdP@+VQLc{EE2g-^eMPi>`S2SvG0RYm$}wKw@ -)=ZjLLMRO)<;YuAp+%tuDhr=TQI6`in8c-(*T}1ufd3#JSl+ynxQd%)d5ATMhaQ5ZmMafNslo@avdqU -4{VT2mX;EYxafMI;+-6fz$1SUON65W+^{tYYXNi^*K528GypGXF>TZMigT(Vxm -quRjSqtvyQi1tED4Ljt9zNhH>nk7|PKf4TljrGo>F<6c>qUHHlie!qhzt%k64qTd8og3rFQ7&XQ!h+1@hK>cJP>Kf~FP;pa4#rh@@f4 -woWn(Kiuu%tAJnZ{4PI7X5TD4oK8wf)CT|CXjh{%Bl(iYvL+7NfdKIwtcDGWUl_z}I+0^m!qSQIm-zI -2Vm1M$K1z00cXREMpGK;tB>E>zaXo;;m;Vg3{3tdZh!wR_H7re#)1AxmC%05o}_n-pY1wjMbT_~rwJ1 -6ba63!dt`Q!O-vLjfH-a5T}HU3ZCEYFi6LWP2D3h^%vQM+ZxG -cRa96Xg)B*i@hW6&}Y(W>~YT_=IG-iRy;$z&ZkjqK-&$nza~Nfg#OSPOB=i?R1Eo4xUfl5n^VVDb5plWPG?tw5nc8q5^yS# -(l5lk-L3arU})g-=rf1%TJ2KJL^fXGuf+2Z}jlQ%`xe+ilqLaEKg$Dco4zkdJu9W6zO|Jv%5Q*M6s;r -;dd>;HtOVZs$VO6rQc3Od2nZ$ZORO|iJ`QdpgJf0GvV3FwHcljqM)e|K_vdUEqTY{Gnx>-Nj>t!gS&9>eXEknokLpmdU6C4Y&?)FGtUH!C+aD)u%ollNQvb&n6)rFC+Y4n`8l`7@x2;jjXl%IN&gHWr-ve+GP^4u=76j3nqZzc6xFtp`;<&?8okO-d^#e -3W*oXaw*aggX4`g-?;&eiAqE2Y1JSB%De^yOxs6l)(!28KH;^<@{srw``=nH?W-j1Jd*4;h23!z1>d~ -dYCGWJ9g?U5@;WhtF7i0^=@Zep|oE4AHhS6$SQ!ilWgvp|rLlo`j(*SpPb^WccY`v?8{doQ*5G^|JF58bLrY0e -{x0m+i)5S~*az}X5$eqZ>}uHUyI6zD?`mMf^Gn7YCyJP-Aac8{%i>lgA9uhtHWy!tZj$Z+^&Z1W?+bG -4CS_gU%A*-9>Wbq$Q4z`2FaS(pW7QRBF;>EczeUTQx*5AeD)+Z5$o_6{VMRg?M9;9~xx*t$TuzWQcJ7 -oDsc)T!l893#@7fA;oj@dwD2L$>BRhsY5hh1ZQ0t%=5=@0k=--I{91X;V=zQPk#sje={$){ny=#a`?} -9tq_>Q|@QqIo!N~2O$t8P6Q%o6R)!9>t;1ai}^Vrm=6Ubg#owWslHn0dIzFVRLA{ -g@Rc8>N)3V4||eNS`2s_ylIq2bIoDhCDRJ2PSbt80~<9_hm6Fs%1?)(!V{4j$%W+IW8-&e-^FVtXs!f -bD!{jlp{C|1B}9;B7$~KAXCbJ)jj`jWw)6SKj##0==j3n3akd=8r5Y!<5RIHT9hyQN8%B -EgFXly;Mxr<5}4mBT{zJ%181Hx#n>(9Li3N~@bk5Z6&>#Jn$A4Uq8057J!YIYY80`33#j8c5PR%{oTL -AX^I$SyLOKn{c;a+=HCnKqBgye0?p1a{EawrkoB9$K4OS3s^!ht`JM^SZSgKXPLwl`KUx)$;51Zs`D^L)nhPlJ4lz4F;ECYB5!eEDkktX99_Y`z9_88SyvW9iix#u)>@&y8k=}F6* -IuFDCza?*=QJifO@N$uXX2S)yqtgR(2X~29fTFG_cZyu1!7cyn!J8Y_ZiuoIv@rR~nM4?kX%${#nnVl -w*rM{X6zxHb*D;BA4B36Gt?Y>P_#5y@ED_}UB)crcPLUU645Zq?tub2kmBuNhNw%2Z#j -r=v#BdeSn4n^e2YPlO@V=Mk~&2bhHVAL|H8Obq19cH`>y<(ovoPQXKBn$;RPL3BvTtsV|9Vf-Bq5mzX -Qk1K0!rF_LnWi)xm!Ep4`HtHK@;c!k{WiubI2iMmi@BoxYEG6fvxMk?~2w>VVCj?cguP3Bing+x!NUc -v{gt=l}7+6eHPZ8ZI^IRTyim{&aCYO|IU5#Q#6Rf2v!glL##Ab06k4%;(dGH>B-NCWIb>d-+lC4bfU(s&_(|hAaKH~9% -W8C*$vC2dV;VRrYJ-c2LM<>eF)_NTB_Y=ItfL{QGxl5765__QJP61!ir3d`E5VbvuQ-H}PbRgm24nZB -&Vlbo+yHwk=wv5NUY2cba$5;4nmqh6Sm;sLsz4i2xVdE=c{;vwD0u)eVTkz=>pj&O>G~LZfFI})oQ1g -K -v6O+uSV&fuFv$W-!Hkh$hA9hkRzi(gpcbv8rgS1MF`w90RKa=&C|f+U!k{tJV|k{vi?UiYT|jIXm8DJ -GY9(*amn^{+2L`csi~o9M4JFNDl2CkZK5QZZla+WHW}GvIc>x<+C7)+r^pB=WdU{qIKMg&c_MUJUE#) -Bn~GC+@=|!mL#eI!bk0+s0R{;T;(sCvutt`tu0oMQ-^_*3kgJU4DHW33J~Tx6jtzXT9ceQkC9C?nG0- -R@f6{e@oL}^DkrPp9%=QSGLW@)fp)A1B~n6Z%TBB%;nf2>fPu6ZDbNeX3+0m5v`D8w@p9aG%ig+mSgZ1V9Cj_<=(*=Eu+9rA8G`O;^e^eUiM|6Zr|fZ -x37eT374|`K`FMfU+Bz8Y0NWgVb`tT=hbkV3wlU=r1hJpdD^NhQ2D-9O8IO-uN<@&JyVVK8q6n6Y?DJ -$hEzXm0r;mc2K9Zg8MI4jUmWod47q!o#An2~G^UkyL}8s~dNw!h3QId^bW+CVR)_q&V)Y=vvJJjg{20&&!FIb0A~(0)?_ -ChyVQh)8v=aUrD1gj=`a4u+hKjs4)o_ThyBqVS?r_!EH|f?hlbC7T3jYSUY=58cro%U7k0W2!#iV_WB -2vw(`Q%`7Tu$rUMMsJne1Dw+i-yO$aq^6fT{Yo7gF24J@CzK;ip$?=D_lW3GV%jC_%(GS%B1+fTxVv0 -9U@c9CH9Moa)9=D{UPI-$S1^|BnO1%^JdLAWf%$B72f4hM%@msGj!E)BW+5SsUi2|aHF6hwyTTRm;Na -a`%eM`#bs^j4{D5CU=orYb?Mskcy= -%Nl%%Lk#d8fPIZ%;JYG|6+JYcg78R%m+CXUSpt8mS`9$1A`f;ril8z8mv>vm|RyTPluHjJEV%l>i!Uw -Xx8S<^c`GicTgn})hq0fX|BQ+@a@;`~%#}6QeyMSqX)>1U?J+H9Ox9#;t16;D)^oxHso>;Sy)sEgJyyjA$LgrEMoFvBYf92klsx0X$s~i;^4A -YIBAssfS$mLc+xIx(9}QEKLGn8&I!&A}|WMY!KGum#)u+ZxMU{pY!QyS1S24l((H%v@-$i>cwE27x7KKF -1Qx6~){+BAzA#0TB_6Op!4b>JQa$_j(Q|BugJT_NWOqKGv0{ez+OcwOX3;;RP_)v1oFaY$j0Nx%KdFn -pZEswoR(uazH6siW__Ht|b2^k?7&DEi|Bg!(rI-UOmQ@%vc}w85+4OF5jV#KAO`*IZg5PzQTx#BFXbpL9_3lXG=Pm{49U>nYLGKs|?ZczQiIE=Y2;~v~K8hCTdgfp%8 -)z;HJ+V{AON3Xb4jZU$o`nhm71r6X^$K%n~zS(-jh5?fYj(Vx59Vmh)LI&wWb^@WWb5nfbvHNeKHKT4$hPV+G?#+DT^+}+A4+hk4{ -B<%f{mpGow8${v(x0nZvY-xIa|>)NXHc~y*(T;Wg<%nY$>{UT&`L`<(u}EoMIw~xwJ1)WT~QtgGm#Sm -c(<=t|t?M5!ERg00!$oP6|3^GBrk(;L=IMUa8J9MXq)|04^$+C+yR3%@~uS*6aFGfkvUH#_Ig)xj#ucpViafmCO~sZdOi_Qn$tHME)8DHk4c!p;b#y2 -67=P6+8P@M+LniCcIGnIX_s2I{D;hTx@TkB14|T%B3pz7Z!;B?K2mi$ZwyuJcgklx(yfkZK@joU=kL4e-9=Rk(l#>wcss{xLAIL-u -kx2n-&T0J%z@Ekr-VDxx+O4s!tJ^INr}b0G9h&*uvswD+@7e`@7tHp45eor+wU0TFW(e1oiH+wuj3kL -TU@FddvJy`8As@hf70N1biz{0txCNE$C#kOGylgp|A{Eey}0xJm30eYZ1CaiajVe!FU5YZAo3)YBC<5 -nNVL(K)xo&z`r&wEJHh;}F3=UJT>k)U*}mXlWuFx{lN~07jEg_=r$sh&@Y%!JS~c4BvHj?Qnlc?_Yb- -jky!^l{6*~8g+CEF#NWIp*I!`zV{$VmuH#?5)Y^fz2E7OR2!6Jy!b=cW`jU{9N{N?U5}<1*jxIm-@wo -gdYJV0fhI^sx(R-dyU`RSUFn|zETJz1C0_>{AVJtR_{(qR5F{QV*#Z}ZDZ#f^X?|H9$pqF#88F -aD%USd7aFe#4!V-3aQLJ<`WXhnw0`GmWtCGkCT^a{;$3}>36?-G5qo*w -N{%_Hw{laYZz&6?nmv7=56T76$C9WiBJNHhv~ft3$bXI#IS-5@5sFBKFFhK5OZe^H8oZkX7;&h~XkE$ -utu@#98`dFUQ^gO$^Htks=69S&-9f5*32Jx(?~MlybjRNVXStdPU|;cVgA*Kg@X3~dk0dpzKOU`9I`u -HS1OKTLkCn}xAYMR=G*?4E+=HH0w!E93(Ym6Y_$glz~76fTSrV9A_n@y&e_8DQE@XLP%0XLq841%-k5 -l(D7b#+Z=|mqZ+Wsx&lVEYA9HG&HUfqJ*~Z(UbNlO-948F!2X-wQST#C<( ->=%y6Q(#RDo+WuxpVUQKe5uvqZzec%`SiE12WCZ~m@Z)F`{fs4$0?K_NChT^Qn4ql5yR6!;-Y$pp%-atJOcI|(pbWR -r*iQn!wM8`QI;Qm_`wbC2np&)UahdI>lH|POd&a%cn>$aB&CiNKKkk6`e>RQ>4usHA6bUVsozAe9@$r -gX_|chjGsU)VZT-@)IQ`+cFMxB9!)!kp7b-R92k!S!8`P!Dp|n>eWzP;`g>3oi?g(;%ne4OupA3ti7o -2SLw$0?Lu0q-xMa!^#b_9ein&*2cic4e=2*%`xV*aiXQXz}*me2T!{np$9+at^^F-=C&I4uq50s$8FTXh7+Q#P8P64yx+O5=LyMJ3O_|NV=9(F9El*Ub+6MP3m@H&m6&L>03iSX0B~t=FJE?LZe(wAFLiQkY-wU -MFJ*XRWpH$9Z*FrgaCyC1+ioMd5q;NJ5FQwj0*yAvz68d4fmw~5G2rnSmYqDdscuSQ+)Z{!wq#+Ee0! ->j?5nzEIS4Yq_#%>3#Z$#o7q5-ZSQM=bR~QjROlG+@j`5Y%Y2ifVe;6Zu>nu-&6OV!?j9Z4AQn`xSE2GgT_8Yf?E#6|0JE@f&jYe_Gt!3Yyo*ov)Xfv)BCs!i|| -1K^r=#VHsXN46BTOF9&O3N~x6sefOt`Tj|L0U`d-?>pzZN}kyN9x{x`T>~_TBqL9%H}~!*V-_FJ1mPi -sn|=SYFO?#?^%A8q8(#55{Vwd)UU9xdo>ZGa -Nh@^-`IMq=2iQT|8av8s-h*VyfTw92QYJ(9FOv)P;MTAlmP1*QfD=}sGbyA`CDE?Up>pXxJlqUhKc3J -QacWldd0)ouySaJuDK0n^sGmtFIFr2UkXu{X(<4S24%r=1k2mDF{yGSmVcY|U0$R!2aRw&%ZVqu(I%N -X!tYc5mEFa{Nc%#y`gDG?*yLm_YU+u860`)W4W1`y)3S+w@eC3y7J@77xv&c -2K{7wx_j`8>x62(H?L*eXnl%Rm3_GXI+&SPG{W7814dx(6uX$t8nkRRt^aA^V1<0-J5rjbviylC{2x4 -X9C#+*h-1F959BJEzfhIfU{)s+4#rxlMyxtay@3SPgn2&70=)txTd9?tqMp3siZ65vs(f813M-_UBKa -R(UnZ4JIqG&%D;<%VM`FIVRwSB`)K|##E85gkgG(55`CVL2QXCL?V)zzvo -rX4bSM2Ua_ZkFji!F<S;la+ii;2>x@bVk>GEJdgf(5qHfaVp%RuayHm)knVe(C -x2*OyuQy|pgg)iG}VGG%9kY8MHQ0W8WCNh20=hae=}K{#RQ4JU-z33J5YKo$U08_`5VTqs?ZMpzLs?i -`P|U;v__;7MEbu2frLr1Ls}TtOZtt-5v$H|~L`b?N`+nkBQMv-RKwz5aW#@1&V=k4aP3Q$aQj+WYK_` -oKYal}ft>%}VT>MGt$n1y9ohTg-pl-#;#Ho|lWS0||SPIpL6Y5}yj2z_=AUziJB#JaB?N1IjAl7 -FGl3S*M^3eO;TD!HV=)V*IIx1NuGGO---g+jU)vMBbbv7=%zA^;@Bm@Z6BFDBK_E-{n5)8kkABuZmq* -@qi^1A~h{+CX9-@VFEk>7m}fDs;4kvCaAmYfpKa(^P^qrdrL!KSSnvVQICCvsn|M4 -h>cto@NS{LgIe8>u`DxuAMBkFlj1d^aKG{76rSyIac%x|V4&Q&Rt0P-)CPQuWwH8$g8;x*qMDeL!`0 -1XEGkDbcVU-mkf{1I;-A-;jk5#(JO@^~EpL+jNRwI#1J`b>2zLp>TcipoxVlP#Kbr==~gZPCBIfJ@L7dTR&;ZixXqdwmpLXGc50(dKs* -ml}~08mQ<1QY-O00;mMXE##EC`&9L3IG6uApig!0001RX>c!Jc4cm4Z*nhna%^mAVlyvhX=Q9=b1ras --C28Y+sG0BU!P*ZAP||8*0y{>1GOsZbL_hSaT+8!w1sU@D{>_J?T9@}bHUFCptY++=32f394nDz8#3SJ@qAe;zohN~MuUd`t -2N2;F0Y7XWX1JaJg)V|^OxqgVQUpl)&sJa9DJ8GexTa8Eu#k4$G0Re?GYn~&Ms-ktn+fmWVq!l=4Gg~ -3Cndfo1LEc+B=_ETJeqpe&T7tOR}!A2%Uu*Xhwu(G5Mv+B?m{K-BM08Z=!f}3BR;K!PtryxR^=4*`r` -d#$%FXo&o#UabH>Dl}9SFf}>VnWj7PD6 -m8nt}o(5&>M(G`|;$W~rn&eer_4=UUD0>G$LhTPX`MKRS|mo(h_9xu$u!IoirydW4n(f+s=~Oo8B!%d -ic`J`fcM0cZ%nT9*kLP?l&Z{!jovund?P@T2v}vvl9Wpi->OSS<~3F3S8<5(7gf$a1;bOThCI;j)Aim -loQ9mxkS$a>^8)GS#j|fvPNt@|YVzd)Q6D(L%B;;=U4Pf*FCXl8lvmh1Z}tK+C$&-!$gP*Y_&9p1$yc -k>!}>2(i5nP6n808bpGA9(y-8H|0$>4%}!F7-I`kjh~8z_f&Xe@|3i&UGJ6Uz9DRgDbKVtOhifIHT(H -P#0yFMpS2k-)V7PV%)!QH?Io|*f;R7h3DIy$1@9iMqE$;!>yP$(`?uMgkSFBrUTy)DvqLttQnzgQgy> -}(;%(WVaTeI4$p=|8!Ez~IUTvOI~9kvMYR~J6>`bIvCkIZ+@ -5cLi{%Er$_AKnA~XSKERZmQ$s+02{6&!_M`G4^`Li%=<73PY#}6l$HWi_AM+&hui-Tp5rdMe4+xY!^lw!3(6RK6?}Z=SY7^AZGC9f|PerxztzvB?chbVa8jj`Y`G -2W`D}dE?{C`!mRgqh2S^kojcPQb@lC5>~)0FU&V>+AB-z`I>sX_tQ#4EmKpAwJ}DrQubsonsY01Un=; -Ruk{Xh$gt2af6=)8Nte4fm%J-9YSDE1KlGZGd(`6;(m;@rjNCu%B9-La4I;hYq4s0w(IaD1Zs_hd5k8 -z~rDvlimK)9fjR;FaZrD&vqa_(p6y6z66u3U@E$2Wh|zcP++=QC21nT^aF7VvK)+NU>K#)G(Z*k1;Rm -ICOnP(eDx7r+llTof}pX{gmDgXl$wmJ@_6sW-`97i5Nnpl8qcQWszQF;dbT|ifdp+%xN@XTjxw}%_s1 -OQIP(I7iKWe`W{~&|VrV;xVZLz^$*IaJ+KkBG5MZbzSt1jb>I9~2DAnAEhxX41ZC_jt9~J>81{en>kY ->S{z*I$~ZgW(&F*z8IF>+Ay!@g!`X19rU2K>!2fzOu*G2_gWb;S%r)GG{|x+ZwKp43kY#Lbc5wC2e=V -(})=oJ~g7!PUkri-Tfn8Ygy9A{r`}FO)!?H#Hy@wMgw93jYfwefx!VFZ60(+#aQelK~2Zi*Fu-A-0XK -u)DjYJ@6+L!w`DgJg!}WOYXf)a=qCSP|NoKiDt8Vra-Xp~H{up`6So0n=8J+8!|pj7 ->U;n4WnyQ+iV$nk`X%{`bvHO;GW(4j9mOKW=I@6hK3&-`XXK;dWX2VD-RQS7kzyJ7*gvSwk{Y7QV;vSS;5^ -s(TZoWt+co8!UqfGu -)OH`sdN=ikuUJN!HCy*=P-T6{Km(`Rkj_0OQj1Gh3=rwQY=rli%Ae%EckVSIHA{&O>qwzde}nlY#g*s -AA3&n9*#Ac^EKqmc``p-pZa+e`kJi2#xWp|GR;(_l*o7?JJ -y!P?I~>gJP8Qy$6YuxrZU#SQ@Pksi98R=KBFF~Uw@vN^x2eEbw8TD;o82uF)hcx}^e{WBtm->qu5MBq -wBU7$rS0W>vqPv0CQN|+bgfTeFllD7uiHmAQ@FV7=b8$PX6}469vkQyCI&i+^8vKJQ#*y*)|+XfH&PA -Kr!d1A-!xq(bX*}`CgHj_fI)B4`Tvvi{5seFW%F)ZMz=iC;x+%C$=#-yZaCyxvvoo)8Pu8v+J@F;du^9*gAOhXa#}^GMoCLD1FN3+4hMTHc|g}T!9e=_b@dL4>+01Z$Nyk>K_7@}T|-e(I8 -f}=()M6iw+V3r4n3*08i>wPY9O+xyNUzgzJjyG0F=S7keL{%#p)v6xf=jlJrR*y*JI%LRhY(f-$>Piw ->!+c_XbVl~B>iGJc26I7uOpgUjRA(%ppP)MavxwkX#Q5%4BG4#d%Qjbu&7jCeZ%-|9KTz*nX#qO -buUCJ&ztlXdx^NygxZe}5rN_3O`J;sm{efdcBA#Hx}OeutUAL?llKPact>vqGuMO&j9;N?(yK#f{XhB -_P)h>@6aWAK2mlUeH&TbIzoUKw004*y0018V003}la4%nWWo~3|axZmqY;0*_GcRUoY-Mn7b963nd6i -Ycj@vd6z3VFmDi)9mn?V{NC|v9%Xae|ah9z?5&CGklVQ -X{;MbQp!Fjy2Ix?URxys}yj4vXK`mg}RaZwWTN$!C)_WjU6fntv1k!4xQH0vIQhN0i0GTwTU#g!v`taeWooN3|Ec -rvX`&(JlKmClnw>6zyA4cOm2xY1)@r++AIyI>F95e6jZZKtlE=P1l9{({g1V?*{H#y{4LpWhoJ9>%+Z -1+VdwMEd#)`=VM*Z@vfCBh<=_S)#{yLWjUe1rc=bk>tb*&NmPF>J{5BXVMfEDm&yIC3W0)xsqCpV<)^ -Sy1%yktaQE*)zPn;iwYJfEuPwXyV)e{cp<|A2nFKE`aJyVq)(5s@XtPA1iN|tH2%Tr7>4<#E -=CTsUxR;sCfOreF$N9x25SEvF2&bT2f}f`dY*RqX{4#VL#%C_cs5z}4c?5^&Oov84#`ODwR -Ow+TrLN60uvv{faCp5tIm=^ON$s^Ow@2x0tx0rDez&aC5a)4jp4c*4~+)#7Wy6d?Um5{>ipN94a -$>D=5+`h*}kPC%{U{6fdBko4ii>#)B(71U{_j>&};k8zdZvBvMBp|(Ty8bvE-7D*nW}uT95n|tE^v9ZJpFImMzX)_uh^%eu#~5;O;X(JGoS)_xwH+Mq(PkC;gAccmAJCDrbr!^w5=ZczrXp|Pm -;2o-kpKi5_flYcD`qJm~B(Khbvc=A5q6eGYaICZYNM*QJpN)-@uIF;sVmjk`J1|`c=`dLx)ncu`0(z9A9)8O3wn0Ze~7d5^)WY_ -o!To4Q{8UVA;Dla5%BZ6-bj4>7g=`dWz*Enf}X#Tx9?Tk9HU3?n)>#5K|p`0uB!T`8hLKI1435?kNxu -gb#KMoB6N_OD|x9rI!532MlyJm?dxm!)HP+P*D%r;+c%17*CfL23l>@FgAvWZW1bnZtw0B+q48f=DgJ$0_pWjjZ5c&2%BAM6~ETp_ -L;6V5OC%>{7L_;iGD1d0xpqNa}ntxwv?p|Mc>2fBpIWpD$o8vvhi;0Fo}%lzA}SC=iIj1 -30kp4`hzd{C8u@{8}{z2-BOA7rKdO0R>xi+qy@%^+6hQQ#ZvFnLYVJJTFT@%oi|<141^J-5$i>h;}ED -3td@=wGu#tYh9>9v^9*tcNG6U6KNrIYXBNPGYe5SG^48u)s#mdP{d1mbIi0A9yg#MhVl(B(qu20$wm>&zZOBl*Yn|XxHK_S@epjGJ2x*rZ6YO61K!lnd%# -N6FnsWz|KwDXiwgB^q;&q{TzN-+bh=b$i$7R`qHdX4s;z921tj`O)_yF;lW-~`>Iz*7VP7vu+O1p*K9 -XMv&<>`&gpL)9E$Y)q423h=)N5oe$&IS0K~0-qOzD^p`c$pMlPTWceNVIbAd5Dwa;O=ns#;4oLPz8hh -7WQugPDZ4_^YHJ>J1>eA+;B1LjWUni|@AlaQ4f{{k->rUBkqwuER^H+xxv^fxooJ|y-+SWoK^oS!rErc?U+qE -WI{k(Cu-<4_ugfsRH2FD5v1ot_Ike4+&k^C>jg+^y{qr|>zk;{m5IN -SmvnJY!$4FZPv6g-GGn_b^$CExzZDjI^w7vH%E9)E3)!qsUS(5qu#Lu?agG7NCp-z!zc*G$jA -xWqdTUj7g+sMiQ8-R}J6Ker+>u;ces%7ti974qb#?7X|zfA`oZ`yM)^B@;`>p(aHArkHkF!TxIyQ*%* -+qzO=U3_+$wG7zJ;(<)JYHw!qm;fU6r-Z>?9$9P1uR2PYQ>2g<8VMMSO#o^F8!(^;OP~60W*rfo|mnD1i~NjjXbbf0AF%xT$qgtVLe>pT_3YG!~G#!H3ozj(ln593oT4Fs6=P20JG;kCd6J1*&# -A5XZcyymklJSV@Zbg1(-2%LbNSY@!!I7(=9mE2XssRY=36Y#TFHb1xCwmX250{gSb%278w(d5+RL9c} -tdA*O-VTPeXPD!5o)8nu+)#DvTqWps>U2(Ie+XCluYpwvcVpULMdQS!<$Z@WUgU30lGae1q)lSja -4EVUI{XcYw3}|&jXK8xi94RNPzI9Wf?&Oro1KW#SF&Tq88UF~Bqb5%hQ#XV_UAyO18@lKvaHu|f}=ne -O?jNI3JpH8qo*}Xp$px!N#8dDMgPfm7h|C5d8oc%d7#y@oSg__7S3$X7Xg6zqY!?dOpt`kNo7(59d2V -a8^7&H@dkiS*sDkMo~6Z%Ucd#BY<=AIldJ+RsfiA6)g0oS@37D=96dyEla|Qe(FhRq6-j6 -{;q?3juRkzP+I7t87ZodZU0D%~Q!1xHHNV#~c&}JiTs0U9=C9N}LHQ~}23oeK3@z&OTgpGgX2e^xi+{ -xyEKzT|mL|1{GG6H-XAZcNc>|a9ISb1RT_E74LhW*oB|NeK0@XVBK0V>kc -nf*>&M!OXsA=W0(X{rLrQ)&jdSNVbFK^`@?C<&c#6$ehkTyH};pK<3 -g*ZcLJ^$*f%euY@+1pIYhZ -_p3jUbw~HX|%O_tiob)Vl$wG|DMdZg)?ag|CEvSGtKF)>!+41!rri)nBmgA-6!2AVj-=W5w671fxl>2 -o7-s4;xvP}t(eME#mUr>P<4KsvKp(baI9z{dsL%`&-Vny;s4k&_DLt@`(POEM9kl;RQO2-G%#Un1F|H -#GC5r2V3sb0n2uf6++otGa+8lfgq(&RpApat3m~&`skIpf~9|>8=P#Ep;mv;F5IDLANkLxIMn -SC9I+W@TK!4OQ}!!SKvsq4B^ -|8%FuLIj&}=FMM$*YBrc0UlE7n*bsD1wKm8aSlVM^Bt^ -E)Z+(w_w}C88@PkJbt-hF4opW--o56n8EIB!w#mfKaQNLIi3>TZmp7D((_vQZ3V)YOU -$rv+2T*)ei3@aczp&F6eQ<#U+fzB(k8l=rP8U`_4liMvW(ADE@sV{f&)gO4ob=Pvr;^(hbbi&768`@( -2gsNJq(+U?{vA6!=%so4Rv~qEPC!38bn2Af~;6hk6LOHz4e*d7bLia}vHwt~sKcuwvpFL}g<79#{>!$ -#kOfZoT1Rg>fcvggTJE|&n#@!0w&*~JC=`HqZmAQ>Q9ccex=z6YTubNB1z}GchFUvCw>^%s=kXNU9@Za -7~Y}1ZUrmw__fHtUq5@dD3M~0#Yp=OYnCl%*hw`#(nz|~0$JBljKueYw492c)?1C;RfKz1r#UAqqYKX -O6@oN+p?aCCPt}bR?Lml-^2HzLLlGUq8PmIdyUGBb1LQK39?TQcbD!)vP&4;o7_&cIEIlxm%hMqLqi) -1U;-M@V393U1glGI-ii?{RwppRYMj^acSx1*vd{YF0+4JaL3hh71Efu3vQD6A`tTZF>4vkB`s -j;BXM{|=NPH*`3ipp0#M7Rj7T-8`$Zk(*XU-gse;!64-vGoX|DI+leF23G<}}=8H*2t8yJ=fXmj*jN(cAclsIo|dB&xH?IERFV?=!JdvPkV;pQf@2r$p -jX>0y+y9ZHdFCY-^)`GcGZB^8N;c3G5NbXi=Ofv-*hVsVQ;dq{EdY#3Ft+`1Cq2~mB6%YeMmT@hFgUl -*j9gYO$oRS|mWonw#K*M;65PZm#6aG7Stau-nuWPe^AxsGXrBac#qDPJkrz^LAaOU9U^Hq#G@k4;13U -Y9Y-pzn<7d4D0ri*_L3NS=>=pD~7$xq0s9duaXvn4LXV>~TMBa~vOF`6vgcq5JmH6;xQHTmK23CVv|fdtS+t=>BOaLe~}2-udusIow -A6aoWE05Kx9LfOxDG65{Yo5}L%@98OE;>431g4n`flwli~#EYNbzJ2-PL$I{e={zo#SW6=B#y!*H1;B -n)I(mw`-_v59TB@+yBKmCaXks#Fy?cPzI027!0kpQvw6 -;~PsKtlZ7sw|36UA=84-e|yvE9|xQw#>ll60X}9t&~UJzgrTQ%mmOdpJXEGpoD&_^+kEVjkhtWE@uZ2 -Nvtw?A_m=rX=-C -0Q~d1q#y1G`hS)^r!KkV*alrDpYjl+0He`2fL{H_p)hhA3_Qu?eh3oE6F0dvNl(^gMSa-nw$OACs&}d -L75AHK_OxIEZC$x7Uy8Z0vi8FwQmS3&gbw07BYIEIt_?GK}Z3&E(5*w7!qjQYwVB*_7cVceebebh5#ZO4?)Ua#%f1W;j -vJe-xJpHHao9vtTIR5AcTuo>2n&{cr&(ibQOHgnIKfL@fP5e6bgDydqxPj5Vv@)QWHm)orENW%z7IA{d}+kv@8I{e7YvPAuDeeampl57U;x!S1J_9zy=gg%+LL;Hl>dk -CYyjVX#TbU(LvW!1!XD64r -4R$>k_6Bn{UO6fWs9w$*jS&gnO&I`$?Pj@tT$8OjtOm!-FEJUqaKGE2HZr}qaGf}@obn<{J|_SG?NN$ -usdM1rpzZ4i6_M}R1Ft+69myl@u=RKi075@H^f>|iOFWoO%mB#GXyN=eJ~#B?m`dU0h+z+SFPdff-6r -m3DKQ3#_65T)SE`XnJqak@WEn%UlVDz;MKH^*uxwd6tW3AqLH%XzvWmCQKWyoVbL%^p~eS2p;@Qn__v -wJ9~y+*U`aqZezPR7Svq_lgGsbE%u!Vb95n`^luR=c&$*wGKI2F9kgg2OKLZG_T=fegC5=|m@Scde}4b()B -D!qpS7;Cy15+d-{rNv?%gNp9?$OF!`!_|^Ub}hTQF1*%baR49!2q4ufaHJ8%~nVMXGyf(!-;qwb(yRT -8w+k?;49tTW|c7nOTxS3G>FbQgQ+Mk4p{-kKO*+D4Nck!C@Fc_<~a4yzR -SE5aZuF)n+)H7fFjbRhi>{`jB2k1dEq(=UpijVe2M~z?@385UmW#w;4ZA>?A!Ity1J4r$4$%s$Ceb9IZmQ -rCE2t!tiYHZjKcjH}BtZ1>oxb=r?B<^YL2$!q?jS753~w1#jz8?z@V+=l0DPulr3;-{Y$Y(XCg=cw9y -R0t@>p5X=dxP+ei+tFhCh*HPu{5ckCw5mQRm4;#nifQ_vOwB?eo;hmwO!5aG2Q8zr{r>|{O9KQH00 -00801jt2Qv8qZ0;dN60AUvZ03HAU0B~t=FJE?LZe(wAFLiQkY-wUMFLGsZb!BsOE^v9pSW9o?I1;}5R -}{1d+Zna`ur~w2BIwR;0!%u=vuQoTf(e#Wo -Lq^a6r$CR>RgSDE|Y_{2mG=&_O^dVIkvlI-IvzA%p2|$-(3Vyic&)Y&L>DsOQs!8PR95?gV<$>lxxm_fA$RFQ$7ekRPsnW?<%G|N?B+i;}rn?AI8R;0+ -2V;We?LpFyKYULMHYc0%KiBJ!ZmzFBhV=3J`|I`fGWx~acRD`(vFk6G#Rc1ipBmd#B{OQ_OW=My9^Wy -F-?gBujoix4B0SuGh5`>i^1rL~hnqLVZ$nZI;z0H+XB2_<2L(pB|lr-ha>)}@DAVusJ$$xI@1!k@CeOkp5vR -jx1@;B}XsmfD{DAl;sG(6ZZ^r#S$Ei?I2q-w8hdWzb}bw7HT+ce5t(zl?7N)S>2{O}heh`;Y2*0=YcJ -_oNe9}fvqnu3Cx&7zcP5;js?euBl8oj$x7H4E+r~z3nc=?sS#M!i>3ITs$4!!*WIR54zfw)`-1r_l-~h%qMMco3tn6Yh$$O)N)Sv;4`Fru|Cd**%p% -2`QPWxV0aupSBCU4r)`@}n{*m=w9C%A9yi`mP2y!E`jD;_9hwd5dhVO2W6z;Y_UF$Xz>m~EjP-G%ckp -%bGZk(+X}N8;wKULXCrTt1T_=|9wiX%dh{)JS7k}0VL_hunvU#r-Icgk57_(@~z}U$1+jF8?gm3J*T;Aapu_j@h+64N@o=UNhjy)Ak`q*3ZvO!o?6w)k~vwkpo -lza&qL9iBl#Tk5egeqy6!K5xPOr)XJ0PIGhY4XJ91{lUwC+ra0^;d^(|2+iwfYY*rL|V$N}zYukpL=H9rc5v -0t?*^;p*y|Y`;E(28E_xOm0K7KDPzKP_cb63WE1>VXMto6|_Kx?V)fB{mPcJSSG2Vv55QM*@jP?QZrx -(%@%Ksu1vTc4l496X)M`6qHznr(X+eu?Uh6S7>u(%BQ?oNnl@;Q>sNgU -0zWREw>IlsYGEl$+Qslq!_ix>~3y&x98@#1RbR-gYRG7O?2|};oY6N?%ENct^KagY09iCgFN}V -CLHAz>5!XnW#=UvBubr&U3%)EEfVQREpG5pQtEEls*KCM))C#H*gZ?*27pYQXa_b=jk7yO>M_TiZQ-r -8zQ3yMp(p-l)ID?uJQDiyF48{a+6JE+izj({|18pqTLc5%C0%{`*s|hXR?t@H@FKdR_Mz@&7W|xpTSy -FqknV2puAMoTRFlD0W{8HCgjqE5Mf7j3{V#%B$<=B$$Vz^gL*6?pS@T5e`HJQ{Vdmk)F2a&U1j&L)`F -CVr>^!8ocfOmb{nmUr!2_O1TOPQl$HV2lj$ny0E8@j+iVG_o_t^aG*z8o^vhiyzmvbf~mMRmE^8HVRe -4La!*X$U7UCi0Ac;0beLH79Z$Q8TVH;~feE8d -Av>4gREEy8eH{WuJEM;!QhX2Um|$exJ)@v)x4s4d<2+!N6=wh$yR1g@548o}t>KBeFBfju?#46B&j`Y -!Q5KYV+zTJFv4o2NLEq-bCuj`m45D6V)YJ|iLM^}g6-+NTLd$~RPBa;Q^ag?xz8o{{g5NQ3`u%QRM&- -2q(sEwY`Z52P_9ow6Uw^gbz;eL02skfx#ddWD=z3;l?@dgqtx`>WeAJd)UaQ}^?2vJh4&427m#pV}DT -0sfsdF}?n|4n88YK$Om@j8zsmJB;Tw=ZLdrrM%0x-;z!%)b!tNe{$~L30eD3=YzqUvQ3L{)(1{!r -r=i#Zg75ZWYz{pUusD3T*g1%plN{i)xoYG-@sm9wbyf`_D(mAvR_!9(f(p5{kvM>{{v7<0|XQR000O8 -4rez~DK8iZV;ukhD{cS)9{>OVaA|NaUv_0~WN&gWb#iQMX<{=ka%FRHZ*FsCE^vA6J!^9t$#LKLD<)9 -62%MljlDgbEv}s$SC?9P}ydrs#Q?d$J00VH%#V))LLhy(D_Vi=kI}1{=9y#hLg}7 -V?0HN+$C%&*i+y%A(eAe!RW?=|`C^Wc4PSH>x2JRB$`p>~&hpo11qu!k9W;(8$n4^^y9!0X-y4UYCpA -hqC#xX*R&J^K!jOn{1ZLF}-~w=jB2&Sb9L9?bpj<4n1<&$ZJ4SKYK{?Y;k_q7WeODv1;zT=S&Sh`U%) -j0@V&ggrm6XJ*_u@x&%xKu2f?gnh!>b&P_VMhiNuc*4Y>Jrfsr3sT3gnI;$tk&19aJHGsr#y1}F=CwG -9$!2w7bOq7zhWF?z-@TaVXlSz@TL1sq>2M6;!t!v=cGEW=HOsj_F>@P4&BcAbvT!NfuMb=Cv!&>G`^& -CI=HJL24s%|DANHE%M)ym-YB5hK5GaC$o7cdMw#|4lqBu)pAP{YF^AZAAfywj$s)Zk-*xH~9R5*A<~R -I8zZtQuNKb_fLs@p1rVOHq^!J+%*=5%9%9*g9Z9w4*`Ep>jxrAH+EI{EUavuR35Y6uAKY?E&xh%9dV7 -A7p$k-==vjd)lc+^ ->PM0fsZTZFh-d%m1ym@u|3Lc -)shWOgG+sn%1@5OV`$4>5BBRSAJq%d)5`rlZ}000Ff1<1Y#<&f&s)l&t%cmQE2^hXbn#qGBp+=uKh&Zf><`?1~5#E`JLAnn=fIZ2Ezdg4OmaQ12<79nBMyoWXM -SdpS-cWtcIOE_AaeMNB8vrY>Qt9Xj7GQgyIpt%-i}dMs*Jz)ILT+$IxNOqo~FNGf -?ka@7uhIi_<_Ei*L~YzJ7cD!^z8IJMQIDfM}v}UZeJsV9PH+3)F!1gA_9<3z2TXD**ebDMboHBS&EUr -|3tFQO=yLtXPoROB>ti&IS7Z=bKyDlnPnlLQKUudSylP;zG4Bpzg>)0PQLB1p~~p8WsbBn{y|jfr56z -$7O{*;0x>;^E+$v;X>F-TnCI&Vz?6D*T=w#g{(W<`+}K^!te>VU;SXXPU@!0Hp9_~7RDNJAP`9n12)6 -Kcrf~G2aAe|H|=_)Pe-54^gnsSMidr^0_+X|LoS9s&_L#t@?G@rmY&UiKkNg+QIU|M#e=Y8BH^g^M -r?Z4SIT;R*U+@+<4bwn}KFOr7=#Yci?;{ytO9ofKxGR8xnBiwoa!raM-6)Af15cB`lT&5zn)-fHnPMA -=mh1dnb8)Os6=7&1_l74U~R(IQ0)$DaSGf& -oo3~fAiRz$+;tQB9unFS -h2G=G^|4f4J0>g;yO{K07>Z7byJM<|5#Gc66iPATo&P1DZ?9Iv{?$irVHCdh`iK;gcxo9i2s{jn>iIz -e(i8l~W+MaO;ChQ?{4JIq7VeUY~)0nfgraAYt@u7nELaX0HrB(gG%PL!;CuV{kcKnYlI+?!$#I^!Wim -J9Ys(c|RypleF#|Apj_E=;Munus2kOj6z`oMz8TScJ8j}@DowJWh{t4&#heifI{*8)Tnbqm&|U<1;p6 -Bc=u$=XtPOOrXF?1qf&i9sk)@If(a59XSHmBe}+(Q!ADD*@7tJpnA4hH2&Jky7BRl1rRbfvpvZv -I%d(j;P+;i>`x=W-$<6Jn+n;YPXrz -}%$7AvG=mdYf#2-K4k6(U{Y~ew)+- -89mIinTr*pBYf4_MEc4)zjS2@Z*7YiQqGUgK8W+zq3Lm+BNwO!Pb??eW2Qa^cl@q*4+ot3=t -3#=d-YB8Tz<hXbJmy!ZrXVHiFH2Czzz;h3!1bU(fQBUk{Q&yIf2o86-m1U+*DNUTmj4I= -qrebg{KJ3gO9z^1-h*%$)@5gUX8qUkiG|kj7k+0uanQkj=>%QbbP9u+{E~L6=$qvx{=6gq(5&;U18YJ -dfC*X^CJ1QW!!m$}@H6P<$Sg6?eDh?JNI+x85mJ0M7Q;IGLUUQHCe3amL1+n$QPc@mtiWF(3vo@uEBq -C_aS}df&N}xH)UGBYH9#JOPNu_hfBa|S6*x&-*gb2#fz3J1@}h2bIqf50Z58zrW?0)4zx9z+9Xj!5`x -3-!*@V;GR1*NGy==7tG0QR>=n;(-gFDS&l;q`Bx-o-i;!Rl`qM0{uIr6rVASPht0@`ylH<756+(??j2 -929VR?oqJ#aEeKPS#&N6GQl-{W~&25K**H31!E_^8%v-#RzhS47kWdScXxy$0Y|1+BLWk+5!MN;xf=?XS8Vx-O8VDmlVu9e|p80>ofSI5^yKeLjHtO8M -=6Lmp?shUV_v_tWS_DHRi7f`o4cLupvMusoRMsRw*o3t+bGxu@Ixj!jz$ -?y1115-3xyrswPgrEG0=nKcBECrJ&PCuG-wiKg$~cFhM5X3bPTKhJe#);HC6*hbW~$r>SoeFL|~tz>F -msvm+B)`r?LW}ii=?tQ21k+E+^_oee5o)jrU0V+p#N19F-^ZbaX2ih8l54kv1~V_lfq^4BcOnmZDwHfUmIIkO2eEcAjH!;Xx -&|wxEARU5aH|CE|U$gVnG^ivXq23Kld>*JWE!_(ty*uG4yo8`0@>s@-e7M!aAFadu38;-_<7aydk)Ka7mX_jOBD~_wN)4MuZ2 -Y9%NtC<0;>KApsT?tnfNH-Jlj3R;-WeP$q0asptX%Q6ukn`4HoDa;fSu8^e8<)%;IP9l}O?VLIC_vBi -+UPDF@WOdqFbJA*isTW!A -T3gS=1Xj&z9)vt}&qi@)yL)YLvkUyqOd_5}aa|bOk-5fw4$mR4 -hr*`c!;(GKT+0YCdx`)@4z*z)BKLTKC;NIj31c)Rm=}6-}*Nl9b8{^AhEkVN5|@rp{tM9>?G@tX648> -{nB&*9q$3LzPuS+2cCA$ih%8M19i?KLKt-XvwY*{DI8lCT?=8JJ+m$h6>t9{6-vir+F8Wqbw-us1ZLWKmU_8) -f&=7QIt)>yh6>0ll>wCE*3S|E)SqEFvX))umkVLDB~0JREG`?^nKRKBY_-ad24b(TScvx&Y;@G4O0uf -6^15S=_Ry7xWUrSZI(N1*&WD@Bz=l5TB(Ce(YF+EiVfvx-)Kib(m?KIOsD7PK0R*eh*YfnHyBDV6c&? -<>+7rQ$@#liH=O1fUS26*(iZ12k&mR5;sBomL{)A?pvG=RG^6MgQjCKT`!S0z({@DMC^tE`Z`?pr1I@qlc2Q_($lrbr2oiMZk{|vYH>^ntJiSY4ZGQyCsFpB@7Yq`V -nb!2>iO1z)3N{=rQLv>{%q;C;(C#$ML{;uIPS#h_Sk6q1#s3b_sQODFo+kvLAU2YH?L62ZL4$FzYC54 -8P1Vfn9R{O+|RjlYy#H#7Ci0;nTrjV!PrwZV}WTQ^o1+=LOY@=!eO91fWei5$v?&@3YWGSh|U2WG~`h -S<>DMt)_icxjd%l~ebcc6nD(3gSz5L -Vri&JsAkfbuV@(?SG?qygRg1I^sv{{7ip}C@fBXP9XG#C$QwphNY!PdX+fJ9S#bJr8gJ@Wv$atsShUn0mm06YdvVa|_!c7KH59y{%9Z0QF5-7>dT~%%Y;jJ;|(}yx -!uxOL|*#tn^Li-F^zVp%amc4iUEP7an5Q2dh8M#}WuSC%!IQfpSDkO^pAu3W7)v~PuIBsIZeWUCki&u -OaoG9QL;A0ou#3&q2yF2I*rA}9+ihH$q{x7B^(qc!Y&{+FO6%QHeiY@lx;0`P8K(A)8IL{N(F%G3YMG -yNd?oQ)`P##8B40z1&%9f@D{L&jcMakObGMnpSJg)TUg2VD+*Z|Q0LSAv2l&Z#4aaW=-u?(5S{PgPPE -WD;H_pqfeHR$uhk)tRhw8RpAUUi`jBe#tzNo4VXsdrXa08QB#Pu^qq&orsWzKJy%puTetUfy-&=3~=^ -@^I31!xdR!-5EdhQ(3g__k|_0b(W_U5~&h7ef6H4!eJYm>xZ|cNEeF?IhEQP7hA)7ij~S9debR!W;*o -{oK79HM-^8Bfj)PBgoV3q=XZ`UHcGA$u>|Eo2b34g0SYD5qQ1{?%ks@tIZs({h(#%DRC;T$&M>T8lX* -f2A}y5uF;x<5Y%kk9_rRIC?a;B$@%#I#g7NcMWw3*Y$MJo5)VT0jv#2B=c{4Tg-snpVN+Z>6-h>L%b_ -1qljnosyN4C_L7SEUDJDj0qW(vj=Te_}485QFK!*R9k$`&l7qES`wNmvGt^9BTFMGIbHS>1=ZCO*uEH -RUia^ymEebgItxId}}OKqpq5#({ySQ;-s5yfQ14TnDZB_J==~8#TGw@UZk -?RNgyx-^UQoY{E}Gp6@NJ-UH%M?0}Z9K@eKTGb+f*e>oFJri!a`;1WNhQ)KH;VA?OsYW+ef%lWBz-L6 -(UUGYlU06rGd-Nf<3=10dJrPC>3({lAoZPY*D*Uth8Z)!D7Xk6W-!ccQOaBvOH^ciTH> -v%pNdcQ(?@EOId{~cvR*IIxS(bMqDHqmU7V5QI;A{Ypu1N&%%Xu8l<$r{Vgl3NZbQ1EKR78Y3=GR5?9 -e5ofdX+Ham$^uQQIzg~uOSm^L68Hs}s*F7eiC0&)|`q -_hMV3}v%aUf2_H{Xck@1s6MkGt?n9~3Jqb9xL@TWl}VhRdnd1e&67sZ(@V?g&O-lUci2+f-Z!W)CUT6 -so|Trw?Hmg5X)fp5v}Oy?=x^fuRV8R3t(%6_dEWQYS#1F2dM)qatwZDxq6$a>sRTD~8Con7813IYD^* -pqYcwQru9vg5SB?28T)PZbpZ)!E4y*8fV1RgH~Wej0NZo`TvlQ5|gl?n$7MQwYo-OqTbM2uS2^Mg^|j -4GN-gtcR_=zBke)WdQSkHfSOlbOOP)(p-n7W!MQ(Or>()WCm`4j2t^g6kG<6dzoX-jyhx2|z~weko8C -}6{O5T+79eBad}D6Wy5IKbh2Linc)!3CPK^qE-UbvvHJy(2;z*q(UGadFV$=ZlmX}Vo<7Sz2Z8WuWs2 -DdamC{vFov=Wg5B6ftI>q8G->;cYy9fCyj9$c8V$Y>jcvz`(OV(E(kHeLbeMx@$kCT|Yq)u|5BtLXs_ -MMPRylL+om%~ro<$3JLT>?6A4NKEIoZ@ksr;F-#6yh(zR7NLH#U1r=I#VKJU2A>LPP?TrR|9?s{^*f= --9e3Kqa1PejY~R0TKRUPK1Hf$#J4s0FlnXAp8S{kTxq2b5&Eyy8PiIgAq)Z2SyTSyzlsQ)-@sd)=1u3 -)2W-T%@hozM0a>PM=jNmLee2h#4B)_Y81D#P1C+=T50x*v_1KOQT02e-#P1I420NF4lok3K|CFFa)!eZ -s*XZIRFwX!@ohXN!GeM9cR@shfXK4+X4r&^TM*wa0RBsjwR|SQAA@G#}>(J6l&OC -+VqNpa7!;6z0@Pay1T#^Wbrcx%FcdE8Iu>X!h{z>@R~`6_0&EAwPASNca8<_^$KOk*c4xDqAofUAkfE -&Z}$#`@7%XNwP#Q_31?3+-cCBqt_tikvkmZ+oC#6DWUmznAPC>$P9#64e5(ny63XoLmL!$`)iw3cnb( -9O}za@-TV^7FhXVN3ojq@XiBBxXaC3n(f{zQW^}@5{+V5TgzZLH-+L5g)zKc|oP9dAAU?xj_(u$gY2^ -6WaVKS8DH2vc*SbI}$cuRLpTqW5t01^_;U2ZObxPwSh=0k8Xto2IYC1QvbZ#@GEXc;1T$EGGC`hmG-r -3@*lDb_}=1kX-SLv2d0fB*SgHh@@3Lg^lys-UexniqkGjMA?+YPuga-vV6n{!?MfkV8m5%ax=c-SdhV -dM-id$wn=Q%2gHA$K}+FT8J61q4hn5#J!)J(TDiiSG?2sSJ$%N^Yu?5>QzIeC#Ms)e3*9QsLR)SD+D& -N1u*tm2dp~r*}>ti}n!;bp8Ix75mThfewAl3#XOJUQEstJf#_kd=eQx5>WO|i8z-^D_wyIx>J1zlas5 -dwvnrjwI-Etg{Ls~Wtnsb!~aR0F6G1|*&Xi1N*A3W>37_ub6}o~Nd1*H=aA2@-@O$on<@)iV}Y<@yzI -Slfi`QT^4DQYpI$yE5T_S;`pB5!lNUJVe!kF%T|Cb^!2VuD|4E#F5|OZ*P!Jyo{Y?mPKcue~#D6C3#* -K85_P2ba-=9#T^5kliy%i{Fv9|yvR)6yUl_vj`DDK|+2UGugEw>d`h%}B(NEbgMgEI6__y$9sY+WPEA --Wcg#=Kl*b8j=Yo_6dsv@SLc|M`LFxdZEDQ01aN<{a@fI07aPJ6GJC>TZV!W}Q)1FA05*82V3(b~8PF -|L8-6D!Ovco)zn}8p+Cxl6t9+<#C{nqjiO6HuANt5$mu+xcU0jsu6uR(2Os!R_DpB_>xtJ2m0)deQx( -h3icxZUc|7ceP8L`o;uF3eOQmf^j$9LZWt?jx{9IFca{VJ1@1<7An5?hdMy`NI35-SJK=+*FM`mAS>F -ZjmhzZY9z9On*=agXn*Pjy==;taf4}rB#EyA@AAOT*kdlp#NMIhxzyx{Qvv|Qzlyrs4-b@WQ=_G^qsd -xN5!viDdDwvLP^3(38om)-Li9lV%ZH})+0GYEyCd~*S|G^GAIjl%f1EjG*8bVjgAXt -v9-x4-r%Y3I>W@dF8fC7j?g?rJP+e^#}^caObA2#_h_*9VBc~Kxb=|}|4tG4ubgrw3K(DW6oZZe=6L94z*R2 -QFmhI1v>q{cTOS3U3dqRdm%TF(kKPR2b+V%v@yzpb^#zl3TD_Cybe@$T4(v3rB;*$+!&} -{~^1a%5u6|O{XSnXy=L4XTB(v2V@)tau)ZUQQQE+VI|SxL+WgXAw|Rty=}k$BF1KOKFBKdEb{Cz9~RA -o1z=6gaw1=YQ#igjGNUqZfi@p=sDX{2fo@`rZ9r@gCed!H|2g7}9{A`O5G8esMM){1;G50|XQR000O8 -4rez~000000ssI200000CjbBdaA|NaUv_0~WN&gWb#iQMX<{=kV{dMBa%o~OUtei%X>?y-E^v7R08mQ -<1QY-O00;mMXE#zRgXtBu0RRBK0{{Rq0001RX>c!Jc4cm4Z*nhna%^mAVlyveZ*FvQX<{#5VQ_F|Zf9 -w3WnX1(c4=~NZZ2?n#gjp6+%OP@@BS5oF5SRlLoR_p4hwNY4&4N2+a5|WiZpAB${Hb!o$kM{WOf^88+ -xs89*@3xdT%U*D0aPxFpwTCf)6wqjp-ewi@*dL85INf2pjLAcAaqu=q3}$4d}QmM1mA%@Dvy*7Db_P4 -<@$Kdz{->7uN-(Cm@f(A;*|FEsw=F4{X@VOR0;N}K|KX6a(@=Cnr@>i1YqW*xCO?#VlHoEMPS2JK1{a -iO+>!y8vyxV=-G__d6@fsIpx@L;})o{NOw>Y6CpSQ6Ri=8>&rvD)Ae$Hv}>-Z=1QY-O00;mMXE#yc!Jc4cm4Z*nhna%^mAVlyveZ*FvQ -X<{#7aByXAXK8L_E^v9ZT5WUNxDo!&Ux6xfW9dewlgl?xbsb;gF(-LTrKXs;b -C!x#cB0lhNwS=MV2#lkUhJtM@!*pb!aa4(ZafZ9Py&-G1<7Ec6W<;i}WYV!hYm&u)-*l!ZST32r -tY-Ezu3+GR>)!m#e-PSLA^=J12MCX~30NQX!jjw% -M?>;d=mUiBWkVDX-JEkPR(Ubg?A4D7W}mX`(_07%1K_1yn{}o*&}qyHGv~=BW#sJ3;?#BgVtRimVTWm -2{nh0Sv5w6|lb3&xGbukR9FkypCR|!R9qj)c{U;E)vXgfC$97$Ne0*pZnYq54fU|gMw)uAQm?0#orJ* -n9s`2;>d0(lo8AlbHE3YE&5&%S+SIF4hmfxkpnZ-9gM0hy;^~=@qrfkYGrekipp}I>}k!xR7`f^iJ$j -Z*U6W=>*Vg!n?GMK?~)&v%i9k(Kafju*3>OKi=x*tx!E9pg+GNhvg*J^-sS9(1LNq)Cft}A7hsyX;%x -n{asa?6qjeTp-v=&742iZO3U;F0@NHWw!xIPvWgS2b=*w$S7OZTD(>snPP+=mKi<4y2Hek{uu?d&1rO -4ZcCHi|5nQ<=cQ!ch!j5PE0fz~B_m4;&+v&WQ~urwr7WofkNbzO^k?!Nx4=jwrv^zk!m>VrpfTZ=}dB -KL;w?ml?mmb_qK1v4_UB2+ZJ2Q$f7^2fLkdw9}u18-{SiVKYWDtKvUnG|Z@e%4<iN|a-U{fC&r|YD9XL+TvBfWRjhTX|#=m -bwSu&M!T&slTVNeZ-=@0x01HqwjrTQGp -atu)>bHK;RArv-DbFzn#U7E(sZGO*O4&mvK$rtsjpWxk+Gf*&Sh_HHXV%Ul-^{!I60pl^xxg&YjbaAltUtP^InMynNy_SmZ!mD!VhJ -U(Be8%=EQjv3*Na2Dj-ar_VL8_N9Z41erBe1N(unG_VALyx@g!g{>-qy*%VK;8mzlV&jWi+d)*Nd!U2 -?IRAzX6;iNZE&y*6hwsd$-(^;y|yx1C`Pb0AY-gvVT5u<`;kkZdk$wt*A@t?5O7+qG+oJf6%0zQ+=LN -97qVOvtgrn}V5z*DOF^JO(5vK4Zh-#6G-WQhz84XLN-22?~O$$?@CkcUNCNEd5vkh_KoS@8K1uwsol( -2Goz9rch~<=1?*H1ge;!b+8BhtU0}dwp=x{H9NN%_5geQ1_V&un`@-{GN_rI5TLz)#C|Ngb&?6fv-`3 -Z*`XKV&&dWg({Sx&0Mp$pOj~2EoGfoXUVr+s>$0Ar~}Tpa+I;wbK@T-}QZD{vw|L`L -7`vRcgZqro=GH7792+vc7p1<8g-e=#vhaWgrslMA@SAncGwtTuja1*>Lt~c{!Rd!uef-F&(e-%UdJUH -H@>2WvY%~#bsk<$KO@h!1mD9XMR&E(I7`3V+*Bj(g;CvT5s6|YZ7dWr)+jPQ2%*#4?kV)vrUCtY3|o3 -C@7P02Bs~MmH`yF3e(c7m&IDi3Jp)cIyhSlhi4-e4K{MqQ^tHN9!d<0Q>I*kg6h1*q3{Vd4YrrYs~DH -Sgi28^*zc3u?g2rz4`}<-2z!2GT21r9QGu5L4JfR46UYx{+ -|Y=ILU?H%=U|1AX2PrX>ZE33jzqV!RycqFUXr6OYhb0+AU=H_k;F$MRBzkotlW!N%ibVRynqp7{aIyk -L5k_Lfc5#Q@7A0EXeDZuZQ&bF*~;fnY_PVPND(LpatpN)aylKUZyp}jmda|?^bgOON+S(gr1WGuZL8v -9OW|`hPjTtz@FnmD=<9SO-|L{>n_h`*!Bkc4oz+)lsRKn0;p6lJ4}OV!v%7&jWf1xx6{dIBL{BpzLDh -odrS<@>b+nXa&javL3f3Cyf}UObhp8X2Q9t-Io1^RWf-Rz?>F&dn#p5~!(4T8^@V*HC$rlF^LLzRJQv -zekP~$t0+2qyHhL%8TxS)1J%C4xE@rypnH`lH9|_&Seh>V$hVYpVlB6~YVgqQ;uaI^!>!nE($A;n5M( -bEonfDj&H7uvn!!xr$h_C?Wn4KK9XJZ2BC^{88PlD?)sE(pj?M27o+1u|73BC%?CqVP7usjaQS+Hq6l -C0E$!4tX#mm@pEUTffQlJ&KBRg0{mlVLT=SU$e -s--e6*;-4YVQf^rNM7b@wFL-CKpP9Y(R0r4AlV{Q@GxvxkH2ADJ!wZOebL07dr~Ty_8eR3RqOAcWdwt -2A?%ML6Wdt_IH1=UJq5@dTkoPQQNig#a=EbtgIVd^rw^MdftidpK%tN{(<{#SZ7i_5JlUUVF$K8W~s5 -#)9=6)CMU%^d#K)u2H(9B!`Wz3iXwm=V}zMrFAix#%b6|logQUtT{2w1kq3!KMucAj(aicq&VA<$L&; -v)V5?*VQ;O+&2>+uo5!A-9V$>m=|Zq_i1u)RrNst~5PLJ(z$6db_)??m0|CJ8tIxM)CifIs=3(1|!eV -U#0BPBP^Yy?Lk&>t>Nx=B{^~cI;i<*U_4nxoV~?!djDeZOyz0X=1m-CeY_#S-~?&5pI#!oLui1zm*g{4 -5C6w%(qL<2{uBeQfXd6<|!p&#R0}{UZSfn$feYRBTJUgEexh6FlgO!&3kAUK7fEeaMc -f}OFAXhnu0<4={seh3%{LKc!wxHl2_(!UCo%2-v-jCxw(}t$7DT(|aE`nc&Ok$rR8vC8&*QdFkOTr*- -L-QxB*`tdFt>)30A=z+ZQtS))#Mz2A`VUY`0|XQR000O84rez~`a*bUp#=Z{Ko9@`CjbBdaA|NaUv_0 -~WN&gWb#iQMX<{=kV{dMBa%o~OZggyIaBpvHE^v9xSKn{jHV}UIU%{yeAa|-_uj`8eV=yu=4VtD!;-C -*sAkfm;W-W;tNk#33{_i`I`axMv3+!Q7ULsM)yYIfc`$&79H@aC}zbCX*d&m`wsbcw#6r864iFvLB+m -s3tviV9tutN+92&n|kN24n#OCT?%lYmHo8QCjU%+Akao+7bY`+%O<;@svz)0Y@+G9(fRq -wMK#D3bLD6?WUQ)4>`0wSR(oZ#97qb4V%?U%;1p6dGYVU8a3Bp0}*eL>G<0Dntq!3&oSleJa$FOyz5o -i;=>k~sim26N6zM-4+D`D2>?;qYTu5KP4^jA$i*>aIl)wwFF#!-RgsJKY9iCNHl!jp-}vcO^vOQ*X%- -HyYSuw!024`>%Qe9RkW`kw`@Ormpxq?deDP=Up_UqV@=O!?l!gBOtLQ4HjmA{TRK+j{aCmW9sX$kvHg -TTUPQ7Rc5dDRWvQhbq!-WqQM@`wQ|BgeKdPYkG8#C6{}809#`TF%Gr;-gRb3R=O8>d;sNm%Sx%p2FL* -lMR)-@srD=dBH&LH4m}70OK3wv682%|WfpZ2B>8zxrmY3eXqdpJ-1+U2srQ{i3bdRU>}Dw40m^wu&Jr -ta61DA2o=Gq0xi}U3gvFjqbz-?0uJ+4#)IRQkYO%#){Oxru=*@`t4xo6oNZAv3-&%7dDY9GicrVZ~7w -j*i6rN)w3&*Oes#lJvfY(LW>7dDxPWd{Id6yB3*!>ydIO9d?0tYg?+pFw+5p=55?#A*|ca_b!(!FX$JJ --0&PuY}7qJx7+b#(6nP;fZsFNC%Om;i -zQ4@0=hT)^vhD!YDWHRoR{ucD{X@*|F76jxmzHxg3n5jn^d3_2f5>q{DX7uBfOLH1H-mIG%1>bzeRwR -A}q@s8#qt^qDgX7vLM~~=mTOiT8QvLokN0Hp~GEM3L38|Rc)9Kem}X?WzQJ?h>hwg+0x&OGLlZX7xz>4oAT$-o`!0Lq$2d1Ra;hR`sGO9}Z}(K=4OOce++aRPgANwWeIWU0h!; -Z!VwFlmR^_gvHooa@TlwC2MiNdb_+?U0pn@S_8=KK^?f~d(a%u$2pw<^kZplApbAL@xKwh)5`mAMR2^ -Hp$vQ(fX{Z=>JrRIB{*JX+G{XMNps)z#^0S~?~~an8^< -=;hU@6aWAK2mlUeH&T))JC$V=005go001Ze003}la4%nWWo~3|axZmq -Y;0*_GcRLrZgg^KVlQxcZ*XO9b8~DiaCzlB{d3#6vA^rDz$ot~R8D5>YtvdBNa-(Tt`&rJV*Gz_ -jNJ!$DB3O{LqU*GO``cXrBuG)RbMO7|KHT1fBo>SP#_j^@_xruOcQdw)i#3~FO@ouX%rdD8wv>w9?25 -Ha*(;x2$|R9nR;)!XSe)jCD#Id{Y0ly$+sTq`Wtl|1B)%7{knBOIc)4SUITWghmvP7o0l=w)^GX(Ch$ -vYkmb^>~mc$FiRSbZU?7c{3@d6%P3@luW@IFpgzo$i0AtGE3fOr(eNDxne6m?HT@Fb34Qm;V*%u~5Ym -VU2yw~lkdkrNe5;t`OujEDDpMfBzcPZAN0dc7BHp6#wPk_C` -w%#GwCQjo`xnXDiYyZ0;TPnF>*-iqUJWpsw9HrcaeC3}SI2YHT*Ly3s0wg=E=Y!yGy0q;tH4q_$3BH6LEP&mwBA}cet<_{p -b}YK4X}-DvSNr5no4hNmb}--nk-oGcO<-j7CX!Si*m$KdbZfJd^E6OdM%RXA(TU3Q5%&?lGySmgs5N{ -7)5fxIN?jh1B^j^_U=RRRY0+7D$~sCeO5xcxZ&1!NJ#X(0mxHP;$J>#-(`r1usA97T{dF2oA#d&6-l_ -V(`XhJ*uFlKYHI4TZA+Ny`*{h;cTb=W!vzGB4yN{#DH9y^V~@1iS*Aj~9%mJ0?MRiWTujuzD>R&9Vf! -1C!Sa=d8?e;rZNBJRcf=gta?_tp%*bU8voN9`G;TPyje6o(k}*1n3QDp7;`qtYA}GW1^H)^}-p?^Iq= -?;>^yN5}N1;WHPFlVm#NbFVzN=xzmAX2%?HuT!6WOk=PIh@vOI9iYV{J|Ue1Jq2oPNHjR>Y`WGsMYhYD>(<9rMatsej_VX5L`7 -l?9d%d#ky2m)(} -e38qfEJUE+dp+~r#9|-*>+OY0JNe7+PXB#>)L-*oH@xr{AS(=zzKtqomidmxW<~<@>FKz9T-qWGF6wy -H>s9WykIbF)AvKmPqRE#6kfN#&Inc9Ca0Z6FGV!J%ohSX>OQ+=XK8aCbS$p4cdOHB@s(Y?T< -Uy5vSMsa}F^^6n01;nJCN|eI}~A;4sR`vd{uTmTq9vfta^B$ukk6_(qi{)$(iN2$rzD$pyxrE?FJN`k -JshDA*X%lvLD<`M%xyNa2V$_aWvBoa34gJ_L54ve`tgAXcyJD@IfMxXX=5!C`C&F5;xuTGo!`@t0mN2 -q1car;ORBen-sh4_RM)DHQCA0ivnCfA003VR(e-w&lB=Ql{MRy*-}=_;t+gR4EYVJ^$RannHyEJHTIZxxNT!$~!5%N5M)?cnloVxq01Iig)lRlotdk<}m?~-GdU4b!Ls -)p8D@)dM|b-5N@EXvB8Lniz*zQ&<-473TCTVzpwM#z}A9+u82e$LX{anz=E{2j!6w>D!i7F3arK9QP^ -65R(4G^N5-eK;O6J+o5>Yw(}d*a9p9W#YdSM_5Bxi6+JQ#dB7{39~dAXvC0~r=eAHjNuYAK<+{d$l{MCMP@e!spYYtRm -E7iR?qn=;?65%Xv7>?|l|>D0SBGs{K>8A469nuZB1NMMF&>}!XY=3FT>il0gyV({P%??2w6qcWNJ8oh -n-5m$N0lMw+Ax4faBSKi>LJ)3;A2qD4j`HZlx#v~f_c>d^HY4NlS{>8DEb@$c-0W`{M@DPxvkPRah~f -og{kt;lyyG{>Kh;CHL={O9V;_H5>dS;*#q@wu0M2szrU>ST82^@=R -b)U~Jrc)pbYAc_86jjTUpdpYTCPHD+NmMqrLU1>vzKHJdU>`(Qbic+9AGJ0t!cdD2A1#FsF=rp{E>C` -79x|@QuES>zeBJCmXu#kSD4o&z=V>&He-+elEb1;KLgh8SfsxmgA{#?RV!H|AqQUuW3c>`M!MDqz!lu^?8pFJ%sz<4bI-VsBD6gMCfZe1vMmHW;;MBC^v85u|rfh~|l;+YTdtk -a1*oA+SG)^BcdDDcy#SGaoWY$Oe>+Bf61V5$m=EX&OL6kXpuHaR2yJ_FwoAM#{e5|J(#LaR+Jh!I8iv -F<0~S+`&F9{*n5|^v|b6q!yTsK6io}i_lO;WL}@=VH`uj@-1^Dsny%-n0*+?^bQChluG#1H&^GahNXj -ux&$V$zmcfh92-c}n}_dlTgFx(r3XruE8P%Bd`vH`d>g3yqdrO&Npa$_UIIVrC5)u@4A^3!@%^ywP)Z -yo0GjV|-vlwp_?8kIL*DBlJ9U)gD8|>m?DflHdGbSFuh^iEqBZXNIRxH-Cj}+>UM2)={SaVU5&O^Nt~ -_3ulBTtaTlbU}JYv!oxxofRCNuOmnhwYynqVv6XMd1 -ni-(54i~Yj=X5WF{_~c7OZWBL#A0zdZs-X{$Gf24S|)q+q$QpDSfDc)D0P=3^u;eQ5O%D%t=5FG9@76 -+}zg4krm4$_Le@Y~M$>9e~~op;faZ%TdUBdWEB6+l<>cG#Tmfc#mcLh%IoyW3^LMM -FC}#X0?TfLTk!PS5SuLf%6K%n}7qpY{E{q_huDMyvxG>p_+0E#xWneUs|8IKams@a>XnGV$z6(-wbHrwMmOn|#Msp?QCjRu{`ko_uLf)v-zbsZ -zMt2a!R7)yzyVOzRyUPn$Duzcd>N%yfyYexaOxxM50J*|10+u$&eW*{>|Q7KFe0YVvn6=tUSp}7GEgR_f(-bC -u$yuOFQklEb!ZbnW(kH6M6g48x&;oOz$5TQX}iEmmv&7kJh)o$m6ls5lLQuk5eR|VF57jK9|7cBaS`A -tY_c3;{bgtxniH)d9b}_;0>xJ=5d}gn^D%b$oMeOUvec7t)2m*ZK<1omY|ys`JC;Jwj?c}BO>x1L)7E -&HNUW@@)|%xX=cJOjAM7Qm4#BR`9k5oaQ0S`}m7pPH0BwOr7t6f8CZ@q1to -)IkHdFmBpp!8>+ef5%?wCyjmK7vUiSWT#zzeQcU~ey8+;8#8A#kq_gI$E9cAC2P30WIWyP|0vQSI^z$ -Qvj2d{#71L%;fsA-%;op{Vw{=?XsB*SHRSWat@6>j52QE>fq^b -LdjcNrK4K2963UxT4h}pk=&->+2iJs)a~SAGW}`tCYZhbaQEi=Zva;88d67@etiz2y) -)Fq$fW^&EE@Hhc$|Gl%Nlpi3JhU<=W|qkA$u!b=ZI-z~zi2s;@4!Be<%ytmsJ-FoNU3~$BZrJCXd^7< -%WgKIHfVg^vyt1U-Fb;xWrS9p2{P}*+##Fo%k0KQRu_6>7u{XJ%EIt6~#^i?_*`Fe+S1=Dg^jq!hl*P -i}g^Vuge^#8_V4_M>>D7UQ~GOuN&J<_}#&nKK&7T(Fqux%GW85t)5Ueq**F%URd^&MKw#F{MZ`F)!N$ -A)nskMK6t)NNoN@eIGi!VX#)9s2)fGut<{!5$1=`;604JVyQ_;i_J$D`+^nhUzUzy7f`Wf+qo;ow*69 -R+BUM2ZoL1)@1xMQ+4*%Hi12I5y2-1?Z{o@Th?*6qS?Z3%F>-XCQ2NxZIElFtk2lx^snzHXj^z>?B2u -@_QqabbqV1k7NWYCk6Q`6Ym!w+ttrqM>(eskKd`eW_(Q8KsO~j145Hg-Z2Ihi9*QuB9P!Ame=xzXqyc -V&?M`eJ7)xBlDOWpmxy_g=97jy%EVgU+s+y*@t?I;B*E!FnPQWnujl*rL;zsCfq!u|7~=mrahxXw%^Ye1w -13u`F@5f1^<-NGN){3-b$drmui)+ly4r7H>@t#X8%Cl#2EWl|8fD^dF;%?J=iFd@^d4 -0c75vOl=<9Xna`QV=u(T{fOj&q}Z^e262RqQIx44Px!Zs6N|*(MYK& --O33K5O!4cQ+3I}J^bD$S3?JQzGoM5h)pDqEGKl->6lx{F+7d2{f;llX!U|QC%rV8(o@{VeTxZhf}eg -k$O56l1&^Vk@v(V0h-xqCtHsmJye7?Z+|2HXE^2okr0Xe5m>;Kj8rSh=#MjiPWlEPR>DU@7)dCNpAgg -tclDZ04A`*duaLwb?svkaRN!*K_V+r_so2^t)Tm3cDkfyi^oyJPLuV;}qRBbUH7OKfX9iOptw9}ZBv% -_uhufjjB9uJyJlM{3xnga4!cnRMuBF`fJwW(N(lOlt6B3nw$@r{FHS!tNjyL`)nkn>dzRVE*_*QuN5@o -awgA}!oj5@k6fF!6dOO7^1a{U|A^25oCdB5d`tdUPNaNCQf2ethrbin5`aV)0YydAt9BNY%D^Kh!J>F -7kM(YK~Uojc^besd=-vT(i->Y_;$Il?@%7D!;1)3?3hS0aIg;GH(^}i8tu(o%B0<=0KGqa3_#eVi_?> -_-hO9KQH0000801jt2Qt<>BtD_|V0RM#m04@Lk0B~t=FJE?LZe(wAFLiQkY-wUMFJo_RbaH88FLPyMb -#i5Na$#C+-+TZh08;W}W-fMi9UWaZ2_zDUM81#-cDvoqOonA9Z?hoTq*)>IazpkEJNm3P735EEj14{ldviY@=e8mW3!*vIDO~x)d --#y52;w%sfFOz<)s^qBSBDB!G_$3cyp$Wf))|=qqk^04EVQL3khB$<8=g$gkLOojyd#9U=g&)3pTXfZ -D@}_wG2&j#ts$N@fC3dXQNkMp+QBg8kCDKbKbvWQ?}&=xVnJf@{Y9FRakwtUhp+y->PrNS?ZCZzXg&PBL>|@VF(nLCXFp1m>(<9bHcuNKfV* -*^otMK2aAT)LWytj$f=ZQfgWCHRAI0m-soam}qa22g-mFIErH(CM20ML$NwfLU6Of%l -qnGEtY>FWhw(9)Li0(lbVokt5Gx@OWaeW1VQDF}i2P7?_BL>z@Ofz?2g!wZe?>l~==c?9@)9;e~GUWQ -@1*<~Po3egLX#JjgA-yOsMzOQF3end|G^L7rudx39?o9RQ9`y+v4 -7QL#thb1MT`@R_KVYK};q;+V7?-p^^y@fUM?4Bc0}w^b=Eb}Kf)UVG!X3q3z1r$kz5=O+yvPKUxK((H#?&%IBS&2s!Fu3c#c|y!dkT -+_BQcv?-hLTOM`An^H`B>q#uuXt(H+d-?`~gw8Q*@Ke7+UXVmi3K{aH*d#o+p9@zePFqAy1O=Vm&Z&B -SC%;KrYBuEryHKE57aeZCl9e-Q7X@Ac$XT#Y}CZvpV_ga%dM#-kYm{4|;lKf<4b_v5Sa?a#b!m*d-Og -nc=gih;NpOmD}-&sT$~xcNN2naoCj#sz@B9$#NhVWiQg(e`V0IaW*-MvS2!HO8+?YDOc7Tx -oZS389e?i%Us8}-FtI-UW_Jk99@hCvcTuL%KyzSkp$gygqZ37X*FpJyW*r;E|x3SiCj@@oMCu6jb|gZ@iqS(55M(%jnw#Y+E~uRv|b)n6d@WK -sQ<*Ds2!467H#3WPC=1pQzugZoS_JB&G)8=en(eF5yP`$u2ZOOUZzvEjh{%y$*mJR+5x>$bx*lb5J(0 -v1YSI7P*-{%r{Rrq~A#cD5gbsS#^fx;z9xa5u-sdsT2Ec`HzKtwYHko{4jUKSD&1BL0|%bj`w8oJ1KXF|LZH`-{ -=H!_TtQFx|plXujg=FO|8r|6>wNJ++Z3_N`1tsgZKm^9nAYQyU#lx2QwcZo{QV81n -4P9XCE2MuixOGp8C^h0Pez&H;!%t{O)`8V;qo7q6Mo$SRB+PCE7!v%1Q0PHUMKZj&Y)>Nmy}%@w5WX! -0r_4qgT|3bZ7=P7XaY3GTbIGm}OCb6&#^042`lh2tiqbnj~8Y_z-Nv*KrKM7Ac5MaIS!#yS{Zp) -@BrPKSK%B(146O0=IK+?w06-@KpfT^m;uYXVDqceuF{vENH^Cb -XtFj0|TH;`AE}~lvbB0m?Nkfo`>Yx)@y!K40 -DX!|@Fm6Ej9$e%%D*qLX`?0w~m<577cVYY|2p3Z0Zl4bR+~3+1a@5e9Tt(k%*GJ2)Y>V5Oo9k4`<0?$ -18MTxKZC+2l5Lu?K#oKN?-42#PG35rf -h<_a@ZY<){>|j-=abX7-#riI=XQVLeE(6i)guny4_~sXM%QO^gX;HOY>lqZILa6US6d90s~~nz=&+ -|(!9rWYdxvpdeddBnS09m_y!C$grsIQgT%=(d`{35BqXe9vub?9TA4h6Ykyldypl70I6X+fu-Y5tsj( -=;ve0S9Ok4^`yv{jG?MUnNuKmhm2CQ$e2jD5KltbTzGp56Rcz?7Zi=F;6m3qAO|{?i*BJ%Z!u^Kd+UD -vqa5!SVEQ9BJvFjw3Zch@-W_PjB=nj{bA8^q-FB(-3_!rqAF@)#1sQ?q|)GR^Tpl7IGR;jL6}? -pVH)B?v6J>0iLfuBqfi^v6PR|Hv+i;Tz0Iagl9n_Az;NH90)oBQ8ji#6Hn+-$3JxF!v=QX{TTip4L?s -ux6{G(>;@yED!yWa*x!z6+7`!giTXJKCuD6<7G?2#C(f2-5}y6mvMj$nM$5Jk&ml@4ZeP=>5nI|z(E} -}8X?7Wa@_7nzxgk^6N4MA4u6WOIj-y3iEP^8N=jC#Vr{(kqxRQ6p%BM3_nK{eg`g&GitM;7n2}i$XxB -3WK<^?ND9EE_*F(89FS*pkcox^g#%NkY1qI?y&G(wCR_pEktqnR5z@a|+`6X2-oj6n>$KgkRsP6?RZq= -jkHV<%3A}pNmrun3d6NV^B)@++Z_~5HI9myc#@?b{SiiN_EG&X97RmN4I+>XX+~_^Gf3LkfR5UM(DZ^ -RuULu*(4#{RZ#4KY7+-_BK^PPc=^k|&U^2N@$E)Yf^*J`E(dfxL3N?{RtqC!TpNTg$%p;HFU9ebWGS7 -Rhb1-(N_~y`fM~x@ps!ZG4^Z^%8LB_bM<<{ESWmKmFagFnOyvvG(muthIMtt -1-_j=y;Ae9nD6!xR>0QH{+X8J4qiU=U}e0M67POgK9cFWe%oDHTdUu%{}yF(fS2XE#6}w*A$r4{B6fr -;1T_UhwJv*whDK>hK``KMX4_=eIg4ytofg(gy*| -L=ICHBUH7VBb2~sQCFAv3Zqc(=)dqU>57pnaYERMJ)bK|Kmw&RxrZN7xD%%0Ztx&-g=0S~Y6v@8V?vySpAw~ZJJ^D -n$sHKI84mm1}>nkoNlD?6gE+xlNd&Dq=mXcO}QH4bg8|9*Ld -mKGTIwz*{Xb^AW!|?TjMH3xDs>D~BG&EdD2@64ii7!QU1|JCY`#F(V<=_GkOqRrR?X_H|m{N-A&0?!E -9z4%0SMa}iu<*psGFbJg>+77;9nuUQzlV1n+hNx0uR|$76buVYq0J?r(6d_~bsT-ar~4Od#Qp8|7-tI -O03^#7UauJ~SC6UcSObHb@iFFP2SqfGVgRicIpY90rRcn_&as`84z*A!XYe`&t`$}O4QcAW@E2LS=^g -QDH9Uh=>K##38y6qlcGM0)zPlisW0pRG3RAE>!UEo;OF-ggSKATv3t2_rfq<6qd%294eT9*s74WfFX> -FyZt(RdHmvIy#ytAi4`q6$Lk|?kuD)mcqW3<55c~^(u`irPVS@YOVW|wYOwWHmY2M?GDu~bC@@_|$7k -1+K?cu1p#i5j*9dl%k^tVU~uU^+w -wXC-R;%V4*5iON0Oq-F!Y>T1Y**f>5X8RduAeluqxh>O%z<1 -eSP2kY;18ocU!Bi_^q})uTU^!~pv;SOO>%OP${g2-(8Jn{I4FoWNp%>QD+8kX`w2WXxVpKnJ7`U%kZz}~a&N0nZT5Zjs -A`2--4p<6OZM*7DDU^(_bmZV;l?6CO>}E`du#5cux_x75{w7gNZ2{`-tclNar4NYGg7@wyijLLk93|{;5677pU%QfWi)fSB!N-cfh-L1Bu0*u(8sMhI;C`Y&GAmq|mp=FfiKo)|9MwihWHyeo -ND3d7Vqn!Bqf6)%lC6@Paw_2i*gC1x!Xd>d`ea$mdlzmk43F|as|5;bU>42A($kcnEih6~b8dZTp%Ei -1d{)%Jg!R`z|r?Ka~VnYnL{e(SI -P*3CAg31ZO`H&H*{eE0Jf-R+6)>vo0lI^=I*)Za@+y)kk7>L7hUmt(KA8!jp*EAKb_a~BCS^*>rsnit8w&PU66m#6%{nI!2yJuy$+(HalfoJG@x44H!}=s`i((u#{1WPQ9ajrZGr~I0m^A -9vP^Tnb6n<>$O~9MWSUZ#b6<$*K;mT`WT;%9?+!3k_eeu&G-@ec764lT!XiOPnv{_+HOrZ1u{5S6HqZ -quNy_(J`V79uZ54lK~Eh-n_*7TWcbtQRy(Wk$j8#G(X>xPIFMY+NQE_X%0VE>(Cgx!#%dazA@5hPk-- -!OvGe;Jmz=r5l&sDsV8OaappqF&RwRWCVHuq_f;_r>ac8qHelgZ%YwHBuv;vQ*)WE)TMRZk@Ys;hQ5UXfSKFzNr9BuiC^In}WvN5Fp^=GDa}jxNkYn{S>5vCMZFtTz$;=$W<+{wU>0{aaK)%O1U?4M}lFtgU7?tU{Y^(m>0!)WV|C2GmHiVZG^do=D -$dvnS5!?-_KG#5+AOCSko~NJl}pY)X7{3rprYhkLt>lw_-D(pYdc-gDQz)uz=pLX!#hTD#12jZ+dsMC -^6755hGU-wnf?^Y-YlsMZA-pvzamy{t_)QU}Igcn6BV0yi`X*0O$~3~^hwY5`t7#T-ke?v01R*XBbbq -S<(OFL!Ov{0%JIW|alGF{16+sl3ZQAu@e(t?I^DlH(OM62GRf*?ZsSg8gC7Ya -RXJ}`HYLQE0s$@pn2S7G%q?OY#8ZP22TC~2M6##LKJHN%y-{;PbCwLTcFqF`KDARY-EA)$JhZmUQAJu -&<)sm#^O{qefb$KlCf#r8%kuQg6>}Yv}7r)Rv_&S$VynFNJ^h6v}f$6fUS_opC+^$*jiL7M6BbSd(+o -A-R1@G`sS+E$@FX68kkzYns$UrxTDRLV4422YkZ*FTc|jmjtSdx&WbYc>1js*+W@H1cz}_Nn6qU)}L)W&iA5q7q+Vm*^;&d94?KhW$e0z_v*8X -BKX(n*Q|PP<(?GHLjK0Y&rAuoubMEgiyC8FCA{cga-FB|A+~qEF{?xhD!oDO9HGyVp?Mw^TDpR|ZWeA -oSQSY*ET)_xDJ@Nirkq4PX}ix@P0$+tONcw)2RvZL4ll$*>)5QrO4oedlj=yxwvhisNwXKXc!6&&nR^ -8km^ou3^$1AmCorRJ&z8SCY1({oHk7?TpLY61?FtoMY)0)zXUn$IAOK5pT(%rzBtoaPF|Cn*y~bqsvS -P)Ccd~%FGvs(g9`s=jn@81q9`ewsq+|iX&>@QF%A908Sj;Qi1E85bN!uD7pNo?wAU -@o0>8+!#6>?bYprWMna+ybeGw`ZvG<1muAJeHrI)2+zz3NVs=SO8v>R_T-PvQ1a8Jqn2m$MqgukN}~X -10YqL#}2(@DqY?j_Sh-_hL?(y2ldMYc#p^o<_PV;m}fFG)Q~?wR(3>_8nto?EL+;FWgTRzSIP!?z;B| -&xwHT7rq{(f`Vlwew}oKKTj59twIb5_Lw%ciSERu9AsVF)>xZcx^RfouJ-NDjRKm!PVBATT&LG5Xr`UTKra*H^+_fLR20Q13rSIwV$9 -?VV?qoWUja#V6zZM>>|?r>bhEFz-4z4qE&_Do7lGl%mn7;_Pz-&P7gX0)icLh`8 -u~8y}SN_5iyv&#dk0G^PJ{@CXvCaiUek$*rT>jQ$!lo_o6yqDunYQYdIb=e-Q#qJpJ{_KWWBAgfqQZI -$q{6LKmjfwk!crK7Guck{Y-Q$JZ5jEI>U^?M^x@`Ts^4lDcQ%YY7L4EMM`a#7DiwRw{r-RI70T{@OtG --QK@CcnzEHC~LoRF9c#y`R@nfVqEHSvZqyn>8NX|~+w`OL~03#~j;q( -u<>RgG1}9OP9QFMq6;(KSkwI=xs|ApK(WJTt+3BUMtHIxxk+ -mpZ9UKyVn^tRTP>oq0Ws0S0Tbf8!UZXpHpFpwK+a#cPo@=Ns0x7wVZlowE4&pG!$yv>U`;}wdsjRS(3 -udo6uP$t2AEdJb#sN#uxPJsB$e-IYI0_iTi^!@;*CB -6U8HaD(->lHhT7AO%mO;<1lyrptNcnM*S`8>$ky?s@p@pB(eYeO@;$YLflh#Gn&k0>}p$hVk`C&YW(B-BgImlA -Q~gRkpHSAk&s)mj!b}*5pN+{VSw=y%IOtyj179yy!`N=Fd^)9bUqH4I3c3yNhItC(cU7rjw>_b;C|$C -2WB@#AZ6tsAUp0thSj9@cb*Fs0B0fnywUHVSYyujL>z!OtRMsl)4iewJq_Zh38IR -Y?gQ~2W_43!`(PNG^zbzl2Evag$LYbIna9?|?;nt8r=u)-rnL#Cv(X(#L?6^UvPPeGn_1ayG6`sYE$` -BTzLw)0k{_&ga{PDd_pCxEgJ`;c?VumHqwus%jo5jt`>O@iC*d$x;lw+2qlM4H<6Y~yLRVd-+Wk8qpB -#dG^7lYK0Qk9J&D%oT!SXGpF9*Aaz;Y -Ch}6`}WEqbkDn4SD#*i -IymQa&No4Jm%~4A?zi}xTP>o>&FXHg_mL3N$gDx{&w9KUo7-lj*nyGI!qSR8Dw$LYuxV2ICmS$X|$kK9 --UlkqYcq9;!Y&Bw9GAY*>L!k>5s;>sluJk0_*cyMimiC&`F`<@1{pGToxgbqG)9dniLy4cT_HmR*^`#^HXrr43T#F{-$f(H%ET??bH~ -Wq%!R#82rnmld^uIrkr=yG7{!v1X3h%0B*OTj!8qEOi&ek2bIb%nT;Ji+7vZ7qj@IK~Hnh5NL -&5T~LbQeNXQ}$=Djw#y2U52(!fUqd#FecIx}j}g#_GsFS?!IL^QWq1pt!ehe1@vNE{Xo6L{Ei#oQ9kh -VnE`{G8OWbV^k(8m$>;Uq`)$PaFI=L{OR9-;}ZCZRK4MJl#w<#U7urIYeogRcKwLH=tM0ckzEyH0*Sd -i2~%e<($C>w`ZO#y>(iw((Acra^!XJ?Q!Go_s{0Hnh$@2&bY4c&RUfvlGP7}?nrnkQma?CX=w>Y}k#C -6TnsF#Hc`z4oAD123oM>JjQ{69Oap5I@fUaL9a_i4mo1X!Ox|j;o7ty=m)aZpEPqT%0TuQe@PG+N -akJZ+@G$`;E~A^ue!^xQSRi8bBq1A9aiP(+_ELFx#m~=X*Dd>D0l}%VCQCX@_3y!t`-L#V2{24yU|!D -913q3bQh=1R@E>L*{cfremJ(xs)x7t(#tQ>X}Lv*k6%!xq4Ll8M&Y7yxlRQ~-;{!BTVp&}LlaFdsykB -%d}J}tzPnOXa9n>zL`P5h6c=$X%jvrLJH&D=NHo)T8r)r-!w|BxzarxkKPT_Lu`>jnDwv8kP*skFpF!tC>iX3p^{aCM%n?y%!W5G*0KlyA#(F;s?( -XEmm+3Nho7g2^yb0)S!(iB|tLyllq*TjGxhDB4TKD;ESn}7s3 -5dQoG~oL(b*iBC{S}2CShzQ%8}Z$@rBW^R(?=^k9G$n)NF2!@H -t$FIniR_~J6;~A>FyK)UF`m_l`W`y-=zJ5~^`q|P-u5M>_}CKY3NiE$s@d-W=C#zbxA0Qmd0CsdZExB -u+w1qOHSWgiwrcnKb!**w#;#hRre%gei%HEO^9h -E{?w41=3PF4<9JO#ui|DxQ~;RkgU!WiCoyFxgazo`lweTu9TLis#=a?2rA5lsdBp(vLd{TG#fySnpSL3 -YD4FP%P%ar*Nk~du0CsyT3GVim_}4rN&;Vfd%8yk6M?f18pH6zh+c!wD=H(rbxK>-X2d7hG4MDV0B7mZRk!WEQfh(;CT3Zy2_9t@9LWD{$kqt12tdCmnzq!7@(w6bSWEX|b_w5;otQ&$Jg%$n%_i9848NQ#A$x5M3Vxzs -WenRUIU3=Wjo@ct?lw*AF@W`Upj7twY&&c$U`nblsHT=H;sbcM5%r3CrVE}!MV^*EjL6iZRmUUqicHV -q$D1ZB%-d!JrRN+HPJ)2XCOoN)(`0KO`rnF>JS~_Bvj)-R4;8v;flw*LjZquYbQ(Ya-&mEI*@F-%yrF5=uyvdHGJqFeK(X2vmL6N67(bMge?Ep;GLPUVBy7qV55mcwM4Vr4duJiXwx9_L2_lB -~)}O%k=!-AQ*Uu9ns4|FVWMz(G!}ua1{f?)g?*_l^oBaHlt0@+(neAOkQVUpIYWb!D16LSwWib(IZ8H ->EGu2h_Tn0D2}2gvY331n(7KY3`24Ur7DTeaHXooqmJTaB9&1tE}^_ckuaVwsSMWnE;^`V@kHBpZA)H -9ak*+=M;0?%OZ~UzxrD%YmPmneh6eHw1>sgNYllt2sr(3{Q61!sS+GQ-$Q>9;aR%jwo15zw?dnQ@Z@Y -ytVkJZ|jeLzeBLcJ-%tnxfvtnw!R_raDI($#pC?eiRUh+Fiz=i_R|F2ncP?*At2tDUODqc&VV>WRbWH -EadaF1=+TPy=X5TpejMU!7T*%p2Mmj;hcC;fiUsshvST4CnaR$-p?bWBnt_}e#I_$eJAnf;^T?lEN?A0?njA^#Y9+hZ#B7l4#~AA3!o -^Q-YZ-WPuX9x|x%b0H7m=yFI*u5fNJgvS3olCv_Ec)&vC(Z*#1=LJTZNv=WjG@7bR3Kpeh`mi%}lsol -bK(+q6d8qpP0EZr=gPHOtVi -2X}B0C>|+n>hq=tH3C8^I44s-Q>L&0Q|o%3T#hNz^BFF6&$MgZ^95Y&o=3adJK5hs8L~j< -p<`@>bIfvO|6QkZC%C8;q2vMiS{5%o=ig+VJbLqf4FBH@-VNdhoJ$|_h4|xzxkue-pQe>#FJwOg({qY -L@ZDl+~YQQnZ%yZamJz?*G=I^f*(lNBNrYiJ=r4RH^I1ui0$S&WN_x6=#xx_)x1T{5+NX2&Vmz^L{b= -Kz_GegShB7vw4I#x6J@q&7Ogy#1I4JFb`MO`BdCKHK0H)(7xmVA-uF2a+F#tgPQn|{w+FqwNVBzFW}% -C6s;7Nb#u<`g~3xO`^iU{u5-zcn3@75mLoK|Bl!(p_GA?eyw*Y@TmI(oi&r=ca$B7#hI=fqr1QRmvVwlr^s@to~ -feL(3$Zl^$hpBNi@^Fc?ky@TkM+V+ZO9}m)XP5tGvIVPl{-2C$&-Rc1k4_bHtdvVd3Q6srl$E$pLTFc -Np?bxr0xy*OATni1X9(0VD9-s`7xi5W&Yz6LnbYl|=r`?Ua>7l1DQ3QR>3$NjU;sK_IFUR$!ZXU<<> -M!xU`g@vQ@h``9py{wlF!l5&UNm6pX!y?jpMr`SD5#H^K5X`I{PjJCshCrtZ>Br9K@scTJ($7x|65O} -!H^gC_3t-s{yY~ugX(r~3QP}fEf{?bz}o37?oP;nkek2a_T&s8^pq8A2Xs5#HNZH>{5rhy_~3jz9>l# -n5Wg6VZb5n?wMlU0GT&-G+0ip{=UkB(2{Hp3`~gr)0|XQR000O84rez~000000ssI200000H~;_uaA| -NaUv_0~WN&gWb#iQMX<{=kV{dMBa%o~OUvp(+b#i5Na$##jSF_n{EO&N5_G}Y5ltcjyh!wth@L$Nt+IBa@BriJ#ee1}zc7$!o7Jh^_a|2> -Rw*@~!(+vZ%_1V5*P%HB3(l_0}V}95r%N-?;%yh_(`jpt5uIIC7dqYVGeGYs1=+I~CkimQmouw24N=( -3}K|tNmHXY}U<7zQxg+v|vYyjZf2SE0G8isG=(Pse{;)VH7^+BJYRbOQS*HkH)+=-+tVMq-C|qX|I3r5&pT%lqCOrfuH|=S;OzHOT&K&ygBvvcEF7U^5HPA(abO -cbkhN^pcIW~?M(lXc2G*weIp*26|K4sP1{8Sn4FdcG6+)xseo<67aVt#*bD+@*(T5=8)ij&a0C;_oNR -3eytRdc(==j?X1l}50kaJS--DsT{-m1^JB!e=LFn7ucRB!MInf4XNxB_-ZwoGh8j#=y;{F4%(&6%UFn -a7Q{!h7zUbJ@XVAmnwK|p>Th0qvaBOd@E8t8Na107H>E>N*ShuFmuDY^Uda6toyvB`w*?${n-Ii*x9F -xfWpU0^M|VZ*?Lob!LE6=DmL-!cbc4%GzT+1Na8Vh_MrHP_%kTrc4ZE(<|yAqozPmyLGZ73?4&(e;D@ -DMp4+QBuuEF?d))_!10k9&hdhjzx3l{t0f@z5y8KR -NBQltNCqIv;!w%7ZnJ;w1AhQK0H@=%s#yYf*r`qIxIG%nbH-I~xEy-kjH(mna<%~0p$&Gab3Et@o?G` -=Q>clvbM19v{z -+Y`So=s6DZ8lvl;Iji7FP16#!`RR}WUv?;AhJ+%F#|SeV!)blLV!Ef1tm1UI!XY7-}i>D$~4pm6QF4z -0U4p&Xu{lsQwCYBwowQvf3+g^9z6qmFklWu%}RVX8gaYlm?31xy}*m-skpBta@cS(5#ywd?x))F`&<{ -F^VxX1)EDBzTCEv#(%)|(O@3pRT6xKr?S^Nk$%n(-$K-cl|4vt7@)ap?kqr3E>AUNh)|2@NxPkqepu%hs&=sF{8}>G}PB(Z9Lb`9Y$=|L?b7=Yy?9DG+Ad -W%C99{Q)=C_(N7beraY0V7GA3@|{AKf(DjYcx{U1y{L5G3pORFVyE%K`L_xGZOhJ=>8NmQ{10O -OXdi2cN7tR?f=&1z@TtrL$^?nn46Wgah#TG?jZ?-$}H&jR{hJBXNJ32Qt;jh0AjU(K8F*k0N+B^!{oY -#0mGF08*Xp+xkEQ! -vVhET&$l)^FB)S)((Jt=2G+_UccHb;#kk}R|p@KJ%JE@6`MILQvqp`c8ue<@1A2b+H_qdO`3)L#R;dPoNp>Jq{dtRr>F@;v!2EK2 -;sZDoLXs#Vv(lZn_91fAvF8oMoT0#acwv2~DMlOEbwt!@ColG1p(bh)EpnkH|Z -ByM&;n9hP~FcdxRj4d;;@-^F>Vk!VTlQO@61Eg -qG>W+3|z|>q>gzO$Ql!a^7VrtEcZ1U>5Q1>KxGKJu!a;>-!=I)&D?2>b)=>=w6ey;It9mSAB0K#OMJ87Q -E2XiKVVK81fD>~M#kr!Z3Ihfe042W^=nn2A$Jm51emWqU!Q0*S+tBqU^$#442V253IX-a$;m`b0#X!a -i}oPMRu9_?MHBMM&eh+O;wxO8Qi#jCh7u!cR3*c`#?QN_7+-l&4N$CV41 -TbGbjqJ`J37Bd3&aOsFQ?s*IE4oq0_u&-dktJjx&ncMQ60deHn??n|=4FWC*OzE>_tM(Q -0tFl2j36H_R&{v=1?<=zYqSgmO^`PPPtz9=Csi0D^8E2{eZV?=rAJs6 -!fR!)df%Ro+bb$Do=UDxVa*{Spa!l5<$+W$1o@IaVSA_mI!N!2iG#;SC{j=^Q$-bYlwxh6^k>tF3YDQOLUD+ -aExE!-O<7WYBOVGsEU2dE`TLhK#8CgARTxf+K_)v{38%8`R#-um -q1vVyenSrz*#b4hMFa7*V-W$*MzX|2E>F7{Qjb<1ouY2De!1WFLfYwRMmAC$v<{WIk-Un}KM&Tn&M29 -xtv0CuzAx7#^qF;xzj7A1R1u24$PX|NkvMWs5}mDqlHdaOr2sW -G9`fs8N>(l}>D=uOda|1V?SC+#!tlD-D%fUMaBDP@W!B$mFXEOgi@|HWrWyr*VZg6-7D^t%%{_d-p{R*k24WC85g|YP{E-5$mJM|OeI+hcejBA6L -cNP}(ESSfDWfl+2^}>Mn3prokBf4!M2@A&5_vUPvP_gGFYB~>$XJxPu+q+1h -;T;X<-w-o9=l?GOSMJjTYS>%b)Q+cPZ7QZ5e;~bCP)T_<8oYH$FsJsXG12U+zl%l)fEOFjal4P}4C6H -+dmx9XoHRUSrNa9Wqa??k=VsEKS_IBk}eQ}%Bc5Qq^WAkTY;z0pk)^Au2EPQ~8hR@$xjKBHGF01qZ2S -fm|_(2dpE;Fq#z$?}A+d7lqX%0NoqWm?Qsv0MiKCD)N}5}}*WOjH*X#FsnefRn> -n~6tAzdwae#7hrvi;M{HK_kgeLMjNEqWPjvJr3!&HX~_8MK~?*5$-VTKmv?UTnqYPsL`Wd=)P!4fRnZ -*)YhRc!xfI{6GMa^t)$-K2sO(*N6BH?*l$hNEGH~u)`uBl(pY0wBMPp*^bdQ`TY5Fro86ZVCneYXQn+ -2F*TFBxT&qEB{m1<`kg`l8&TJyf@9h*Z9I(KXYlO}$1mvy;VjDK>BpAgPd6V;4_{4qFc*Ma_|U?Oe2) -e6i+Hs50^X6M1U|O4{e6eL>}+cn6SMK5CQ!j$<4w0rfFX5pv*4_(?;Zw+TK3lF0-l$FEGU1UiSs;f9h -tTR0}J36W#A(y(w!XOWf|ZM$2+<0{z+Jt`o6k-_3<-AoYeJzk4SG|HhYRY&!kR%Qoi}>LjY}~1pA@@F -lAE~+S@k)(7!AI4A$tL0{v1J>=)dj*Ki*z8*>EuB$MDTRO61%Qpea8+fFfCSt}%~zk0S$V~YLrTrWuc -ofi=a&%UhJz005MEEwZw3^By11Tkf~PT6j^EC}(E$ekU4&s#eIaxR15DO-Be0|!>XoSx@k?gQ#;CWMR -QB)Xi*MtFb(g>bsJqkC{FXLt*fv;e%2O_Jp>jqN?WI2V&U?@LhVoBn17kXwhn!~l{nQR^G^VW>yq1q} -3Ge!A*iN&QonoS21>;&HD3czSVqc_xA2rWx3u&nBY(O!7(S7rszR=QQ13<6Enc`)oWLBo9>VXnQt3x! -U0uJ~@qi2xd{}SuuimXJX<5*f{?~Y6UA-eErd -)2jpt@Dn~ahxnAEjH>x)w*&Zl+FQ+Mlkfer-i3my4L(kkQYbE#*k9JsL%-Fy|2KOm@6aWAK2mlUeH&T8n)_hnI002}r0021v003}la4%nWWo~3|axZmqY;0*_GcRLrZgg^KVlQ8FWn*=6W -pr|3ZgX&Na&#|jZ+Bm8Wp-t3E^v9(8*OjfxcR$(1<%Ey^34^}mmP`#*^s8`U9h$(;&jE(D+F4mV_jrX -M@n(MVgG&43n`JZ-KO2XEI=EHA|F2QZ)C>f@#wYQJSx?lD#c2bwK7&LwGquqiJ8hciU#AE3s^=yeV{LVWn*7OQjpJD2&RRax07~Wuq3N(FA%`+^pQLr|&N8Xx_RtDp% -G@v&D%ws=>)?eBNktn+n)=D~c*F+Xd_{HY;5!F^8>JLN7(>DH)wI?+jOhwGzDJx3RY)7L9z(!!3Q8#TVjZmL!gS-bBz$g$*3UFi -OT)aDfBVfH0$VCvIq!Eziq6B&~c*)MrudZj=)wwtUfN8GRH6WLa1pLg$kMQTk`7al51~aA9&x8>1lb_b((|*kb*B)3iJkOSu_<;VysTjMCV4b*CTeiqMS+>fO-jSIrVdYv0Z5E!_H1$Lz&Bvop>0*z}26IlueSKa8U=L-{_lQ@G{4lgDTT4`wqqF<~lN?0p7kJ8X!3R!bV -6{kJ#VT_6&^Rh0Jg5{a5`Rw;!wv^cd7Tskhl2ejiX;r>x)rQFG8KMAkhc`(Rzcu)+31#(aN6&NEmBf@ -Ke$=2^ayCaXKlyaw>B9pNz!EVvIvvpVB}@020#67ZKDJ+5J>=M{t@`2GI+)pO6zK(iRjj=_Wz^BLA;( -ipi-O55DeL+oYxz)ieq8#yo4DMIeWKpWjd3bf!#7FMA{z<8L>X0OkU0V~E-MiwRHJp*Yikq!{VTU{v{ -fyjRx>O6nmkrUy_VscpbBKlS_;m=Y0>a=IRHEKC@5za0c18)tJe*L6-DwdS3F%`$r1_t>g-cVXYEK0` -jDq$6weiXi(KXs6cB8gb$zn$cqf-{Zyq4OTmXJ0J!px6`^-)q>nf!pxaElwy -!e(Al!Q4_K#@NeD%K&Q;xr7chQKkC-n>E7Wl)pnbym5_p*0Bgy;-d|E;)caGH6Q$xk+H99+qarE9*r9@{D0yFc{|6=$1t#^ChFA-6{ -ExOEH(lz6YY|H1eSLy?C=FmbS*p*ml@t1zv>E2|Ssi$1X&WYP>WAK4Uc9|Nze+m)&1)tu=sFq?dhTCT -<6QPTFn~@_0}Q5L_QioK1`Tmr0&(c1dQF+P%cTlK4LfKjJ^q?JK6>&j&=+OF^V|pf*qiO3&(Nm=!QY3 -No*+jQdI82}pI^G1Ib~+=o$H#)v9n0U{AQ3W1+JhI5Tlq9>btDO{bP1^3;7{kC{q1#+bkbFA4e9$GrY -w>2!rx0t8_;CoY4PMXa2z5EH7co3GOyDp_KyHO+n1tBH9sVv(3ur4aKnz4iW%Up=K@k1M#NOfdNI(VL -DGaIT1(4fezqKBOm@~O4bqYYrYg7&VcPCfHzpY-zcXUjy|G?pg_u9w+*}fJ~A{e!~)tiu;GN0$kVzcob+`tGhr0^+!XbLoG=$ywOS|eFXOWK -Pzg#OF@wV8)Vsh^8vN#3LV<@uwA@E2Ds=Y31-EVmr!(j(bI=w@oqVAVCQ&Rn>BWfxGSs4qJ>~;o1?*E -|QHJW-7x51*WOl%R<(o!0y(b2k)W4*lm8Hy8G9UkDeygB7hlgtHWD0dz#-yEykG)r;K1e$M`I$37pf+ -EnH%7O0@^~_#z(Hfkk*J}NF0r%GfY%F{OMpLlnN#!1?;F^}o;dne3!^btfvLr^$SK&_TIKMf7M_S+wB -MQ~eoKZJWQX6I8BRhL^jLqH2VYFScGG1P4RV*74Je*HtoBT!Ceg{>?o0<_f9~iOAIcuTfr24UL;u%Hz -AwnIA(QNEeV>+$M?6{_BXQU(y0r&6@~zyMw?(;NqB%e7Bzh2+-PF0$A|~z|Xo)i9E<5gth`K&Yqu2|v -oy`^K84vWaao)~>GE4{!#>g~=q$|icH?nFF+(NTg1nzZFROcXedn`0A-T>pKL1`JlvMb#J-w>npkR`{ -IGK1olO+W4meC>EIGH{0*01u`86<6e|pxXJ%RGO%T?4feHe)t16zGN9x-sy_0r7V1`tH!>G~H7ndkQ6z>i?2 -kUg20RMK5u=C|C>i4Ljk -gz(xRqn)uc?S$ZSis}Ixrrzu--$sZ7&Kv~?i2@eNgTl}c>v)h*aoU-qz{riteCpE6RL1S&WDlkX5|l4 -I;uI9pz|m^q2YW-R}HMS*q$GxHSa5M9!*<;xXSG`+=*R0P!5%*A&&d~WXC5KjRUn-61HHWq8moJu5T@ -3hO6)u^jlTR6!}0(sknf8Ny)|3!P=;YAg&wj4xPHDWWTH@k;RT+Dr|7Ot*A0c9XQrbKVwsrB?|00#Dr -=Al@rHj&@-9>q&_PYk*Fm!yfJ94SzSqJ>wb2df)hf^@riaL&BM1PvQ4XB6x0ES7JBom&E} -zB`mqDBeZPS*Al4nP3)*V?VU9R}}XH`+I7_RDg7PfokT#U9eI<~Vbq~M>I0+RbkWSIO2qx5v8r6A(cS~68Q7O|mzFD~ -{nLgg2@yqn!sNL+nRX1GidUdZifhGboVt1l{x}N%-zlXTr;hYrpg?maR0pje<2FuL1W_lQK45SYx+ -dK~Eg75nc!C|!Wmt7=h_kL7SVGAt7s=k@qMvoIQ_?+|+1|7~#DFz99O-k~VHfQyRbOvd{gPqg0?KtkX -YeuBJvN~8l%nsH4Qx>G`IU1Qh&fva>V4aghXp^ef7J(Wpn^VvMf#{q=|f@3k`}sphVY`zS~9NTc&8vtxcea#w$T`f&PJKFS`53;?+Vsv1;M6zo}KzSO!^sun8^B@QSBp8pK1ZI?n3=AG>;riVsERNSc -08qoDefT>Le79oP0)sLrlI=NeFflm%DTz^@W|NTs>_r5MZ?7lsB2|gBBhU;Lz}XOn+2AD4dJ^^<4O~r -((o}bK(KI5oWS@)}mf(U5MM$?aV6jS_d>RkiCmR8e3zh#ypOzp`aurxXlUmIO^N9lmsNt#c5rVxi- -*iV7fK)q;LadjtNbG8$XoYwf&WT*+g#QE%gqoAuBK5pt|) -&HmKp|>5AWVUQUx)Gd=o~PwahPPTz;VY!&+Z#bqiR;1UgV{1$?tKgDO-G7;3= -bBVVsD_13=nnamN)Gly}*F_pMD77F1aM18R+y@7X%E%fb6_DHn#Du!BuOHGyoCl&d#T{Y}OJf#X;=M| -sm{9W+cbX5?Ck*9yx<;7_h0VNa(OJ>7rBC6DN!B>J ->Gw6=t@Zd^xYcPddPPz(!E9GX8$&e9Y=CDtTT>ArdduW5JH4fYk7e6qr=vbT+-RqJ1!i -BIn7XGfxgCP!)pL(RtBT|=xK8kux4iW@`T7xakixPm5&%$hl_ooY%jF)d_cunz@UD%oNbE#8h)SB}ZW -SqYP&DRi+NU-@XyTV2orc(tdSK*zB-;g?L3*NV@@n*BvGisZGk1jRf+MxvrB^YLZ{kNAvVA1z0vfNTg -^&3T}o?;FmiDH#Ie#1w+Oi29&q>&zw9Qp!bnab4zM>gmwvS>vdxGS~E!r+SU{^0IwWpW35kYn{(1*EW -;Rm7X@p3QU#P%xj6h*EBhRo*QqOt;BNb5HY+R#|sf*)suxbk*N;b^1|6CZ!5EA9?O@mDfWTcE8H0}|?=-m#XM -XJEO>u*HXNdh2bDIsW5om?Mk&P21mN&i`?0>#^Y}2V*t?T4y5-FKO&eu$QlqON2o#!DxjCGV9de0sQ8 -q9oi?*H?KVR#*|`zwW%^Xh~7`0+qG!-GZ2$0!tWWrBGnauGK|Q>NAf)E;U&05n&*biHt2n}|8^ -tE-v5BK;8buNj}7{yC>sgksM9M6DMIBe2Rllr{c&D0-(FcZt!t5nEK%-@$eHj{1k@&?Q1YHmaHjl)>c -?6R9P-FSz@gW?i&B3WKe#+zy+uc094RK;BJoHdt@G_j|@kgoenPjDU+?`?^Avt8{5l_k8a;jt~Cm;;E -}Q=6qqHfIr@C`guX14%}v3#e0tnz#?vF3v9|8|SerL#4K|aE|MKF+csc+&JpgLrfn=qs+@C_gn?KA%n -lm(7W*2Sz_|L(|J$t|SmHs4Vuyne^o2lP+BL0MrVO`D3NB;p(O9KQH0000801jt2Qmi?QtWW>|0BisN -04M+e0B~t=FJE?LZe(wAFLiQkY-wUMFK}UFYhh<)b1z?CX>MtBUtcb8c}pwG&sB(zPb)1cElQ1#SIEp -Q$S*2UNK7iu&nYcQjfe2LxY9uC^kCA(#X0f0i6zMy@frEWC3%Utsa#y~@rgM(Koe{gG?Xyqm2@<@08m -Q<1QY-O00;mMXE#!^RTh&K9{>Ote*gd@0001RX>c!Jc4cm4Z*nhna%^mAVlyvrVPk7yXJvCQb7^=kaC -yZ&YjYbnlHd6&aCD_YdTE|5IjK8WlnO1;F?aPkN{*BBswTrBC{8q-Vdf!;yS4xQ`T<}tPg0b(PUSLZf -bK@4(cNe~26!QkqxB~CZjmOwp_+ksd`bAN%qk}9{(W`Un92V(9c@mZEaVuFdD3=s?J@}E&G5*Z+CK*I;_sm3{n1cl|SQL -w2JRe~uG%V<@sjgLGnvN(idC1K4Y5FM5JhxAfRL4-vV1knRl(2K&kkM&C4QS)6xt~-nFB~^)=J&aP|n -EAlASm#ZwvXZ461Y#zY?B`&5wY;tyaIvGRiEvv34P>t`s7OU@GQL7`XXEMdM|d5*pPWvve;WX)50mS2r2FAwDn{aRG`*f2e>xpa#pS2z<;B -$)SU3T~=acgfQz&PAHa@=|Lb;G8#=pRexcWFcJ;lO++UOJ1VTxRe@8hqI4bi3V8sULvGfle$yDIQ{Y -COw=>&;%DOF+;Tgud)Ht3&jEH-60@$I*S+--f>FJ$N7VDaQvdekr1CMP4CEt?DQ)J5ZoJW{v -rUS!#*DMkuUC`*9V?bs?qlNrLw014$a>ypZX!9YjYSbe;cYXY+}Oio%({lhD&JY?qlVV-jy2+f7sT>9 -a8qd8)ewALoF>?T^tykz_ine(HNd|Y;;*dTZt&o466`|~ad-fv(`0C%a#=tfdc8N|habe@o4$A@-Y|! -`SeWP}{T94)1g?1&Nc8nf7aTcCFk19T1mZuA^!w$;N$}B0`+1Qh9r0@~qVB@t82{#S0oE5tQ0gA^S&L -FO{>2hZGZc!|j>%8sO%WKV^nUI2`zBF7dUBnL3((R9^iAV9j^ZN93y{z&kWe9UtBk60Vp`w7-HF!shb -3Bb8HiuOkVzQseC|L5(nC)(z*t0y1iaN~UJgz$)?uH7c8v}VK`~+IAQf^I@T-ZlBXS_9$O735-IdI#P -uNLu-av^R{U~;(oGRP}_$W$%MoocoY6^8Uafj)4thOV&BMQkE%)9}9SS_4W_aB=RnRszgKUgmya7&e9 -41~ok{$b(})1Zd<)3NYwWsU}9!5G&TCd6e~kfNO-2?t)I;9mCn7HJS~N*oRHas~>qPi7I`M|WUgj+0< -n!)C3-_y+y|Huq~-kQ?d+9`<+2pH$P)_%G>1itclGedDDJ%*WSFlA^ -&D-?M5&_Rc_{-%?U%Wx)S|Jf#^&ygU#NfE*>0(gEmB+BnCohsnR->4tut&X&i%OBnP4TcbNrK( -jjHy1&(ohM=+V}xeuo$vEPB*XhrfACD+ZwUtR*Q6$<+WQSLe){{#%UrCK)TM&K$;JNs$m5Gs=lBGQx{ -dOh9<3GcXly#wccJK1JNYaGQV3Lnejf2u1rHJBhX%GWtsVqJ(2M!SN`J}fL*%jlH(6)1p+!Uq2G~M0U --2A=~4~SFcOLMfGzPKhiF3yjqM=j#km0$a}1dh^}}2)AO#Y`DD0Il$Crn%55&R`=RgwCgUE$P7-py1V -rMvcv4X-e3?^zAg_{B8@H?JF3Iga?{e*^}YHURF5e#=|D%51OPzxnirzPAeK^0-{!ssDX+2}?7`7f(9 -3@)u^qv@rAcnO2Y04XI_f#~&gI(j|>Q=_YeGQZ@k{zY_$UHD()!T=IWv>3ujt-z25t@fZ#D=9An+qJ% -o0clg&^MQHU^{y6M6oAEDnPVhe4okOHwh})!*FLYShE*}$-{htynu}dOk%Fy^vU^>!2v&B82 -8gf=_V#NZD=)$+|Y6%aI$KidNh()~9e-OLEhdt2WB&z4N`uHruiL;21c5Xru;(hBf5CxisOd+;zLq6afA-kN|D;9_9!XCHeoHn&pq}=(BqK{At#LA7!bM4 -+Li`h`@*f1b*u{@?_Fj`PdC_Nm>qB5_Jwpo>E -s&KLlGbbnguWp&a_JwM2j~nLE5hsy;Acy1+MIR*TH&GxbSb+xVS{_^qAf+`Mn-ty@{ -o2fc3_~=Q_CgY~|dB>@?sRf8l3{Np;}PJX@_cPP&YxORl2)UIeHku}sr7^rg|AFaL03W)NS{K;Z?mhk -5oE3JD7XA4|wd1L`Vpa6K+nxR^li8;E2~%Fuu`63N@*0c{}!oy~2D(xjL~q!?@qtyKmJ3^h-S^vuGM1;m^1g?AR= -#iVxCmqQ029u<5s4e#0Pk*lCfagNF`p39qL@G>6LodN~*~f;93ciUgX@do>ciOz_k%feF|)@`A4H;YA -aTHN8sv5W5H`17W9j>4JqM3XrYRy(_95r`UkFO9l_(E)TOvq)*j8Na`e3ff{pwO6aGz3JWF`kTc8 -_$BVx0Z|X*X@-*~xQ8VOg~7dj8%c??53M9MgeJ-F%_Q51wdS>O8Ar1y&BL0~t76Pft)un03gWeA1vs3 -b96rCa1vv^oDRo=Fo}ErFkMoX85z4!+8{C68pNj`SoJS7{O^x{r-xFpfqO_$4cT{x&`tYF3^HkND6I_ -feFbCi&rgqe0|EANiS1Bt*)J7-0ESygS@$#?Q-;l2o7w1EHg}8n~)XYN-?ZpMg=yIFmB(f=`-@)B3yy -9f>QC(BTd989}_?(inaPP9sB$09B -yQ4YlAWNQ(n}vH8su1@pHXqz+GHK+{w$T<+15x0%jMz4N2XthJv-eN0Cp9JvYU0hFxT!Inr($M>j`vB -Zw0UTcMoqx~qOq@3-~D9$M*^WtgUH((9U$D*UXG5??Y4S4c8r_&{QIrOe^c!ATf3BE1kl>w)x-pOpWT -XC-;1~M)oJLdm2_IW@K21-@#mN1jHHf!RaUy14++ -!GIfr(y6(bZBfZq}N+p;E7~^|jqiVF`CHg(b{Zg{|jnFNIYa)1F_GfC9favSvSCb+&qU7nyi0 -jMJ~Z1JVf#Q?DnhB`0S@k)m~HS2CKbjj%G<3yIu#I=G^*ix#&Gl{a|dI{7vsL3Jy;8TMU%)gcDITtB4OZ=Z;;wyU9m~gS~%E -I*K!K`sauX;t8uJ3yYP#xyN~kOE#9nu)kWHFVCUP -~yPp9w;3H<>>4z>F(cmyKm^H1hb#@06jbu*Ld6b20KcEnS2M}(*PupKc?SE+E>=66Qc-i5LAw%V0I!P -baK%LlybV~Ha8Y@=8U(sV-4Im32n<`+x*VVwhG*zLH&`<~a9Xn~G5AOUPcaAu?Jsl -52qVJv`(~fHXb7(!){>JXhC_O)|n!le8kxmaA9v^^i8P8_JbA!O0(MQYrv5f@{gI^$5%XY&}4;vn*ot --X51b5gQ8BM1zX7Bj(;*gI2Av%!1iX;9GOY5pB5uIZe&Y~=wJNg)xo=T{4pfVWUqaMv+T=ikzkvetgj -9#$|v?|B&x-`a6r_6XkQY{U$7=4nrBFAh>U!PZvp;GP&i!}_^Hb}XyIV}B`pAyl3h7=kK;lmRUL$wCA -yB1XStRpO&G`HrEBdesIK41Z1btl+q)May65JA+n!T>vkpJmEN^r=LF#}Cpsxawf1jcyYIf}I6wEcM= -0c|#JlK%H?$U-JV9eQ#(SSKr1`?y4DstB4r70LzWlqS>ykjLF`u1q}d7IF{3E#?wG0+}sy7qbitM`$w -mBCpSqCzrufc_fY5YfY5wMKm^e*V$&vz?f43;j)G5{=(Z7Hs5*R{xY~}-P&WR(FCVa4w(wYKP`?4Gi@ -9A3nk&%^&-pe6aovnS*#KX1XWLtac*QP?gzE$FiTq~sk&{W<#Wv3N~#B3=_8h4Oz6k$WJyq_m3E^2 -g}J?HB;Tp^KeJv!8kNN#hKH22Kjo1Kcae#~ecP@QQw -V-5=j~`$HT&tFi)(hp&io0Jyf+pyZXOeXS2_oXbbriD$zB41yY|Y5;t;+4Li3QGeo!Akk32QPz7z)j8 -_LunYM3=-^RLae55>X*&Kha|4W&%V``?tIgnrQ#9Y)h#!u`8*7I(<4)-yfvLQek2ygraow$8lwb+!%u -T(e-lzlga+zlYc5;IVU1cIyO78O*dY4(y~EZ2eS$zI(3` -`^0*fj{ujr|p^q(OP~eYbhq>wNPrkvVn&(WWWP*j+*_Y2v1ru2mm55b3OZs#0aD2#Vz63LB3w)2A7xYwLU+8x_V$xZOgckHDjw`TU}ER&$0d%`7nzo= -}tH_0n09xCLs`7k-F`xfJPY_UQZ;J0qRx)K1w8l5BfCc?8XZLxaRoC-FH!qw-` -E2yiK9t5^Xo~eRUBv46Fz9k{T9)2>Z;I8|6pk2txX|O5atkoK&8?^Mb2{)|CWE~uW#{vQ!4}entYXxf -S(IK6#DTwpB}}U}45r1)zCy!0JzLH@>2g7jSyu|Momzd#RYEtIvbsw5k7sBf@fq3&{daAgV%ZMP@%B{ -V`0Q|yS;H$HYi0oIWm~8ERvJ$z=S1qOS}=>ew$!k-wf*tmP}#4?b-{dhV52O@PG=2$Y})Ej38KrBN`2 -G{g<=}XFu)lV4_}Ckqeec=(NBkErh1h^EfyDG_ei~80iq))%XLv@)k81VL(QD-$143wjRjOAB)KcyL3Uz4X-#-UmEF%VZ|9tdo#ZsUJERxwgeuQ8KGh05or -tssu{>T*q0lG02~lbe2dag)^J=AG-vcKvt_-$muFeQao7{S;gB-Ty+&e*E&uxoR?}Y>0p3L%_XVaPBj -P6uU&H@xns?d(;aFKg>bd&`Y4N>AA+Ox=Q#0$Ta^W%WPGwKUT}lnuh%b@2`T6Cf?JnqjvJj0e2QfUOXFR9a0{mrwNTh4(s_-rK$v%sj; -II_X)B;I7wlJ}?O|X!UPHIX}uLK|W7MmzU$IGrGE({CtjgAzkJ0*?Nxmch!J@x;zTXRgQ~=p0l -J=i^A*+^Qu`itPOObeZViG!{Ahb(;gx9ToWRRMcxal6vdMnKWgzLRi4!J01ayKfNWZb?BNqA0fkTb<` -A<93e(k+B}G22FsLRJRQFcId^W1Sy&}Rf>^g8mx_{&yMOZWZbVB%Z>7r7B*Il`HSPGrNrf3=ZWY*~Q1 -9=alKfJe1Et#u}ywrtgv=xgc@)A7F8&?s{(Xub7Sl7cNRxQpckE!L7Nb|c1bc^Ha>VxC-ydcrXkLERp1GC&B>c4fhk3#_JfR!q!j^7dMjB7ua0d(8je&R>fM&#zS2tQ*W@-RN{mnUMoZ?;4ym -rf%xaY3LBLQ8beQ(x{xU6(u;V>0b7pN&(&>u&H7U?aWt;t(s~s8w=ig;;1Y7o4vHb35oq7T5=6W#tKr -#SIu2#f>AxBj{SHCz8vP+~Q^=yr{X!2nMZ3o7X(}EVqOGg=Qgi;k;TfH_!RS|oz+PR;pc30v;2t1Kh~ -=UN6so9?PbO6ZV4T5Jmt2%8YUq9`g58)#$rH=|DOVeYWT=6{BPGRGQ$$f?bMHn|Vj*p_;v2Af$-oTKj -=EX8c=cahJ&rii;}At;&&tv+x1^$j{JOA~MY{Uo76s`=VwPa)R$>^-jtVQGHX0Uqe>_GN?;*m=%D(+ -3`4%_i@#d9&zu2faG~cg9lb5C~{(oArL?CZC^oNx~tQIVf3Bm1}W-K;BWya`AC0k?VZ7$>M+BjcM=^W@0s* -_)k(z`2067)N=LJ5lRfC!BD@D4Ri!6CJC&~LyqM^gz5VDWwmGiyo2KG|u9c$J#IzhVh|>kD6S=kS_VM -T<9o>Zk=IcN?gM73{SJiYLe_GGXa4i3L|5>B5)wI@stN*-Yj5LR>2-wHhC+wJ;~&RRwj~ag;Ze)=hr= -f)mT!T$Qk+`%_D^2+s|%l$j*PebCYBq+S=;|0V$#&&?94B^!RL+e=HP*B_!%Xm(410{-QJi3ZBs`N*U -Zu?i#$|40PxYBqQ2zJ+)C)&)ZaSkOCF*mo5C4UwYjQI8`$yf2mNCPO?y&fM#uZbVh19bRIC!47Yj#EA -)gTeP|+10ByAFT}{!I!S%lL_{bex4>aY9@+P5RK6Nf<160xa5=sdcoh+<7CyiI?hRoOG9j5S67W_CzE -MLQe*eArX)5Uy!ug0srdTr^i>tLe5R{Ib!Ll(Htj5VYZ)omKauVsr-jWvX_-19zwBk+tgl33JG5^Jle -cF=xLa0v=z!Jei!AaNL+k}y~AJQi`awAyL)^P;*t7NEJ!VQ7e5+lWsqI)1j!%_ZrjK6Kj?@m!SNy|`O -Dh*icS8-FOKu_$ynOjm8${X+0Cnm0~|t=tnB;9$j6i?y-E^v7R08mQ<1QY-O00;mMXE##bxMQc!Jc4cm4Z*nhna%^mAVlyv -rVPk7yXJvCQVqs%zaBp&Sb1!XSYh`9>Y-KKRd3BUsYuhjshVS(&4jP4cOU%X?j8b2$EP=pSOFtIaO`^ -odt5#bIk~}Yz?YB>#j@P)pXd|8XJm=`uv0uUL^$d2hQ;$P5AlTG@OG0S0pW6 -L%)}{qe??1ujXYWRnze_tvkLSA>ufD@bQqr*0+$?4z-+rqIX|3##Z8wry3RvfUJ4rNAkm2-c*fQc~%- -5ZKjRpkI;f-1A&p?tk(GWHoApZ#Y?%f5`t!<`oEOY;R`bI?LdqfG6J`?cAR&{S&IWM=@@l{Ko1Q=dQa -6<>D8sdFf9DX9^}#)CW*g=rTv_^ -a8q_>J;bjt-(2S?dHzgWy~*0;;=^HV@k3<+^Gf|bYZ@j+-sz+eg5SVJ2PO{;A-M -gYx@zM*NAaJD?V0sDTIr#1(0IL2ixab?sb%8MHopZ5It}|4%~3cUSh7S<^`tn -`L||)~Dxj$_Fo&ui|3lA5cpJ1QY-O00;mMXE##(lyjz -50RRB?0ssIz0001RX>c!Jc4cm4Z*nhna%^mAVlyvrVPk7yXJvCQb8~E8ZDDj{XkTb=b98QDZDlWCUuk -Y>bYEXCaCwbV&2GXl48Hd%K9vI?RlOiCXuE9Mq+Pa0s6yjHv^K617uL65nlhjur1=!Z_V;7kG%Y)U?| -qVp>o*BP%<$DYG)l^Sv1czD!{k{Lc(V2L#84BJkix$F -jDV|O?X#}RI=b$l?I@}wxjnu`L@SfsaPX@+!47gqlZP)h>@6aWAK2mlUeH&VlV)Zn`a002N1002S&00 -3}la4%nWWo~3|axZmqY;0*_GcRyqV{2h&Wpgicb8KI2VRU0?UubW0bZ%j7WiMZ8ZE$R5ZDnqBVRUJ4Z -Z2?ntypbu+c*;b?q4xbP()50rD<-vJ>#-K(5AZqx=FTa_loQG3|gXMwlXD$F(PbWG(+=T6m{N>eZCa^n_wKFaWKLeg5Poe~wT7gE#8Dt%2?SFf` -qNk*d`IhCQF{q7oayfzNk~iV-Lg)gfo?V`_O0J~2k>;fG4z-jzcE=i;fdZlw+ZL?YKgxa>Qw_;xt -st=0)rN|iUY=itxWK)@lXExIj{2H9zs3x1; -NL|#1TF3Ps8_C;THjd8x`%`0T6HX33Jx0{E9F1m>VJwI;4xj!oAu9 -v3pJji`jz<1eOD$K|mCclNrDqoN>A;jZAKPh9?T1sXsur+g`#*dPE-6XZjtU*{@Q;yhWi-7Km6bu?4q -XP?1=sta9PQhUcH(y0?xjt!I^C;S(k}L^Joe-@0T_2tVl(EFHa -5()Ku=PI0Qg=Md>y>tCve$}*k;As1wnH)4y+dc#f`U7TKmPsslPQUtS`}1CjnZMME)fZHgWRS027t;? -N0v1*caY$aSjY(3>!SvsOCzqAs6j}J6S6C0+J@yxBNTf -_Ym-Gphm91r){u${wWt9$8^S6$TkjFNU-ujVrQjaDiTs5$%!flh&6&|tO6W24H3mc<_fp0kV{9VJ6DEYm?$v7KK3l}4*;QN=2T?s8`*&OuGSM`sr)l!x-`U5< -ZRW@-LY0B9$i204i!`~_`}+y{fEi+Pe>pbbn;|;NqTT;fm?Al7`9^*zPH?4M&ZX~g3>(o!fKK+?n8kA -5buUZaqM*=dpO2za|H1L1<_hIA<6*ZNnMs?AMy8!R$DNC6E36!>fM*IyRsEe17rf^u@{5>39@X3~bCo2kw|T?i#eKXDh9EfJ^K7rVF!<4XTg(G)=daXmo@!^(xXYlYitMdNGPJB@eJ1;C&K1R0juOnYmXC-TkeuAv^dhC>&KIJ -fKW{s9oP&k4kN?qE%@6HTg=I`OKQ(bn+2bC`9|^g3!_GJ8O4!p*c!);7F;mT~eN5xn2gf2CI3P_r-U%A|(pRS_}3t1o1T@sKTrH#-D}juIl`=blJ6ZXq<)*16QB@oRfQSlRH5I?_|N9FxfuNEVbU(EQ9~zyNA4Wz5|d{zEj^ -h^y2i*+u6nC+p~-Flh=ICzj$-{+q<(jr!R-ifk^#L<^REG{%OhhJ=E?=**2GO6B?Wu13PB|=!h7UM#I -|p0rmdU6v=%TwBD2aWs`pqH@*}UlJDc}@xcj91t&g(C6TDk8F*{K`+>q3gI87I2jHqAUusdfF<=B{kA2o~p-GeNa*R&Z)j}=@pXFvkH_RON6pl_~xLEa5D((ZxHUKPkU|UOkk-Bp`_JZ#f -(Je!K<=A@NS=3DvUdT9dMg$DBZa;2(6(5ssz<9R>M<|C5{NID@Z`)x<%po3l+i)-}|5XL0ABCz2->sa -VWIbXk&aXIN7&TC9A|V{7t&sL>98fHEx4EtGhq!Os_5cA^^ZVxS(EIoA?|-@A&J=oqzs=w-m~)w?7oo -gtAsa+3SJ>Nr{mJgFN1+W>%2W0}q;~ILrrTE{+WmYzvX#_nw_{8{(c#^e_KmxD-?<*$>p$Jx7A`$)kH -R$e$R_lN(%~x;&-7tjUWz8=+xetNJs!u`bpGAm?qb+*@3(PpLEXmo$lO8HiT?29MtBUtcb8d2N%yZrd;nhVOm~A-imV(KqNJ%RDq_kQjD)*ojbVx)EY -q8YL&|+fR-~M``Ml`27?m{iGYxod9SCHxL2{)fr7r$b;4G;1H%bNxq5Sn#4g?r;DW8ib{7zI(1O3av! -NMq|d6xu-yuGluis5YvHswpg1DoQ__rwJyp8zv2sfHe44UwgHV$;2J4Vb_;*0-IJJCT=kSs(e`Q5_4f -5sBO%_O*icX#ojwov+J6Etq_ZFkm8Ut0UZFGpE57vt@2!gfk?8)~;_;0z%w~!aR{cg3}l -nT{5kpJ1`*|sbIXZ&~Ty;XgOU(pn@3jq2Z#45>bF|0La>5vo!34%vG= --umnf@NQ1R2reWISY4ga7x@w1=TwJ!nBCn^VJfPD2zv*k9#RKtIqi+wRJ@~uqqaWTNU{jS2(9t+;O|S -;g>4t9=JMkj8cqJnvQBT|g_Of20g!F$XYe^#y$HT8rbjGdXCwB>TUKsfGKu|WcHd5>*Ad_#n8KldJTD -*H!%FNQvoEJS66c|0#tw5l`^+F7c4iNw@mYw5gQcizGrFG`#&;cjfY(0G{@?!87~TD^i*XYF15ir?1Q -Y-O00;mMXE#z4J^s0-2LJ#%6951v0001RX>c!Jc4cm4Z*nhna%^mAVlyvwbZKlaV{dM5Wn*+{Z*DGdd -7W6>ZX-7meb-kMWCU&*N_%E9aTWsR!I^jxV<)x|%h`t@Xi?pi#F!#GBwL#P`>o=oTPm{7cDeC$zFj)Ms5 -XT6ki{@;hU+iP!VI)XEvLOeYIg*IccI;ssYbVYEsIYgWFpHSc6v@g;8UnQ&?KLH~=jbNnUTCvBd+sb1 -j}=vcARrZAjUqtU41D-gCo0~9aGx}q`~wO1J}O=bWW@FbbTE8A~v%}cQoawP3vcuvmOz((=Uuoc6*bcixvI3N~oJ9QbB<*`i%) -4bCuS(FZh9wt&Z>vH2iO1Q_@LYwnnH#z%JwV_F?g!Kav2aSVUvsAI6LoO{0+P&@663w!2o$^FhQpRKss?w7IyhGe7somV5Y5 -N~%$nG8-M9~L@;4z&p}fA1^#3z#qtOM-2_dUSb@(lHEigd7&O+Vibqhjycs#XkgU8{pGo1`+_OZ9=|CRr;h*^s -qIrf}I}NCaX^K%Qe*XOU(6(e -*7p76NiCXkVhY!mkp5{H6?B5aibv`dbd#-uw;9m)jeR?<@kZ2(NzvscP-mb9`34J9O6zYtK9dTx-hYeE_1x|M=uJclkIECp(q4|~ -G0yIV+hpTE#*>~Jz48y~kP$WR|2d8vW(;l-zJrzvcDcq*$A1>j^WW}ne?5Q?TZIFzt -+AKZMms%)k|_*1vIp)lj3MglF2pfoVA>#(2Zy5O@R6NS6@5xS7gXH1u@e<>36*rLQOS20tH{`?Dibc$ -Iv+$ -6(|Z}g9NprCMq)iav>>nsKQ%f`dK4Hx?VUH<4}00!I1%_>he{7ErOAq_7 -SPIJ`c-4u^z;Su!XAEDf|rmEKn%9;6D4=VycJAOz4SZe~~bE7@_5iMpZVWG1XQO>kkJ^K5!T$f3{nVW -3f%rr;nujYzkjikFAyr@N0~p6ePAO&DH+pAKqn{1b$EsRj@od+;ItzOVf -4`Hb9CRv(zs9Td`(GBZE#7fs-rdtw*;rzSNj>TasN>j~tiCt2!x_f@i_U3XwJB2W}jl20v --Y4~PI$-f94l3F@TOsP1>N2Il~O)d4AbN}A5v+L_Mw&Z4stg*e0|3~OPg|!X0*Kgmyze$-p{Wn35Px* -e)qQgu5C7YbI#DnmO| -JZ7Wg?MwOZ}{#K$AveO;emrP=$_;B6WhmK`p47IkQ$#PgNz@s;$dTmC`pR2$P-DR&c4>iv)Nmu@qYtQ -O9KQH0000801jt2Qa4Jjom>I{07M1=03iSX0B~t=FJE?LZe(wAFLiQkY-wUMFLiWjY%g$fZ+LkwaCv= -HO^=%}5WVv&M)a^CAuheG#3^dGm8$G&H$5W2Kv6*K=*3@`{}_5d=$!GK)sa -0)+j?jpo{#k7Qcso;?F=EA%gh4gS5Qnm`?zG`Ks-FiS>tj6=05%I7$1>-P41POPe*BH-EJE;g}GfhZ| -k`7BM7(5)6$OwgYC{B*#1iRyTDAVI{lWlq-%??;_lkMph8{%r!*_vh@rEi60RmpAe_=13#~Bf$-)*WA25O9!M(QhFrZo7x!986JI&^(S&!o8eoW@C$v?dv9Jgy{9WMqVIB<$SK4Wb! -4p}B)EhPc@4B}3Ux|}2)tHtT{I0X^;t$&h6;q(N~(SJ}&0|XQR000O84rez~P6PIz`~Uy|@&Nzc!Jc4cm4Z*nhna%^mAVlyvwbZKlaa%FLKWpi{caCxOy>u=LY5dZGKVq}Dph{S*np;M$HS_nsV6|J -u2zMPP=u_w(^dpGQ^n+C-HelzR0o5DS!s>yoiJ->N)ZFCNCye?c}FpfdyTWuVOmDO3{FfPwQux7fIu= -w&tO|yFW0#%|@tZt(S?-JZPsgTeLy&2 -rh)RAm|TnMOGl}q}xaZ%jE_|ipDON;5679xg}!ErE^kUgVj00`>U%9sK~%=1bJoqHsDFP9`GD -_7SmOZ4k7|_V*cVv1RL+iB8Mqal($y7VJLhS}v!=zFfZ7*3oYeDy7p$i)MCwjf$Q{!R7C#7xDYW@!Q2 -8a0KD&*RMNI=oEU2i{q2CMfLEK=qOTOQCW23zd}(e#Y$;7g>XX(`MY3Mf>ni|CP8rg=FQ^bDqehebN= -@9!*8tb`m5YdQ(R}lVHh~Gp9esnI_gHdOmd9lLXogE&UIR37*`kY2$cRJ=J4*tv*$sXW;pe{KBJ|uE# -)b|%wl;QTJeO;n66A11o6A$)3e3ftHs$F*``;YF>zzEJ0Jrg7dIGJ85ny(H;CIoQ1VEK>E-Kk35543bd|< -Q51Oc`BoT_cbqAu@#l0+aJe!Cdhn#Fg;AoFqNq?U%{|M^vy3X4eUXDuv~u4F1uKF(thCNhs3~O9x+## -k))^v=8q!)nI3tv0lvpmRQ5QF(mi&z5P#tC&`R(AdmWpa)wTDFKxoF8Qy_S-Y3}Iw3$SCf&l1i}eMw_ -?!P=LX$K}$D$a2qeF0zB+>0Xw0{En6fT65lX~+r8UpH7iV($<;4UpG7ajp2jxwotWv2SS&IH7d&fHBF -8zSd#6oWh0Z5^#Jt+bucFM97f78g8a48m;$YT>;QOy8csaBGVMq_^KL#aJ%m|v!=xk0cVdkF3v?j3f9~UdZ*sg-LhPN@bl;2@VaJa(X8%F@Jn(tq+*}grBQ?AYeelBVigwT)0E_Nk@;xpGg@ -s`G&d*$Nj1GiI@grf;wJ@IzS_+JL5=3OWUv?YOM`>iyqG&w)hDf0f&mQb);KirHm6_Wg$FiccJlW+)9 -~Dq7?npuyE_yuLS2>)x*`_C_GTu53B8^X*C{-Z$**Nwg03qk%{fg3vy+zE$PPy|YJ_u`(}qH{hMc8_* -^$dlvs`x>Ls8EHPK>s!T4@J7_1id*u{ZdDBb_a;2M@Zfpm9H>{6D^rjN@)Xy<#ThqksgB6H+w^E={>GG8abDGVhlTPI|qT8B8 -U?g7!Av)5$0!aj>MZ^ft8bC?2y+-e9$=mH@2Y2`m8|Z~E+nOg5*La8ZMg-&2U3zsY0KjiY(N -dI+p*;6&G1=k!}gtr;Y(?zDwJwowR=J@6aWAK2mlUeH&Qkz)wEy*006cP001Na003} -la4%nWWo~3|axZmqY;0*_GcR>?X>2cYWpi+EZgXWWaCxm(O>g5i5WV|X5Z*&29{kA={ -vvE(#QdLrWuzjYN7$%3h=BfA1TTl4U2zqCj=AC2~Ia=FJ<)2Ke3u$*BjsL)Z<6?50W%MJgZ -%7to@1=E0udX>}w|6b`C%Gb*IrTMb%!YcK%KP;quN7$=!G+gaEk~nKL8VY`QSz#BR7}kBujzaw@Qlaf -@cXW!{K<)JMZO{{q*$p9X;G@0PHXi<0w%~9ZbbBvje^}AhnEenMt}S~RP@}?8qtmrA3ar9n-#3AKG*no -9bCyA^qd3~K`1g)kaD+XIZy#&t&|Ymdl!$J -_UKQ4UW^ZG)75$98VL|;f$)1k*`09>me--u)cwg5d?G%;VkXRDBz_oc!&XsLl?*uz!`m_1< -S8rtwd(t`D8u4js -QHe^+~>+A!fPPDd$7F-OJCVMV1`-4oa^;6Yf*_zZXrQ$7Qs>kade-UR5U=U}gpp|vyL -Cr2ct1HO)Q;f7(ub`jD8Tf=MRfaPa2NlBxZN4DwA?XZK*PAew{$<9b0+s76Hm)ihpDP?DV{TQ6rel4Fm -{11#l`5^=d6X9g~(xf%m9o>{{m1;0|XQR000O84rez~Y>uI-%oYFuc2fWVApigXaA|NaUv_0~WN&gWb -#iQMX<{=kb#!TLFLGsca(OOrdF4E7bKAyt-}x(c=w<{a6imrU({L`Et4MULxpw4{=$m$27X-0=sATJodc7b&+pb6s_y3E_f8NWV_3Yip7gEPwR?D;(MJUbyX!>eZ7y137ekVY7ge68dO#I_IS`>LPqz9MTU7RMXS3F*EdFxGlf6c4n!5a0p$g3Q7=-#@whg<`MCirV!?q -D-q-WsTV?&9Ug_?GKkmdSmu2UKGdMZ55pSFhoc7eN#uC8B81>-C7h2!!yJp7NEmsJT5Vq`^Grxi;w7Q;1Q8TPKlfLBRb<;4T+z|dU~ukViN583-Ztgy*faM`bm -6#sF=5HHFquIdu63cgATpn8<%%NUu`|IiaS%&so3#z1>^cgpshE#nL}v(4`~Y%(dCK!v9)&Q^rWGL6f -U?UQQ5R){Nr<13a6PKUkdg0EvlYr^uy-(bZ6ml2a9;^i9v5>yX6J{S{9f8G`O4y5UUzODG0T})q|y?Z -^2-b`n&t}dcqUtP|ouP<+A!7?r7B>X6$4e=t-w~0*eN~Hf0Ef{veJ7R#Kg#@D5cj4@lG-V4eNwPv_-J -OP`ki9E;JNTRE?DgxbU#AxUJu52^#s1KNc_9}Bdi^ReFwY123Iw7qG6ooH_!6#Krzfb_g?yp$`j&laTd-kB;RG7J$bEWChVGi -e$x0ayV@K@H=8Sa8dmI>kk!SCW0&{qrsq^)JYjHQlRzXf$cz0@I=k$FXOc2^ZC>5f&j`LkV988b=LMp -yxWPhHYQme&;Jt~qcmB(uzb?caV_Vp&Qe~MJzE6g!k{xmaDv*)xa36GWn2?_8mQhv5hq3#$GfEn8lw~PNPt~Ke1X%D3hSgOE9Jj7XGqTD7fDN69eiy#v-3GoD$27+A1 -XPaNj!NH4f$T>d$x_U2lWIv04F0QeZhrH5D7@9WY*?p8}QJHy>gh~7jO>FjNq+0VbTLeK;rf`2W?gI; -!cGq_z{8u-ZMyBz2$5JiYCipR*_)T0HATQn1!IgtyqGz*(?2iYNNyuW6_sxk_)v}3#~BfbLc_?B_SF# -lJr4RNgBoLiWd%v_OVMNNgPns_|-b^V)!K3>`kBPAt*61do`QAH5!gA83u|Nje)eTID0WV8N#1a{PP0;e9v-o0AG -y$>1inPcRGp!lP{941qhdgcvHkkwxr_QLgX(*Qcw;I{vH$)cSyI5t0m0TVCHl2Gy+C0c?yBC-tyDQ6D -i0qLRcv0#(BE3ZriGdG6DD<^@UVq!qqU228f2DfP&k4Ot;DHrZV>D3C=13{5zdi{9LYKDp^ICo(QE0j -y_o1>Il!#ZJvXGu6T^FOKuM6h)(H}ER}|a9#5U|`yFf&ZNTc5leI2M&KqYM_hlbs#cm*)I2>q$Ik~}` -d}WC{A`J-D;ARvEeZgM$koB*a#PzJw4El?fzCF|fov*f@%ABKEy@4z`p%8Up0-M0Y;dzz|6>Q5q*(wW{d{6 -{;<_#1SN@^7=`lln3fkZJp+TFnXN%dL6CfWtA5;!Q>Mro{$vn&@wG}wdXujVPk2jwUWcB0DOuE4JX*< -Kn~k);boo@E4LsjNIZo3fc99=rfugnC}Is~1&-tc90D0R2*D^*&UeTuUr0Z>oBzzdX2B`@8vcGV?mg) -_W$Qk(V|JoqC^~wyn=(Y5h`70gLL!gC6QnqhV!W=i<#-;_e&*KR998&!6pp}xj>1#=`z`zp!|;P9sN4 -yxC}Z)Aqkjt0pXS-E6%T-FoS3S1(^iZ_fUuOEeTkZ0QI}p&mv9S2Pw7qOyknF=oGRIGW9&l6 -E^(QchfAJOO^cfsm}iXbsg3!UHzDH3TL^OD3se-$`qRr{Z7;i}vFF9>4-^4sBmLN9+bX$}}$EXvP^81 -M)T}3xZ-Rj39JvvmtQEOpHkgGM01*g>WU=64Wo)vw29samP|MA@ICdIkIUPyL`E<3s@`^=_WA -|v6|6YLIc{AN?6O?l~$&JYGRJZi2B9|nvt_?m0;=-1U -q(uA0eA2ng%Zr2caquaK%u*^1aPaB@qQ~&&EuZl9V$Zet&8M0Sw%E^0X>^+>#bJ&7#azlTGj%9ot%z(I*lJi=+Z=yVMxi-wNYn -eGbbk_b4Mj)(Zv{AG8C^Gw`3UW-WGiDZc@^8ZB*a##T1rdXGG~xSAjHzq!4BT<+kUqo7=og5GFd^e2n@imipgHS`=2Kw`V$_iRisk%e -vf>ty1!bJE+AKrQye?#Di*-i~vRVwj)5#v_X9Yyk!XiOW%h+8~OW?%^Y@6Mmk|eIj5_=0f4;F*iy`uYX6V$oEZpeNdiAm%Y -OeZ`g7hrq8cVke<}jvF1f$UX+5Zm@xS3Dk( -g-O|_-l@PjnoE>SACOL82v0a*91*zZ~V{SP1X`pB5K4`2y0cG}p>Gj=9 -gvfjUh+3ov(yX$K47v=tZcNId6h}Hr{VWQW)n(Eo7jMCB-LO+&>-$0t -3?Q1IGla;eTSIt^+da`IE*2Ci0)h$;#K -9jWqtpFkBSterb9gtKKe7%bYTjrRJMg@T;pllKv#g4EnlZ-HH#*PZfi(;Ntc?Dn9DLRB4O*~|sO=X`F -771nxHE!#`upu;Cx8Yu9S4g0Eyi%6;3944`;FCo^Rs(j52TeUPm+EA@3*03hNJQk;lkfGN*!u_5PY;w -R|8NxQPC7xTo9HC7_PfZ+7b&2A)AdRO-Qohs4S^s!6rCY6svs%odkQFz1=1Hj~E>TiOrlDClJW_h#+L -amA`M#la!Vy+mvTw5+L*Ij-!+;}w`+`2lDL--Mr<}+Ctq5N??;i>y1p$g -@LDNBZ>l?rQ|lr;#6ShA8H?9%S)pk%`hkPMbsj)P^UmkgCu59sP_RDFR0oj(j$T(=Hv*c!l&?p--6`J -?rw}UlB%6#9asj9H&@-)T?Zb{GL9$SU;}`}T-$C9cfGXG@vEE;}`C~L*)9rl{6_>N~Q!enj -uExR$6X}uD83?xBU=D>}dL=x>KbusKgTJP}G3wX?th@H}OsBUnhlcSODly -87(Mu1t?kJ-k&;`iKM?`8_L%6f`*0j27|444>|6fUth|$TLW<=5fp)*g^QrVL)Bg1t_UAVzOr3X8kcJ -bqQ4Bk!STj1#;g<_l`0d1&K@z~-qL|tK<75Pq*bLuWj+k`#0doA^${gDMfsgy459?2(A1nI4c+!Xlk; -v&H*5VzFW7F>E=aZZP!evN3TGsRVIVJ+MSee#@`%$kDRmj*K_jn%iUv>D4y`;XUGDtp33@onw*${7F5 -)j(>RSXMMGk+Q+oB0RAmvoKWbZ_ui9lC|tA#}nJ8GaK5nAt?=~qESvHPs+%KRuSC|!mW~L-E=jFDP6f -I370+W6gf(mGp7|V`OacL-kX3HCc%h;Pn&LMcUF~q=Of8n|vB0BJzNjDjq;`i(zpj>% -oJM-HC{K>Q_$B^zdthfcRJPYj}j?i!}6-7f7W(ZhxRLD_@R7|elbAxHOHm$_*ZB)&^2AxX==Z%ITlDF -sgUq8euT(T(5ut!w|Y@@`v>X}frqoVXY9gym6m!(Wn6JA@`bo*n&;-M#6x@|z2J0BKOGX#$iYy|7}~O -BWl>a@OpEqR)}~2C)m^-_1U){UuoDB&^w!wA#yTL>Tcfp&^}y}-X|{VPoeSL7ai`njp;~Z^0y5i*YkH -5mUuPe|tbaIo3C|_P>Oe&e8d-I -z8j4|C3_%RU0l@BB6;AvZ+0mBx5?%F0$2F+^q1-N<#{x{zP`F{a;S~_{(HyP1V@7&WUC>o9Nl1V_nvR -wPR}o2s!fNY3BdN4C*EG0Js6L3)b#N=ZGGQ(Zm|3QN}xhi@IAC5kPd893(pbVd+(y~#nt?bna&*D3J#=c33DyIOWTIF&zs0Qeu@orFJts9f9cw(H-0dNJtz7f?$B1QY-O00;mMXE#!f*w31!6#x -L4KL7wA0001RX>c!Jc4cm4Z*nhna%^mAVlyvwbZKlab8~E8E^v9xJ8N^}$Z_BKE5=k+mh?f;>T!EE6D -7r?xVI{6C0W$wYVC5sAuuGz0s$HWilWb#-=6NC2L>Q0-6j4Il}f^+r>Cdi-7}aM`HDr+d{b@;5k*X{) -_GAfK2v$RDMh63J00_Ux#F?C&Xv7VJ9oL|MJBU_>dX=GOlDlgQd+c2@si5CITiGDY -^z5Xnf0@&J+$>e5S6nPPJ`gZCykDvHLxQUf~F|Rg7Y9D_8FdU6<#*;~OegB^yqT$um!=IvualqjA0xm -ioz&y&cQoNMxlHKN+z$cFd&lDjr&pr(&5s(JAA9<=o=Xw&|f4#dO-vY4za55f!c^E%F3~wj*cMp&5)$ -r#2HoAYfd%PRn-Av%|pS#PlT%VkVr`^AFI!Ej?Un^EF1xrP?D3>gsGtLqT>nmBA!}U4`uFO(FvSIU07 -9-o)y2z7F419vYQkfA*?x&AmZb#AQ;XO?D)A`vz3-RLpzzFig#lQ&j=T4`Sh&hX55Mv2{S8EQsr%^>S -U^8-}#{)L&4@er_ZkPU#G$<>#xtUoZ;o@%_p4x@Tj1gX*!9wIpgdH0C2urm?RvTF4OyJORw-!v5#mQ_ -}3KbIQg8*9q1$!(ug2_2?$qnUYybKu663u9q!`osjl?ZE;7D8=OlqMKb4=C&LK08Jdd$WF@AV5pueqI -Kwkc(xBbpKthdq@W_3ciC8zyNm#!!$2E?EknV4D7!&3NtYh@8-W`?}6K`oCe|+qU2>+^w6pU)~&zq25 -(5H-|3XaZot?PdqjM=B2>@0;OI;g(PNE8rFzw9FmPj^kH!y=U>1M;a{VyA3fQ*b>qzDClPEjd)Y&xwk -}+xqthrKp=2nc>a)7E&T%mpc$FD*a0+S?3io-rYyHchTtX^Zf&O)9bt2z&s*s{>}M -8HXIrNbH9H%eNR6DT%PGmZ;UrD0TYBLTMhMiJ^I7=5kj6~JV``?HvEQ&{ef@LZLs6?7kc(1He@=?G4P -)p3_OHqlYCRe5SGyVRyn+r8LAy8cMZSD>{zbBO{qcW2nHN83Is&mx-rvB~Ew&a47&Td -65W=y~jIP%kfssjup+Xj$xi-L;ML5kA8e1GEsoXmk>t5%S&7rOt3D*Toh)lOl>51ba37rGL<>LSc_r~ -bRwf5OG%KGg@|{oclBv}G9JO-e&8dbM=S?A7+xTMXQC_(CS-9Ii`odD?bvWUIsRevnL@;9$>I0xy+&f -+j=moqK!$?=AJb9>In=OQ%!JILo{5-m6o%;{fn|wf9>*dD{y>U@Lx4RH5Lc@_)5sF3IEMAxFE=-gZy< -bSAO_NwfPKFDmVF+MRKTt#6CLI#z!6c>oOOUEhBiKcE-t4!YrAbD8Np^3TqFbxHi+00)8R-Jtn=^l1pcXYc(t?eK@75l<`lfjRNAw+2&m47>PDV1 -5Wfb+4Naq12s%0MMX@q_Rl-o<67+F|44=oI+K@+?Ne8j#e=X2RJPdDgqaorsCKJ`f7p9JcT_$gZEs?7 -LGxD0&{4km_rC|Uu-00AcROxD%A;5mkdT^sVGkfTRT3tE`=ep#T&CjS=qIsz^}Y1~=6y{LY0 -eWOE{c~N>`IHnP8l$RyGgdZ4RLF_*|wupOi9s@rdw6N&!ybK;<1J{dAq36Q3ixn(8Y -MdZ_4Ip#FPhpc1uvVDV9-@t#JepsV1LNZSkBqf(*M2(4U?;*sC-X1HuLr9D_!go;G&sYvtaRSl|cm{F -z86uKm-F;k8^QUrluDt-1Nprb?I0$7iRzQ3W?qpp^h{5TOg4Bxdn2ysexKOpgQfMfk%0#Sf7wYgiP!z -JS`36R3Y_nbz9NYsH=$Y7pz*^854~FHfag+eB^7L6y%^tFkEtw*6x0N`XwwVQo;O`O$tVtfLQ06BhI| -2U;iQfrNo-v0>jyDQoJLP>X=#DU>vx4&Ci~V`Ekz;@QwYw)kw?Iw%X@5H7BD#Z`@7SNVYyFLdbpEOZ) -HnkNYVHqUjSBHM2kSZc7I5H=jX!pPjZ1CNl{pZ!yQ{DzC>e*0U^-@fVEK%~Y+ -%|R%l03FZD9a7Ty`BRwdVY2OUiyx=Q(QQ7>c0>dhnS~$j -}Lw}SvUp4rnM+6L3C0Q@n%u>80av?#UWOFm2Gg8Pt3X_C_I4IM#Yt(6whwswA1B+Rwkk0lX(+mK8Y6J)g`rvd`=P&w&1V>2k-q(Tetw})evZKU^KcjJId=DHG+Z916aAtAhnT+>7)(VPw#*3hT -22aXfna!i2W$Q3jt3=7K1|f`oKHzDp(e*cjssS%C>m{a>uUW?u^{v`usd>ax2nuyR3S`{$!!WZ6+m)a -t$oIL{h=#I1533K5~Ai2PzD7aTlbmO+IKyZFpecn-$hxI7EXM8q;U@s{Y>PdT(ob629)s@GNO&wua43`iIakA+Fnq~P8@(LlbfM -!!nVWyxTMYW2pFiWuONin$Y^h&f4w9ea=RC3UHBP18TKzu>e+tHLP8b!dF>batc3AJT76Ou~O?BKv0i -U3zo??-#xWMFT=JXlJq9jqiR-6!Gzo-R?ig<_RZ+mGjqSC`u~8J -j;Q||KVwkSQbZ;rME^=fI}P!8Y)dQ4M00N{Q~TB=9aKkFvKXeR^GXWb{Ij-ih4#G?98*G!+EcXU$W#0 -2)FcewyG~G`cdFbDR+3{A3hKntdJ4jdv5LBdG@KBJW}ya=UFdYGapYdN_u`w7U6-bvam=oClZ|>B*nF -n8v+k#190CTr9>X!42y{Tmb#Mz5F`(Q++H^{1S=6z91-;T%swG;yZhTq%)?X$0U{IA>@RiM*3ZPg8u3#tTsm)B4vIHVQ*3+rilAlg>4 -gtP&Iwj=OsqykG<&YSpG6UB-%b!KRoBh4GIMwHF0eqW{W5w4yra&5N;)?rELS50Ej=$tq$#{ -2|5!H_puNp>Xve`#LUG_L+$BVUM?LjVv80$stb0+DcJBdH7)%)yIYG4i$znw*OFalZq)*RTndUouoif -+k%cD4%d#2OC8iB*7MoN7+F_cu#OP^ldZPl>>+_OPZP+Sd -HndOM{-t=ku=SVa-GzJ&luQ3^S`FB+_esrULTL1B&`p!3}dYHN^l&T=ooL(gc=jnLdyBmK6fR -Ue9`4!}e*CU9%LioP~}TK}>a@Y=eaN80%!u;5B!u2ketm_>qS(56U+#WGs`k{7G_CZ#tC#}qu@s6FKW -xb$}v8}poFEdo06OgmFx-{8+y%FdO6_WVM`=N@7cMrwW$G|%*<*y!Q<^O!+==U85&JG3@-8ovL=!_$+ -HW(sz6{{HvH$Qz08P=u%K!6sn -8L!SBz2Ia`_F;gbw3g0u?vb5e+@xG986r!kQXv$)u;-MJl&wWNYmQuvhW3DfC3mbCRnCMNNm2i5gv25 -+o6*$$3E5&W&}Ab<|tusytr8($$hf@>$=LBe9x|G -~J{7;S)PL{cwH}vina%pxYqJL=2MQ#g0b6g`91w{I;fD|8@!R -pknAbC==3~bW)YBk!)}or=+T0WXP~Y2Zj7-2J&{re^Bfth@8`t6;4t5+?f!T;f*rMmvr_m%1;4X)B5wv<)`*0-(Ljd@x3L8AKV3|HTgEH2{ -i!qiPKGj7B}}hE5vCsy978KI -h%^mB0dYWfgbizwlvhuJ-s-nz(=1n^A(+~S-5Q16T5VYyTCXlGM;jCC2wx4Vmysr&(M4pVa5L2-Tx%a -~I`z6rbZJD(Bd@g7&rCPod(^s{)LyM>6kbhQ!5Q-Rr-~9;cu#@y2wO7Xlae-IyU(Z}m#G5J5y3ybr4@ -7<4T*XsY_`z#$&1>m0-s1zYF6}7mgX9E%`zGfN}y40AvQp{gHH$4Ii~#CFRvTrRGoxc#gXCBJ5=!Mz% -9)!Y+KZsq3zc-9KKhwnN?NzhnNE$uW&DHK!*ng(<&XF+C2a)mNN`qw3nAZL$(J*-~%kp9I}}(9gU>E_ -V%*(jRIom?IhR)dn-)6j;qwc82v|E@m5L9M`?G7cVt6clH5i^pJfU|?+WsBxlS>uL3|Lt(O?v2>yG8FsDx<|Xk@27q3e8Rr*K0YI -Y*O_%c{>*eAo(es3!Eo=eAyJim*v)pDUzEB8e47hC(UqxJB!AI+3)T5=)5SHW0x1=e(ALte_h@3TRK( -=Tyxc34j^Mt8EQr$a8O$2f(Qn*hF;O<9scjr1PC+=uLsn4Zr8!1r58K9UiP`ONNSkr@5QDseEIv(KnF -VnZY&O=}HBMEC6_{kUsHO8%mnEV~v8!bs=t6le-0L+~jYadn+7ohTIWSH3JfweHQ>)r(T92j!GI!g-K -K7u7yNa^LpZBis^ydcbZbBD*RJ&$Jx4si4%#uW^Lv_>;Ix%@aRUo2WN0auk`@Vj_YEcOh42W@6KSA0Z -y{!N>flTE`nI-vFv7T)!=?n(jq5I9j{fT?7&oC@Y%ye+#1dJ=D<9k~?=~3Rxo5~XSeP4XU@uV}S*erx~aR;9g=u>3EP1T~5b@ij|pO? -0t;#nW{b*$!$=dwmM_A$#?YV)QbM0fJY&UP0u7`N9M*c(Te8#Tt@i;j4Yfz_jT -N-j9g8*m~8C4X>59>bT|X;p6E1+lvoSw(5x>DMt$LQww@FQ}kg8)AA5 -puVe$@w`nHfdIYQUs-mzU2JmfEJ3P(nBE?NNRIg~qmO>JsySOeVM5@>^t#G4^j_&+6P_U=*1~MmFlZN -sJ=1{6sD0(^81dNeMR3|C;gt%!a~{g_m2T+l*C!nr2?|>o1fORY7 -LzB=-NN+oZ3I}jM}T`(++$qsFl;|lr@A}1y1D?m`2p7dhzqhw60E60#{9Uf^Jg52k}u)?*E7@lcN_jyo!&fQ1VQEMmJN@=u0?82v0=V -FoQ$rosrL_>KTEx&*z^3(rzL{UNp>dmge>Ff5dL`{D~m$i#$Glq|LO8V0=4z_{2X3HyPRcp<>X42jPbkxR{iqUA9Uo9+wc4jP)h>@6aWAK2mlUeH&XSbOj->H000yl001Ze003}la4%nWWo~3|axZm -qY;0*_GcR>?X>2cZb8K{SVQzD9Z*p`laCyyHZExea5&rI9!TNAmyXVto_YOsISOeYcC1}v}5+vRRZBY -ocOxx_rq)JkD+@k-zGeb%yEh!uH!?pg9wZ)l-^ZufhyGk3!q#jBC&FbQ_aP2Q!jz(*vcdU|CmhXjHX_ -M8aEame1OgtB&a#AbH0{y+w&&S7ND|X_OvUPBma5iP%!&!f@f<86L$+reO?XO(6_68LD+b{mq}xh`UxVmq3~#XD2FrHZIusY~Y7Ft={)XvF7*f -S%tvTt-?<}fV>_9lZq9-e{X8E3%a>bp+OYpGkBy^-hW%g`Wp5En0pcWKd(2vo -d-wSMWPRWCd4m99s&s&Z2v%TG}C~MCLL;$=VXIMVM>~hUXHAhVlriitt_@+3AE<8 -AME512z8$V>|K|3nmiGu75{&#@I99$q&x-#cu9S$AiDP=0_@Z46!#F@(&hO{R4dB$EM(G*CBC-8?1jm -n~hlILa*(7VQN8;1Bvp{2uQY2qE5Aq8(l*c3wc~ytZqXIll20l_?c9N-XZ -TC8L~f$oi@kIo4d(0rPHUn&|=rx%)9q8=TmU{Vje|xJ|>;J@WiC(i*{H|xtez!=GUS -F|$VW7I~7)F5PCFHkS*)9JpvQ$bciBjjK*3~4EJ6q|z(837UZbfVJUDu#0^MdtLI4onJ(_ -P#5VT`_-IXr1iwtl0WgX7FWh-GZ|w-|5F$pSg;CHBgR&upktIJHd?xRJbk6;XCgxZa5~8Cb(%4?JUU@ -Re*bbRkSLKJaF3UWMw^M33VYm{tMC&J=V<#$2w#2Y02{3iT161b}OQ~=boTFCVyZC|7;WV*Mz&kgBC;o;ci^ -;>C!{mo?d}TW=Wq$vJdCbRtU^yG&0xjm85iphk;M;BsLG^n}|LJ(nz8zqEe_lLdCaJTZuC70Px?SX#p -RTX39&+69`+?@2G8AIXyJ2X(h$E|3ZTeXUj@UtR)|M7W4>C@xXH#MLp~r(hH~ZWZ8ZW7L87_Qyy64hN -0E&DOm7ud$+Z!Lfh(IU;VlUYF$`u0oJc@_#pRnc*HHGK$whaC6s+w)OcB`9F|I_3thefYJjm1TK$*EY6y7CA&_&gjC -~Da$`D&l?`U0po#|uhL{aDDPQdONqGON6X&|^FVo#QYS&Z}YCKnOMi{?rcQ1Ww6Bz4C+Nq^`N$4Kdx) -NXM@%b^=6880U%VkfXsrK6Y5^cLdr@s>(G4&tKIEJOy?MQQ9LfjGZ%unzWMHsArmw(cMvd4HZM88Yv0bGTBqSHOJ4VEbzQF -LR;a1%Tc@BMJfeyBG+NPi5;3KE1=F&2Odj<2=>pVp;+0IXUggmRt>*R1M -76uNdUU6ca$TXBp|3;odt7?(Mh4!R$bUgiy$Pu?n(Yrr@OWK*{|O<$qPNd9D0R2*6mHd0SL_WNzZ!eM -*jg&O9KQH0000801jt2QY6Xf2*3*f023zw03!eZ0B~t=FJE?LZe(wAFLiQkY-wUMFLiWjY%g?aZDntD -bS`jt)mmF~+qe~e_piX%fOh?GrKm=#phDAMyf{p9e4Ji4+c(u)pe>v?w>O)8Y3G~vwL3m;vp8N8H6oBtM6(M^6A;)r -BlZ(Q>(v;(#+;(c-BWPh*Z8)jWVi{C6jB$@42k`suuZK*>@dqv%p2Lc_V;T)6MW_#?Hg8^URXLe~@xn -bFIC2GkfH`IAicRKRRNU1t5vEl?5;cqVwHHZs=*> -f!PZ&9kJr|1U*cS=Qne|9>D>N-@^ev^M-GPl^8bOy8pw{PUsdaips%Vc_; -qf3vFgsuV39=W$X$c7T4F}GvBqK&{FNLujZDqcO7d*_r&dBv;9_ePn#ZxlcvBHmo+Nm91A+sGf24KsyFhL)L0h0mjqyp*I&!mGtPP@oQQSz5 -F-GiKle0GsJ`a?{J@}}N4J&1~;2VC2*CaB?tvrl(Vu%?TBVR%W1Gz_RLay`{Vi>R)Vv&=Fw-8xHl?RJ -57kvl}Xg2q%Fo#w+C8NSJwyqU7#1bw`Y~dt|ts&Tsf0ny`$M{b5paHeE8l1@nvaJ;yWmT>7Bl$Uw -jegq&7!A%|@psvf@UzAOcZ!QSnpMR$U1E3Ws?*c!*Wced3B4d?hB8EZSW0tY&g^`CK9s9&b6wi+*K1je>)+ixUH!It_J^n6Kl}alTe-RpR4(dgPoMp1xyS=KRJoN35eZH%A -v`zIh`jiNX9vBLI~lI`9)C-J`RcUz}CDps|DNG$e^n*(8 -T-%DS%x8*k-i%U-Aswj(ptuuULm@q68s|hO9Vbyu@O)>3~f^;@FF{)xH=d#rQHzP=*q=V~AJ;xs! -;U@3|=f%;&(ojiS+cOoJapR;QzL-!xdBFN(N7vW*2SZ2=?naFbNc9vIX|(f*^}49dlmT^lY3LePI=m| -QGoTGZ>z;@Q=qzAE+Ym8(qs&v_A9qh99=Um4uG-@uowpsn-er!RA%wQ}Fi=SL(+YbW>PTiA^M9q+V$c -ycGbhOPAf=u~ZZXCn58Okg#H7H}Ghgmx}{eyKzKe%U!4;TNmQ%Wi(oF4-(>BOE~zvgGo`qJf0GSY*k9 -M4?l!NEPGfR?hI;^)?qE132wsf${kspj%OhTJiGJo_7^h{VfE=m8>B|(-yzsHi&OY{YbqpR1jNL4H_C --x(5FzTxJaAi_`{Sf3X$iC!2iuP>w_AEmu9pDb0vrO>1;0^@jE~a3&JUWh3KWR$aL&%Bt|}xC8mPmUbA2EF%3`(jA -)Wl0cTCW6P+xb25MjeRoY-mh2VneQ6>EULv)G?9g-i*ARqLxS~7wna9R%KvDLzN$OZOH*zbcuksRe*1 -5l7p2A*RoRK3BO;laet$rEhoi)l(N8}R3*6f=jvl^rT1yHT-`UQ_QRdBYTkH>e|Q{D_j^-cIa|VY?pE -$N6|SE^nd&Gbl7&I|L%r9a0u)n-yVLWoK+`b_doY#ZCnx -b^Usf@JuPlP!wb_I#A?NVbJh -*UP1SJWngRCo|HsT@FP+RE*s?Ax;3;wVaaEc$AmthK!ba@<;LJ9=&|!!TFAr%>h_c5xUmVTJp`}DS+o -_kvG~t)4bQI+>@@$^Dp;&o8oBIyJm+dZnl*BMb>VkwWmX7P?P!HP*k1}C6AE)7vr2DwRac%f=>7Fc?Q -Pqc^77nnmH+c5CZ^~%wj2}Prvjl8vn$}y`VFy@#!*PxXb*isNtu#X~9q5E?=#@$fqxX1Faav7r@^O&5 -i%LR2wH_+gVczK>26cQRjw`qrRiy$992EzS&jCm7IaE>5MH-35#la!;(x7{scH;n>+)D6r8~TezhzfD -AhB|&bqUJ%Mm}sbhrM;LDv6++D-tM8R!W#7&j%vfjLNbI5O8%lK-=y*j_E&5Jn=6BUL*(;Hh?dS7dQt -BBG+t}v!0){E=QVFFbj@O`3x>LcC#T-A5BZ4A-G&l+QM+S<>JkfPhQd~~f=VD^MQH&9{G2NNN2V=L{>8VZrMqGlc6V -QE^U(1()+-&CXI%189|snTP_=PYC*%Ly{!&P|xfA8gR#d%M~E*w7Pu2Geasc(|zC<=lh?U;AiG107NG -7A*(0WhvZLq^1mCU@9w?$zjVWw|wPDxS^UKg5)EYr0Duz!2yWQyvS~9oI(OUJTb&qqT%sK7?&9@D86i -lL0rn}5q4?B<3x6VDNB85C12kWxH#%cT#)I+#JLZruj+?aQDEUtz#|~?z0Ta7$Vx -0tfN1($~M=$8XW17f;r%~m)lQuX+d190h#<0PV_Gruu!{XuE!l`XZcW8 -@l`GL7O!ie!iKn5EdTkKD7p0BHrSe`>QkQaYwXq2hWbzX%GU*ZP}gMkNg(c(cMvYLW8wnLke$GCwlq5 -#=+i)*qQU3>WC?af<7HE>IK9nIfFGouEc+t$`EeKhrlBj1DF}|W6~Qb|=zL8QB#gyzE%|eV=N3qr`^eap>87&=?k7Y3CNq;HWlT!W#P)h>@6aWAK2mlUeH&Px0JS>Y600 -5mf0018V003}la4%nWWo~3|axZmqY;0*_GcR>?X>2cba%?Ved96EpU)xBM|NB$)h-EDeMkc&2qZ@{h; -3Vu4k~J{96L5rVwXrs`jwie`MT|)thJ2C*ag-{Q$eVLN%NHT<2pHSu_Y=OT0G-AY4+q|PNy-OF5+@3F;Y~hzx4eK -%gZoY=PeRwrvLs~(?8-xOMI9n-tC-6nK9~g*4RHei=%MKK6z -2bvY172GWWvZGiSgkWuJm<#=MBVzPNa2o?A@tvjGuahrxJ<1<{m)Fqgwq0UhU{DhbETvpC`w(j9X)%d -&;tIeR;Nb98$0{^=P)Pcg&~WlESvF^GniGz6HwwOo^a;#B -)H=~BfS9tAa#@JWapQs`&~AV{XFCju}__T{}zPI$Mz(i_ZLf$H`<&n7d+`pgwDIc@WtTl!W|Aktb`-r -A_%#e80%Nw=JaUu<<{meqc7Xv467sLZvp*a9y$R1`DpX~NPYv>#^&f}=WE{r%*)|P1Fgg0BXG?YWE-$ -8$2v459Dw!v=GBMm>;B;yywcuWeV`Ey^7;@4Yfy*InrY+6UyPm@Q -!{{l4qIJGwxL5%Y?a@T9l%?b^1!?0hSK8=cpKe@RdShe2bYH+;DZFHg^Rw$)pp^JT{GzlpzJzXXfB-E -Wp*Ptgc769x|?tscX72TBU74m6b}}t)gf+KxVI##@+dI2^`~UUy7u)^mdhU8D9i?axN%;%NA4&=!?Gn0@K)t8O0MJ9u|+?#g}Fag7gB>|Hfsgr#Y$ -1l@0d3ROISQ0hveJs%#u7@Q8y&)pv+aJB7hZjTfhrP~Ik*{b>L5ozN5^7+x_#p}1jlZ!v3{>@y(T+r4 -t(A#?YmHtD0LLjC!z|BK}(gIr(fm&Zgv5Ax>i(i`P7(^?q>r&U{>aB>zR%MsHczra)^eN?;km~=u-*C -5)sP6IL^yE#2gYnZ}{@OLIpEr8{eSkR(2yt@u@@)ar5bP_f6Z#4f+cCa%V1}%OG#fl6-=BKe>{GFA~T$q -b!JSRThkyuFWn}NH@I{GTnp&c*O3!FefCU=`0@qA)YUHLLl3T-hH;ic1p_8-i7_w$7?1cT*A@1HpGlb -ZiXTF}1I)h5K`bt6LnwP~2uqIokk>$@LZmjPY7%W&t`2^JDbXR7MR7(y>@@R|EX9h$1Uu276Y)NHyP;O4T1lrzTI`YHdZeo!iPjSu=@m*S2* -@>iwn$=Nl`V@EL=tG(X3E2gERv}4_YKTl6A9KlpvafxiDPV3p8`wbTCk14W!8D0B1sjS;1mG>!1FwSnbsk-d0+5l43%j}`y~CIHUFLzGfM7c)>UdNZ103gvz1LrD#W14|NeaI;CANB$-(;X)Xg^nJ -GO{4Qp^COLRIc*W-4l9q1F8Nc@?S-2EF(nAkPo{+$TXpuv~?}N81=rsBC*f`HvkSQ^d=%0B2t{HX}8w -=9tEKP3T+7t@Xf}A+%VB^q>KGM3uNEou22j12Jq37`(_bt2B%;4UeFYsW&aXOWy{Oz~j*dfa}Q(&{M??;4B}-Cm_UrR>39r@)#~T1r3Qz`Z1*3psEFCZ#L -#E-1j2{>aq4w|18;(gBHG7!!FkPaRO^dpopMN{~qf356lk&bOvpjeYf_MMJCe&tBC5t#RtBC)}qFb75o-g2|KJetHlcY_FGcHp~{8H7+1lU -N`eK_u`(OvdGl9wTtD&jTaRrkhWVa$mmV$pkPq1wpLSE{7+qpj31!5)Q6ETmlWkj41Xxjh7jhmb%6+!0W-{Eyza}Sb$kQO|yt2bp|QDODX~S<+2I+OldD*wV?DQz6HmP$%`TOVvx -EODM7ghZE_!!Od#9Iqs$x|>ym~p{5-+;t=2j0f>c}jJT3U31Tn6qj8p7x!Xv0KN4d^qf# -c)CPSN3H4X@Oz;oEF7GO;mPxSqWFYSyQEvo;bNlX`f=u_oKlw5#1T2qHFnNLzZBBOERMs}4tO@Tz -LZ`-?MPK%W1e!PjiiIgJG4&<>3hF3ZrDsKPVm8Ri2A>}rIFCsB|E!XY6#owj -2}0|YSPM%R;3kw|EzwM&|~(u%xp<6XO}l8^~(Ooa3UNUVSsr2gQDg4+nm2H;2na=Ubx{NeoMI)@q&a2JuTZ`17UdOB#DF*{99!LGG-BLPNteP#fg?n3O6LF -QR*IT5||2>Z3lQn+QbA^(gu>^>1u1F?SCmT9)>0vx=h3P4#~l;fF69qgNU@KM9=pbW;b-6QA)U`@^#z -}0OGMMfr=YPy0Yw6lYo^JQ-C?xbYu<7ZZ*Y~i(bg8j(hsDhb6!YCsCXSyI97V@)U@wNl9Clft5qj0D= -NcJDPBX0eQtZh`eO!X3GVyc~L4OE6E4eeK=}W587n08?m;#8&#SR7=p#!K9H@nc5DjWl6D1ts!*zQ@I -yF2sqFLEDa6lKI+B)16dG^vL-v3vBStlmNu&!eGM_XF;pa2h1>~ws6w+6O?Evzq(+Uo}B}T=r*SGhiW -h;8<8E~{+$SP;~bhYD*TA_KE@*kn|WCfiPQpCabG+aXU8eN`t1xgDi?Kz~Akvd5S7K-JD0070d$hLZZ -8u7;Qyub`Zu`BzYy8SgNs$!+O5n36KA)3gpGl(B~QdMT?jd^Iv5)vM9w~%x)-hxvYHT7iazCfJfiv6# -X#-p`z(?_1{9eL5xyu$44-eSK|K2YTj!zjmt=733ND$y|khfL(kns3DlJ>!|FANR@+9U4qK-w6^k@&O_|DKdgSIO*}+AUbN -u1&xC!u0X~3#0g2i2m* -BKshWTyCfsA86F9VQ?#`@#+pt`kH{(Y0jKMQFvKs)@BjTW~DJ?FG3LC3jKGrE>R5Mh7b#kf2yLdYX8@aa^ -K`47r=Yotgjb)Nc2b7ciOZ~&D}y5S*7g`Omx*W^=ir=N -+2WCHC`qcgf~%6lauec5;23?n2~e~FDxpGeJjF?nEmwD(#I0TF!;n$cf#Ii2-DMBEXcei0)atc@Re5z -w3jTf96m+~|N>$W)iw%g>?k3487Wgd_)mX@z8QR2~NfyDaa??Vf>NTJSCm|^;W=rxcXHf}~&GfNl-ok ->*zZLa8+%uCDz(LiTWfB{)%q{lofq;bX{k^@Ny|x4tQ-{_h0ZgovNEU1lR)-b&tF}lN62P!qugW}fF4 -cN$!Zyh!y^AYD)pRlzEf{YXHeOx7}tvm6mS+*r-=r|v52djHu#sf}3!jzjG;*U5HqV$$~lbPs-ihpc -E*$DPX*bON1rnus__UOd4;}}Z+aQU&lQ$LH5H7BN2&0bKaIf<3Gp -Ro=n*DSUw0YZ;;lgvzuXYI+l{-P?+BFR?Y#Gq;s+;_`Pzzh#^uuTRS7-kNP)h>@6aWAK2mlUeH&UWTz -j43^000~n001BW003}la4%nWWo~3|axZmqY;0*_GcR>?X>2cdVQF+OaCy~OTW=f36@KThm{Jd-T#8m} -1OZ&LfeSdOkyJ8l1%3z&Vz_&joN{(&Gc&6df&Tb>XD-VnMLF(UOW5LN&iUrtFRSX-STD%h#!OWF;z(2 -Bhi`i~sjR6*)is4TMmv#CT4}wKdNT2L|9T?u3Upr8lu2sS7;hR?Oz5$o){FPy_jlGB`wUC?EZvB8vRX -;4S1Yj;zfNz>XSu(}ALV~E_LC`g6yc_GG41i|sxo$ENtQ=H^j3MAewj=rg_h2VXJKaVf}qMYS5d$gVBA9faHEl7Q*Ad?~U;LmYgt^c>CeK6MNH%LN=mvBp^`$P|aq9@mlyT& -SX>UfmNH5EY7_2RCPLnXtg6jt%A!Ua@Co1&aB#a@h<|jRt!o; -+7xX}ECP;(3vc08nu$rbMhmiOen1RLkrD-nxz;z^H)OrriV6YQYu@Pk9JA_&^|JWW2@ySH5M_g7Q8g+ -Ih;7qpc>}nB$;MVkWu|=?yfu-0Q1L`&To~Su+v9OWt2XWW1kfq|VlUn@Js7G@1!EvD8A|s$WsG1EhAt -c96VVVa>2QFv?OVo0Qh=ZY=W+5P0C6#8&Xm2(It?fJn-&Sq5*G*Ti5wE4F6zo}&E39h0u`b3)YZR1)* -`ky}1)o>y5qNxCFeGkH(z33trHYQN0o6XMrZhb$d`J)AG$w=2APfZ8B%K!@_I?Y%(vV{(w$?nTlB2J; -vTex%j)hnL3c=R-AjPEl;Y}sc``8UyOsYagajompY-cVHOlX*S5hxHzZL(E8 -y-F+YQC5_WWlq@4YLo4kJD}?*SngbNZ9j?Ung&gSFWX{yYLAADKhcJQ}YUMZ;7L$ppxJoZ@rGxw{)l^ -3OeJN(I=Hk0l#V*9ZVm*mAp2v8x210I-j8V1)2`vRW -r+HD4DEyzWokWlkJkkk5ahBe|L+j@{eqhThq|tECR_A&LlL7N*n2CQRya8`%5L`JTx@- -ETQb?rnF1F!a9h>x?3DzY=ejqTO?`dm~;gzRQ8Tpn)WvF2!FL-yb2Rt~yJ2$E;V}M(L?^ -7vho@(r(xzOq{ -(7HqYH0&k7zpA-!7|9Trp35%nQpV4Cloh=2>?_kG<061+?4VNDfKke`c|TQ3ByUu7nQ0)nbYT%wUzRyx-$G3U%&OF&Zzb99 --BljEw@%=Hp1M4g0J2J+CxW@W0iy+*=`r%Uqx=N|QUGM)e5o+mnLlJor_2KkC%Uno5-2MFX``c&Y{tW -HiFZXdBVcVGXzr}DGXN04}g{6%`;M-(1#=DxNK)}8erU{nM@hFgn3?GKap}{s7FfbZ9;;3^&qb|)V(4 -Y3@IM(?yUD=BlOYxVRn?rF;(J)Ax04GmED60_Fubq`7$UV%PJhByaTi^XuQV$z#|x{ -nn`msd*ie516C5C`|K}D;_3S+%S<=(ImsD^|nQBfekxMFmx_LX_p%LEskM4q&u!0&hUm4cSR_kGdJ!V -3du=|XJ}D&6vo9o!(b+io-S>!t2{VU8OnSS9u8pbQ(-S1JyXpvLwUm$g*$&ETC9Wrv4&&MA%^E; -}2p=Dp(Q4sid8SC67eR>=8;6l6>?K)&$nMw>Od;EAPj5qdtP`E|m?4dhIjPM!i9HdYBI&vIXx#t+l4L -Y^Oj4(?~gK4|H2R$s>&t%}#2aMWzVg7!T2xgs&HIDZsBr(wqBJ=NDU&1X8Da&?K_n@K~5H&|2;#Uwt@ -*r*4}&w!%*AA>+H1a~N|hv5WOmcf`i?Dru(GEJ`C^w=t!eGWmsrsb%u#0YKKMn8FJE -72ZfSI1UoLQY?OOeA+eQ-qUr(_Yqo9OJjFVh@E)g5B9i=hqI6>sJxJv?RMXoH?)KcIsE$fN~d5r_^UM -^2^Gy6d6^$5JyY{s}=6Y9Zx=cP$57l|P7h -mw~YxyU$4maCL48JAQh@HLwgxnN}a)3f8tpS~w!BaR43c}(+I33NJTM7c3wrlP5z -WK=S$7>G)#O6s;^V&$A^7!+9Z#oP{BtFv}$=cmmq8Fij-OX)1a>vw%+{Vfg%%&R8le)A{kq_~JFAe^mRG&PhL0yaU2Otn&|!zck -HagoU6hV6#tJ$3$3llf>GD*h#v(E{BLv14Tr4I|%Z1L^@tDoPB%RAfrOA)$bF;08qG01FIW?I5N2>10 -B#*=C*Pu_#rI*^R$`q?C(buKzF%zuu%NG8H6{2ki} -65p^Xja!UL?^%AAo|uNCMdT$XIv*PK?m=`V0ahL?##@=yE(e?7Ad~O0~b{0tj8PKr4%{qoX5xXux6No -zUp*#V| -;rpKUk3u!c3W-rMV`NT+RDht|<}P1itff>kql%6Ni+u$?*7u+)9C!n(vk%$Ld2B*D&9dua)mJbz!EE( -8hb4tQ*to(&%yK}<7{fpQt)e@t+_Qv!<{c64X -Qm?2Hp@bl8F_KAOXJqdVhcayP)<#%QDp@KC48u!m7YH&svamo$Xd!NDO$4ZCJ+Tss36JZBfwn3S?pCrD#NLgdmAE2 -Xh?`#mcxY4vyuf|&gueIs9VhCD#5qpidu`59ZzKZpRqm0m+S&}Zz(JX|0+}{!1%OuoZRlep-UG^tUF|6ftnY%nz -I-}5&~;ozMg)e2NGQ81Raq2bDrRGQ-zRABWL8KP1S$lp@_tI8VMrpH>NH{Q9F_VV0-S76iow1LG%r9- -_btXs9F{B;;25XLtOVbC6Sk-Lb_U|>D8v_DWP*9Y0fmM*XIEHs@@WHTDhNTzM22Bsuyn3-Pc6JF?<0Y -4GMBPXZK0i8oYU)#a<P@W}rjaZwo)29+TTi` -vY;P0ucD7F_NEIj!3eB4-j@NLRqS+Ab7S7)s3O-#d*@Kpg7cuvz4ySFm44GF_o5r-ZaAcdmpH8R^1#g -D!Q>a=k+FlkH)$KGJJk(R<;Z|%BMzpyRuS+tfBCROi`*+F*~N}VZ*Gia3I=Exvn-QWpMUOe|}*;kz$o -VQu2xKZDMm;7o^pCI;tge$1r3%?Lz~r+-5lj(dov6fXLN -(Ht5qu-%lE_Qx9)2e0ZYx1(jtk$}8(2UWxB_9AYpeYpD5Pt_{KqG+Aah80_{+sHl9Wc3z*DM*snv0b6fU)19mSK|*0yvV*+@qkoWA529;P -_wkS-;!mX&@AX!OTGw644b(J$UBvpA9BfIK)V3}8Y0Da7sm~hwl -9C?l1^(80~H4yz-33tVIeWq|%Ev#&z53LEyD&}CQF@GC27;6Pk&GYI7RQK($He;wWc6Cn3nO;%>8!Fc -sk8<5ar@Dp8+qJQbHN|_yIH)Q!~973HDNU}fGE-=^( -l#&R9Y?E3n~6gQO$|6Hh(>t>z=e4ew8`gbWyd|%K=0?wd&`CS{nWYZSWhy!r<_W!@~X$@>x-#M`s{yY1`KYOS<1LRXfwB1|x&kY-Vsrgv=+4F)*gw_pls6I4SX9fNUi-Q8sYb;f*Sgll4#La7EVH>X+>r#q^j(3Av2*LUqcsCKoDYz^IC -n|X>Q+If&>bld)$i6KZCH*DlFd8EdNcnIw$3nhcqm`Yj)cMXSCMAmg~n8Arwbt3F;^+pKp7MFwWEs3S -WS6$=4q^d;L6KV1n%7auce-0N!e`4gumjNS(;>ucFI?|{{|it{0|XQR000O84rez~$E^s91qJ{B6C(fsA^-pYaA -|NaUv_0~WN&gWcV%K_Zewp`X>Mn8FKl6AWo&aUaCwcIO>?t05P56$CCXS}KJ1wu`hFZbllGDx- -W!9lVk^er0o*w4w7vX%dbKeroxkI(FW -2fN+Cs+?5^sS1|GC;5EiHc5W|EY$u`ZP?fQpUhbbhiyOEt2*TwdyUU3yV0piWLC-z`||qjiIq~am*2j -A|Ks&Ld&>*9lU1zJvR3`r82&T+@#6>kma{CcnB1xAr&{#qL6z)HrIOXZ<4cvF;z}iPntrmq%w!Q)a@Q -<}!;4TWdOFQGDfUl=PtZ)Q$Z2@;t9B0_rfla_e6!0EQ-SL3CM!*qFfJ4AnWWZM_;49jh6%4po -PJ>wC2)MEZe1+mT!^RGz1Kxw_YCPa8Bj5-oz#-sC{SZj&gTA?G0KFd6E>jvklo^lq+Jl){S;FJN%y^c -}K+v0GV>H*s4x}^FgK-gWVQ_S?Kf~kll=EO2+H5or`$ptTaw`y^ngO=C)~zK#nVjN!$5<=eN4fUtI1( -V&ycq}8B-m7s6HG6SO&kHybD9F9xn6f5{p2DtvoEAPA}|1%u~yFjrg;^uooP^Ca2iBy69H-xGCToFp( -Tz1OkrS2Aq0a-ulvl*u(1Q_6!u_w$s&1)KsX7o->xCOuR~lE2e~ce2i&ebs9&a>2~lQ3+G_%&w`&Mf= -+4lHR~`Yag&U&G%vibu=`*|s|5D{8PG`h%NFjaVhV|KnBT1fT8k*+&=8XufPohI<_@n`Kvjf*R`X3wF -q|&o&34_Ec$4C<-$&`BAqDkoX4BzSQU7%)LSXyI53R_z)@GF6!TUmiRPhn|<5Giausv!EhHN86S*Mv7 -sVsMNUwvJ8U25WNlbUjfagh!U$p*?qxxe5!o)dI>vibL8c?#gQsFY;5Ijjp@POCARBEoJecvR(dhyM!{T&nYY<2FFMfB*{vZ+;^5U?9@f$b| -z=xcu?g)wikg?^9B;Va!N0WwxAd@KoAB9+5iCz5OxE4G|oyDUESvu7i+)YJ388rVd64Tcn^|jyF4E4& -}b;|nL?xeX-d|gjy4lJtd>UmswQg{qV3pdIS0i`N70dN;UU~CTRYTfnJF|y1!zZM^zG=SU9{ac~kXjPT&wuqK1sDffc9$IGG_6+km46c!U8SZGZ<1fFm{vZ9&|qYp72c;L`^9zyLU4aecx0lXAz?sB8xR5m;2ScHHk}w8-9oVeUyenrGS#BI5rGf{56wrXLEr(HNp!~Q=#KF3|{ENUTtKi{G58(hkSuAIUE)RvaB -bR2_g^Vmo=QWuSrNm(A$TlKEYaJIszk=|dE%IFwp@38$qTr1!}osElTa1gO@_k+R}@4Cl`yK+h+=GxR -A(MxobkYh1Gbsc*CQfMt9g1T>1{s*XUEzBpo2_5r78gHK@R7OeE*u-_C#-OzoYJD3IK@CNi0?<7wC!2qM5dIdN=!4k6P+)K36ksW>ZNRSlQp$qwO0z2{d-HSc&#fdO%`PWRd~Ab!^u*0#voXef^OHu~d7kBPEXg=8fk)&tNdfGVtSo -Ym}9$x!l^K`6<{Mg^fFZ|20z3cif_6hB*Yc!%L3D0FA2m0*iznS4y7@-|pNP?z<`6e)@b1>l4g*qa@6 -k<}#rLuTWYX!`=L01QroykN4AW^C@hUff^m-!g}gKD1tXy83)f+$;_G4I8tnkYG7}K;A?0B{!eL?86G -Rt4j$v`)EH&1LJEVw_GsPf&@8KQ1I$`9t`zEkhFWKQ)p?>wJCN33GHGW;g60up(Cv+EcUnd-CI&I7Pt -;OrW}JlyED0e`sn9F8-u5a5d}SKC2xzTwD!9fCNY?xhhu*_tv495!QaQkyyLW!+$BtXraDm{zZ0}UV9 -Iu!Vr(TXar0%X{p-)*h`*Js(&AlwYGq1}ko~13yOBH{^pa!*}7d}N)o);nruPND+eAMG1;yam^B7DUB9p{qt4!0F{=vYI5o==*JC#wW -(*s&BSy%v5({j4qf96gGj2aXh(pD$a1M~AYeeM%BuLpvT?{~kR_0z;rJ3-Qkfpk2a`a88z|9QpOp-%8 -H34#~+Ma?vJ)6wiuF8bP^l7rueA3^ZjK8jO@>!?-L<(zcE7Do6W%B0J~w_~xb)tgsrZ;;>`xuq~9?-k -h5$*cj}20Z>Z=1QY-O00;mMXE#!3IB=)A1pok}82|tw0001RX>c!Jc4cm4Z*nhpWnyJ+V{c?>ZfA2Zb -Y*jNb1raswO31T+eQ$+>sKri1f&87o52y%s3Y-g|TV -OZrPX`y!Vw>tRQ*OmaEjH;mWu5nw@`~T+A -nudr3H^Ap>e@^eTz(kms#Zo+iZe5WQQ+2}fx}!35%kU{ZoZrUiTEy&J~y*L2-Mv(xcpHtztfknbSrJz -NFOGmG*;zmYatpYte4$Q_9|4$q``(y`ZMD8$;A%jt2u)oLxt3Sq`b!o37jMwm-B0aN?DB_G>qjiFB?(hgjF=WO!lH|g|Msz9-29`;Z -#EI*i(Itp-{q_y(Ip|HU%D5@A!V9qvT3qdb@*Jt?yN=90r`?P29YH52NH5fhe%V9xa=NQ1y!kGYXg5) -`NEVThU+^8d!3IPbx`-np_U*?9eha5Z2D#T5;m6;KD7bb{=O53{(fzGBvuuq6q7Q31mUAU(n|Dv6Wqi --NgQIsxwN_FVcaM+X4ZDNAU?Ju-+7B{2y*$4-K#Q=<<*MAczTbQ -K6c}DPO0&gFJL%*FX0PsIJjl&0usCpeB5jaaYku8?LS!rL3CjUe)oJ36wDj*j6pMZpoxVK$Bh`SV?LH -rcn@TF^zC|a+##03{qB?EYXF&!4eJWWjj^bq9(zLAqE8b7>3AnYa|W;LpUMm8xEm7tMo%Wj`IYRhXfL -U5$>uS?169!J*eHTWTQ?wfys}TxY~(MBdJX#d$Guy_BN9|vT@{X)^`@0$#k(9kKqf~;D^Nq55ZYSGdk -^URHjoq|NOoeuF%=9uJ?u-z57Ay#)N~=*+5~Ttqsu`Tx_>lS}!)oeGx2EX;pps@0UOF5|h1aKgCcHK7 -=XXbk$rHhuqF$*WF4WhpWTk4rT$RnE}5(+8p{_6G?p*7YS=j66aUWDd?W^TQvUssnwuhI)N{c_xp>p5#gzbWD{VG8B4t(Giw(%(m;$el+MW0WPFiOjtf}K+-zs8eoac&^W -y;MZAr-;Hmh_=$~$dh|^K;+9|nr$O{%EL0*Zu^&)Jl!gbCC~Iv)g0`4r-I=$3+KhiDiSX#p806)%Qk@ -UdQXUNL3E4@t=pRLbnL`CYuV$m$9MwMg-atj8LnWk^>OgkGh>G}He}OdHj)&l$VQ6N4^x=5dOyW9GIO -NuX1#H;6Wd$tI6HvEPu4C1Ds>;c9tD21iU#&!-7PN%TCLEa$5c5sh?5j+!=lV1%=DD$ -+U~eLnTg_fddzH5GQeNT<{3*`6vKGc3!S{GT1JXS-DLc!Jc4cm4Z*nhpWn -yJ+V{c?>ZfA2ZcwcpMWpZC+WoBt^Wn?aJd8L#?GDJy{lHCz?!} -ldi_!-v6r?ILt*lTVyn&yp&}+&&Aw`a!TTQXSLW4FDCphy?WY6%@;Q|y_}XKapXfW=tl#Q+=z>G<`%k -;i!`tA&Qe8rK_l__;i#6{j$F -L@lcQWg!pi)T+Jn9Q&PXh5nwRa?YJ+Xt65B#e-MJH~akoAa(O@XZog$Y!5dG`ZgMPo$X>6Vg*Y>*2ty -kCmerp{@AsmEoH-ryExEI3x5FUhZ=)=+nc^FJWsC;O{H433whf%0B3YA8o(kN6Kg-WAPX%s4rLZ#6#g -mDOE2t&1z3ZV{Rs5kQU3g!pQCUcAVA#se8B87cbGlqCrsZg-zncF-y`23-yPo? --xuE$-;ojXQ|2S)nE4s=bLJP!L*`@V5%ZXN!aQYu$^43W#{8Q34f6@}Tjo>dcg%C<_snO^3+8j?56mB -#FPJ|ue`fx|eCZ$cD-K>W-!Lc4Uzz?K`9tJSkUu{D?D&Io$(%A%=5Ng3nHh7&^l#UkxnTam^siUJ^sn -WT`6u&=dCk0G{>A*8`4977=G*l8%pWFM0QOoo`mm`F?#OcW*>6T$?2V) -Tj8Cq|zbePZ;9(I-Zq7=2>&iP0xUpBQ~&^oh|YMxPjcB>G77k?14QN1~5JABjE^eI)uw^pWTz(MO_>L -?4Mh5`7Z%Nzf-jp9Fmp^hwYsL7xPD67)&XCqbVCeG>FZ&?iBk1br0xDD+Y2qtHj8k3t`XJ_>yl`Y7~K -=%dg_p^rizg+2;>H2P@t(deVmN28BMAB{d5eKh)L^wH>}(MO|?Mjwqn8hr?T2z>~B2z>~B2z>~B2z>~ -B2z>~B2z>~B2z>~B2z?Ct81ymdW6;N-k3k=UJ_daZ`WW;v=wr~wppQWxgFeRjbn1VvPxu2wRR8xjHox -V<*N6YIN|tG++qb_>{{v7<0Rj{Q6aWAK2mlUeH&TV5jz=Q_0074U000jF0000000000005+c00000aA -|NaUtei%X>?y-E^v8JO928D0~7!N00;mMXE#!42oF5i0RRAx0{{RI00000000000001_flvVe0B~t=F -JE76VQFq(UoLQYP)h*<6ay3h000O84rez~VtUS3DFFZg?*RY+82|tP0000000000q=8if003}la4%nJ -ZggdGZeeUMUtei%X>?y-E^v8JO928D0~7!N00;mMXE#zbQ3{T82><|@9{>Ov00000000000001_fwcq -x0B~t=FJEbHbY*gGVQepAb!lv5UuAA~E^v8JO928D0~7!N00;mMXE#y>FjquA3;+PxF8}}*00000000 -000001_fnW{*0B~t=FJEbHbY*gGVQepBVPj}zE^v8JO928D0~7!N00;mMXE#!(JbZKvHb1ra -sP)h*<6ay3h000O84rez~a(m4*6#)PMwE+MC6#xJL0000000000q=BJD003}la4%nJZggdGZeeUMZDD -C{E^v8JO928D0~7!N00;mMXE#!Lz*)Mu2><}-8~^|s00000000000001_f$2s70B~t=FJEbHbY*gGVQ -epOd2n)XYGq?|E^v8JO928D0~7!N00;mMXE#!8b9sL>2><|D8UO$!00000000000001_f!R<10B~t=F -JEbHbY*gGVQepRWo%|&Z*_EJVRU6=Ut?%xV{0yOc~DCM0u%!j0000801jt2QYR^T({u~~04Od103HAU -00000000000HlFWS^xlWX>c!JX>N37a&BR4FL!8VWo%z!b!lv5WpXZXc~DCM0u%!j0000801jt2QqFh -kG-v<-0E7Sl0384T00000000000HlHcW&i+iX>c!JX>N37a&BR4FJo+JFJE72ZfSI1UoLQYP)h*<6ay -3h000O84rez~C7Ak#^9KL`lNkU2BLDyZ0000000000q=BMm003}la4%nJZggdGZeeUMV{Bc!JX ->N37a&BR4FJo+JFJfVHWnW`&ZEaz0WG--dP)h*<6ay3h000O84rez~#*@f1mL32A%5MMw9{>OV00000 -00000q=Dpn003}la4%nJZggdGZeeUMV{Bc!JX>N37a&BR4FJo+JFJo_QZDDR?Ut@1>bY*ySE^v8JO92 -8D0~7!N00;mMXE##PrU`h_1ONay3IG5Z00000000000001_fp44u0B~t=FJEbHbY*gGVQepBY-ulTVQ -FqIaCuNm0Rj{Q6aWAK2mlUeH&W@@_AgWf000gP001BW0000000000005+cccB0PaA|NaUukZ1WpZv|Y -%gPMX)kSIX>MO|VRCb2axQRrP)h*<6ay3h000O84rez~byzY|cMJdklqdiI8vpZX>c!JX>N37a&BR4FJo+JFK}{iXL4n8b6;X%a&sc!JX>N37a&BR4FJo+JFLGsZUt@1=ZDDR?E^v8JO9 -28D0~7!N00;mMXE#zIhqgHH1^@ts6#xJo00000000000001_fqTyY0B~t=FJEbHbY*gGVQepBY-ulZa -A|ICWpZ;aaCuNm0Rj{Q6aWAK2mlUeH&WZIclLb%005i-001EX0000000000005+crPcrdaA|NaUukZ1 -WpZv|Y%gPMX)kkhVRUtKUt@1%WpgfYc~DCM0u%!j0000801jt2QvE^;u!RKx00j^L03rYY000000000 -00HlFo*8l);X>c!JX>N37a&BR4FJo_QZDDR?b1z?CX>MtBUtcb8c~DCM0u%!j0000801jt2Qv5-y!Ho -z20D~O>03QGV00000000000HlE?-2eb^X>c!JX>N37a&BR4FJo_QZDDR?b1!3IV`ybAaCuNm0Rj{Q6a -WAK2mlUeH&STJu7Ono004~!0018V0000000000005+c@Z|siaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZLX -k}w-E^v8JO928D0~7!N00;mMXE#!Ea18$&1ONaD3;+Nm00000000000001_fr97&0B~t=FJEbHbY*gG -VQepBZ*6U1Ze(*WV{dJ6Y-Mz5Z*DGdc~DCM0u%!j0000801jt2QcU;M38X>c!JX>N37a&BR4FJo_QZDDR?b1!3WZf0p`b#h^JX>V>WaCuNm0Rj{Q6aWAK2mlUeH&R -RPXCYGw005I50018V0000000000005+cGxq=haA|NaUukZ1WpZv|Y%gPPZEaz0WOFZMWny(_E^v8JO9 -28D0~7!N00;mMXE#!FxCk!G1pojy6951r00000000000001_fx`d+0B~t=FJEbHbY*gGVQepBZ*6U1Z -e(*WWN&wFY;R#?E^v8JO928D0~7!N00;mMXE#zd_`Y7~1ONaZ4*&ol00000000000001_fzAd20B~t= -FJEbHbY*gGVQepBZ*6U1Ze(*WW^!d^dSxzfc~DCM0u%!j0000801jt2QiXqClOqEF05b;w03HAU0000 -0000000HlHR3jqLdX>c!JX>N37a&BR4FJo_QZDDR?b1!INb7(Gbc~DCM0u%!j0000801jt2QVPl|=_& -#M01gEJ03HAU00000000000HlFa4*>vhX>c!JX>N37a&BR4FJo_QZDDR?b1!IRY;Z1cc~DCM0u%!j00 -00801jt2QZ(q9%TyWw01|5e03iSX00000000000HlGr5di>jX>c!JX>N37a&BR4FJo_QZDDR?b1!Lbb -97;BY%XwlP)h*<6ay3h000O84rez~(dX9-q6+{3|11Ci9smFU0000000000q=8H<0RV7ma4%nJZggdG -ZeeUMV{dJ3VQyq|FKlUZbS`jtP)h*<6ay3h000O84rez~FQ`?B^9KL`krw~}AOHXW0000000000q=70 -p0RV7ma4%nJZggdGZeeUMV{dJ3VQyq|FLPyKa${&NaCuNm0Rj{Q6aWAK2mlUeH&RjU#yv*}002}Q001 -5U0000000000005+cTR;H-aA|NaUukZ1WpZv|Y%gPPZEaz0WOFZbXm58eaCuNm0Rj{Q6aWAK2mlUeH& -QMtBUtcb8c~DCM0u%!j0000801jt2QZ1i{M_K{^0Fn -g&03!eZ00000000000HlFOR{;QUX>c!JX>N37a&BR4FJx(RbaH88b#!TOZgVeUVRL0JaCuNm0Rj{Q6a -WAK2mlUeH&VI$&W>&Y008*{001Ze0000000000005+c;#mOzaA|NaUukZ1WpZv|Y%gSKb98cPVs&(BZ -*FrhX>N0LVQg$=WG--dP)h*<6ay3h000O84rez~=0U0%B?SNg_YVL7Bme*a0000000000q=A-O0RV7m -a4%nJZggdGZeeUMWNCABa%p09bZKvHb1!pbX>)WgaCuNm0Rj{Q6aWAK2mlUeH&S2581fVX000jK001N -a0000000000005+c{a^tAaA|NaUukZ1WpZv|Y%gSKb98cPVs&(BZ*FrhcW7m0Y%XwlP)h*<6ay3h000 -O84rez~LqAK-AOHXW9smFU9{>OV0000000000q=8do0RV7ma4%nJZggdGZeeUMX>Md?crRaHX>MtBUt -cb8c~DCM0u%!j0000801jt2QqeeB;dL4S05(c!JX>N37a&BR4F -KKRMWq2=RZ)|L3V{~tFE^v8JO928D0~7!N00;mMXE#!CvRy*+A^-qRk^lfD00000000000001_fn$CF -0B~t=FJEbHbY*gGVQepHZe(S6FK}UFYhh<)UuJ1;WMy(LaCuNm0Rj{Q6aWAK2mlUeH&T1aDE>PD002J -#001BW0000000000005+cnV|syaA|NaUukZ1WpZv|Y%gtZWMyn~FJE72ZfSI1UoLQYP)h*<6ay3h000 -O84rez~UByq4x&Z(HtONi6ApigX0000000000q=6Em0RV7ma4%nJZggdGZeeUMZEs{{Y;!MTVQyq;WM -On=E^v8JO928D0~7!N00;mMXE#zS@!D-C2LJ%%8UO$y00000000000001_feWMo0B~t=FJEbHbY*gGV -QepLZ)9a`b1!6Ra%E$5Uv+Y9E^v8JO928D0~7!N00;mMXE#zU3{zXO0{{RA3jhEn00000000000001_ -fpV(>0B~t=FJEbHbY*gGVQepLZ)9a`b1!CZa&2LBUt@1>baHQOE^v8JO928D0~7!N00;mMXE#z(u>=k -80RRAr1ONaX00000000000001_foQJ*0B~t=FJEbHbY*gGVQepLZ)9a`b1!LbWMz0RaCuNm0Rj{Q6aW -AK2mlUeH&U-5_PkXH001u?000~S0000000000005+clCc2*aA|NaUukZ1WpZv|Y%gtZWMyn~FKlUUYc -6nkP)h*<6ay3h000O84rez~OXR53aRC4T3IhND9smFU0000000000q=6y20RV7ma4%nJZggdGZeeUMZ -Es{{Y;!MjV`ybeLSd008|5001W -d0000000000005+cqQU_HaA|NaUukZ1WpZv|Y%gtZWMyn~FLPyVWn*+{Z*E_3a%E<7E^v8JO928D0~7 -!N00;mMXE##BYd%p31pol%4*&oq00000000000001_f%e4#0B~t=FJEbHbY*gGVQepLZ)9a`b1!sZa% -W|9UvPPJXm4&VaCuNm0Rj{Q6aWAK2mlUeH&P{Y*`7HB007hq0012T0000000000005+cLCXOEaA|NaU -ukZ1WpZv|Y%gtZWMyn~FL!8VWo#~Rc~DCM0u%!j0000801jt2QVt)1N-_Wd05Sjo03iSX0000000000 -0HlGn&jA2%X>c!JX>N37a&BR4FK%UYcW-iQFJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~j6}mh#S8! -dge?F79RL6T0000000000q=6>T0RV7ma4%nJZggdGZeeUMZe?_LZ*prdVRdw9E^v8JO928D0~7!N00; -mMXE#!z@oI*10{{RS2><{d00000000000001_fhOGn0B~t=FJEbHbY*gGVQepMWpsCMa%(SRVPj}zE^ -v8JO928D0~7!N00;mMXE#zye2_IN2LJ#882|tw00000000000001_fz{vv0B~t=FJEbHbY*gGVQepMW -psCMa%(SSZ+C8NZ((FEaCuNm0Rj{Q6aWAK2mlUeH&SQLjKm2F006lk001KZ0000000000005+cKIj1e -aA|NaUukZ1WpZv|Y%gwQba!uZYcFhJdU;=WXk}$=E^v8JO928D0~7!N00;mMXE#!LI2ltz6aWBOJOBV -700000000000001_fr#<}0B~t=FJEbHbY*gGVQepMWpsCMa%(ShWpi_BZ*DGdc~DCM0u%!j0000801j -t2QcE4|&*lXH089`703HAU00000000000HlEl2Lb?aX>c!JX>N37a&BR4FK%UYcW-iQFLiWjY;!Jfc~ -DCM0u%!j0000801jt2QWRACarXiM09ywD03QGV00000000000HlE{4FUjgX>c!JX>N37a&BR4FK%UYc -W-iQFL-Tia&TiVaCuNm0Rj{Q6aWAK2mlUeH&Orq0006200000001Na0000000000005+cUl0NSaA|Na -UukZ1WpZv|Y%gzcWpZJ3X>V?GFJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~s|D6RT?POEU=#oVApig -X0000000000q=BOl0swGna4%nJZggdGZeeUMZ*XODVRUJ4ZgVeVXk}w-E^v8JO928D0~7!N00;mMXE# -y=J=@%13jhGCC;$K=00000000000001_fj<`l0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!CcWo3G0E^ -v8JO928D0~7!N00;mMXE#zNSDQaQ7ytmgR{#Jb00000000000001_f!`tm0B~t=FJEbHbY*gGVQepNa -Ak5~bZKvHb1!gmWpH6~WiD`eP)h*<6ay3h000O84rez~000000ssI200000DgXcg0000000000q=8*K -0swGna4%nJZggdGZeeUMZ*XODVRUJ4ZgVeUb!lv5FJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~4wLl -?FaiJo=L7%%DgXcg0000000000q=Bb90swGna4%nJZggdGZeeUMZ*XODVRUJ4ZgVeUb!lv5FKuOXVPs -)+VJ>iaP)h*<6ay3h000O84rez~kKr12{sI61+XnyuF#rGn0000000000q=6qk0swGna4%nJZggdGZe -eUMZ*XODVRUJ4ZgVeUb!lv5FKuOXVPs)+VP9-zXJKP`E^v8JO928D0~7!N00;mMXE##lw?m(10ssKI1 -poji00000000000001_fowqn0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!0bX>4RKcW7m0Y%XwlP)h*< -6ay3h000O84rez~3F*#6L<9f;6Ab_WE&u=k0000000000q=6Si0swGna4%nJZggdGZeeUMZ*XODVRUJ -4ZgVeUb!lv5FL!8VWo%z;WoKbyc`k5yP)h*<6ay3h000O84rez~;oTH_H2?qrGXMYpEC2ui00000000 -00q=BbM0swGna4%nJZggdGZeeUMZ*XODVRUJ4ZgVebZgX^DY-}%IUukY>bYEXCaCuNm0Rj{Q6aWAK2m -lUeH&R%exGFjV007Vh001)p0000000000005+cCP@MSaA|NaUukZ1WpZv|Y%gzcWpZJ3X>V?GFKKRbb -YX04FJ)wDbYWs_WnXM%XJKP`E^v8JO928D0~7!N00;mMXE#zwqfJ$n1polK5C8xw00000000000001_ -fw4;h0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!Lbb97;BY%gqOXJKP`E^v8JO928D0~7!N00;mMXE#y -@BnjAPBme*pdH?_^00000000000001_fsRoE0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!Lbb97;BY%h -0cWo2wGaCuNm0Rj{Q6aWAK2mlUeH&XaLt@Q5$002D<0012T0000000000005+cJ$3>BaA|NaUukZ1Wp -Zv|Y%g+UaW7wAX>MtBUtcb8c~DCM0u%!j0000801jt2Qjv(ARG|?700%z+03iSX00000000000HlFud -IA7&X>c!JX>N37a&BR4FLGsZFJo_Rb98cbV{~tFb1rasP)h*<6ay3h000O84rez~_Rx&cdK3TvqDTM$ -9RL6T0000000000q=83_0swGna4%nJZggdGZeeUMa%FKZa%FK}W@&6?E^v8JO928D0~7!N00;mMXE#z --d+(PzA^-r4f&c&@00000000000001_f&8EX0B~t=FJEbHbY*gGVQepQWpOWZWpQ6=ZgX^DY-}!Yc~D -CM0u%!j0000801jt2QaAmd2F?fo0M8x(02}}S00000000000HlF*!vX+sX>c!JX>N37a&BR4FLGsZFL -GsZUvp)2E^v8JO928D0~7!N00;mMXE#zVszoFe1^@t45&!@o00000000000001_fqcvY0B~t=FJEbHb -Y*gGVQepQWpOWZWpQ70a$#d@WpXZXc~DCM0u%!j0000801jt2Qm^VKsP7p70NY#u03rYY0000000000 -0HlG=(gFZ*X>c!JX>N37a&BR4FLGsZFLGsZUv+M2ZgX^DY-}!Yc~DCM0u%!j0000801jt2QUCw|00IC -20000003-ka00000000000HlHa>;eFAX>c!JX>N37a&BR4FLGsbZ)|mRX>V>XUtei%X>?y-E^v8JO92 -8D0~7!N00;mMXE#!?RYHv?0RRB20ssIY00000000000001_fkEv80B~t=FJEbHbY*gGVQepQWpi(Ab# -!TOZZBeCb7d}Yc~DCM0u%!j0000801jt2QUCw|00IC20000004o3h00000000000HlGY?g9XCX>c!JX ->N37a&BR4FLGsbZ)|mRX>V>XY-ML*V|g!MUukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&UykRd$UO0025i -001ih0000000000005+c@$LcuaA|NaUukZ1WpZv|Y%g+Ub8l>QbZKvHFKlIJVPknOa%FRGY<6XGE^v8 -JO928D0~7!N00;mMXE#y+00002000000000l00000000000001_fyV;_0B~t=FJEbHbY*gGVQepQWpi -(Ab#!TOZZC3Wb8l>RWo&6;FJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~msZ5{xC8(I#S;JkD*ylh00 -00000000q=6O$0|0Poa4%nJZggdGZeeUMa%FRGY;|;LZ*DJgWpi(Ac4cg7VlQH0b7d}Yc~DCM0u%!j0 -000801jt2QXzA%h1?JT07Fgy05Jdn00000000000HlEz2?GFdX>c!JX>N37a&BR4FLGsbZ)|mRX>V>X -a%FRGY<6XAX<{#9VQyq;WMOn=b1rasP)h*<6ay3h000O84rez~oDzp!h7$k)0!jb?E&u=k000000000 -0q=7;j0|0Poa4%nJZggdGZeeUMa%FRGY;|;LZ*DJgWpi(Ac4cg7VlQT4V{~tFc`k5yP)h*<6ay3h000 -O84rez~;zM&cJ_P^(y$%2XHvj+t0000000000q=6JJ0|0Poa4%nJZggdGZeeUMa%FRGY;|;LZ*DJgWp -i(Ac4cg7VlQTIb#7!|V_|M&X=Gt^WpgfYc~DCM0u%!j0000801jt2Qtv<1Y6A)Y0IM7T051Rl000000 -00000HlGZGXnr{X>c!JX>N37a&BR4FLGsbZ)|mRX>V>Xa%FRGY<6XAX<{#Ma&LBNWMy(LaCuNm0Rj{Q -6aWAK2mlUeH&U6g5&e4u001cq001ul0000000000005+c_dNpuaA|NaUukZ1WpZv|Y%g+Ub8l>QbZKv -HFLGsbZ)|pDY-wUIa%FIDa&%>KE^v8JO928D0~7!N00;mMXE#y^$m3%H1pok17XSb=0000000000000 -1_fxkfm0B~t=FJEbHbY*gGVQepQWpi(Ab#!TOZZC3Wb8l>RWo&6;FLGsZb!l>CZDnqBb1rasP)h*<6a -y3h000O84rez~D`NAmy$t{WaxDM=F8}}l0000000000q=6Af0|0Poa4%nJZggdGZeeUMa%FRGY;|;LZ -*DJgWpi(Ac4cg7VlQ%Kb8l>RWpXZXc~DCM0u%!j0000801jt2QUCw|00IC20000003QGV0000000000 -0HlE%RRaKUX>c!JX>N37a&BR4FLiWjY;!MPUukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&VG`gs*V|002b -=0015U0000000000005+cT2%u8aA|NaUukZ1WpZv|Y%g_mX>4;ZVQ_F{X>xNeaCuNm0Rj{Q6aWAK2ml -UeH&VRA<~$S*000ps0012T0000000000005+c2Ur6DaA|NaUukZ1WpZv|Y%g_mX>4;ZV{dJ6VRSBVc~ -DCM0u%!j0000801jt2Qol?IK+OgK06G=`04V?f00000000000HlFdW&;3lX>c!JX>N37a&BR4FLiWjY -;!MTZ*6d4bZKH~Y-x0PUvyz-b1rasP)h*<6ay3h000O84rez~s4$j)v;Y7ACjkHe9{>OV0000000000 -q=9N}0|0Poa4%nJZggdGZeeUMb#!TLb1!6JbY*mDZDlTSc~DCM0u%!j0000801jt2Qi)w8=QafZ0QL+ -303rYY00000000000HlFiZUX>tX>c!JX>N37a&BR4FLiWjY;!MUWpHw3V_|e@Z*DGdc~DCM0u%!j000 -0801jt2QrWV>KU4((05T8&04V?f00000000000HlG@a{~ZyX>c!JX>N37a&BR4FLiWjY;!MUX>w&_bY -FFHY+q<)Y;a|Ab1rasP)h*<6ay3h000O84rez~gzWMdJ^}y$Mg;%>B>(^b0000000000q=9UC0|0Poa -4%nJZggdGZeeUMb#!TLb1!6Rb98ldX>4;}VRC14E^v8JO928D0~7!N00;mMXE##3(r;%+0ssI61poja -00000000000001_f$e((0B~t=FJEbHbY*gGVQepTbZKmJFJ*3HZ)9n1XD)DgP)h*<6ay3h000O84rez -~IAzW@YXSfOfCK;lA^-pY0000000000q=9jM0|0Poa4%nJZggdGZeeUMb#!TLb1!9XbaHucZ)t9Hb1r -asP)h*<6ay3h000O84rez~HhT4W`UwC49~%GwApigX0000000000q=6iP0|0Poa4%nJZggdGZeeUMb# -!TLb1!CTY-MwKb97~GE^v8JO928D0~7!N00;mMXE##(x~qzS0RR9`0{{RZ00000000000001_fmMqG0 -B~t=FJEbHbY*gGVQepTbZKmJFJ@_MWpsIPWpgfYc~DCM0u%!j0000801jt2Qlo#G%5nt&0O1S(02}}S -00000000000HlEvjROF1X>c!JX>N37a&BR4FLiWjY;!MXY-wU+E^v8JO928D0~7!N00;mMXE##a@#qL -62LJ%E6aWAn00000000000001_fxnUi0B~t=FJEbHbY*gGVQepTbZKmJFKA(NXk~LQaCuNm0Rj{Q6aW -AK2mlUeH&TzjdNZj3001fj001oj0000000000005+c9hw6GaA|NaUukZ1WpZv|Y%g_mX>4;ZX>Mv|V{ -~70Wn*=6Wpr|3ZgX&Na&#_mc~DCM0u%!j0000801jt2QeZ0^b7v0#03|a303HAU00000000000HlEto -C5%GX>c!JX>N37a&BR4FLiWjY;!McZ)ay|Zf7oVc~DCM0u%!j0000801jt2Qtdcc!JX>N37a&BR4FLiWjY;!MdX>(&PaCuNm0Rj{Q6aWAK2mlUeH&W-EFfED -!006NB0012T0000000000005+cgU$m0aA|NaUukZ1WpZv|Y%g_mX>4;ZZEs{{Y;!Jfc~DCM0u%!j000 -0801jt2QZ!uEA5a7U0Ne`z03ZMW00000000000HlFP&;tN)X>c!JX>N37a&BR4FLiWjY;!MgVPk7yXK -8L{E^v8JO928D0~7!N00;mMXE#!9$_d-j1ONa`4FCWi00000000000001_f!5Rm0B~t=FJEbHbY*gGV -QepTbZKmJFK}UUVQg$=Y%XwlP)h*<6ay3h000O84rez~9S6%m;Q;^u<^%u$Bme*a0000000000q=Dtx -0|0Poa4%nJZggdGZeeUMb#!TLb1!gfXJ2w4;Zb7gdOaCC2PY;#{?b!lv5E^v8JO92 -8D0~7!N00;mMXE#!1oA&p24FCXgDgXc>00000000000001_fr8-!0B~t=FJEbHbY*gGVQepTbZKmJFL -QNbaB^>BWpi^baCuNm0Rj{Q6aWAK2mlUeH&W^J*u6Om005050018V0000000000005+cIPU`haA|NaU -ukZ1WpZv|Y%g_mX>4;ZbY*RDUu0==E^v8JO928D0~7!N00;mMXE#zu%B76V0ssJc1pojY0000000000 -0001_fv)-k0B~t=FJEbHbY*gGVQepTbZKmJFLZfuX>MmOaCuNm0Rj{Q6aWAK2mlUeH&VfYvdxPM000m -r001BW0000000000005+cwfzGCaA|NaUukZ1WpZv|Y%g_mX>4;Zb#8EBV{2({XD)DgP)h*<6ay3h000 -O84rez~#*`TZvH}1A_XPj|8vp0D2Ap03iSX00000000000HlFw3j_dgX>c!JX>N37a&BR4FLiWjY -;!MmX>xRRVQgh?b}n#vP)h*<6ay3h000O84rez~2-ge*B?$lkha3O^8~^|S0000000000q=6n01ORYp -a4%nJZggdGZeeUMb#!TLb1!#jWo2wGaCuNm0Rj{Q6aWAK2mlUeH&S2j!BI^C003zM0012T000000000 -0005+ceHsJ+aA|NaUukZ1WpZv|Y%g|Wb1z?CX>MtBUtcb8c~DCM0u%!j0000801jt2QrzN6rC|jC0I& -}L02=@R00000000000HlEh90UMxX>c!JX>N37a&BR4FLq;dFJfVOVPSGEaCuNm0Rj{Q6aWAK2mlUeH& -QRe`kFx!008ei000;O0000000000005+cpCJSQaA|NaUukZ1WpZv|Y%g|Wb1!FUbS`jtP)h*<6ay3h0 -00O84rez~yRbJTf(8HpycGZd9smFU0000000000q=6PR1ORYpa4%nJZggdGZeeUMc4KodZDn#}b#iH8 -Y%XwlP)h*<6ay3h000O84rez~X?3OOG!Fm(4lw`#9{>OV0000000000q=D2r1ORYpa4%nJZggdGZeeU -Mc4Kodb9G{NWpZc!JX>N37a&BR4FLq;dFLq^eb7^mGV{dMBa&K%daCuNm0Rj{Q6aWAK2mlUeH&RJA`g}YF006WS00 -0*N0000000000005+c=wbu_aA|NaUv_0~WN&gWUtei%X>?y-E^v8JO928D0~7!N00;mMXE##1UmwR}6 -aWA-WdHyc00000000000001_fmvw;0B~t=FJE?LZe(wAFJW+SWNC79E^v8JO928D0~7!N00;mMXE##v -_P~6v6951cLI40700000000000001_f$x0;0B~t=FJE?LZe(wAFJo_RbY*ySY-wULE^v8JO928D0~7! -N00;mMXE#!G9*ho&CjbC!ssI2L00000000000001_f!2`(0B~t=FJE?LZe(wAFJx(RbaHPlaCuNm0Rj -{Q6aWAK2mlUeH&R|L5@CWn0009x0RR{P0000000000005+clDPx`aA|NaUv_0~WN&gWX>eg=WO8M5b1 -rasP)h*<6ay3h000O84rez~1`i|L^ZNh*@+$-Y7ytkO0000000000q=8EH1ORYpa4%nWWo~3|axZXsa -A9(DX>MmOaCuNm0Rj{Q6aWAK2mlUeH&P*cyb8|=008tR000*N0000000000005+cbMXZLaA|NaUv_0~ -WN&gWa%FUKd1-EEE^v8JO928D0~7!N00;mMXE#!EfhZcPAOHYwg#Z8&00000000000001_fp_}_0B~t -=FJE?LZe(wAFLP;lE^v8JO928D0~7!N00;mMXE#!Rer%%>0RRBC0RR9N00000000000001_fl(X=0B~ -t=FJE?LZe(wAFLq^aWN&gVba-@7O928D0~7!N00;mMXE#z>_@eQw0000k0RR9b00000000000001_ft -MWy0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gD5X>MtBUtcb8c~DCM0u%!j0000801jt2Qc9b7rvd^10 -1pKK03ZMW00000000000HlG19tHq#X>c!Jc4cm4Z*nhVVPj}zV{dMBa&K%eUt?`#E^v8JO928D0~7!N -00;mMXE#zuX&48Q1pojN6951s00000000000001_fyE#O0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gJ -CVQ_S1axQRrP)h*<6ay3h000O84rez~#$vopG64VpB?ABeApigX0000000000q=AZgg^QY%gPPZE#_9E^v8JO928D0~7!N00;mMXE#!o{%>s%5 -C8y0Hvj-800000000000001_fm$gB0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gPPZgg^QY;0w6E^v8J -O928D0~7!N00;mMXE##w(f%6x0{{T!2><{m00000000000001_fv!0Q0B~t=FJE?LZe(wAFJob2Xk}w ->Zgg^QY%gYMY-M+HVQ_F|axQRrP)h*<6ay3h000O84rez~lqGFmuLS@A<_`b>CIA2c0000000000q=D -@{1^{qra4%nWWo~3|axY_HV`yb#Z*FvQZ)`7UWp#3Cb98BAb1rasP)h*<6ay3h000O84rez~x5&L(7z -qFXvl{>aB>(^b0000000000q=Dc=1^{qra4%nWWo~3|axY_HV`yb#Z*FvQZ)`7fWpZg@Y-xIBE^v8JO -928D0~7!N00;mMXE#!(J-O2E000280ssIb00000000000001_fjdnG0B~t=FJE?LZe(wAFJob2Xk}w> -Zgg^QY%h0mVQ_F|axQRrP)h*<6ay3h000O84rez~8NawNHvj+tRsaA1D*ylh0000000000q=9Nq1^{q -ra4%nWWo~3|axY_HV`yb#Z*FvQZ)`7PVPj}zb1z?CX>MtBUtcb8c~DCM0u%!j0000801jt2QvA*@$q5 -Dk067o<04)Fj00000000000HlHHP6hyQX>c!Jc4cm4Z*nhVVPj}zV{dMBa&K%eV_{=xWpgiPX>4U*V_ -{=xWiD`eP)h*<6ay3h000O84rez~sK-IyX8`~JSOWk6E&u=k0000000000q=7zF1^{qra4%nWWo~3|a -xY_HV`yb#Z*FvQZ)`7PVPj}zb1!mbWNC9>V_{=xWiD`eP)h*<6ay3h000O84rez~2s3VmKmY&$J^%m! -9{>OV0000000000q=E5P1^{qra4%nWWo~3|axY_La&&2CX)j-2X>MtBUtcb8c~DCM0u%!j0000801jt -2QZFE_;hq2h0RI3003QGV00000000000HlF#R|WuZX>c!Jc4cm4Z*nhVWpZ?BW@#^9Uu|J&ZeL$6aCu -Nm0Rj{Q6aWAK2mlUeH&P?gS87#E0ssh11OOfY0000000000005+cNmvE|aA|NaUv_0~WN&gWV`Xx5X= -Z6JV_{=ua&#_mWo=MP0Rj{Q6aWAK2mlUeH&XebIvU;s000XK000{R0000000000005+c+N1~oaA|NaU -v_0~WN&gWV`Xx5X=Z6JV{dY0E^v8JO928D0~7!N00;mMXE##t&ks}N0ssIP1^@sb00000000000001_ -f$^va0B~t=FJE?LZe(wAFJow7a%5$6FJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~IlqJu?>PVf7J2{ -x9{>OV0000000000q=6Ew2mo+ta4%nWWo~3|axY_OVRB?;bT49QXEkPWWpOTWc~DCM0u%!j0000801j -t2Qp@LOW;_D`0Nn-v03iSX00000000000HlFF<_G|AX>c!Jc4cm4Z*nhVXkl_>WppoMX=gQXa&KZ~ax -QRrP)h*<6ay3h000O84rez~;8`d=JqZ8+!z2IzCjbBd0000000000q=C8V2mo+ta4%nWWo~3|axY_OV -RB?;bT4CQVRB??b98cPVs&(BZ*DGdc~DCM0u%!j0000801jt2Qi)k4h;jq~0Lu;l04V?f0000000000 -0HlFC^9TTNX>c!Jc4cm4Z*nhVXkl_>WppoNXkl`5Wprn9Z*_2Ra&KZ~axQRrP)h*<6ay3h000O84rez -~;Fn=qzXt#S_7eaABme*a0000000000q=EGJ2mo+ta4%nWWo~3|axY_OVRB?;bT4CQVRCb2bZ~NSVr6 -nJaCuNm0Rj{Q6aWAK2mlUeH&R^tH%O!f000IK001cf0000000000005+c_5TO}aA|NaUv_0~WN&gWV` -yP=WMyZfA3JVRU6}VPj}%Ze=cTc~DCM0u%!j0000801jt2QhbKxWk~`60B!^T0384T000000 -00000HlH71qlFfX>c!Jc4cm4Z*nhVXkl_>WppoNZ*6d4bS`jtP)h*<6ay3h000O84rez~y+WEXXafKM -KL-E+A^-pY0000000000q=94z2>@_ua4%nWWo~3|axY_OVRB?;bT4CYIW#$Na&KZ~axQRrP)h*<6ay3 -h000O84rez~L@_ua4%nWWo~3|axY_OVRB?;bT4IYb!~ -GlaCuNm0Rj{Q6aWAK2mlUeH&O(M1wAzd003?e001BW0000000000005+c1`i1UaA|NaUv_0~WN&gWV` -yP=WMy@_ua4%nWWo~3|axY_OVRB?;bT4IdV{>gTaCuNm0Rj{Q6aWAK2mlUeH&P%s#Ly}Q005;9001HY00000 -00000005+c#~KL$aA|NaUv_0~WN&gWV`yP=WMy008PV001BW0000000000005+cF(3&5aA|NaUv_0~WN&gWV`yP=WMyl2>@_ua4%nWWo~3|axY_OVRB?;bT -4IfV{3A7a&KZ~axQRrP)h*<6ay3h000O84rez~%-c!TGdchOg?j)1AOHXW0000000000q=8602>@_ua -4%nWWo~3|axY_OVRB?;bT4IfV{~_Ba%FKYaCuNm0Rj{Q6aWAK2mlUeH&UQMjTkrs007el001HY00000 -00000005+cxpoNvaA|NaUv_0~WN&gWV`yP=WMyc!Jc4cm4Z*nhVXkl_>Wp -poRVlp!^GH`NlVr6nJaCuNm0Rj{Q6aWAK2mlUeH&P8L)3TWo000g)001KZ0000000000005+cN~H+^a -A|NaUv_0~WN&gWV`yP=WMypj -00000000000001_fh4#I0B~t=FJE?LZe(wAFJow7a%5$6FKTIXW^!e5E^v8JO928D0~7!N00;mMXE#y -?c_nI26953aOaK5K00000000000001_fpzE!0B~t=FJE?LZe(wAFJow7a%5$6FKTdOZghAqaCuNm0Rj -{Q6aWAK2mlUeH&XCu$;u!L001X4001cf0000000000005+c{`(04aA|NaUv_0~WN&gWV`yP=WMyc!Jc4cm4Z*nhVXkl_>WppoWVQyz*d2(rNY-wX{Z)9a`E^v8JO928D0~7!N00;mMXE##*yRRu~ -2><|)F#rH100000000000001_fvpn?0B~t=FJE?LZe(wAFJow7a%5$6FKl6MXJ>L{WovD3WMynFaCuN -m0Rj{Q6aWAK2mlUeH&Tygtr)!t002=e001Tc0000000000005+cS{(`iaA|NaUv_0~WN&gWV`yP=WMy -c!Jc4cm4Z*nhVXkl_>WppoWVQy!1Xklq>Z)9a`E^v8J -O928D0~7!N00;mMXE#!{GQ(uZ3IG6JD*yl|00000000000001_fvY_V0B~t=FJE?LZe(wAFJow7a%5$ -6FKl6MXLNOPYiV<6ZEs{{Y%XwlP)h*<6ay3h000O84rez~AWpXZXc~DCM0u%!j0000801jt2QZ{uMP2B_l09 -6eD044wc00000000000HlGCPYM8VX>c!Jc4cm4Z*nhVXkl_>WppoXVq<7wa&u*LaB^>AWpXZXc~DCM0 -u%!j0000801jt2QmxYwsB!}U0Ne)v044wc00000000000HlGjR0;raX>c!Jc4cm4Z*nhVXkl_>WppoX -Vqa&L8TaB^>AWpXZXc~DCM0u%!j0000801jt2Qfc<#59JI10EuG&0384T00000000000HlFuSPB4 -eX>c!Jc4cm4Z*nhVXkl_>WppoXVqP6Z*_2Ra -&KZ~axQRrP)h*<6ay3h000O84rez~){$p2AO!#bz77BYApigX0000000000q=7SX3IK3va4%nWWo~3| -axY_OVRB?;bT4yiX>)LLZ(?O~E^v8JO928D0~7!N00;mMXE#!HfJZ%W4FCYeFaQ8300000000000001 -_fs%I$0B~t=FJE?LZe(wAFJow7a%5$6FLiEdc4cyNVQge&bY)|7Z*nehc~DCM0u%!j0000801jt2QuV -*QJw*fn0L}^k03iSX00000000000HlFPg$e+0X>c!Jc4cm4Z*nhVXkl_>WppofbY?hka&KZ~axQRrP) -h*<6ay3h000O84rez~N5_!Yxc~qF@&Et;9smFU0000000000q=C$d3IK3va4%nWWo~3|axY_OVRB?;b -T4*ga&u{KZZ2?nP)h*<6ay3h000O84rez~lLpr^0{{R30RR91BLDyZ0000000000q=CVT3IK3va4%nW -Wo~3|axY_OVRB?;bT4CUX)j-2X>MtBUtcb8c~DCM0u%!j0000801jt2QuijbpP&Q)0M-fs03`qb0000 -0000000HlEhiwXd6X>c!Jc4cm4Z*nhVXkl_>WppoNY-ulJXkl_>Wprg@bS`jtP)h*<6ay3h000O84re -z~hKOs`vj6}9?*IS*AOHXW0000000000q=D#<3IK3va4%nWWo~3|axY_VY;SU5ZDB88UukY>bYEXCaC -uNm0Rj{Q6aWAK2mlUeH&RmBt%iyN007zv000~S0000000000005+c*^mkVaA|NaUv_0~WN&gWV{dG4a -$#*@FJW$TX)bViP)h*<6ay3h000O84rez~%fu1WaSH$d6)6A!BLDyZ0000000000q=B833IK3va4%nW -Wo~3|axY_VY;SU5ZDB8AZgXjLZ+B^KGcqo4c~DCM0u%!j0000801jt2QX6kYa)SZ@0DA`j03rYY0000 -0000000HlFWpb7wRX>c!Jc4cm4Z*nhVZ)|UJVQpbAX>MtBX<=+>b7d}Yc~DCM0u%!j0000801jt2QV1 -Ii5l{sH02~zn0384T00000000000HlEuqY40UX>c!Jc4cm4Z*nhVZ)|UJVQpbAcWG`jGA?j=P)h*<6a -y3h000O84rez~qA1qp?ganOV0000000000q=B8N3IK3va4%nWWo~3|axY_VY;SU5ZDB8WX ->N37a&0bfc~DCM0u%!j0000801jt2QhKgaH(db$07U`-03QGV00000000000HlG)t_lEfX>c!Jc4cm4 -Z*nhWX>)XJX<{#5UukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&T>|r7Jco006+D0012T0000000000005+ -cVz3GTaA|NaUv_0~WN&gWWNCABY-wUIV{dJ6VRSBVc~DCM0u%!j0000801jt2Qiecd{P-^b0CUFx03Q -GV00000000000HlG_+X?`1X>c!Jc4cm4Z*nhWX>)XJX<{#AVRT_)VRL0JaCuNm0Rj{Q6aWAK2mlUeH& -UOcF3d9(002r-000~S0000000000005+c2n-7VaA|NaUv_0~WN&gWWNCABY-wUIX>Md?crI{xP)h*<6 -ay3h000O84rez~RZ%J}b29({gv$T`9{>OV0000000000q=9uI3jlCwa4%nWWo~3|axY|Qb98KJVlQlO -V_|e}a&sRSN)cX>c!Jc4cm -4Z*nhWX>)XJX<{#JVQy(=Wpi{caCuNm0Rj{Q6aWAK2mlUeH&V8@h-L!@001Kq0015U0000000000005 -+c&SeV#aA|NaUv_0~WN&gWWNCABY-wUIZDDe2WpZ;aaCuNm0Rj{Q6aWAK2mlUeH&Q_wVBe)A001(W00 -18V0000000000005+c4QvYlaA|NaUv_0~WN&gWWNCABY-wUIZDn*}WMOn+E^v8JO928D0~7!N00;mMX -E#!g-GmaT3jhEPDgXc=00000000000001_f$xwD0B~t=FJE?LZe(wAFJx(RbZlv2FLGsbZ*_8GWpgfY -c~DCM0u%!j0000801jt2QvDpYIGYpz031UA03HAU00000000000HlG{oC^SOX>c!Jc4cm4Z*nhWX>)X -JX<{#PV{&P5baO6nc~DCM0u%!j0000801jt2Qm}y50++b}004Rc02=@R00000000000HlGeu?qljX>c -!Jc4cm4Z*nhWX>)XJX<{#QGcqn^cx6ya0Rj{Q6aWAK2mlUeH&S^abMBJK0001<0RS5S000000000000 -5+cd}|BPy50 -0000000000001_fk!nB0B~t=FJE?LZe(wAFJx(RbZlv2FLiWjY%XwlP)h*<6ay3h000O84rez~_Gl<9 -P8k3IUt0hG9smFU0000000000q=Dyj4FGUya4%nWWo~3|axY|Qb98KJVlQ@Oa&u{KZZ2?nP)h*<6ay3 -h000O84rez~92gG9H?RNz0AK+C8vpc!Jc4cm4Z*nhWX> -)XJX<{#THZ(3}cx6ya0Rj{Q6aWAK2mlUeH&Wyix*TXH006k4000~S0000000000005+cf&UHwaA|NaU -v_0~WN&gWWNCABY-wUIcW7m0Y%XwlP)h*<6ay3h000O84rez~BkyPY!vFvP5&-}JDF6Tf0000000000 -q=6$R4*+m!a4%nWWo~3|axY|Qb98KJVlQ7}VPk7>Z*p`mUtei%X>?y-E^v8JO928D0~7!N00;mMXE#! ->iZ5l(0RRBY0{{Re00000000000001_fh{Nx0B~t=FJE?LZe(wAFJx(RbZlv2FJEF|V{344a&#|kX>( -&PaCuNm0Rj{Q6aWAK2mlUeH&Vtq2Gda-003)b001Wd0000000000005+cJ}M6YaA|NaUv_0~WN&gWWN -CABY-wUIUt(cnYjAIJbT4ygb#!TLE^v8JO928D0~7!N00;mMXE#!B767gG0RR9w3IG5r00000000000 -001_fz(D10B~t=FJE?LZe(wAFJx(RbZlv2FJEF|V{344a&#|qd2?fLZf0p`E@NhAP)h*<6ay3h000O8 -4rez~{(0-8sU83T=4b!_DgXcg0000000000q=6Gj4*+m!a4%nWWo~3|axY|Qb98KJVlQ7}VPk7>Z*p` -mb9r-PZ*FF3XD)DgP)h*<6ay3h000O84rez~L_!}!Vp#wH)M)_#C;$Ke0000000000q=5uz4*+m!a4% -nWWo~3|axY|Qb98KJVlQ7}VPk7>Z*p`mbYXI4X>4UKaCuNm0Rj{Q6aWAK2mlUeH&Th0Z>U59004*t00 -1BW0000000000005+cticZeaA|NaUv_0~WN&gWXmo9CHEd~OFJE72ZfSI1UoLQYP)h*<6ay3h000O84 -rez~%BL;iEffF%SU~^)ApigX0000000000q=7EP4*+m!a4%nWWo~3|axZ9fZEQ7cX<{#5X=q_|Wq56D -E^v8JO928D0~7!N00;mMXE#!cHW57z9{>PhegFU@00000000000001_ftuJ40B~t=FJE?LZe(wAFKBd -aY&C3YVlQ85Zg6#Ub98cLVQnsOc~DCM0u%!j0000801jt2QZ)|XZBHEl0PrjU03rYY00000000000Hl -HH_YVMYX>c!Jc4cm4Z*nhabZu-kY-wUIUvzJ4Wo~JDWpXZXc~DCM0u%!j0000801jt2QjXJ!N!c!Jc4cm4Z*nhabZu-kY-wUIUv+e8Y;!Jfc~DCM0u%!j000080 -1jt2Qd=?uCO}9400>3_03iSX00000000000HlGE91s9-X>c!Jc4cm4Z*nhabZu-kY-wUIV{dMAbYX6E -b1rasP)h*<6ay3h000O84rez~v8%nG-$Vca!pQ*uBLDyZ0000000000q=6A-5CCv#a4%nWWo~3|axZ9 -fZEQ7cX<{#EbZu-kaA9(DWpXZXc~DCM0u%!j0000801jt2QiyZe;kpn20FONY03rYY00000000000Hl -F2st^EhX>c!Jc4cm4Z*nhabZu-kY-wUIb7gXAVQgu7WpXZXc~DCM0u%!j0000801jt2QqtvJR9XN40B -ryO044wc00000000000HlE{yAS|yX>c!Jc4cm4Z*nhabZu-kY-wUIUvzS5WiMY}X>MtBUtcb8c~DCM0 -u%!j0000801jt2QW+ZOfu;cf0QCa^03!eZ00000000000HlG*yAS|yX>c!Jc4cm4Z*nhabZu-kY-wUI -UvzS5WiMZ1VRL0JaCuNm0Rj{Q6aWAK2mlUeH&RPaZq6M7008d>001BW0000000000005+cu)PofaA|N -aUv_0~WN&gWXmo9CHEd~OFJE+WX=N{Pc`k5yP)h*<6ay3h000O84rez~000000ssI200000C;$Ke000 -0000000q=5^-5CCv#a4%nWWo~3|axZ9fZEQ7cX<{#CX>4?5a&s?VUukY>bYEXCaCuNm0Rj{Q6aWAK2m -lUeH&TGG1Q5aj005T*001@s0000000000005+cQ@{`aaA|NaUv_0~WN&gWXmo9CHEd~OFJ@_MbY*gLF -JWwOXklVybZKK@Y+-bCa%p09bY*icaCuNm0Rj{Q6aWAK2mlUeH&P;i`^1$10015V001Na0000000000 -005+cX~GZyaA|NaUv_0~WN&gWXmo9CHEd~OFJ@_MbY*gLFJfVHWiD`eP)h*<6ay3h000O84rez~^T0n -B76SkPfeQctGXMYp0000000000q=7)g5CCv#a4%nWWo~3|axZ9fZEQ7cX<{#CX>4?5a&s?fZfa#?bYE ->{bYWj(Xkl`5WpplZc~DCM0u%!j0000801jt2Qj*bRplkyG06Pu<03-ka00000000000HlGZ#t;B-X> -c!Jc4cm4Z*nhabZu-kY-wUIW@&76WpZ;bY-w(EE^v8JO928D0~7!N00;mMXE#z8b($*W1^@tDDF6U00 -0000000000001_fmO;70B~t=FJE?LZe(wAFKBdaY&C3YVlQTCY;c!Jc4cm4Z*nhabZu-kY-wU -IW@&76WpZ;bb75|2bZL5JaxQRrP)h*<6ay3h000O84rez~U~>Nt^#K3?z61aODgXcg0000000000q=D -4w5CCv#a4%nWWo~3|axZ9fZEQ7cX<{#CX>4?5a&s?tXlZn1b8ul}WiD`eP)h*<6ay3h000O84rez~o; -h(^X8`~Jrvd-~EdT%j0000000000q=6Ca5CCv#a4%nWWo~3|axZ9fZEQ7cX<{#Qa%E*?y-E^v8JO928D0~7!N00;mMXE#z(j1ehR0ssKB1^@sn00000000000001_fy3<(0B~t=FJE?L -Ze(wAFKBdaY&C3YVlQ-ZWo2PxVQ_S1a&s?dWo~n5X)bViP)h*<6ay3h000O84rez~fN80hL;?T+@CE< -?C;$Ke0000000000q=8`Y5CCv#a4%nWWo~3|axZ9fZEQ7cX<{#Qa%E*hcf(aA|NaUv_0~WN&gWXmo9CHEd~OFL -ZKcWny({Y-D9}b1z?CX>MtBUtcb8c~DCM0u%!j0000801jt2Qa(Ot{PGR}0OdFU04V?f00000000000 -HlG4_z(baX>c!Jc4cm4Z*nhabZu-kY-wUIbaG{7Vs&Y3WMy)5FJfVHWiD`eP)h*<6ay3h000O84rez~ -Pz0y3{|5j7-68-0C;$Ke0000000000q=CT)5dd&$a4%nWWo~3|axZ9fZEQ7cX<{#Qa%E*=b!lv5WpZ; -bWN&RQaCuNm0Rj{Q6aWAK2mlUeH&RWl(1%hA001O1001fg0000000000005+c1`rVdaA|NaUv_0~WN& -gWXmo9CHEd~OFLZKcWny({Y-D9}b1!9da%E*MaCuNm0Rj{Q6aWAK2mlUeH&U?~w}2TA006Ez001ul00 -00000000005+cpc)YXaA|NaUv_0~WN&gWXmo9CHEd~OFLZKcWny({Y-D9}b1!9da%E*-YMtBUtcb8c~DCM0u%!j0000801jt2QXwtcLKg=B05lx{04M+e000000000 -00HlHLFA)H6X>c!Jc4cm4Z*nhabZu-kY-wUIbaG{7cVTR6WpZ;bVqtS-E^v8JO928D0~7!N00;mMXE# -!1if^g+0RRAn1poji00000000000001_flD_L0B~t=FJE?LZe(wAFKBdaY&C3YVlQ-ZWo36^Y-?q5b1 -!6XZ7y(mP)h*<6ay3h000O84rez~*3ZX7>jVG*#}NPkDF6Tf0000000000q=APy5dd&$a4%nWWo~3|a -xZ9fZEQ7cX<{#Qa%E+AVQgz<{p00000000000001_fqq310B~t=FJE?LZe(wAFKBdaY&C3YVlQ --ZWo36^Y-?q5b1!FQZgXg9E^v8JO928D0~7!N00;mMXE#y+M_ijT0000w0000S00000000000001_fs -RNK0B~t=FJE?LZe(wAFKJ|MVJ}}_X>MtBUtcb8c~DCM0u%!j0000801jt2Qu9dE=^6t70OJe*02u%P0 -0000000000HlHYND%;VX>c!Jc4cm4Z*nhbWNu+EV{c?-V=i!cP)h*<6ay3h000O84rez~e1Vp5j{pDw -=l}o!8UO$Q0000000000q=8IK5dd&$a4%nWWo~3|axZCQZecHDZ*6d4bS`jtP)h*<6ay3h000O84rez -~9Gf&OEDHbtuPy)p7ytkO0000000000q=6Gn5dd&$a4%nWWo~3|axZCQZecHDZ*pZWaCuNm0Rj{Q6aW -AK2mlUeH&WNEN;GdH003^K000~S0000000000005+cbyyJqaA|NaUv_0~WN&gWX=H9;FKJ|MVPs)+VJ ->iaP)h*<6ay3h000O84rez~w`26O<^li!)dm0n9RL6T0000000000q=6oM5dd&$a4%nWWo~3|axZCQZ -ecHJZgg^CZf9k4E^v8JO928D0~7!N00;mMXE#zE)NA(`0000M0000W00000000000001_fj@r{0B~t= -FJE?LZe(wAFKJ|MVJ~oDV{2h&WnW}rbYU)Vc~DCM0u%!j0000801jt2Qa&?DR_T@i0Av*d0384T0000 -0000000HlGHe-Qw1X>c!Jc4cm4Z*nhbWNu+Eb#!wyHe_LRVJ>iaP)h*<6ay3h000O84rez~jVD)F-~j -*tUIYLD9{>OV0000000000q=C5>5&&>%a4%nWWo~3|axZOjXK-O-YcF44X>MtBUtcb8c~DCM0u%!j00 -00801jt2QeP}9#1sGk02BZK03QGV00000000000HlG|7!m+*X>c!Jc4cm4Z*nhfb7yd2V{0#8c4cyNX ->V>WaCuNm0Rj{Q6aWAK2mlUeH&Q!0oztxW0021z001EX0000000000005+cCm9j|aA|NaUv_0~WN&gW -ZF6UEVPk7AWq4y{aCB*JZgVbhc~DCM0u%!j0000801jt2Qf{7W5A+5A0FoB~02%-Q00000000000HlE -v8xjC;X>c!Jc4cm4Z*nhfb7yd2V{0#Ecyumsc~DCM0u%!j0000801jt2QcuxS4dxsG01c4<03QGV000 -00000000HlFGA`$>_X>c!Jc4cm4Z*nhfb7yd2V{0#FVQg$-VPk79aCuNm0Rj{Q6aWAK2mlUeH&WCfhB -Ar)007nk001HY0000000000005+cVm}f9aA|NaUv_0~WN&gWaA9L>VP|P>XD?r0VPbD}bYEXCaCuNm0 -Rj{Q6aWAK2mlUeH&SIA5kwRL001%q001EX0000000000005+cEI|?gaA|NaUv_0~WN&gWaA9L>VP|P> -XD?r0X>MtBUtcb8c~DCM0u%!j0000801jt2QW{DFdO`vK0B8gN03ZMW00000000000HlF`LJ|OQX>c! -Jc4cm4Z*nhiVPk7yXK8L{FJEJCZE#_9E^v8JO928D0~7!N00;mMXE##nUHsRc0RRBz2LJ#h00000000 -000001_f&WAj0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rFb98cbV{~c!Jc4cm4Z*nhiVPk7yXK8L{FJE+daA|I5E^v8JO -928D0~7!N00;mMXE#!4MAZm>3jhEUB>(^*00000000000001_frLsD0B~t=FJE?LZe(wAFK}UFYhh<; -Zf7rTVRCC_a&sc! -Jc4cm4Z*nhiVPk7yXK8L{FLGsZb!l>CZDnqBb1rasP)h*<6ay3h000O84rez~V>>}gWE%hg(0u>^BLD -yZ0000000000q=EKb5&&>%a4%nWWo~3|axZXUV{2h&X>MmPb8uy2X=Z6c!Jc4cm4Z*nhiVPk7yXK8L{FLYsNb1rasP -)h*<6ay3h000O84rez~HcnId6$1bOdj|jj9smFU0000000000q=7%05&&>%a4%nWWo~3|axZXUV{2h& -X>MmPb#!TLb1rasP)h*<6ay3h000O84rez~IZ_JKY7hVbW%a4%n -WWo~3|axZXUV{2h&X>MmPc4cyNX>V>WaCuNm0Rj{Q6aWAK2mlUeH&VBWHLZ34004mi0015U00000000 -00005+cIIa=^aA|NaUv_0~WN&gWaAj~cF*h$?UukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&Pzth#3S500 -8zN001EX0000000000005+c>aG$1aA|NaUv_0~WN&gWaAj~cF*h$?X>MO|a&Kd0b8{|mc~DCM0u%!j0 -000801jt2QXq3Ozv~1500#{K02=@R00000000000HlE}xe@?yX>c!Jc4cm4Z*nhiWpFhyH!os!X>4RJ -aCuNm0Rj{Q6aWAK2mlUeH&S-7_fd%j002oB000{R0000000000005+cQN9uYaA|NaUv_0~WN&gWaAj~ -cF*h$`Xk}w-E^v8JO928D0~7!N00;mMXE#y}u~yKE1^@s85C8xk00000000000001_ffK|M0B~t=FJE -?LZe(wAFK}gWH8D3YV{dG4a%^vBE^v8JO928D0~7!N00;mMXE##H7hMc30RR9D0{{RV000000000000 -01_f!WFu0B~t=FJE?LZe(wAFK}gWH8D3YV{dJ6VRSBVc~DCM0u%!j0000801jt2QajJMM$Z8N0BHmO0 -3HAU00000000000HlFH%n|@_X>c!Jc4cm4Z*nhiWpFhyH!oyqa&&KRY;!Jfc~DCM0u%!j0000801jt2 -Ql<(;Xb=bh0GSs603HAU00000000000HlFS&JqA{X>c!Jc4cm4Z*nhiWpFhyH!o#wc4BpDY-BEQc~DC -M0u%!j0000801jt2QkT2w-q8a90G|l}02%-Q00000000000HlGJ))D}4X>c!Jc4cm4Z*nhiWpFhyH!p -2vbYU)Vc~DCM0u%!j0000801jt2Ql_SJ0+0*<02(X+03HAU00000000000HlGS+7bY8X>c!Jc4cm4Z* -nhiWpFhyH!pW`VQ_F|a&sc!Jc4cm4Z*nhiYiD0_Wpi(Ja${w4FJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~VI%|AO921? -G6DbqCjbBd0000000000q=9o=698~&a4%nWWo~3|axZXeXJ2wc!Jc4cm4Z*nhia&KpHWpi -^cUtei%X>?y-E^v8JO928D0~7!N00;mMXE#!p%(b|t1ONag3jhEc00000000000001_fvsZ`0B~t=FJ -E?LZe(wAFK}{iXL4n8b1!0HaxQRrP)h*<6ay3h000O84rez~c;LB#@d5wOV0000000000q -=AfR698~&a4%nWWo~3|axZXlZ)b94b8|0aZ*^{TWpXZXc~DCM0u%!j0000801jt2QZL}$x(WjT0AvLK -03QGV00000000000HlGsYZCx)X>c!Jc4cm4Z*nhia&KpHWpi^cb8u;HZe?;VaCuNm0Rj{Q6aWAK2mlU -eH&P24^JL-%0040j001BW0000000000005+c0dErkaA|NaUv_0~WN&gWa%FLKWpi|MFJE72ZfSI1UoL -QYP)h*<6ay3h000O84rez~XU82k1_1y7xd8wGBLDyZ0000000000q=6xJ698~&a4%nWWo~3|axZdaad -l;LbaO9XUv_13b7^mGUtcb8c~DCM0u%!j0000801jt2Qi!QJyA%Qd07wJ?04D$d00000000000HlFvc -M||`X>c!Jc4cm4Z*nhkWpQ<7b98erUukZ1WpZv|Y+rSBX>4;YaCuNm0Rj{Q6aWAK2mlUeH&UEAE<}tJ -001mh001BW0000000000005+c!Fdw^aA|NaUv_0~WN&gWa%FLKWpi|MFJWY1aCBvIb1rasP)h*<6ay3 -h000O84rez~wi2;va0UPXU>N`a8vpc!Jc4cm4Z*nhkWp -Q<7b98erVRdw9E^v8JO928D0~7!N00;mMXE#!UvZBu}0RRBe0RR9U00000000000001_f#IMN0B~t=F -JE?LZe(wAFLGsZb!BsOb1!3Ma&&VpaCuNm0Rj{Q6aWAK2mlUeH&U-=f^_5p008|50015U0000000000 -005+cN}>}0aA|NaUv_0~WN&gWa%FLKWpi|MFJo_QaA9;VaCuNm0Rj{Q6aWAK2mlUeH&VSP7dpTb0090 -+0018V0000000000005+cYNZnZaA|NaUv_0~WN&gWa%FLKWpi|MFJo_SYiVV3E^v8JO928D0~7!N00; -mMXE#!ZU)3=;1ONbK3;+Nk00000000000001_foHiB0B~t=FJE?LZe(wAFLGsZb!BsOb1!9hV`Xr3X> -V?GE^v8JO928D0~7!N00;mMXE#!^+ -X>c!Jc4cm4Z*nhkWpQ<7b98erXm4+8b1rasP)h*<6ay3h000O84rez~-MIw5VI}|oMTP(X9smFU0000 -000000q=6R1698~&a4%nWWo~3|axZdaadl;LbaO9lZ)9a`b1rasP)h*<6ay3h000O84rez~5Q698~&a4%nWWo~3|axZdaadl;LbaO9oVPk7yXJvCPaCuNm0Rj{Q6a -WAK2mlUeH&VB@y5=$=006gj001BW0000000000005+cTNBme*a0000000000q=C#06aa8(a4%nWWo~3| -axZdaadl;LbaO9rbYXOLb6;a`WMy+MaCuNm0Rj{Q6aWAK2mlUeH&O_VwcmUM006xU001HY000000000 -0005+cn-mlPaA|NaUv_0~WN&gWa%FLKWpi|MFLQKqbz^jOa%FQaaCuNm0Rj{Q6aWAK2mlUeH&STX&TW -Jx005JA0012T0000000000005+cR~ZxlaA|NaUv_0~WN&gWa%FLKWpi|MFLiWjY;!Jfc~DCM0u%!j00 -00801jt2QeU%QiP!)D02u-R03rYY00000000000HlEyKNJ9PX>c!Jc4cm4Z*nhkWpi(Ac4cg7VlQ7`X ->MtBUtcb8c~DCM0u%!j0000801jt2Qgeu2FWm+J0OJz?03!eZ00000000000HlE~KokIQX>c!Jc4cm4 -Z*nhkWpi(Ac4cg7VlQxVZ+2;9WpZ;aaCuNm0Rj{Q6aWAK2mlUeH&V+1U)|~f002}4001KZ000000000 -0005+cOh*&|aA|NaUv_0~WN&gWa%FRGY<6XAX<{#OWpHnDbY*gLE^v8JO928D0~7!N00;mMXE##95fF -R#5dZ+1KmY(E00000000000001_fpRW -o&6;FLQKqbz^jME^v8JO928D0~7!N00;mMXE#y+00002000000000f00000000000001_f!$yf0B~t= -FJE?LZe(wAFLGsbZ)|pDY-wUIV{dJ6VRSEFUukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&S6#x$08@004g -g001xm0000000000005+cCSeo+aA|NaUv_0~WN&gWa%FRGY<6XAX<{#9Z*6d4bT4CXY;0v?bZKvHb6; -U%V=i!cP)h*<6ay3h000O84rez~OPmnL5CH%H>jD4(8~^|S0000000000q=Cm_6aa8(a4%nWWo~3|ax -ZjmZEP=JUukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&P5AGm6U~001hO000{R0000000000005+c5n~hpa -A|NaUv_0~WN&gWbZ>2JFJxt7Z)9b1E^v8JO928D0~7!N00;mMXE#z0rQ{f@3IG7?CIA2%0000000000 -0001_ffa-l0B~t=FJE?LZe(wAFLZBhY%gVQV{c?-axQRrP)h*<6ay3h000O84rez~qF0L5l>h($dI10 -c8vpc!Jc4cm4Z*nhmZ*6QZbb2muc~DCM0u%!j0000801 -jt2QXxrg98m-S0Luyh03QGV00000000000HlElkrV)MX>c!Jc4cm4Z*nhna%^mAVlyvaUukY>bYEXCa -CuNm0Rj{Q6aWAK2mlUeH&Pux6LJC#0028G001KZ0000000000005+cmz5L%aA|NaUv_0~WN&gWb#iQM -X<{=kUt@1V?GE^v8JO928D0~7!N00;mMXE#!?bJlb}0000#0000V00000000000001_f!d- -J0B~t=FJE?LZe(wAFLiQkY-wUMFJE?La&u{KZZ2?nP)h*<6ay3h000O84rez~Qw&p9EfxR(IYV?DZ -*OcaaCuNm0Rj{Q6aWAK2mlUeH&V7`nI2aO004p>001EX0000000000005+cBjOYQaA|NaUv_0~WN&gW -b#iQMX<{=kWq4y{aCB*JZgVbhc~DCM0u%!j0000801jt2QpYGuEFcO10D~a_0384T00000000000HlG -r>l6TRX>c!Jc4cm4Z*nhna%^mAVlyvhX=Q9=b1rasP)h*<6ay3h000O84rez~hpWG%eggmihzS4y9{> -OV0000000000q=6Ln6aa8(a4%nWWo~3|axZmqY;0*_GcRUoY-Mn7b963nc~DCM0u%!j0000801jt2Qs -|`4j+fX>c!Jc4cm4Z*nhna%^mAVlyvrZ*OdEVQyh(WpXZXc -~DCM0u%!j0000801jt2Qv8qZ0;dN60AUvZ03HAU00000000000HlF;5ETG$X>c!Jc4cm4Z*nhna%^mA -VlyvtWpQ<7b963nc~DCM0u%!j0000801jt2QYkMO2xA=p04r_)03QGV00000000000HlFh7!?3;X>c! -Jc4cm4Z*nhna%^mAVlyvtWpi+EZgXWWaCuNm0Rj{Q6aWAK2mlUeH&Orq0006200000001Wd00000000 -00005+c`ZW~*aA|NaUv_0~WN&gWb#iQMX<{=kV{dMBa%o~OUtei%X>?y-E^v8JO928D0~7!N00;mMXE -#zRgXtBu0RRBK0{{Rq00000000000001_fk8GE0B~t=FJE?LZe(wAFLiQkY-wUMFJo_RbaH88FJEDBa -Aj_1X>Mg-Wo~w9a&K-faCuNm0Rj{Q6aWAK2mlUeH&O$i5Ljaj000^*001Ze0000000000005+cMK~1z -aA|NaUv_0~WN&gWb#iQMX<{=kV{dMBa%o~OVQ_F|Zf9w3WiD`eP)h*<6ay3h000O84rez~`a*bUp#=Z -{Ko9@`CjbBd0000000000q=D{46##H)a4%nWWo~3|axZmqY;0*_GcRLrZgg^KVlQrVY;ACFZ)`4bc~D -CM0u%!j0000801jt2Qj#b;m1PtF0GmMo04M+e00000000000HlG`N)-TbX>c!Jc4cm4Z*nhna%^mAVl -yveZ*FvQX<{#Md2euKZgX>NE^v8JO928D0~7!N00;mMXE##u1Q@HMB>({bg#Z9900000000000001_f -q!2W0B~t=FJE?LZe(wAFLiQkY-wUMFJo_RbaH88FLPyMb#i5Na$#c!Jc4cm4Z*n -hna%^mAVlyveZ*FvQX<{#5b7f<7a%FUKVQzD9Z*p`mUtei%X>?y-E^v8JO928D0~7!N00;mMXE#zZ&w -xqz5C8!2L;wId00000000000001_fnJUk0B~t=FJE?LZe(wAFLiQkY-wUMFJo_RbaH88FJE(IV|8+6b -aG*Cb8v5RbT49QZe(e0XLBxac~DCM0u%!j0000801jt2Qhq7cd{_|x08};r0672v00000000000HlGe -pA`UbX>c!Jc4cm4Z*nhna%^mAVlyveZ*FvQX<{#5b7f<7a%FUKVQzD9Z*p`mY;Sj8Y-M(3Y%XwlP)h* -<6ay3h000O84rez~tT~LVPyhe`YybcNC;$Ke0000000000q=8$p6##H)a4%nWWo~3|axZmqY;0*_GcR -yqV{2h&WpgiIUukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&U`y7Lyep000<&001KZ0000000000005+c@v -#*EaA|NaUv_0~WN&gWb#iQMX<{=kaA9L>VP|D?FLP;lE^v8JO928D0~7!N00;mMXE#y+00002000000 -000o00000000000001_fk)950B~t=FJE?LZe(wAFLiQkY-wUMFK}UFYhh<)b1!0HV{344a&&VqUtei% -X>?y-E^v8JO928D0~7!N00;mMXE##bxMQy9fXPKo$T1LI3~&0000000000q=Deo6 -##H)a4%nWWo~3|axZmqY;0*_GcRyqV{2h&Wpgicb8KI2VRU0?UubW0bZ%j7WiMZ8ZE$R5ZDnqBVRUJ4 -ZZ2?nP)h*<6ay3h000O84rez~=8Bn`*Z}|lg9HEoBme*a0000000000q=Eb16##H)a4%nWWo~3|axZm -qY;0*_GcR>?X>2cFUukY>bYEXCaCuNm0Rj{Q6aWAK2mlUeH&PQl{<)?H0024@001Tc0000000000005 -+c72y>CaA|NaUv_0~WN&gWb#iQMX<{=kb#!TLFJo_RZe?S1X>V>WaCuNm0Rj{Q6aWAK2mlUeH&QoBuA -N*0002Y=001EX0000000000005+c|L7F}aA|NaUv_0~WN&gWb#iQMX<{=kb#!TLFK}{iczG^xc~DCM0 -u%!j0000801jt2QceT*pZov-0P+C<03iSX00000000000HlGM>lFZSX>c!Jc4cm4Z*nhna%^mAVlyvw -bZKlaadl;NWiD`eP)h*<6ay3h000O84rez~l4P$`>IDD*8xQ~hBLDyZ0000000000q=D7!6##H)a4%n -WWo~3|axZmqY;0*_GcR>?X>2cYWpQ<7b963nc~DCM0u%!j0000801jt2QZ^{nv|t4Q0JaSP03-ka000 -00000000HlEc^A!MaX>c!Jc4cm4Z*nhna%^mAVlyvwbZKlaa%FRHZ*FsCE^v8JO928D0~7!N00;mMXE -#!8j-jf|761TtQvd)V00000000000001_fui^o0B~t=FJE?LZe(wAFLiQkY-wUMFLiWjY%g+UbaHtva -CuNm0Rj{Q6aWAK2mlUeH&Tt*&zhwb005ak001BW0000000000005+ctq&FeaA|NaUv_0~WN&gWb#iQM -X<{=kb#!TLFLQHjUoLQYP)h*<6ay3h000O84rez~^`%T&4F~`L6dM2lC;$Ke0000000000q=Aqn765Q -*a4%nWWo~3|axZmqY;0*_GcR>?X>2cZb8K{SVQzD9Z*p`laCuNm0Rj{Q6aWAK2mlUeH&P_Y=m@|I000 -vw001KZ0000000000005+c<1H2daA|NaUv_0~WN&gWb#iQMX<{=kb#!TLFLY^bWp8zKE^v8JO928D0~ -7!N00;mMXE#zF13WB?5&!_5HUI!000000000000001_f#f+B0B~t=FJE?LZe(wAFLiQkY-wUMFLiWjY -%g_kY%XwlP)h*<6ay3h000O84rez~qDH@Qzy|;T92EcnAOHXW0000000000q=BqV765Q*a4%nWWo~3| -axZmqY;0*_GcR>?X>2cdVQF+OaCuNm0Rj{Q6aWAK2mlUeH&S@eA8|4Z002`d001Na0000000000005+ -cs#F#LaA|NaUv_0~WN&gWcV%K_Zewp`X>Mn8FJE72ZfSI1UoLQYP)h*<6ay3h000O84rez~$E^s91qJ -{B6C(fsA^-pY0000000000q=6n_765Q*a4%nWWo~3|axZsfVr6b)Z)9n1XLB!XVPa)$b1rasP)h*<6a -y3h000O84rez~P=7HWL;?T+83h0UBme*a0000000000q=92*765Q*a4%nWWo~3|axZsfVr6b)Z)9n1X -LB!YYiwa+Wo&aUaCuNm0Rj{Q6aWAK2mlUeH&SOfaHqKi005&I001EX0000000000005+c>1Y-JaA|Na -Uv_0~WN&gWcV%K_Zewp`X>Mn8FLY&dbaO6nc~DCM0u%!j0000801jt2Qrian)};gh0Mifv04e|g0000 -0000000HlH8ZWaJ=X>c!Jc4cm4Z*nhpWnyJ+V{c?>ZfA2ZcwcpMWpZC+WoBt^Wn?aJc~DCQ1^@s60D1 -v>0cUmq0M2t30000 -""" - - -if __name__ == "__main__": - main() diff --git a/links.txt b/links.txt deleted file mode 100644 index 0f4fb10a3..000000000 --- a/links.txt +++ /dev/null @@ -1,1285 +0,0 @@ -Redirect 301 /docs/ruby-driver https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/aggregation-framework/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/authentication/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/bulk-write-operations/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/credits/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/examples/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/faq/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/gridfs/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/index/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/quick-start/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/read-preference/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/replica-sets/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/style-guide/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tailable-cursors/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/web-examples/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/write-concern/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/bson-tutorials/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/contribute/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/reference/additional-resources/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/reference/driver-compatibility/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/reference/bson-v3/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/reference/bson-v4/ https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/installation https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/ruby-driver-tutorials https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-indexing https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v1.x/whats-new https://www.mongodb.com/docs/ruby-driver/current/ -Redirect 301 /docs/ruby-driver/v2.0/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/examples https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/examples https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/examples https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/examples https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/examples https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/examples https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/examples https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/examples https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/examples https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/examples https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/examples https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/examples https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/examples https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/examples https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/examples https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/read-preference https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/read-preference https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/read-preference https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/read-preference https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/read-preference https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/read-preference https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/read-preference https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/read-preference https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/read-preference https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/read-preference https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/read-preference https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/read-preference https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/read-preference https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/read-preference https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/read-preference https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/write-concern https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/write-concern https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/write-concern https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/write-concern https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/write-concern https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/write-concern https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/write-concern https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/write-concern https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/write-concern https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/write-concern https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/write-concern https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/write-concern https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/write-concern https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/write-concern https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/write-concern https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/gridfs https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/gridfs https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/gridfs https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/gridfs https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/gridfs https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/gridfs https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/gridfs https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/gridfs https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/gridfs https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/gridfs https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/gridfs https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/gridfs https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/gridfs https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/gridfs https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/gridfs https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/web-examples https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/web-examples https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/web-examples https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/web-examples https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/web-examples https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/web-examples https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/web-examples https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/web-examples https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/web-examples https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/web-examples https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/web-examples https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/web-examples https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/web-examples https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/web-examples https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/web-examples https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/faq https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/faq https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/faq https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/faq https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/faq https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/faq https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/faq https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/faq https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/faq https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/faq https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/faq https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/faq https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/faq https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/faq https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/faq https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/style-guide https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/style-guide https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/style-guide https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/style-guide https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/style-guide https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/style-guide https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/style-guide https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/style-guide https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/style-guide https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/style-guide https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/style-guide https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/style-guide https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/style-guide https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/style-guide https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/style-guide https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/credits https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.1/credits https://www.mongodb.com/docs/ruby-driver/v2.1/quick-start/ -Redirect 301 /docs/ruby-driver/v2.2/credits https://www.mongodb.com/docs/ruby-driver/v2.2/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/credits https://www.mongodb.com/docs/ruby-driver/v2.3/quick-start/ -Redirect 301 /docs/ruby-driver/v2.4/credits https://www.mongodb.com/docs/ruby-driver/v2.4/quick-start/ -Redirect 301 /docs/ruby-driver/v2.5/credits https://www.mongodb.com/docs/ruby-driver/v2.5/quick-start/ -Redirect 301 /docs/ruby-driver/v2.6/credits https://www.mongodb.com/docs/ruby-driver/v2.6/quick-start/ -Redirect 301 /docs/ruby-driver/v2.7/credits https://www.mongodb.com/docs/ruby-driver/v2.7/quick-start/ -Redirect 301 /docs/ruby-driver/v2.8/credits https://www.mongodb.com/docs/ruby-driver/v2.8/quick-start/ -Redirect 301 /docs/ruby-driver/v2.9/credits https://www.mongodb.com/docs/ruby-driver/v2.9/quick-start/ -Redirect 301 /docs/ruby-driver/v2.10/credits https://www.mongodb.com/docs/ruby-driver/v2.10/quick-start/ -Redirect 301 /docs/ruby-driver/v2.11/credits https://www.mongodb.com/docs/ruby-driver/v2.11/quick-start/ -Redirect 301 /docs/ruby-driver/v2.12/credits https://www.mongodb.com/docs/ruby-driver/v2.12/quick-start/ -Redirect 301 /docs/ruby-driver/v2.13/credits https://www.mongodb.com/docs/ruby-driver/v2.13/quick-start/ -Redirect 301 /docs/ruby-driver/v2.14/credits https://www.mongodb.com/docs/ruby-driver/v2.14/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/installation https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/ruby-driver-tutorials https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-indexing https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.0/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.0/quick-start/ -Redirect 301 /docs/ruby-driver/v2.3/whats-new https://www.mongodb.com/docs/ruby-driver/v2.3/ -Redirect 301 /docs/ruby-driver/v2.2/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.3/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.4/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.5/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.6/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.7/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.8/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.9/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.10/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.11/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.12/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.13/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.14/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.15/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.16/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.17/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.18/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.19/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/master/mongoid-tutorials https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.2/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.3/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.4/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.5/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.6/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.7/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.8/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.9/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.10/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.11/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.12/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.13/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.14/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.15/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.16/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.17/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.18/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.19/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/master/mongoid https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/master/tutorials/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.2/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.3/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.4/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.5/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.6/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.7/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.8/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.9/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.10/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.11/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.12/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.13/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.14/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.15/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.16/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.17/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.18/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.19/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/master/mongoid-tutorials-6.0 https://www.mongodb.com/docs/mongoid/master/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-installation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-queries https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-documents https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-rails https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-validation https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/master/tutorials/6.1.0/mongoid-relations https://www.mongodb.com/docs/mongoid/master/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.2/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.3/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.4/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.5/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.6/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.7/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.8/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.9/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.10/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.11/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.12/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.13/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.14/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.15/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.16/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.17/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.18/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.19/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/master/mongoid-tutorials-5.2 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.2/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.3/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.4/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.5/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.6/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.7/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.8/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.9/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.10/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.11/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.12/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.13/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.14/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.15/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.16/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.17/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.18/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.19/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/master/mongoid-tutorials-5.1 https://www.mongodb.com/docs/mongoid/v5.2/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-callbacks https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-callbacks/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-installation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-installation/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-queries https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-queries/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-upgrade https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-upgrade/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-documents https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-documents/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-nested-attributes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-nested-attributes/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-rails https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-rails/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-validation https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-validation/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-indexes https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-indexes/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-persistence https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-persistence/ -Redirect 301 /docs/ruby-driver/v2.2/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.3/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.4/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.5/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.6/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/master/tutorials/5.2.0/mongoid-relations https://www.mongodb.com/docs/mongoid/v5.2/tutorials/mongoid-relations/ -Redirect 301 /docs/ruby-driver/v2.7/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.7/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.8/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.8/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.9/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.9/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.10/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.10/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.11/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.11/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.12/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.12/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.13/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.13/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.14/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.14/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.15/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.16/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.17/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.18/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/v2.19/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-admin-tasks https://www.mongodb.com/docs/ruby-driver/master/tutorials/ruby-driver-database-tasks/ -Redirect 301 /docs/ruby-driver/v2.15/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/aggregation-framework https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/aggregation-framework https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/examples https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/examples https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/examples https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/examples https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/examples https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/examples https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/replica-sets https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/replica-sets https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/read-preference https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/read-preference https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/read-preference https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/read-preference https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/read-preference https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/read-preference https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/write-concern https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/write-concern https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/write-concern https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/write-concern https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/write-concern https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/write-concern https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/bulk-write-operations https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/authentication-examples https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/authentication-examples https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/gridfs https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/gridfs https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/gridfs https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/gridfs https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/gridfs https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/gridfs https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/tailable-cursors https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/tailable-cursors https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/web-examples https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/web-examples https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/web-examples https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/web-examples https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/web-examples https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/web-examples https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/faq https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/faq https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/faq https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/faq https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/faq https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/faq https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/style-guide https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/style-guide https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/style-guide https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/style-guide https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/style-guide https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/style-guide https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/credits https://www.mongodb.com/docs/ruby-driver/v2.15/ -Redirect 301 /docs/ruby-driver/v2.16/credits https://www.mongodb.com/docs/ruby-driver/v2.16/ -Redirect 301 /docs/ruby-driver/v2.17/credits https://www.mongodb.com/docs/ruby-driver/v2.17/ -Redirect 301 /docs/ruby-driver/v2.18/credits https://www.mongodb.com/docs/ruby-driver/v2.18/ -Redirect 301 /docs/ruby-driver/v2.19/credits https://www.mongodb.com/docs/ruby-driver/v2.19/ -Redirect 301 /docs/ruby-driver/master/credits https://www.mongodb.com/docs/ruby-driver/master/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.15/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.16/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.17/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.18/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.19/reference/aggregation/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/master/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.15/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.16/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.17/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.18/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.19/reference/authentication/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/master/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.15/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.16/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.17/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.18/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.19/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/master/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.15/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.16/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.17/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.18/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.19/reference/change-streams/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/master/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.15/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.16/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.17/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.18/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.19/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/master/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.15/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.16/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.17/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.18/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.19/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/master/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/master/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.15/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.16/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.17/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.18/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.19/reference/collations/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/master/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.15/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.16/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.17/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.18/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.19/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/master/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.15/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.16/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.17/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.18/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.19/reference/create-client/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/master/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.15/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.16/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.17/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.18/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.19/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/master/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.15/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.16/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.17/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.18/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.19/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/master/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.15/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.16/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.17/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.18/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.19/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/master/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.15/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.16/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.17/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.18/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.19/reference/gridfs/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/master/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.15/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.16/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.17/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.18/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.19/reference/monitoring/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/master/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.15/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.16/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.17/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.18/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.19/reference/projection/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/master/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.15/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.16/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.17/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.18/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.19/reference/sessions/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/master/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.15/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.16/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.17/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.18/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.19/reference/text-search/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/master/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.15/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.16/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.17/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.18/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.19/reference/transactions/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/master/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.15/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.16/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.17/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.18/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.19/reference/user-management/ -Redirect 301 /docs/ruby-driver/master/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/master/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.15/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.15/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.16/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.17/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.18/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.19/reference/query-cache/ -Redirect 301 /docs/ruby-driver/master/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/master/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.16/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.17/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.18/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/v2.19/reference/aggregation/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-aggregation https://www.mongodb.com/docs/ruby-driver/master/reference/aggregation/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.16/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.17/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.18/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/v2.19/reference/authentication/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-authentication https://www.mongodb.com/docs/ruby-driver/master/reference/authentication/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.16/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.17/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.18/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/v2.19/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-bulk-operations https://www.mongodb.com/docs/ruby-driver/master/reference/bulk-operations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.16/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.17/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.18/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/v2.19/reference/change-streams/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-change-streams https://www.mongodb.com/docs/ruby-driver/master/reference/change-streams/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.16/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.17/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.18/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.19/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-client-side-encryption https://www.mongodb.com/docs/ruby-driver/master/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.16/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.17/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.18/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/v2.19/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/master/tutorials/client-side-encryption https://www.mongodb.com/docs/ruby-driver/master/reference/client-side-encryption/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.16/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.17/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.18/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/v2.19/reference/collations/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-collations https://www.mongodb.com/docs/ruby-driver/master/reference/collations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.16/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.17/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.18/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/v2.19/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-collection-tasks https://www.mongodb.com/docs/ruby-driver/master/reference/collection-tasks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.16/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.17/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.18/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/v2.19/reference/create-client/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-create-client https://www.mongodb.com/docs/ruby-driver/master/reference/create-client/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.16/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.17/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.18/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/v2.19/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-crud-operations https://www.mongodb.com/docs/ruby-driver/master/reference/crud-operations/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.16/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.17/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.18/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/v2.19/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-database-tasks https://www.mongodb.com/docs/ruby-driver/master/reference/database-tasks/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.16/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.17/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.18/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/v2.19/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-geospatial-search https://www.mongodb.com/docs/ruby-driver/master/reference/geospatial-search/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.16/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.17/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.18/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/v2.19/reference/gridfs/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-gridfs https://www.mongodb.com/docs/ruby-driver/master/reference/gridfs/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.16/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.17/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.18/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/v2.19/reference/monitoring/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-monitoring https://www.mongodb.com/docs/ruby-driver/master/reference/monitoring/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.16/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.17/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.18/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/v2.19/reference/projection/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-projections https://www.mongodb.com/docs/ruby-driver/master/reference/projection/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.16/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.17/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.18/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/v2.19/reference/sessions/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-sessions https://www.mongodb.com/docs/ruby-driver/master/reference/sessions/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.16/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.17/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.18/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/v2.19/reference/text-search/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-text-search https://www.mongodb.com/docs/ruby-driver/master/reference/text-search/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.16/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.17/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.18/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/v2.19/reference/transactions/ -Redirect 301 /docs/ruby-driver/master/tutorials/ruby-driver-transactions https://www.mongodb.com/docs/ruby-driver/master/reference/transactions/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.16/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.17/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.18/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/v2.19/reference/user-management/ -Redirect 301 /docs/ruby-driver/master/tutorials/user-management https://www.mongodb.com/docs/ruby-driver/master/reference/user-management/ -Redirect 301 /docs/ruby-driver/v2.16/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.16/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.17/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.17/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.18/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.18/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.19/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/v2.19/reference/query-cache/ -Redirect 301 /docs/ruby-driver/master/tutorials/query-cache https://www.mongodb.com/docs/ruby-driver/master/reference/query-cache/ -Redirect 301 /docs/ruby-driver/v2.16/quick-start https://www.mongodb.com/docs/ruby-driver/v2.16/tutorials/quick-start/ -Redirect 301 /docs/ruby-driver/v2.17/quick-start https://www.mongodb.com/docs/ruby-driver/v2.17/tutorials/quick-start/ -Redirect 301 /docs/ruby-driver/v2.18/quick-start https://www.mongodb.com/docs/ruby-driver/v2.18/tutorials/quick-start/ -Redirect 301 /docs/ruby-driver/v2.19/quick-start https://www.mongodb.com/docs/ruby-driver/v2.19/tutorials/quick-start/ -Redirect 301 /docs/ruby-driver/master/quick-start https://www.mongodb.com/docs/ruby-driver/master/tutorials/quick-start/ diff --git a/ruby-deploy.sh b/ruby-deploy.sh deleted file mode 100644 index 0056cf239..000000000 --- a/ruby-deploy.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -# version branch names in descending order -VERSIONS=(master v2.19 v2.18 v2.17 v2.16 v2.15 v2.14 v2.13 v2.12 v2.11 v2.10 v2.9 v2.8 v2.7 v2.6 v2.5 v2.4 v2.3 v2.2 v2.0 v1.x) - -# clean -git checkout master - -TODEPLOY=() -for i in "${VERSIONS[@]}" -do - read -p "add branch [$i]? [y/n] " REPLY - if [[ $REPLY =~ ^[Yy]$ ]]; then - TODEPLOY+=($i) - fi -done - -# build each version in order -for i in "${TODEPLOY[@]}"; do - echo "Branch [$i]: Generating HTML and local directories" - git checkout $i && git pull && make html publish -done - -# Prompt in case errors encountered -read -p "Proceed with deploy? " -n 1 -r -echo -if [[ ! $REPLY =~ ^[Yy]$ ]]; then - [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 -fi - -# deploy -for i in "${TODEPLOY[@]}"; do - echo "Deploying [$i]" - git checkout $i && yes | make deploy -done - -echo "Deployment complete!" \ No newline at end of file diff --git a/snooty.toml b/snooty.toml index 2babbbacb..1a0175897 100644 --- a/snooty.toml +++ b/snooty.toml @@ -1,9 +1,27 @@ name = "ruby-driver" title = "Ruby MongoDB Driver" +toc_landing_pages = [ + "/get-started", + "/read", + "/write", + "/indexes", + "/databases-collection", + "/security/authentication" +] intersphinx = ["https://www.mongodb.com/docs/manual/objects.inv"] - sharedinclude_root = "https://raw.githubusercontent.com/10gen/docs-shared/main/" [constants] driver-short = "Ruby driver" +driver-long = "MongoDB Ruby Driver" +language = "Ruby" +mdb-server = "MongoDB Server" +mongo-community = "MongoDB Community Edition" +mongo-enterprise = "MongoDB Enterprise Edition" +docs-branch = "master" # always set this to the docs branch (i.e. master, 1.7, 1.8, etc.) +version-number = "2.21" +patch-version-number = "{+version-number+}.0" # always set this to the driver branch (i.e. 1.7.0, 1.8.0, etc.) +version = "v{+version-number+}" +stable-api = "Stable API" +api-root = "https://www.mongodb.com/docs/ruby-driver/current/api/" diff --git a/source/.gitignore b/source/.gitignore deleted file mode 100644 index e35d8850c..000000000 --- a/source/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_build diff --git a/source/Makefile b/source/Makefile deleted file mode 100644 index d4bb2cbb9..000000000 --- a/source/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/source/README.md b/source/README.md deleted file mode 100644 index 338b3c297..000000000 --- a/source/README.md +++ /dev/null @@ -1,17 +0,0 @@ -Ruby MongoDB Driver Documentation -================================= - -This subdirectory contains the high-level driver documentation, including -tutorials and the reference. - -Building the documentation for publishing is done via the -[docs-ruby repo](https://github.com/mongodb/docs-ruby). - -To build the documentation locally for review, install `sphinx` and -`sphinx-book-theme`, then execute `make html` in this directory: - - pip install sphinx sphinx-book-theme - make html - -Note that the documentation generated in this manner wouldn't have the -BSON documentation included, nor are intersphinx links currently handled. diff --git a/source/aggregation.txt b/source/aggregation.txt new file mode 100644 index 000000000..d68cba3b3 --- /dev/null +++ b/source/aggregation.txt @@ -0,0 +1,257 @@ +.. _ruby-aggregation: + +==================================== +Transform Your Data with Aggregation +==================================== + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code example, transform, computed, pipeline + :description: Learn how to use the Ruby driver to perform aggregation operations. + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. TODO: + .. toctree:: + :titlesonly: + :maxdepth: 1 + + /aggregation/aggregation-tutorials + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to perform +**aggregation operations**. + +Aggregation operations process data in your MongoDB collections and +return computed results. The MongoDB Aggregation framework, which is +part of the Query API, is modeled on the concept of data processing +pipelines. Documents enter a pipeline that contains one or more stages, +and this pipeline transforms the documents into an aggregated result. + +An aggregation operation is similar to a car factory. A car factory has +an assembly line, which contains assembly stations with specialized +tools to do specific jobs, like drills and welders. Raw parts enter the +factory, and then the assembly line transforms and assembles them into a +finished product. + +The **aggregation pipeline** is the assembly line, **aggregation stages** are the +assembly stations, and **operator expressions** are the +specialized tools. + +Compare Aggregation and Find Operations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following table lists the different tasks that find +operations can perform and compares them to what aggregation +operations can perform. The aggregation framework provides +expanded functionality that allows you to transform and manipulate +your data. + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + + * - Find Operations + - Aggregation Operations + + * - | Select certain documents to return + | Select which fields to return + | Sort the results + | Limit the results + | Count the results + - | Select certain documents to return + | Select which fields to return + | Sort the results + | Limit the results + | Count the results + | Rename fields + | Compute new fields + | Summarize data + | Connect and merge data sets + +Limitations +~~~~~~~~~~~ + +Consider the following limitations when performing aggregation operations: + +- Returned documents cannot violate the + :manual:`BSON document size limit ` + of 16 megabytes. +- Pipeline stages have a memory limit of 100 megabytes by default. You can exceed this + limit by passing a value of ``true`` to the ``allow_disk_use`` method and chaining the + method to ``aggregate``. +- The :manual:`$graphLookup ` + operator has a strict memory limit of 100 megabytes and ignores the + value passed to the ``allow_disk_use`` method. + +.. _ruby-run-aggregation: + +Run Aggregation Operations +-------------------------- + +.. note:: Sample Data + + The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` + database from the :atlas:`Atlas sample datasets `. To learn how to create a + free MongoDB Atlas cluster and load the sample datasets, see the :atlas:`Get Started with Atlas + ` guide. + +To perform an aggregation, define each pipeline stage as a Ruby ``hash``, and +then pass the pipeline of operations to the ``aggregate`` method. + +.. _ruby-aggregation-example: + +Aggregation Example +~~~~~~~~~~~~~~~~~~~ + +The following code example produces a count of the number of bakeries in each +borough of New York. To do so, it uses an aggregation pipeline with the +following stages: + +- A :manual:`$match ` stage to filter for documents whose ``cuisine`` field contains + the value ``"Bakery"``. +- A :manual:`$group ` stage to group the matching documents by the ``borough`` field, + accumulating a count of documents for each distinct value. + +.. io-code-block:: + :copyable: + + .. input:: /includes/aggregation.rb + :start-after: start-aggregation + :end-before: end-aggregation + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>"Bronx", "count"=>71} + {"_id"=>"Manhattan", "count"=>221} + {"_id"=>"Queens", "count"=>204} + {"_id"=>"Missing", "count"=>2} + {"_id"=>"Staten Island", "count"=>20} + {"_id"=>"Brooklyn", "count"=>173} + +Explain an Aggregation +~~~~~~~~~~~~~~~~~~~~~~ + +To view information about how MongoDB executes your operation, you can instruct +the MongoDB :manual:`query planner ` to **explain** it. When +MongoDB explains an operation, it returns **execution plans** and performance +statistics. An execution plan is a potential way in which MongoDB can complete +an operation. When you instruct MongoDB to explain an operation, it returns both +the plan MongoDB executed and any rejected execution plans by default. + +To explain an aggregation operation, chain the ``explain`` method to the +``aggregate`` method. + +The following example instructs MongoDB to explain the aggregation operation +from the preceding :ref:`ruby-aggregation-example`: + +.. io-code-block:: + :copyable: + + .. input:: /includes/aggregation.rb + :start-after: start-explain-aggregation + :end-before: end-explain-aggregation + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"explainVersion"=>"2", "queryPlanner"=>{"namespace"=>"sample_restaurants.restaurants", + "parsedQuery"=>{"cuisine"=> {"$eq"=> "Bakery"}}, "indexFilterSet"=>false, + "planCacheKey"=>"6104204B", "optimizedPipeline"=>true, "maxIndexedOrSolutionsReached"=>false, + "maxIndexedAndSolutionsReached"=>false, "maxScansToExplodeReached"=>false, + "prunedSimilarIndexes"=>false, "winningPlan"=>{"isCached"=>false, + "queryPlan"=>{"stage"=>"GROUP", "planNodeId"=>3, + "inputStage"=>{"stage"=>"COLLSCAN", "planNodeId"=>1, "filter"=>{}, + "direction"=>"forward"}},...} + +Run an Atlas Full-Text Search +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: Only Available on Atlas for MongoDB v4.2 and later + + This aggregation pipeline operator is only available for collections hosted + on :atlas:`MongoDB Atlas ` clusters running v4.2 or later that are + covered by an :atlas:`Atlas Search index `. + +To specify a full-text search of one or more fields, you can create a +``$search`` pipeline stage. + +This example creates pipeline stages to perform the following actions: + +- Search the ``name`` field for the term ``"Salt"`` +- Project only the ``_id`` and the ``name`` values of matching documents + +.. important:: + + To run the following example, you must create an Atlas Search index on the ``restaurants`` + collection that covers the ``name`` field. Then, replace the ``""`` + placeholder with the name of the index. To learn how to create an Atlas Search index, + see the :ref:`ruby-atlas-search-index` guide. + +.. io-code-block:: + :copyable: + + .. input:: /includes/aggregation.rb + :start-after: start-search-aggregation + :end-before: end-search-aggregation + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=> {"$oid"=> "..."}, "name"=> "Fresh Salt"} + {"_id"=> {"$oid"=> "..."}, "name"=> "Salt & Pepper"} + {"_id"=> {"$oid"=> "..."}, "name"=> "Salt + Charcoal"} + {"_id"=> {"$oid"=> "..."}, "name"=> "A Salt & Battery"} + {"_id"=> {"$oid"=> "..."}, "name"=> "Salt And Fat"} + {"_id"=> {"$oid"=> "..."}, "name"=> "Salt And Pepper Diner"} + +Additional Information +---------------------- + +MongoDB Server Manual +~~~~~~~~~~~~~~~~~~~~~ + +To learn more about the topics discussed in this guide, see the following +pages in the {+mdb-server+} manual: + +- To view a full list of expression operators, see :manual:`Aggregation + Operators `. + +- To learn about assembling an aggregation pipeline and to view examples, see + :manual:`Aggregation Pipeline `. + +- To learn more about creating pipeline stages, see :manual:`Aggregation + Stages `. + +- To learn more about explaining MongoDB operations, see + :manual:`Explain Output ` and + :manual:`Query Plans `. + +.. TODO: + Aggregation Tutorials + ~~~~~~~~~~~~~~~~~~~~~ + +.. To view step-by-step explanations of common aggregation tasks, see +.. :ref:`ruby-aggregation-tutorials-landing`. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about the Ruby driver's aggregation methods, see the +API documentation for :ruby-api:`Aggregation `. diff --git a/source/tutorials/common-errors.txt b/source/common-errors.txt similarity index 94% rename from source/tutorials/common-errors.txt rename to source/common-errors.txt index 0651442cb..633deb69e 100644 --- a/source/tutorials/common-errors.txt +++ b/source/common-errors.txt @@ -1,6 +1,8 @@ -************* +.. _ruby-common-errors: + +============= Common Errors -************* +============= .. default-domain:: mongodb @@ -12,7 +14,7 @@ Common Errors No Server is Available Matching Preference -========================================== +------------------------------------------ If you receive the following error: @@ -39,14 +41,13 @@ this, you can try the following: host list. - If you are connecting to Atlas, ensure that the firewall rules are configured correctly. See the documentation on `Cluster Security `_. -- If your application uses a forking web server, see the documentation on :ref:`Forking `. See more on this issue here: `RUBY-1281 `_. ``OperationFailure`` When Reading ``local`` Database With Auth On -================================================================= +----------------------------------------------------------------- If you are getting the following error when trying to read the ``local`` database: @@ -66,7 +67,7 @@ You can find more information about this issue here: ``SocketTimeoutError`` and name resolution errors on EC2 -======================================================== +-------------------------------------------------------- Some users reported getting the following error: @@ -102,7 +103,7 @@ You can find more information about this issue here: ``Mongo::Auth::Unauthorized`` User is Not Authorized to Access -============================================================== +-------------------------------------------------------------- Some users reported getting the following error: diff --git a/source/compatibility.txt b/source/compatibility.txt new file mode 100644 index 000000000..f9ebd4f5a --- /dev/null +++ b/source/compatibility.txt @@ -0,0 +1,123 @@ +.. _ruby-compatibility: + +============= +Compatibility +============= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: backwards compatibility, versions, upgrade + +MongoDB Compatibility +--------------------- + +The following compatibility table specifies the recommended +version(s) of the {+driver-long+} for use with a specific version of +MongoDB. Except when indicated, the specified driver versions expose or +take advantage of the features added in the corresponding server versions. + +MongoDB server releases are generally backwards compatible. This means a +particular driver version will generally work with newer server versions but might +not utilize the new functionalities in those server versions. + +The first column lists the driver versions. + +.. sharedinclude:: dbx/lifecycle-schedule-callout.rst + +.. include:: /includes/compatibility-table-legend-ruby.rst + +.. include:: /includes/mongodb-compatibility-table-ruby.rst + +The driver does not support older versions of MongoDB. + +Language Compatibility +---------------------- + +The following compatibility table specifies the versions of Ruby supported +by the various versions of the {+driver-long+}. + +The first column lists the driver versions. + +.. include:: /includes/compatibility-table-legend-ruby.rst + +.. include:: /includes/language-compatibility-table-ruby.rst + +The driver does not support older versions of Ruby. + +Rails/ActiveSupport Compatibility +--------------------------------- + +The {+driver-short+} does not depend on ActiveSupport. However, if your +application uses ActiveSupport or Ruby on Rails, you must load the driver's +ActiveSupport compatibility code for behavior such as time serialization to be +correct: + +.. code-block:: ruby + + require 'mongo' + require 'mongo/active_support' + +Applications using Mongoid 7.0.6 or newer do not need to explicitly load +the driver's ActiveSupport code, since Mongoid automatically does so. + +.. _tls-compatibility: + +TLS/SSL Compatibility +---------------------- + +The {+driver-short+} uses the protocols supported by the underlying Ruby +``openssl`` extension. The ``openssl`` extension generally exposes +the functionality available in the operating system's OpenSSL library. + +Industry best practices, and some regulations, require the use of TLS 1.1 +or newer. Some operating systems or versions might not provide an OpenSSL version +that supports these TLS versions. + +If you use macOS older than 10.13 (High Sierra), you need to install Ruby from +`rvm`_, `homebrew`_, `macports`_, or another similar source. See +`Installing Ruby`_ for more options. + +If you use Linux or other non-macOS Unix systems, you can check your OpenSSL version +as follows: + +.. code-block:: sh + + openssl version + +If the version number is less than 1.0.1, support for TLS 1.1 or newer is +not available. Contact your operating system vendor for a solution or upgrade +to a newer distribution. + +You can check your TLS version by running the following command: + +.. code-block:: sh + + ruby -e "require 'net/http'; require 'json'; puts JSON.parse(Net::HTTP.get(URI('https://www.howsmyssl.com/a/check')))['tls_version']" + +After running the command, you must see ``TLS 1.X`` where ``X`` is greater than +or equal to ``1``. + +To learn more about TLS versions and their security implications, see `Transport Layer Security Cheat Sheet +`_. + +.. _rvm: https://rvm.io/ +.. _homebrew: https://brew.sh/ +.. _macports: https://www.macports.org/ +.. _Installing Ruby: https://www.ruby-lang.org/en/documentation/installation + +JRuby and TLS Connections +------------------------- + +Due to JRuby limitations: + +- The driver does not support ECDSA server certificates. +- The driver does not perform OCSP endpoint checking. diff --git a/source/conf.py b/source/conf.py deleted file mode 100644 index 1a27671f0..000000000 --- a/source/conf.py +++ /dev/null @@ -1,57 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) - - -# -- Project information ----------------------------------------------------- - -project = 'Ruby MongoDB Driver' -copyright = '2021, MongoDB' - - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'alabaster' - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -source_suffix = { - '.txt': 'restructuredtext', -} - -html_theme = 'sphinx_book_theme' diff --git a/source/connect.txt b/source/connect.txt new file mode 100644 index 000000000..3e54c0b77 --- /dev/null +++ b/source/connect.txt @@ -0,0 +1,30 @@ +.. _ruby-connect: + +================== +Connect to MongoDB +================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :description: Learn how to use the Ruby driver to connect to MongoDB. + :keywords: client, ssl + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Create a Client + Stable API + Choose a Connection Target + Connection Options + Configure TLS + Limit Server Execution Time diff --git a/source/connect/connection-options.txt b/source/connect/connection-options.txt new file mode 100644 index 000000000..7021067c9 --- /dev/null +++ b/source/connect/connection-options.txt @@ -0,0 +1,295 @@ +.. _ruby-connection-options: + +========================== +Specify Connection Options +========================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: connection string, URI, server, Atlas, settings, configure + +Overview +-------- + +This section describes the MongoDB connection and authentication options +available in {+driver-short+}. You can configure your connection by using either +the connection URI (also called a :manual:`connection string `) +or by passing arguments to the ``Mongo::Client`` constructor. + +Using the Connection URI +~~~~~~~~~~~~~~~~~~~~~~~~ + +If you pass a connection URI to the ``Mongo::Client`` constructor, you can include +connection options in the string as ``=`` pairs. In the following example, +the connection URI contains the ``connectTimeoutMS`` option with a value of ``60000`` +and the ``tls`` option with a value of ``true``: + +.. code-block:: ruby + + uri = "mongodb://:/?connectTimeoutMS=60000&tls=true" + client = Mongo::Client.new(uri) + +Using a ``Mongo::Client`` +~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can pass connection options as arguments to the ``Mongo::Client`` constructor +instead of including them in your connection URI. +When you configure your connection this way, it easier for you to +change settings at runtime and catch errors during compilation. +The following example shows how to use the ``Mongo::Client`` constructor to set +connection options: + +.. code-block:: ruby + + uri = "mongodb://:" + client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true) + +Connection Options +------------------ + +The following sections describe the connection options available in the {+driver-short+}. + +Network Compression +~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Connection Option + - Description + + * - **:compressors** + - | A list of potential compressors to use, in order of preference. + The driver chooses the first compressor that is also supported + by the server. Currently the driver only supports ``zstd``, ``snappy``, and ``zlib``. + | + | **Data Type**: ``Array`` + | **Default**: none + | **Client Example**: ``compressors: ['snappy', 'zstd', 'zlib']`` + | **Connection URI Example**: ``compressors=snappy,zstd,zlib`` + + * - **:zlib_compression_level** + - | The Zlib compression level to use, if using compression. + This option accepts an integer value between ``-1`` and ``9``: + | + | - **-1:** zlib uses its default compression level (usually ``6``). + | - **0:** No compression. + | - **1:** Fastest speed but lowest compression. + | - **9:** Best compression but slowest speed. + | + | For more information, see Ruby's `ZLib module `__ + documentation. + | + | **Data Type**: ``Integer`` + | **Default**: ``None`` + | **Client Example**: ``zlib_compression_level: 3`` + | **Connection URI Example**: ``zlibCompressionLevel=3`` + +Timeouts +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Connection Option + - Description + + * - **:connect_timeout** + - | The number of seconds to wait to establish a socket + connection before raising an exception. This + timeout is also used for SRV DNS record resolution. + | + | ``nil`` and ``0`` mean no timeout. Client creation will + fail with an error if an invalid timeout value + is passed (such as a negative value or a non-numeric value). + | + | **Data Type**: ``Float`` + | **Default**: ``10.0`` + | **Client Example**: ``connect_timeout: 10.0`` + | **Connection URI Example**: ``connectTimeoutMS=10000`` + + * - **:timeout_ms** + - | The number of milliseconds to wait for an operation to execute + before raising an exception. + | + | ``0`` means no timeout. Client creation will fail + with an error if an invalid timeout value is passed + (such as a negative value or a non-numeric value). + | + | **Data Type**: ``Integer`` + | **Default**: none + | **Client Example**: ``timeout_ms: 5000`` + | **Connection URI Example**: ``timeoutMS=5000`` + +Server Selection +~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Connection Option + - Description + + * - **:server_selector** + - | Get the server selector. It either uses the read preference + defined in the client options or defaults to a Primary + server selector. + | + | For more information on read preference modes, see the + :manual:`Server Selection Algorithm ` + documentation in the {+mdb-server+} manual. + | + | **Data Type**: ``ServerSelector`` + | **Default**: none + | **Client Example**: ``server_selector: { mode: :secondary_preferred }`` + | **Connection URI Example**: N/A + + * - **:server_selection_timeout** + - | The maximum amount of time, in seconds, the driver waits + for server selection to succeed before throwing an exception. + | + | **Data Type**: ``Integer`` + | **Default**: ``30`` + | **Client Example**: ``server_selection_timeout: 30`` + | **Connection URI Example**: ``serverSelectionTimeoutMS=30000`` + +Authentication +~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Connection Option + - Description + + * - **:auth_mech** + - | The mechanism that the {+driver-short+} uses to authenticate the application. + | + | **Data Type**: ``Symbol`` + | **Default**: ``nil`` if user credentials are not supplied. + | ``:scram256`` when connecting to MongoDB v4.0 or later. + | **Client Example**: ``auth_mech: :scram256`` + | **Connection URI Example**: ``authMechanism=SCRAM-SHA-256`` + + * - **:auth_mech_properties** + - | Options specific to the authentication mechanism. This option + isn't needed for all authentication mechanisms. + | + | **Data Type**: ``Hash`` + | **Default**: When you use the GSSAPI authentication mechanism, + | the default properties are ``{service_name: "mongodb"}``. + | Otherwise, the default is ``nil``. + | **Client Example**: ``auth_mech_properties: {aws_session_token: '12345'}`` + | **Connection URI Example**: ``authMechanismProperties=AWS_SESSION_TOKEN:12345`` + + * - **:auth_source** + - | The database to authenticate against. + | + | **Data Type**: ``String`` + | **Default**: ``admin``, if credentials are supplied + | **Client Example**: ``auth_source: admin`` + | **Connection URI Example**: ``authSource=admin`` + + * - **:user** + - | The username for authentication. When this option is included + in a connection URI, you must + `percent-encode `__ it. + | + | **Data Type**: ``String`` + | **Default**: none + | **Client Example**: ``user: my+user`` + | **Connection URI Example**: ``username=my+user`` + + * - **:password** + - | The password for authentication. When this option is included + in a connection URI, you must + `percent-encode `__ it. + | + | **Data Type**: ``String`` + | **Default**: none + | **Client Example**: ``password: strong+password`` + | **Connection URI Example**: ``password=strong+password`` + +Read and Write Operations +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Connection Option + - Description + + * - **:replica_set** + - | Specifies the name of the replica set to connect to. + | + | **Data Type**: ``String`` + | **Default**: none + | **Client Example**: ``replica_set: 'myRS'`` + | **Connection URI Example**: ``replicaSet=myRS`` + + * - **:direct_connection** + - | Whether to connect directly to the specified host + | + | **Data Type**: ``Boolean`` + | **Default**: ``false`` + | **Client Example**: ``direct_connection: true`` + | **Connection URI Example**: ``directConnection=true`` + + * - **:read** + - | The read preference options. For more information, + see :manual:`Read Preference ` in the {+mdb-server+} manual. + | + | **Data Type**: ``Hash`` + | **Default**: ``{ mode: :primary }`` + | **Client Example**: ``read: { mode: :primary }`` + | **Connection URI Example**: ``readPreference=primary`` + + * - **:read_concern** + - | Specifies the read concern options. For more information, see + :manual:`Read Concern ` in the {+mdb-server+} manual. + | + | **Data Type**: ``Hash`` + | **Default**: none + | **Client Example**: ``read: { level: :majority }`` + | **Connection URI Example**: ``readConcern=majority`` + + * - **:write_concern** + - | Specifies the client's write concern. For more + information, see :manual:`Write Concern ` in + the {+mdb-server+} manual. + | + | **Data Type**: ``Hash`` + | **Default**: ``write_concern: { w: 1 }`` + | **Client Example**: ``write_concern: { w: 2 }`` + | **Connection URI Example**: ``w=2`` + + * - **:local_threshold** + - | The latency window, in seconds, for a replica-set member's + eligibility. If a member's round trip ping takes longer + than the fastest server's round-trip ping time + plus this value, the server isn't eligible for selection. + | + | **Data Type**: ``Float`` + | **Default**: ``0.015`` + | **Client Example**: ``local_threshold: 0.020`` + | **Connection URI Example**: ``localThresholdMS=20`` + +API Documentation +----------------- + +For more information about ``Mongo::Client`` options for the {+driver-short+}, +see the API documentation for :ruby-api:`Mongo::Client `. diff --git a/source/connect/connection-targets.txt b/source/connect/connection-targets.txt new file mode 100644 index 000000000..e28bcd67c --- /dev/null +++ b/source/connect/connection-targets.txt @@ -0,0 +1,131 @@ +.. _ruby-connection-targets: + +========================== +Choose a Connection Target +========================== + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: connection string, URI, server, settings, client + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +Overview +-------- + +In this guide, you can learn how to use a connection string and a ``Mongo::Client`` object +to connect to different types of MongoDB deployments. + +Atlas +----- + +To connect to a MongoDB deployment on Atlas, include the following elements +in your connection string: + +- URL of your Atlas cluster +- MongoDB username +- MongoDB password + +Then, pass your connection string to the ``Mongo::Client`` constructor. + +.. tip:: + + Follow the :atlas:`Atlas driver connection guide ` + to retrieve your connection string. + +When you connect to Atlas, we recommend using the {+stable-api+} client option to avoid +breaking changes when Atlas upgrades to a new version of {+mdb-server+}. +To learn more about the {+stable-api+} feature, see the :ref:`` +guide. + +The following code shows how to use the {+driver-short+} to connect to an Atlas cluster. The +code also uses the ``server_api`` field to specify a {+stable-api+} version. + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-connection-target-atlas + :end-before: end-connection-target-atlas + :dedent: + +Local Deployments +----------------- + +To connect to a local standalone MongoDB deployment, specify the host of the +server. Optionally, specify the port of the server and the database to connect +to. If no port is specified, the default port is ``27017``. If no database name +is specified, the client will use the ``admin`` database: + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-local-connection + :end-before: end-local-connection + :dedent: + +You can also specify the host, port, and database to connect to using a +connection string: + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-local-connection-uri + :end-before: end-local-connection-uri + :dedent: + +You can also specify your host as ``localhost``. The following code example +connects to ``localhost`` on the default port, ``27017``: + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-localhost + :end-before: end-localhost + :dedent: + +Replica Sets +------------ + +To connect to a replica set, it is recommended to specify all nodes that are +part of the replica set. In the event that one or more nodes becomes unavailable, +specifying all nodes allows the driver to still connect to the replica set, +as long as one node is available. + +However, it is sufficient to pass the address of any one node in the replica set +to the driver. The node does not have to be the primary, and it may be a hidden node. +The driver will then automatically discover the remaining nodes. + +The following example shows how to specify three members of the replica set: + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-replica-set + :end-before: end-replica-set + :dedent: + +The following example shows how to connect to the replica set using a connection +string: + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-replica-set-uri + :end-before: end-replica-set-uri + :dedent: + +The following example shows how to verify the replica set name upon connection +by using the ``replica_set`` option or the ``replicaSet`` connection string option: + +.. literalinclude:: /includes/connect/connection-targets.rb + :language: ruby + :start-after: start-replica-set-option + :end-before: end-replica-set-option + :dedent: + +API Documentation +----------------- + +To learn more about creating a ``Mongo::Client`` object with the {+driver-short+}, +see the API documentation for :ruby-api:`Mongo::Client ` . diff --git a/source/connect/csot.txt b/source/connect/csot.txt new file mode 100644 index 000000000..7965e32ac --- /dev/null +++ b/source/connect/csot.txt @@ -0,0 +1,241 @@ +.. _ruby-csot: + +=========================== +Limit Server Execution Time +=========================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: error, blocking, thread, task, code example + +Overview +-------- + +In this guide, you can learn how to use the ``timeout_ms`` option to set a +timeout for server operations. + +When you use the {+driver-short+} to perform a server operation, you can +limit the duration allowed for the server to finish the operation. To do so, +specify a **client-side operation timeout (CSOT)**. The timeout applies to all +steps needed to complete the operation, including server selection, connection +checkout, and server-side execution. If the timeout expires before the operation +completes, the {+driver-short+} raises a timeout exception. + +timeout_ms Option +----------------- + +To specify a timeout when connecting to a MongoDB deployment, set the +``timeout_ms`` connection option to the timeout length in milliseconds. You can +specify a timeout value in the following ways: + +- Pass the ``timeout_ms`` client option to the ``Mongo::Client`` constructor. +- Pass the ``timeoutMS`` connection string option as a parameter to your connection string. + +Select from the following tabs to view examples for how to use the ``timeout_ms`` client +option or the ``timeoutMS`` connection string option to specify a timeout of 30 seconds: + +.. tabs:: + + .. tab:: Mongo::Client + :tabid: mongoclient + + .. code-block:: ruby + :emphasize-lines: 2 + + uri = "" + options = { timeout_ms: 30000 } + + client = Mongo::Client.new(uri, options) + + .. tab:: Connection String + :tabid: connection-string + + .. code-block:: ruby + :emphasize-lines: 1 + + uri = "mongodb://:?timeoutMS=30000" + client = Mongo::Client.new(uri) + +If you specify the ``timeout_ms`` option, the driver automatically applies the +specified timeout for each server operation. + +.. note:: + + The ``timeout_ms`` connection option unifies most timeout related options. + The following timeout options are deprecated: + + - ``socket_timeout`` + - ``wait_queue_timeout`` + - ``wtimeout`` + - ``max_time_ms`` + - ``max_commit_time_ms`` + + The ``timeout_ms`` connection option takes precedence over these + deprecated timeout options. + +Timeout Inheritance +~~~~~~~~~~~~~~~~~~~ + +When you specify a ``timeout_ms`` option, the driver applies the timeout +according to the same inheritance behaviors as the other {+driver-short+} options. +The following table describes how the timeout value is inherited at each level: + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Level + - Inheritance Description + + * - Operation + - Takes the highest precedence and overrides ``timeout_ms`` + options set at any other level. + + * - Transaction + - Takes precedence over ``timeout_ms`` set at the session, + collection, database, or client level. + + * - Session + - Applies to all transactions and operations within + that session, unless the option is overridden by options set at those levels. + + * - Database + - Applies to all sessions and operations within that + database, unless the option is overridden by options set at those levels. + + * - Collection + - Applies to all sessions and operations on that + collection, unless the option is overridden by options set at those levels. + + * - Client + - Applies to all databases, collections, sessions, transactions, and + operations within that client that do not otherwise specify + ``timeout_ms``. + +To learn more about overriding the timeout option and setting other options, see the +following :ref:`ruby-csot-overrides` section. + +.. _ruby-csot-overrides: + +Overrides +--------- + +You can specify a ``timeout_ms`` option at the operation level to override the +client-level configuration for a specific operation. This allows you to +customize timeouts based on the needs of individual queries. + +The following example demonstrates how an operation-level ``timeout_ms`` +configuration can override a client-level ``timeout_ms`` configuration: + +.. literalinclude:: /includes/connect/csot.rb + :language: ruby + :start-after: start-csot-overrides + :end-before: end-csot-overrides + +Transactions +~~~~~~~~~~~~ + +You can set a timeout for transactions by using the ``default_timeout_ms`` client option. + +When you create a new ``Mongo::Session`` instance to implement a transaction, +you can set the ``default_timeout_ms`` client option to specify the +``timeout_ms`` values for the following methods: + +- `commit_transaction <{+api-root+}/Mongo/Session.html#commit_transaction-instance_method>`__ +- `abort_transaction <{+api-root+}/Mongo/Session.html#abort_transaction-instance_method>`__ +- `with_transaction <{+api-root+}/Mongo/Session.html#with_transaction-instance_method>`__ +- `end_session <{+api-root+}/Mongo/Session.html#end_session-instance_method>`__ + +If you do not specify ``default_timeout_ms``, the driver uses the ``timeout_ms`` +value set on the parent ``Mongo::Client``. + +You cannot override the ``timeout_ms`` value of the ``Mongo::Client`` for a +call to ``start_session``. + +You can only set a timeout value for the +`start_transaction <{+api-root+}/Mongo/Session.html#start_transaction-instance_method>`__ +method by using the ``timeout_ms`` option. + +You cannot override ``default_timeout_ms`` by setting the ``timeout_ms`` option on an +operation in a transaction session provided by the ``with_transaction`` callback, +or the driver throws an error. + +Client Encryption +~~~~~~~~~~~~~~~~~ + +When you use Client-Side Field Level Encryption (CSFLE), the driver uses the +``timeout_ms`` option to limit the time allowed for encryption and decryption +operations. + +If you specify the ``timeout_ms`` option when you construct a +``ClientEncryption`` instance, it controls the lifetime of all operations +performed on that instance. If you do not provide ``timeout_ms``, the instance +inherits the ``timeout_ms`` setting from the ``Mongo::Client`` used in the +``ClientEncryption`` constructor. + +If you set ``timeout_ms`` on both the client and directly in +``ClientEncryption``, the value provided to ``ClientEncryption`` takes +precedence. + +Cursors +------- + +Cursors offer configurable timeout settings when using the CSOT feature. You can +adjust cursor handling by configuring either the cursor lifetime or cursor +iteration mode if needed. To configure the mode, set the ``timeoutMode`` option +to ``cursorLifetime``, which is the default, or ``iteration``. + +Cursor Lifetime Mode +~~~~~~~~~~~~~~~~~~~~ + +The cursor lifetime mode uses ``timeout_ms`` to limit the entire lifetime of a +cursor. In this mode, the initialization of the cursor and all subsequent calls +to the cursor methods must complete within the limit specified by the +``timeout_ms`` option. All documents must be returned within this limit. +Otherwise, the cursor's lifetime expires and a timeout error occurs. + +When you close a cursor by calling the ``to_a`` or ``close`` method, the +timeout resets to ensure server-side resources are cleaned up. + +The following example shows how to set the ``timeout_ms`` option to ensure that +the cursor is initialized and all documents are retrieved within 10 seconds: + +.. code-block:: ruby + + docs = collection.find({}, timeout_ms:10000).to_a + +Cursor Iteration Mode +~~~~~~~~~~~~~~~~~~~~~ + +The cursor iteration mode uses the ``timeout_ms`` option to limit each call to +the ``try_next`` method. The timeout refreshes after each call completes. +This is the default mode for all tailable cursors, +such as the tailable cursors returned by the ``find`` method on capped +collections or change streams. + +The following code example iterates over documents in a sample collection +by using an iterable cursor, and then fetches and logs the ``title`` information for +each movie document: + +.. literalinclude:: /includes/connect/csot.rb + :language: ruby + :start-after: start-csot-iterable + :end-before: end-csot-iterable + +API Documentation +----------------- + +To learn more about using timeouts with the {+driver-short+}, see the following +API documentation: + +- :ruby-api:`Mongo::Client ` +- :ruby-api:`Mongo::Session ` diff --git a/source/connect/mongoclient.txt b/source/connect/mongoclient.txt new file mode 100644 index 000000000..7b00d084a --- /dev/null +++ b/source/connect/mongoclient.txt @@ -0,0 +1,135 @@ +.. _ruby-client: + +======================= +Create a MongoDB Client +======================= + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: connection string, URI, server, deployment + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +Overview +-------- + +To connect to a MongoDB deployment, you need two things: + +- **Connection URI**, also known as a *connection string*, which tells the {+driver-short+} + which MongoDB deployment to connect to. +- **Mongo::Client** object, which creates the connection to the MongoDB deployment + and lets you perform operations on it. + +You can also use either of these components to customize the way the {+driver-short+} behaves +while connected to MongoDB. + +This guide shows you how to create a connection string and use a ``Mongo::Client`` object +to connect to MongoDB. + +.. _ruby-connection-uri: + +Connection URI +-------------- + +A standard connection string includes the following components: + +.. list-table:: + :widths: 20 80 + :header-rows: 1 + + * - Component + - Description + + * - ``mongodb://`` + + - Required. A prefix that identifies this as a string in the + standard connection format. + + * - ``db_username:db_password`` + + - Optional. Authentication credentials. If you include these, the client + authenticates the user against the database specified in ``authSource``. + For more information about the ``authSource`` connection option, see the + :ref:`ruby-authentication-mechanisms` guide. + + * - ``hostname[:port]`` + + - Required. The hostname and optional port number where MongoDB is running. If you don't + include the port number, the driver uses the default port, ``27017``. + + * - ``/defaultauthdb`` + + - Optional. The authentication database to use if the + connection string includes ``db_username:db_password@`` + authentication credentials but not the ``authSource`` option. If you don't include + this component, the client authenticates the user against the ``admin`` database. + + * - ``?`` + + - Optional. A query string that specifies connection-specific + options as ``=`` pairs. + See :ref:`ruby-connection-options` for a full description of these options. + +For more information about creating a connection string, see +:manual:`Connection Strings ` in the +MongoDB Server documentation. + +Create a Mongo::Client +---------------------- + +To create a connection to MongoDB, construct an instance of the ``Mongo::Client`` class, +passing the connection URI to the constructor. +The following example constructs a ``Mongo::Client`` object to connect to a MongoDB +deployment on port ``27017`` of ``localhost``: + +.. code-block:: ruby + + client = Mongo::Client.new("mongodb://localhost:27017") + +Alternatively, you can pass an array of strings, each containing a hostname and port +number, to the ``Mongo::Client`` constructor. The following example shows how to use this +syntax to connect to port ``27017`` of ``localhost``: + +.. code-block:: ruby + + client = Mongo::Client.new(['localhost:27017']) + +.. tip:: Reuse Your Client + + Because each ``Mongo::Client`` object represents a pool of connections to the + database, most applications require only a single instance of + ``Mongo::Client``, even across multiple requests. + +Close a Mongo::Client +--------------------- + +When you're finished using a ``Mongo::Client`` object, call the object's ``close`` method, +as shown in the following example. This frees up all resources associated with the object. + +.. code-block:: ruby + + client.close + +Alternatively, you can use Ruby's block syntax to create a ``Mongo::Client`` object. When +you use this syntax, the client is automatically closed after the block finishes executing. + +The following example shows how to use block syntax to create a ``Mongo::Client`` object: + +.. code-block:: ruby + + Mongo::Client.new("mongodb://localhost:27017") do |client| + # work with the client + end + +API Documentation +----------------- + +To learn more about creating a ``Mongo::Client`` object with the {+driver-short+}, +see the API documentation for :ruby-api:`Mongo::Client. ` \ No newline at end of file diff --git a/source/connect/stable-api.txt b/source/connect/stable-api.txt new file mode 100644 index 000000000..fb29ff6b9 --- /dev/null +++ b/source/connect/stable-api.txt @@ -0,0 +1,116 @@ +.. _ruby-stable-api: + +=========== +Stable API +=========== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: compatible, backwards, upgrade + +.. note:: + + The Stable API feature requires {+mdb-server+} 5.0 or later. + +Overview +-------- + +In this guide, you can learn how to specify **{+stable-api+}** compatibility when +connecting to a MongoDB deployment. + +The {+stable-api+} feature forces the server to run operations with behaviors compatible +with the API version you specify. Using the {+stable-api+} ensures consistent responses +from the server and provides long-term API stability for your application. + +The following sections describe how you can enable and customize the {+stable-api+} for +your MongoDB client. For more information about the {+stable-api+}, including a list of +the commands it supports, see :manual:`Stable API ` in the +{+mdb-server+} manual. + +Enable the {+stable-api+} +------------------------- + +To enable the {+stable-api+}, pass a hash that specifies the {+stable-api+} version to the optional +``server_api`` parameter when you create a ``Mongo::Client`` instance. + +The following code example shows how to specify {+stable-api+} version 1: + +.. code-block:: ruby + + client = Mongo::Client.new(uri, server_api: { version: '1' }) + +Once you create a ``Client`` instance with +a specified API version, all commands that you run with the client use the specified +version. If you must run commands using more than one version of the +{+stable-api+}, create a new ``Client``. + +Configure the {+stable-api+} +---------------------------- + +The following table describes {+stable-api+} options that you can set by specifying +them in the ``server_api`` hash. You can use these options to customize the behavior of the +{+stable-api+}. + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :widths: 25,75 + + * - Option Name + - Description + + * - strict + - | **Optional**. When ``true``, if you call a command that isn't part of + the declared API version, the driver raises an exception. + | + | Default: **false** + + * - deprecation_errors + - | **Optional**. When ``true``, if you call a command that is deprecated in the + declared API version, the driver raises an exception. + | + | Default: **false** + +The following code example shows how you can set the two options on a ``ServerApi`` instance: + +.. code-block:: ruby + + client = Mongo::Client.new(uri, + server_api: { version: '1', strict: true, deprecation_errors: true }) + +Troubleshooting +--------------- + +The following sections describe common issues you might encounter when using the {+stable-api+}. + +Unrecognized field 'apiVersion' on server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The {+driver-short+} raises this exception if you specify an API version and connect to a +MongoDB server that doesn't support the {+stable-api+}. Ensure you're connecting to a +deployment running {+mdb-server+} v5.0 or later. + +Provided apiStrict:true, but the command count is not in API Version +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The {+driver-short+} raises this exception if your ``Client`` runs an operation that +isn't in the {+stable-api+} version you specified. To avoid this error, use an alternative +operation supported by the specified {+stable-api+} version, or set the ``strict`` +option to ``false`` when constructing your ``ServerApi`` object. + +API Documentation +----------------- + +For more information about using the {+stable-api+} with the {+driver-short+}, see the +following API documentation: + +- :ruby-api:`Mongo::Client ` \ No newline at end of file diff --git a/source/connect/tls.txt b/source/connect/tls.txt new file mode 100644 index 000000000..f9690969a --- /dev/null +++ b/source/connect/tls.txt @@ -0,0 +1,326 @@ +.. _ruby-tls: + +======================================== +Configure Transport Layer Security (TLS) +======================================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: security, authentication, transport layer security, encrypt + +Overview +-------- + +In this guide, you can learn how to use the Transport Layer Security (TLS) +protocol to secure your connection to a MongoDB deployment. + +To connect to a MongoDB deployment using TLS, you must perform the following steps: + +- Enable a TLS connection in ``Mongo::Client``. +- Specify the client TLS certificate. +- Specify the Certificate Authority (CA) certificate to verify the server's TLS certificate. + +To learn how to configure your MongoDB deployment for TLS, see the +:manual:`TLS configuration guide ` in the +{+mdb-server+} manual. + +.. note:: + + This page assumes prior knowledge of TLS/SSL and access to valid certificates. + A full description of TLS/SSL, PKI (Public Key Infrastructure) certificates, and + CAs is beyond the scope of this documentation. To learn more about TLS, see the + Wikipedia entry for :wikipedia:`Transport Layer Security `. + +.. _ruby-enable-tls: + +Enable TLS +---------- + +You can enable TLS for the connection to your MongoDB deployment in the following ways: + +- Set the ``ssl`` option to ``true`` in a new ``Mongo:Client`` object. +- Set the ``tls`` option to ``true`` in your connection string. + +.. note:: SSL Naming Convention + + All {+mdb-server+} versions supported by the {+driver-short+} v2.6 and later + implement only TLS. 2.6 and do not use SSL. + + For historical reasons, the Ruby driver prefixes TLS options with ``ssl`` + instead of ``tls``. {+driver-short+} version 3.0 and later will use the + ``tls`` prefix for Ruby option names. + +.. tabs:: + + .. tab:: Mongo::Client + :tabid: mongoclient + + To configure certificates, you must specify the following options: + + - ``ssl_cert``: The certificate file used to verify the connection to + a MongoDB deployment. + - ``ssl_key``: The private keyfile used to verify the connection to + a MongoDB deployment. + - ``ssl_ca_cert``: The file containing the concatenated CA certificates + used to validate certificates passed from the MongoDB deployment to the + client. If you don't specify a value for this option, the driver uses + the default system root certificate store as the trust anchor. + + In the following example, the TLS certificate and corresponding private key + are provided in separate files: + + .. literalinclude:: /includes/connect/tls.rb + :language: ruby + :dedent: + :start-after: start-enable-tls-settings + :end-before: end-enable-tls-settings + + You can specify both the TLS certificate and private key in a single file, but + both the certificate and private key options must still be specified. In the + following example, the TLS certificate and the private key are both defined + in the same ``client.pem`` file: + + .. literalinclude:: /includes/connect/tls.rb + :language: ruby + :dedent: + :start-after: start-enable-tls-settings-same-file + :end-before: end-enable-tls-settings-same-file + + .. tab:: Connection String + :tabid: uri + + To configure certificates, you must specify the following URI options: + + - ``tlsCertificateKeyFile``: The file that contains the certificate and keyfile + used to verify the connection to a MongoDB deployment. + - ``tlsCAFile``: The file containing the concatenated CA certificates + used to validate certificates passed from the MongoDB deployment to the + client. If you don't specify a value for this option, the driver uses + the default system root certificate store as the trust anchor. + + .. literalinclude:: /includes/connect/tls.rb + :language: ruby + :dedent: + :start-after: start-enable-tls-uri + :end-before: end-enable-tls-uri + + The file containing the certificate and key usually has a``.crt`` or ``.pem`` + extension. + + URI option values must be percent-encoded. This applies, for example, + to slashes (/) in the paths, which are encoded as ``%2f``. + +Specify Client TLS Certificates +------------------------------- + +The {+driver-short+} provides multiple options for you to specify +the TLS certificate, key, and CA certificate with different data or object types. + +TLS Certificate +~~~~~~~~~~~~~~~ + +You can provide one of the following options to specify the TLS certificate: + +.. list-table:: + :header-rows: 1 + :widths: 20 30 50 + + * - Option Name + - Data/Object Type Accepted + - Description + * - ``:ssl_cert`` + - ``String`` + - The certificate file path used to verify the connection to a MongoDB + deployment. + * - ``:ssl_cert_object`` + - ``OpenSSL::X509::Certificate`` + - The certificate object used to verify the connection to a MongoDB + deployment. + * - ``:ssl_cert_string`` + - ``String`` + - A string containing the PEM-encoded certificate used to verify the connection to + a MongoDB deployment. + +TLS Private Key +~~~~~~~~~~~~~~~ + +You can provide one of the following options to specify the TLS private key: + +.. list-table:: + :header-rows: 1 + :widths: 20 30 50 + + * - Option Name + - Data/Object Type Accepted + - Description + * - ``:ssl_key`` + - ``String`` + - The private keyfile path used to verify the connection to a MongoDB + deployment. + * - ``:ssl_key_object`` + - ``OpenSSL::PKey`` + - The private key object used to verify the connection to a MongoDB + deployment. + * - ``:ssl_key_pass_phrase`` + - ``String`` + - A passphrase for the private key. + * - ``:ssl_key_string`` + - ``String`` + - A string containing the PEM-encoded private key used to verify the + connection to a MongoDB deployment. + +TLS CA Certificate +~~~~~~~~~~~~~~~~~~ + +You can provide one of the following options to specify the TLS CA certificate: + +.. list-table:: + :header-rows: 1 + :widths: 20 30 50 + + * - Option Name + - Data/Object Type Accepted + - Description + * - ``:ssl_ca_cert`` + - ``String`` + - The file path containing concatenated CA certificates used to validate certificates + passed from the MongoDB deployment to the client. + * - ``:ssl_ca_cert_object`` + - ``Array`` + - An array of objects representing the CA certificates used + to validate certificates passed from the MongoDB deployment to the client. + * - ``:ssl_ca_cert_string`` + - ``String`` + - A string containing one PEM-encoded CA certificate used to validate certificates + passed from the MongoDB deployment to the client. + +Modify the TLS Context +---------------------- + +If your TLS configuration requires customization, you can set TLS context hooks +by adding a native Ruby ``Proc`` object to the ``Mongo.tls_context_hooks`` +array. Add the ``Proc`` object to the array before you create any ``Mongo::Client`` +instances. + +The following code example enables the AES256-SHA cipher as the only cipher +to be used for TLS: + +.. literalinclude:: /includes/connect/tls.rb + :language: ruby + :dedent: + :start-after: start-modify-context + :end-before: end-modify-context + +The {+driver-short+} TLS context options are based on native Ruby handling of SSL. To +learn more about the TLS context options available, see the Ruby +documentation for +`SSLContext `__. + +OCSP Verification +----------------- + +If the certificate provided by the server contains an OCSP endpoint URI, +the driver issues an Online Certificate Status Protocol (OCSP) request to +the specified endpoint by default to verify the validity of the certificate. + +To disable the OCSP endpoint check, set the ``:ssl_verify_ocsp_endpoint`` +Ruby option to ``false`` or set the ``tlsDisableOCSPEndpointCheck`` URI option +to ``true`` when creating a client. + +.. note:: JRuby Does Not Support OCSP Verification + + Because JRuby does not correctly expose OCSP endpoint URIs, + the driver does not check OCSP endpoints when the underlying + application runs on JRuby. + +Allow Insecure TLS +------------------ + +When TLS is enabled, the {+driver-short+} automatically verifies the certificate that +the server presents. When testing your code, you can disable this verification. +This is known as **insecure TLS**. + +When insecure TLS is enabled, the driver requires only that the server present an +X.509 certificate. The driver accepts a certificate even if any of the following are +true: + +- The hostname of the server and the subject name (or subject alternative name) + on the certificate don't match. +- The certificate is expired or not yet valid. +- The certificate doesn't have a trusted root certificate in the chain. +- The certificate purpose isn't valid for server identification. + +.. note:: + + Even when insecure TLS is enabled, communication between the client and server + is encrypted with TLS. + +To enable insecure TLS, set the ``sslVerify`` client option or the ``tlsInsecure`` +URI option to ``true``: + +.. tabs:: + + .. tab:: Mongo::Client + :tabid: mongoclient + + .. literalinclude:: /includes/connect/tls.rb + :language: ruby + :dedent: + :start-after: start-ssl-verify + :end-before: end-ssl-verify + + .. tab:: Connection String + :tabid: uri + + .. literalinclude:: /includes/connect/tls.rb + :language: ruby + :dedent: + :start-after: start-tls-insecure + :end-before: end-tls-insecure + +You can similarly set the following options to disable verification for the +certificate or hostname: + +.. tabs:: + + .. tab:: Mongo::Client + :tabid: mongoclient + + - ``ssl_verify_certificate``: Disable certificate validation by setting the + option to ``false``. + - ``ssl_verify_hostname``: Disable hostname verification by setting the option + to ``false``. + + .. tab:: Connection String + :tabid: uri + + - ``tlsAllowInvalidCertificates``: Disable certificate validation by setting + the option to ``true``. + - ``tlsAllowInvalidHostnames``: Disable hostname validation by setting + the option to ``true``. + +.. warning:: Don't Use Insecure TLS in Production + + Always disable insecure TLS in production. + + Enabling insecure TLS in a production environment makes your application + insecure and potentially vulnerable to expired certificates and foreign + processes posing as valid client instances. + +API Documentation +----------------- + +For more information about any of the types and methods discussed in this guide, +see the following API documentation: + +- :ruby-api:`Mongo::Client ` +- `tls_context_hooks <{+api-root+}Mongo.html#tls_context_hooks-class_method>`__ diff --git a/source/contribute.txt b/source/contribute.txt deleted file mode 100644 index a541b15fa..000000000 --- a/source/contribute.txt +++ /dev/null @@ -1,81 +0,0 @@ -************************ -Contribute to the Driver -************************ - -.. default-domain:: mongodb - -Report Bugs and Request Ruby Driver-Specific Features -===================================================== - -To report a bug in the driver or request a feature specific to the Ruby driver: - -1. Visit `our issue tracker `_ and login - (or create an account if you do not have one already). -2. Navigate to the `RUBY project `_. -3. Click :guilabel:`Create Issue` and fill out all of the applicable form - fields. - -When creating an issue, please keep in mind that all information in JIRA -for the RUBY project, as well as the core server (the SERVER project), -is publicly visible. - -**PLEASE DO:** - -- Provide as much information as possible about the issue. -- Provide detailed steps for reproducing the issue. -- Provide any applicable code snippets, stack traces and log data. - Do not include any sensitive data or server logs. -- Specify version numbers of the driver and MongoDB server. - -**PLEASE DO NOT:** - -- Provide any sensitive data or server logs. -- Report potential security issues publicly (see 'Security Issues' below). - -.. note:: - - Bug reports in JIRA for the Ruby driver and the core server (the **SERVER**) - projects are public. - -If you identified a potential security vulnerability in the Ruby driver or -any other MongoDB product, please report it according to the instructions found -in the :manual:`Create a Vulnerability Report -`. - - -Request Product Features -======================== - -To request a feature which is not specific to the Ruby driver, or which -affects more than the driver alone (for example, a feature which requires -MongoDB server support), please submit your idea through the -`MongoDB Feedback Forum `_. - - -Contribute Code -=============== - -The MongoDB Ruby driver source is located -`at GitHub `_. - -The list of known issues in the driver is available -`in JIRA `_. - -We recommend creating a JIRA ticket before starting work on a bug fix or -an improvement to the driver, to obtain feedback from the Ruby driver team -as to the proposed changes. A JIRA ticket is not required to submit -a pull request but it is appreciated, especially for non-trivial changes. - -Pull requests should be made against the ``master`` branch and -include relevant tests, if applicable. The Ruby driver team will backport -the changes to the stable branches, if needed. - -A MongoDB deployment is required to run the tests. Setup procedures and -recommendations for various deployments, as well as how to configure the -driver's test suite for the deployments, are covered in the `spec -readme `__. - -The driver is tested on `Evergreen `_, -MongoDB's in-house continuous integration platform. After a pull request -is created, one of the Ruby driver team engineers will schedule an Evergreen -build. diff --git a/source/data-formats.txt b/source/data-formats.txt new file mode 100644 index 000000000..7b5aa535b --- /dev/null +++ b/source/data-formats.txt @@ -0,0 +1,36 @@ +.. _ruby-data-formats: + +============ +Data Formats +============ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :description: Learn how to use indexes by using the MongoDB Ruby Driver. + :keywords: ruby, query, collections, time series + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Time Series Data + BSON + +Overview +-------- + +You can use several types of specialized data formats in your {+driver-short+} +application. To learn how to work with these data formats, see the following +sections: + +- :ref:`ruby-time-series`: Learn how to create a time series collection and interact with time series data. +- :ref:`ruby-bson-tutorial`: Learn how to work with BSON data by using the {+driver-short+}'s BSON library. diff --git a/source/tutorials/bson.txt b/source/data-formats/bson.txt similarity index 97% rename from source/tutorials/bson.txt rename to source/data-formats/bson.txt index 15d7d1d63..05f7ab867 100644 --- a/source/tutorials/bson.txt +++ b/source/data-formats/bson.txt @@ -1,10 +1,8 @@ -.. https://www.mongodb.com/docs/ecosystem/tutorial/ruby-bson-tutorial/ - .. _ruby-bson-tutorial: -************* +============= BSON Tutorial -************* +============= .. default-domain:: mongodb @@ -14,10 +12,10 @@ BSON Tutorial :depth: 2 :class: twocols -This tutorial discusses using the Ruby BSON library. +In this tutorial, you can learn how to use the Ruby BSON library. Installation -============ +------------ The BSON library can be installed from `Rubygems `_ manually or with bundler. @@ -37,7 +35,7 @@ To install the gem with bundler, include the following in your ``Gemfile``: The BSON library is compatible with MRI >= 2.5 and JRuby >= 9.2. Use With ActiveSupport -====================== +---------------------- Serialization for ActiveSupport-defined classes, such as TimeWithZone, is not loaded by default to avoid a hard dependency of BSON on ActiveSupport. @@ -50,7 +48,7 @@ ActiveSupport-related code must be explicitly required: require 'bson/active_support' BSON Serialization -================== +------------------ Getting a Ruby object's raw BSON representation is done by calling ``to_bson`` on the Ruby object, which will return a ``BSON::ByteBuffer``. For example: @@ -70,13 +68,13 @@ you wish to instantiate and passing it a ``BSON::ByteBuffer`` instance. Byte Buffers -============ +------------ BSON library 4.0 introduces the use of native byte buffers in MRI and JRuby instead of using ``StringIO``, for improved performance. Writing -------- +~~~~~~~ To create a ``ByteBuffer`` for writing (i.e. serializing to BSON), instantiate ``BSON::ByteBuffer`` with no arguments: @@ -182,9 +180,8 @@ over a socket), call ``to_s`` on the buffer: There is no way to rewind the buffer for writing - ``rewind`` only affects the read position. - Reading -------- +~~~~~~~ To create a ``ByteBuffer`` for reading (i.e. deserializing from BSON), instantiate ``BSON::ByteBuffer`` with a byte string as the argument: @@ -216,9 +213,8 @@ To restart reading from the beginning of a buffer, use ``rewind``: ``ByteBuffer`` keeps track of read and write positions separately. ``rewind`` only affects the read position. - Supported Classes -================= +----------------- Core Ruby classes that have representations in the BSON specification and will have a ``to_bson`` method defined for them are: ``Object``, ``Array``, @@ -228,9 +224,8 @@ will have a ``to_bson`` method defined for them are: ``Object``, ``Array``, In addition to the core Ruby objects, BSON also provides some special types specific to the specification: - ``BSON::Binary`` ----------------- +~~~~~~~~~~~~~~~~ Use ``BSON::Binary`` objects to store arbitrary binary data. The ``Binary`` objects can be constructed from binary strings as follows: @@ -379,9 +374,8 @@ These methods can be used to convert from one representation to another: BSON::Binary.from_uuid('77665544-3322-1100-ffeeddccbbaa9988',:java_legacy).to_uuid(:csharp_legacy) # => "33221100-5544-7766-8899aabbccddeeff" - ``BSON::Code`` --------------- +~~~~~~~~~~~~~~ Represents a string of JavaScript code. @@ -390,7 +384,7 @@ Represents a string of JavaScript code. BSON::Code.new("this.value = 5;") ``BSON::CodeWithScope`` ------------------------ +~~~~~~~~~~~~~~~~~~~~~~~ .. note:: @@ -405,9 +399,8 @@ Represents a string of JavaScript code with a hash of values. BSON::CodeWithScope.new("this.value = age;", age: 5) - ``BSON::DBRef`` ---------------- +~~~~~~~~~~~~~~~ This is a subclass of ``BSON::Document`` that provides accessors for the collection, id, and database of the DBRef. @@ -447,9 +440,8 @@ This API is deprecated and will be removed in a future version of ``bson-ruby``: BSON::DBRef.new("collection", BSON::ObjectId('61eeb760a15d5d0f9f1e401d')) BSON::DBRef.new("collection", BSON::ObjectId('61eeb760a15d5d0f9f1e401d'), "db") - ``BSON::Document`` ------------------- +~~~~~~~~~~~~~~~~~~ This is a subclass of ``Hash`` that stores all keys as strings, but allows access to them with symbol keys. @@ -473,9 +465,8 @@ access to them with symbol keys. loaded.class => BSON::Document - ``BSON::MaxKey`` ----------------- +~~~~~~~~~~~~~~~~ Represents a value in BSON that will always compare higher to another value. @@ -484,7 +475,7 @@ Represents a value in BSON that will always compare higher to another value. BSON::MaxKey.new ``BSON::MinKey`` ----------------- +~~~~~~~~~~~~~~~~ Represents a value in BSON that will always compare lower to another value. @@ -493,7 +484,7 @@ Represents a value in BSON that will always compare lower to another value. BSON::MinKey.new ``BSON::ObjectId`` ------------------- +~~~~~~~~~~~~~~~~~~ Represents a 12 byte unique identifier for an object on a given machine. @@ -502,7 +493,7 @@ Represents a 12 byte unique identifier for an object on a given machine. BSON::ObjectId.new ``BSON::Timestamp`` -------------------- +~~~~~~~~~~~~~~~~~~~ Represents a special time with a start and increment value. @@ -511,7 +502,7 @@ Represents a special time with a start and increment value. BSON::Timestamp.new(5, 30) ``BSON::Undefined`` -------------------- +~~~~~~~~~~~~~~~~~~~ Represents a placeholder for a value that was not provided. @@ -520,7 +511,7 @@ Represents a placeholder for a value that was not provided. BSON::Undefined.new ``BSON::Decimal128`` --------------------- +~~~~~~~~~~~~~~~~~~~~ Represents a 128-bit decimal-based floating-point value capable of emulating decimal rounding with exact precision. @@ -566,7 +557,7 @@ follows: on ``from_bson``. ``Symbol`` ----------- +~~~~~~~~~~ The BSON specification defines a symbol type which allows round-tripping Ruby ``Symbol`` values (i.e., a Ruby ``Symbol``is encoded into a BSON symbol @@ -613,7 +604,7 @@ To force encoding of Ruby symbols to BSON symbols, wrap the Ruby symbols in # => "\x12\x00\x00\x00\x0Efoo\x00\x04\x00\x00\x00bar\x00\x00" JSON Serialization -================== +------------------ Some BSON types have special representations in JSON. These are as follows and will be automatically serialized in the form when calling ``to_json`` on @@ -655,7 +646,7 @@ them. Time Instances -============== +-------------- Times in Ruby can have nanosecond precision. Times in BSON (and MongoDB) can only have millisecond precision. When Ruby ``Time`` instances are @@ -686,9 +677,8 @@ Because of this flooring, applications are strongly recommended to perform all time calculations using integer math, as inexactness of floating point calculations may produce unexpected results. - DateTime Instances -================== +------------------ BSON only supports storing the time as the number of seconds since the Unix epoch. Ruby's ``DateTime`` instances can be serialized to BSON, @@ -702,7 +692,7 @@ database. Date Instances -============== +-------------- BSON only supports storing the time as the number of seconds since the Unix epoch. Ruby's ``Date`` instances can be serialized to BSON, but when @@ -713,7 +703,7 @@ of the day that the ``Date`` refers to in UTC. Regular Expressions -=================== +------------------- Both MongoDB and Ruby provide facilities for working with regular expressions, but they use regular expression engines. The following subsections detail the @@ -721,7 +711,7 @@ differences between Ruby regular expressions and MongoDB regular expressions and describe how to work with both. Ruby vs MongoDB Regular Expressions ------------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MongoDB server uses `Perl-compatible regular expressions implemented using the PCRE library `_ and `Ruby regular expressions @@ -799,7 +789,7 @@ When writing portable regular expressions: - ``(?:\z|(?=[\n\n]))`` (handles CR, LF and CR+LF line ends) ``BSON::Regexp::Raw`` Class ---------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~ Since there is no simple way to programmatically convert a PCRE regular expression into the equivalent Ruby regular expression, @@ -830,7 +820,7 @@ the ``BSON::`` prefix may be omitted: # => # Regular Expression Conversion ------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To convert a Ruby regular expression to a BSON regular expression, instantiate a ``BSON::Regexp::Raw`` object as follows: @@ -880,7 +870,7 @@ expression always has the ``m`` modifier set reflecting the behavior of ``^`` and ``$`` anchors in Ruby regular expressions. Reading and Writing -------------------- +~~~~~~~~~~~~~~~~~~~ Both Ruby and BSON regular expressions implement the ``to_bson`` method for serialization to BSON: @@ -921,7 +911,7 @@ as described above. Key Order -========= +--------- BSON documents preserve the order of keys, because the documents are stored as lists of key-value pairs. Hashes in Ruby also preserve key order; thus @@ -931,7 +921,7 @@ the order of keys in the document will match the order of keys in the hash. Duplicate Keys -============== +-------------- BSON specification allows BSON documents to have duplicate keys, because the documents are stored as lists of key-value pairs. Applications should refrain diff --git a/source/data-formats/time-series.txt b/source/data-formats/time-series.txt new file mode 100644 index 000000000..cc52f747c --- /dev/null +++ b/source/data-formats/time-series.txt @@ -0,0 +1,202 @@ +.. _ruby-time-series: + +================ +Time Series Data +================ + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: ruby, time series, collections, code example + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +Overview +-------- + +In this guide, you can learn how to use {+driver-short+} to store +and interact with **time series data**. + +Time series data is composed of the following components: + +- Measured quantity +- Timestamp for the measurement +- Metadata that describes the measurement + +The following table describes sample situations for which you could store time +series data: + +.. list-table:: + :widths: 33, 33, 33 + :header-rows: 1 + :stub-columns: 1 + + * - Situation + - Measured Quantity + - Metadata + + * - Recording monthly sales by industry + - Revenue in USD + - Company, country + + * - Tracking weather changes + - Precipitation level + - Location, sensor type + + * - Recording fluctuations in housing prices + - Monthly rent price + - Location, currency + +.. _ruby-time-series-create: + +Create a Time Series Collection +------------------------------- + +.. important:: Server Version for Time Series Collections + + To create and interact with time series collections, you must be + connected to a deployment running {+mdb-server+} 5.0 or later. + +To create a time series collection, you must pass an options hash that contains +the specifications for the collection. You can specify the following specifications +for your time series collection: + +- ``:timeField``: Specifies the field that stores a timestamp in each time series + document. +- ``:metaField``: Specifies the field that stores metadata in each time series + document. +- ``:granularity``: Specifies the approximate time between consecutive timestamps. + The possible values are ``'seconds'``, ``'minutes'``, and ``'hours'``. +- ``:bucketMaxSpanSeconds``: Sets the maximum time between timestamps in the + same bucket. +- ``:bucketRoundingSeconds``: Sets the number of seconds to round down by when + MongoDB sets the minimum timestamp for a new bucket. Must be equal to + ``:bucketMaxSpanSeconds``. + +See :manual:`Command Fields ` +in the {+mdb-server+} manual entry on the ``create`` command to learn more about +these parameters. + +Example +~~~~~~~ + +The following example uses the ``Collection#create`` method to create a time series +collection named ``october2024`` with the ``:timeField``` option set to ``"timestamp"``: + +.. literalinclude:: /includes/usage-examples/time-series.rb + :language: ruby + :dedent: + :start-after: start-create + :end-before: end-create + +To verify that you have successfully created the collection, print a list of all +collections in your database and filter by collection name, as shown in the following +code: + +.. io-code-block:: + + .. input:: /includes/usage-examples/time-series.rb + :language: ruby + :start-after: start-correct + :end-before: end-correct + :dedent: + + .. output:: + :language: json + :visible: false + + [ + { + "name": "october2024", + "type": "timeseries", + "options": { + "timeseries": { + "timeField": "timestamp", + "granularity": "seconds", + "bucketMaxSpanSeconds": 3600 + } + }, + "info": { + "readOnly": false + } + } + ] + + +.. _ruby-time-series-write: + +Store Time Series Data +---------------------- + +You can insert data into a time series collection by using the ``insert_one`` +or ``insert_many`` method and specifying the measurement, timestamp, and +metadata in each inserted document. + +To learn more about inserting documents, see the :ref:`ruby-write-insert` guide. + +Example +~~~~~~~ + +This example inserts New York City temperature data into the ``october2024`` +time series collection created in the preceding :ref:`ruby-time-series-create` +section. Each document contains the following fields: + +- ``temperature``, which stores temperature measurements in degrees Fahrenheit +- ``location``, which stores location metadata +- ``timestamp``, which stores the measurement timestamp + +.. literalinclude:: /includes/usage-examples/time-series.rb + :language: ruby + :dedent: + :start-after: start-insert + :end-before: end-insert + +.. TODO: add link + +.. .. tip:: Formatting Dates and Times + + .. To learn more about using ``datetime`` objects in {+driver-short+}, see + .. :ref:`ruby-dates-times`. + +.. _ruby-time-series-read: + +Query Time Series Data +---------------------- + +You can use the same syntax and conventions to query data stored in a time +series collection as you use when performing read or aggregation operations on +other collections. To learn more about these operations, see the following +guides: + +- :ref:`ruby-read` +- :ref:`ruby-aggregation` + +.. _ruby-time-series-addtl-info: + +Additional Information +---------------------- + +To learn more about the concepts in this guide, see the following {+mdb-server+} +manual entries: + +- :manual:`Time Series ` +- :manual:`Create and Query a Time Series Collection ` +- :manual:`Set Granularity for Time Series Data ` + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about the methods mentioned in this guide, see the following +API documentation: + +- :ruby-api:`create ` +- :ruby-api:`list_collections ` +- :ruby-api:`insert_one ` +- :ruby-api:`insert_many ` + diff --git a/source/databases-collection.txt b/source/databases-collection.txt new file mode 100644 index 000000000..e48f19a18 --- /dev/null +++ b/source/databases-collection.txt @@ -0,0 +1,264 @@ +.. _ruby-databases-collections: + +========================= +Databases and Collections +========================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: table, row, organize, storage + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Run a Command + +Overview +-------- + +In this guide, you can learn how to use MongoDB databases and +collections with {+driver-short+}. + +MongoDB organizes data into a hierarchy of the following levels: + +- **Databases**: The top level of data organization in a MongoDB instance. +- **Collections**: MongoDB stores documents in collections. They are analogous to tables in relational databases. +- **Documents**: Contain literal data such as string, numbers, dates, and other embedded documents. + +For more information about document field types and structure, see the +:manual:`Documents ` guide in the {+mdb-server+} manual. + +.. TODO: Add a diagram here + +Access a Database +----------------- + +Access a database by creating a ``Mongo::Client`` instance with the desired +database name. + +The following example accesses a database named ``test_database``: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-access-db + :end-before: end-access-db + + +Access a Collection +------------------- + +Access a collection by using the ``[]`` method on an instance +of your database. + +The following example accesses a collection named ``test_collection``: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :emphasize-lines: 2 + :start-after: start-access-cl + :end-before: end-access-cl + +.. tip:: + + If the provided collection name does not already exist in the database, + MongoDB implicitly creates the collection when you first insert data + into it. + +Create a Collection +------------------- + +While the Ruby driver for MongoDB does not have a direct ``create_collection`` +method, you can use the ``create`` method to create a collection with +specific options. + +The following example creates a collection called example_collection with +specific options: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :emphasize-lines: 2 + :start-after: start-create-collection + :end-before: end-create-collection + +You can specify collection options such as maximum size, document validation +rules, and others by passing them as arguments to the command method with the +create command. For a full list of optional parameters, refer to the MongoDB +documentation on the :manual:`create command `. + +Get a List of Collections +------------------------- + +You can query for a list of collections in a database by calling the ``collections`` +method. This method returns an array of collection objects in the database. + +The following example calls the ``collections`` method and iterates over the array +to print the results: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-get-list + :end-before: end-get-list + +To query for only the names of the collections in the database, call the +``collection_names`` method as follows: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-get-list-names + :end-before: end-get-list-names + +.. note:: + + The ``database.collections`` objects list provides more detailed information + (i.e. each collection object can be further queried for metadata), while + ``database.collection_names`` simply lists the collection names. + +Delete a Collection +------------------- + +You can delete a collection from the database by using the ``drop`` method. + +The following example deletes the ``test_collection`` collection: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-delete + :end-before: end-delete + +.. warning:: Dropping a Collection Deletes All Data in the Collection + + Dropping a collection from your database permanently deletes all + documents and all indexes within that collection. + + Drop a collection only if the data in it is no longer needed. + +.. _ruby-config-read-write: + +Configure Read and Write Operations +----------------------------------- + +You can control how the driver routes read operations by setting a **read preference**. +You can also control options for how the driver waits for acknowledgment of +read and write operations on a replica set by setting a **read concern** and a +**write concern**. + +By default, databases inherit these settings from the ``Mongo::Client`` instance, +and collections inherit them from the database. However, you can change these +settings on your database or collection by using one of the following methods: + +- ``database.with``: Gets the database and applies the new read preference, read + concern, and write concern. +- ``collection.with``: Gets the collection and applies the new read preference, + read concern, and write concern. + +To change read or write settings with the preceding methods, call the method and +pass in the new read preference, read concern, or write concern. + +The following example shows how to change the read preference, read concern, and +write preference of a database called ``test-database`` with the ``database.with`` +method: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-with-database + :end-before: end-with-database + +The following example shows how to change the read preference, read concern, and +write concern of a collection: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-with-collection + :end-before: end-with-collection + +To learn more about the read and write settings, see the following guides in the +MongoDB Server manual: + +- :manual:`Read Preference ` +- :manual:`Read Concern ` +- :manual:`Write Concern ` + +Tag Sets +~~~~~~~~ + +In {+mdb-server+}, you can apply key-value :manual:`tags +` to replica set +members according to any criteria you choose. You can then use +those tags to target one or more members for a read operation. + +By default, the MongoDB {+driver-short+} selects primary members for read operations. +You can modify this behavior by setting read preferences and, optionally, tag sets. + +In the following code example, the tag set passed to the ``:read`` parameter +instructs the {+driver-short+} to prefer reads from the New York data center +(``'dc':'ny'``) and to fall back to the San Francisco data center (``'dc':'sf'``): + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-tag-sets + :end-before: end-tag-sets + +To learn more about replica sets, see the the MongoDB Server manual +:manual:`Replica Set Members ` page. + +Local Threshold +~~~~~~~~~~~~~~~ + +If multiple replica set members match the read preference and tag sets you specify, +{+driver-short+} reads from the nearest replica set members of sharded clusters, +chosen according to their ping time. + +By default, the driver uses only those members whose ping times are within 15 milliseconds +of the nearest member for queries. To distribute reads between members with +higher latencies, pass the ``local_threshold`` option to the ``Mongo::Client`` constructor. + +The following example specifies a local threshold of 35 milliseconds: + +.. literalinclude:: /includes/usage-examples/databases-collection.rb + :language: ruby + :dedent: + :start-after: start-local-threshold-example + :end-before: end-local-threshold-example + :emphasize-lines: 5 + +In the preceding example, {+driver-short+} distributes reads between matching members +within 35 milliseconds of the closest member's ping time. + +.. note:: + + {+driver-short+} ignores the value of ``local_threshold`` when communicating with a + replica set through a ``mongos`` instance. In this case, use the + :manual:`localThreshold ` + command-line option. + +API Documentation +----------------- + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`collections ` +- :ruby-api:`collection_names ` +- :ruby-api:`command ` +- :ruby-api:`drop database ` +- :ruby-api:`drop collection ` +- :ruby-api:`with ` \ No newline at end of file diff --git a/source/databases-collections/run-command.txt b/source/databases-collections/run-command.txt new file mode 100644 index 000000000..5d1c5eb6b --- /dev/null +++ b/source/databases-collections/run-command.txt @@ -0,0 +1,184 @@ +.. _ruby-run-command: + +====================== +Run a Database Command +====================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: administration, code example + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to +run a database command. You can use database commands to perform a +variety of administrative and diagnostic tasks, such as fetching server +statistics, initializing a replica set, or running an aggregation pipeline. + +.. important:: Prefer Driver Methods to Database Commands + + The driver provides wrapper methods for many database commands. + If possible, we recommend using these methods instead of executing + database commands. + + To perform administrative tasks, use the :mongosh:`MongoDB Shell ` + instead of the {+driver-short+}. The shell provides helper methods + that might not be available in the driver. + + If there are no available helpers in the driver or the shell, you + can use the ``db.runCommand()`` shell method or the driver's + ``command`` method, which is described in this guide. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this database +from your {+language+} application, create a ``Mongo::Client`` object that connects to an Atlas cluster +and assign the following value to your ``database`` variable: + +.. literalinclude:: /includes/databases-collections/run-command.rb + :language: scala + :dedent: + :start-after: start-db + :end-before: end-db + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Execute a Command +----------------- + +To run a database command, run the ``command`` instance method of a ``Mongo::Database`` +instance and pass the name of the operation to run as a parameter. + +The following example calls the ``command`` method to run the ``hello`` command, which +returns information about the server: + +.. literalinclude:: /includes/databases-collections/run-command.rb + :language: scala + :dedent: + :start-after: start-hello + :end-before: end-hello + +.. tip:: + + To view a full list of database commands and their corresponding + parameters, see :manual:`Database Commands ` in + the {+mdb-server+} manual. + +Set a Read Preference +---------------------- + +The ``command`` method does not inherit the read preference you might +have set on your ``Database`` instance. By default, ``command`` +uses the ``primary`` read preference. + +You can set a read preference for the command execution by passing the +``:read`` opotion to the ``command`` method, as +shown in the following code: + +.. literalinclude:: /includes/databases-collections/run-command.rb + :language: scala + :dedent: + :start-after: start-readpref + :end-before: end-readpref + +.. tip:: + + To learn more about read preference options, see :manual:`Read + Preference ` in the {+mdb-server+} manual. + +Response +-------- + +The ``command`` method returns a ``Mongo::Operation::Result`` that contains +the response from the database for the given command. + +You can access the fields of the raw command response document by using the following +methods: + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Method + - Description + + * - ``acknowledged?`` + - Returns ``true`` if the server acknowledged the command, and ``false`` otherwise. + + * - ``inspect`` + - Returns a formatted string representation of the command response. + + * - ``ok?`` + - Returns ``true`` if the command succeeded, and ``false`` otherwise. If the ``ok?`` + method returns ``false``, the driver raises a ``Mongo::Error::OperationFailure`` . + + * - ``cluster_time`` + - Returns the cluster time reported in the server response. Cluster time is a + logical time used for the ordering of operations. This field only + applies to commands run on replica sets or sharded cluster. + + * - ``operation_time`` + - Returns the logical time of the operation execution. + +For a full list of methods available on the ``Result`` object, see +the :ruby-api:`API documentation `. + +.. tip:: + + To learn more about logical time, see the Wikipedia entry on + the :wikipedia:`logical clock `. + +Example +~~~~~~~ + +The following example runs the ``dbStats`` command to retrieve +storage statistics for the ``sample_restaurants`` database, then prints the +command results by using the ``inspect`` method: + +.. literalinclude:: /includes/databases-collections/run-command.rb + :language: ruby + :dedent: + :start-after: start-print-command + :end-before: end-print-command + +The output of this command includes information about the data stored in +the database, as shown in the following code: + +.. code-block:: none + :copyable: false + + {"db"=>"sample_restaurants", "collections"=>4, "views"=>0, "objects"=>18767, "avgObjSize"=>596.1911866574306, + "dataSize"=>11188720, "storageSize"=>7528448, "totalFreeStorageSize"=>0, "numExtents"=>0, "indexes"=>6, + "indexSize"=>1519616, "indexFreeStorageSize"=>0, "fileSize"=>0, "nsSizeMB"=>0, "ok"=>1} + +Additional Information +---------------------- + +For more information about the concepts in this guide, see the following +documentation in the {+mdb-server+} manual: + +- :manual:`db.runCommand() ` +- :manual:`Database Commands ` +- :manual:`hello Command ` +- :manual:`dbStats Command ` + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`command ` \ No newline at end of file diff --git a/source/get-started.txt b/source/get-started.txt new file mode 100644 index 000000000..bb100e54d --- /dev/null +++ b/source/get-started.txt @@ -0,0 +1,46 @@ +.. _ruby-get-started: + +================================ +Get Started with the Ruby Driver +================================ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: tutorial + +.. meta:: + :description: Learn how to create an app to connect to MongoDB deployment by using the Ruby driver. + :keywords: quick start, tutorial, basics + +.. toctree:: + + Download & Install + Create a Deployment + Create a Connection String + Connect to MongoDB + Next Steps + +Overview +-------- + +The {+driver-long+} is a library that allows Ruby applications to interact with +MongoDB databases. You can use the {+driver-short+} to connect to MongoDB and perform +common data operations. This guide shows you how to create an application that uses the +{+driver-short+} to connect to a MongoDB cluster hosted on MongoDB Atlas +and query data in your cluster. + +.. tip:: + + MongoDB Atlas is a fully managed cloud database service that hosts your MongoDB + deployments. You can create your own free (no credit card required) MongoDB Atlas + deployment by following the steps in this guide. + +If you prefer to use a different driver or programming language to connect to +MongoDB, see our :driver:`list of official drivers <>`. + diff --git a/source/get-started/connect-to-mongodb.txt b/source/get-started/connect-to-mongodb.txt new file mode 100644 index 000000000..40702b276 --- /dev/null +++ b/source/get-started/connect-to-mongodb.txt @@ -0,0 +1,66 @@ +.. _ruby-get-started-connect-to-mongodb: + +================== +Connect to MongoDB +================== + +.. facet:: + :name: genre + :values: tutorial + +.. meta:: + :keywords: test connection, runnable, code example + +.. procedure:: + :style: connected + + .. step:: Edit your {+language+} application file + + Navigate to your ``quickstart.rb`` file in the ``ruby-quickstart`` + directory. Copy and paste the following code below the Bundler + code from the :ref:`ruby-quick-start-download-and-install` step + of this tutorial. This code connects to MongoDB and queries the + ``movies`` collection in the ``sample_mflix`` database. + + .. literalinclude:: /includes/get-started/quickstart.rb + :language: ruby + :dedent: + :start-after: start-query + :end-before: end-query + + .. step:: Assign the connection string + + Replace the ```` placeholder with the + connection string that you copied from the :ref:`ruby-get-started-connection-string` + step of this tutorial. + + .. step:: Run your {+language+} application + + From your ``ruby-quickstart`` directory, run the following shell + command to run the application: + + .. code-block:: none + + ruby quickstart.rb + + The command line output contains details about the retrieved movie + document: + + .. code-block:: none + :copyable: false + + {"_id"=>BSON::ObjectId('...'), "plot"=>"A young man is accidentally sent + 30 years into the past in a time-traveling DeLorean invented by his friend, + Dr. Emmett Brown, and must make sure his high-school-age parents unite + in order to save his own existence.", ... + "title"=>"Back to the Future", ... + + If you encounter an error or see no output, ensure that you specified the + correct connection string in the ``quickstart.rb`` file and that you loaded the + sample data. + +After you complete these steps, you have a working application that +uses the driver to connect to your MongoDB deployment, runs a query on +the sample data, and prints out the result. + +.. include:: /includes/get-started/troubleshoot.rst diff --git a/source/get-started/create-a-connection-string.txt b/source/get-started/create-a-connection-string.txt new file mode 100644 index 000000000..89e373e23 --- /dev/null +++ b/source/get-started/create-a-connection-string.txt @@ -0,0 +1,57 @@ +.. _ruby-get-started-connection-string: + +========================== +Create a Connection String +========================== + +You can connect to your MongoDB deployment by providing a +**connection URI**, also called a *connection string*, which +instructs the driver how to connect to a MongoDB deployment +and how to behave while connected. + +The connection string includes the hostname or IP address and +port of your deployment, the authentication mechanism, user credentials +when applicable, and connection options. + +To learn how to connect to an instance or deployment not hosted on +Atlas, see the :ref:`ruby-connection-targets` guide. + +.. procedure:: + :style: connected + + .. step:: Find your MongoDB Atlas connection string + + To retrieve your connection string for the deployment that + you created in the :ref:`previous step `, + log in to your Atlas account and navigate to the + :guilabel:`Clusters` section. Then, click the :guilabel:`Connect` button + for your new deployment. + + .. figure:: /includes/figures/atlas_connection_connect_cluster.png + :alt: The connect button in the clusters section of the Atlas UI + + Proceed to the :guilabel:`Connect your application` section. Select + "Ruby" from the :guilabel:`Driver` selection menu and the version + that best matches your installed version from the :guilabel:`Version` + selection menu. + + .. step:: Copy your connection string + + Click the copy button on the right of the connection string to copy it to + your clipboard, as shown in the following screenshot: + + .. figure:: /includes/figures/atlas_connection_copy_string_ruby.png + :alt: The connection string copy button in the Atlas UI + + .. step:: Update the placeholders + + Paste this connection string into a file in your preferred text editor + and replace the ```` and ```` placeholders with + your database user's username and password. + + Save this file to a safe location for use in the next step. + +After completing these steps, you have a connection string that +contains your database username and password. + +.. include:: /includes/get-started/troubleshoot.rst \ No newline at end of file diff --git a/source/get-started/create-a-deployment.txt b/source/get-started/create-a-deployment.txt new file mode 100644 index 000000000..e19b53c14 --- /dev/null +++ b/source/get-started/create-a-deployment.txt @@ -0,0 +1,29 @@ +.. _ruby-get-started-create-deployment: + +=========================== +Create a MongoDB Deployment +=========================== + +You can create a free tier MongoDB deployment on MongoDB Atlas +to store and manage your data. MongoDB Atlas hosts and manages +your MongoDB database in the cloud. + +.. procedure:: + :style: connected + + .. step:: Create a free MongoDB deployment on Atlas + + Complete the :atlas:`Get Started with Atlas ` + guide to set up a new Atlas account and load sample data into a new free + tier MongoDB deployment. + + .. step:: Save your credentials + + After you create your database user, save that user's + username and password to a safe location for use in an upcoming step. + +After you complete these steps, you have a new free tier MongoDB +deployment on Atlas, database user credentials, and sample data loaded +in your database. + +.. include:: /includes/get-started/troubleshoot.rst \ No newline at end of file diff --git a/source/get-started/download-and-install.txt b/source/get-started/download-and-install.txt new file mode 100644 index 000000000..18090fb60 --- /dev/null +++ b/source/get-started/download-and-install.txt @@ -0,0 +1,62 @@ +.. _ruby-quick-start-download-and-install: + +==================== +Download and Install +==================== + +.. facet:: + :name: genre + :values: tutorial + +.. meta:: + :keywords: installation, setup, code example + +.. procedure:: + :style: connected + + .. step:: Install dependencies + + Before you begin developing, ensure you install `Ruby + `__ version 2.7 + or later in your development environment. {+language+} + is pre-installed on macOS and some Linux distributions, + but you might need to update your version. + + .. important:: + + The {+driver-short+} is not officially supported on Windows. + + .. step:: Create a project directory + + Run the following command in your shell to create a directory + called ``ruby-quickstart`` for this project: + + .. code-block:: bash + + mkdir ruby-quickstart + + Then, run the following commands to create a ``quickstart.rb`` file in + the ``ruby-quickstart`` directory: + + .. code-block:: bash + + cd ruby-quickstart + touch quickstart.rb + + .. step:: Add the {+driver-short+} to your project + + Open the ``quickstart.rb`` file and add the following code: + + .. literalinclude:: /includes/get-started/quickstart.rb + :language: ruby + :dedent: + :start-after: start-bundler + :end-before: end-bundler + + This code adds the {+driver-short+} as a dependency by + using the `Bundler `__ dependency management tool. + +After you complete these steps, you have a new project directory with the driver +dependencies installed. + +.. include:: /includes/get-started/troubleshoot.rst diff --git a/source/get-started/next-steps.txt b/source/get-started/next-steps.txt new file mode 100644 index 000000000..f47a193b9 --- /dev/null +++ b/source/get-started/next-steps.txt @@ -0,0 +1,23 @@ +.. _ruby-get-started-next-steps: + +========== +Next Steps +========== + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: learn more + +Congratulations on completing the quick start tutorial! + +In this tutorial, you created a {+language+} application that +connects to a MongoDB deployment hosted on MongoDB Atlas +and retrieves a document that matches a query. + +Learn more about the {+driver-short+} from the following resources: + +- Learn how to perform read operations in the :ref:`` section. +- Learn how to perform write operations in the :ref:`` section. \ No newline at end of file diff --git a/source/getting-started.txt b/source/getting-started.txt deleted file mode 100644 index 0422bc78e..000000000 --- a/source/getting-started.txt +++ /dev/null @@ -1,17 +0,0 @@ -.. _getting-started: - -*************** -Getting Started -*************** - -.. default-domain:: mongodb - -.. toctree:: - :titlesonly: - - Installation - Driver Compatibility - Support - -This section describes how to install the driver, installation prerequisites, -and compatibility considerations. diff --git a/source/includes/aggregation.rb b/source/includes/aggregation.rb new file mode 100644 index 000000000..3bcb77435 --- /dev/null +++ b/source/includes/aggregation.rb @@ -0,0 +1,61 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + #start-aggregation + database = client.use('sample_restaurants') + restaurants_collection = database[:restaurants] + + pipeline = [ + { '$match' => { 'cuisine' => 'Bakery' } }, + { '$group' => { + '_id' => '$borough', + 'count' => { '$sum' => 1 } + } + } + ] + + aggregation = restaurants_collection.aggregate(pipeline) + + aggregation.each do |doc| + puts doc + end + #end-aggregation + + #start-explain-aggregation + explanation = restaurants_collection.aggregate(pipeline).explain() + + puts explanation + #end-explain-aggregation + + #start-search-aggregation + search_pipeline = [ + { + '$search' => { + 'index' => '', + 'text' => { + 'query' => 'Salt', + 'path' => 'name' + }, + } + }, + { + '$project' => { + '_id' => 1, + 'name' => 1 + } + } + ] + + results = collection.aggregate(search_pipeline) + + results.each do |document| + puts document + end + #end-search-aggregation +end \ No newline at end of file diff --git a/source/includes/authentication/aws-iam.rb b/source/includes/authentication/aws-iam.rb new file mode 100644 index 000000000..b79752c3b --- /dev/null +++ b/source/includes/authentication/aws-iam.rb @@ -0,0 +1,43 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +# start-aws +client = Mongo::Client.new([''], + auth_mech: :aws, + user: '', + password: '') +# end-aws + +# start-aws-connection-string +client = Mongo::Client.new( + 'mongodb://:@host/?authMechanism=MONGODB-AWS') +# end-aws-connection-string + +# start-aws-temp +client = Mongo::Client.new([''], + auth_mech: :aws, + user: '', + password: '', + auth_mech_properties: { + aws_session_token: '<>', + }) +# end-aws-temp + +# start-aws-temp-connection-string +client = Mongo::Client.new( + 'mongodb://:@host/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<>') +# end-aws-temp-connection-string + +# start-aws-automatic-retrieval +client = Mongo::Client.new([''], + auth_mech: :aws) +) +# end-aws-automatic-retrieval + +# start-aws-automatic-retrieval-connection-string +client = Mongo::Client.new( + 'mongodb://host/?authMechanism=MONGODB-AWS') +# end-aws-automatic-retrieval-connection-string \ No newline at end of file diff --git a/source/includes/compatibility-table-legend-ruby.rst b/source/includes/compatibility-table-legend-ruby.rst new file mode 100644 index 000000000..e11481890 --- /dev/null +++ b/source/includes/compatibility-table-legend-ruby.rst @@ -0,0 +1,17 @@ +Compatibility Table Legend +++++++++++++++++++++++++++ + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: compatibility + + * - Icon + - Explanation + + * - ✓ + - All features are supported. + * - D + - Support for the Driver version is deprecated. + * - No mark + - The Driver version is not tested with the MongoDB version. \ No newline at end of file diff --git a/source/includes/connect/connection-targets.rb b/source/includes/connect/connection-targets.rb new file mode 100644 index 000000000..93623047f --- /dev/null +++ b/source/includes/connect/connection-targets.rb @@ -0,0 +1,49 @@ +# start-connection-target-atlas +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: '1' } } +# Creates a new client and connect to the server +client = Mongo::Client.new(uri, options) +# Sends a ping to confirm a successful connection +begin + admin_client = client.use('admin') + result = admin_client.database.command(ping: 1).documents.first + puts "Pinged your deployment. You successfully connected to MongoDB!" +rescue Mongo::Error::OperationFailure => ex + puts ex +ensure + client.close +end +# end-connection-target-atlas + +# start-local-connection +Mongo::Client.new([ 'host1:27017' ], database: 'mydb') +# end-local-connection + +# start-local-connection-uri +Mongo::Client.new("mongodb://host1:27017/mydb") +# end-local-connection-uri + +# start-localhost +client = Mongo::Client.new(["localhost"]) +# end-localhost + +# start-replica-set +Mongo::Client.new([ 'host1:27017', 'host2:27018', `host3:21019` ], database: 'mydb') +# end-replica-set + +# start-replica-set-uri +Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb") +# end-replica-set-uri + +# start-replica-set-option +Mongo::Client.new([ 'host1:27017', 'host2:27018', 'host3:27019' ], + database: 'mydb', replica_set: 'myapp') + +# Or by using a connection string: +Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb?replicaSet=myapp") +# end-replica-set-option diff --git a/source/includes/connect/csot.rb b/source/includes/connect/csot.rb new file mode 100644 index 000000000..a3aa0b81b --- /dev/null +++ b/source/includes/connect/csot.rb @@ -0,0 +1,28 @@ +# start-csot-overrides +require 'mongo' + +# Replace the placeholder with your connection string +uri = "" + +# Sets a client-level timeout configuration +options = { timeout_ms: 30000 } + +Mongo::Client.new(uri, options) do |client| + db = client.use('test-db') + collection = db[:test-collection] + + # Performs a query with an operation-level timeout configuration, + # overriding the client-level configuration + docs = collection.find({}, timeout_ms: 10000).to_a + + docs.each { |doc| puts doc } +end +# end-csot-overrides + +# start-csot-iterable +cursor = collection.find() + +cursor.each do |movie| + puts movie['title'] +end +# end-csot-iterable diff --git a/source/includes/connect/tls.rb b/source/includes/connect/tls.rb new file mode 100644 index 000000000..99f885e89 --- /dev/null +++ b/source/includes/connect/tls.rb @@ -0,0 +1,41 @@ +# start-enable-tls-settings +client = Mongo::Client.new([":"], + ssl: true, + ssl_cert: 'path/to/client.crt', + ssl_key: 'path/to/client.key', + ssl_ca_cert: 'path/to/ca.crt' +) +# end-enable-tls-settings + +# start-enable-tls-settings-same-file +client = Mongo::Client.new([":"], + ssl: true, + ssl_cert: 'path/to/client.pem', + ssl_key: 'path/to/client.pem', + ssl_ca_cert: 'path/to/ca.crt', +) +# end-enable-tls-settings-same-file + +# start-enable-tls-uri +client = Mongo::Client.new( + "mongodb://:/?tls=true&tlsCertificateKeyFile=path%2fto%2fclient.pem&tlsCAFile=path%2fto%2fca.crt") +# end-enable-tls-uri + +# start-modify-context +Mongo.tls_context_hooks.push( + Proc.new { |context| + context.ciphers = ["AES256-SHA"] + } +) +# end-modify-context + +# start-ssl-verify +client = Mongo::Client.new([":"], + ssl: true, + ssl_verify: false +) +# end-ssl-verify + +# start-tls-insecure +client = Mongo::Client.new('mongodb://:/?tls=true&tlsInsecure=true') +# end-tls-insecure diff --git a/source/includes/databases-collections/run-command.rb b/source/includes/databases-collections/run-command.rb new file mode 100644 index 000000000..ffb71988d --- /dev/null +++ b/source/includes/databases-collections/run-command.rb @@ -0,0 +1,25 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + # start-db + database = client.use('sample_restaurants') + # end-db + + # start-hello + client.database.command(hello: 1) + # end-hello + + # start-readpref + client.database.command({hello: 1}, read: {mode: :secondary}) + # end-readpref + + # start-print-command + puts client.database.command({dbStats: 1}).first + # end-print-command +end \ No newline at end of file diff --git a/source/includes/figures/GridFS-upload.png b/source/includes/figures/GridFS-upload.png new file mode 100644 index 000000000..eff67c5f4 Binary files /dev/null and b/source/includes/figures/GridFS-upload.png differ diff --git a/source/includes/figures/atlas_connection_connect_cluster.png b/source/includes/figures/atlas_connection_connect_cluster.png new file mode 100644 index 000000000..b8a737314 Binary files /dev/null and b/source/includes/figures/atlas_connection_connect_cluster.png differ diff --git a/source/includes/figures/atlas_connection_copy_string_ruby.png b/source/includes/figures/atlas_connection_copy_string_ruby.png new file mode 100644 index 000000000..849206f6e Binary files /dev/null and b/source/includes/figures/atlas_connection_copy_string_ruby.png differ diff --git a/source/includes/get-started/quickstart.rb b/source/includes/get-started/quickstart.rb new file mode 100644 index 000000000..92711d48e --- /dev/null +++ b/source/includes/get-started/quickstart.rb @@ -0,0 +1,29 @@ +# start-bundler +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end +# end-bundler + +# start-query +uri = '' + +begin + client = Mongo::Client.new(uri) + + database = client.use('sample_mflix') + movies = database[:movies] + + # Queries for a movie that has the title 'Back to the Future' + query = { title: 'Back to the Future' } + movie = movies.find(query).first + + # Prints the movie document + puts movie + +ensure + client&.close +end +# end-query diff --git a/source/includes/get-started/troubleshoot.rst b/source/includes/get-started/troubleshoot.rst new file mode 100644 index 000000000..6860d7be7 --- /dev/null +++ b/source/includes/get-started/troubleshoot.rst @@ -0,0 +1,6 @@ +.. note:: + + If you run into issues on this step, ask for help in the + :community-forum:`MongoDB Community Forums ` + or submit feedback by using the :guilabel:`Rate this page` + tab on the right side of this page. \ No newline at end of file diff --git a/source/includes/indexes/atlas-search-index.rb b/source/includes/indexes/atlas-search-index.rb new file mode 100644 index 000000000..cbbb2f891 --- /dev/null +++ b/source/includes/indexes/atlas-search-index.rb @@ -0,0 +1,96 @@ +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: "1" }} + +# Creates a new client and connect to the server +client = Mongo::Client.new(uri, options) + +database = client.use('sample_mflix') +collection = database[:movies] + +# start-create-search-index +# Creates indexes on all dynamically indexable fields with a default index name +collection.search_indexes.create_one( + { mappings: { dynamic: true } } +) + +# Creates an index on the specified field with the specified index name +index_definition = { + mappings: { + dynamic: false, + fields: { + : { type: '' } + } + } +} +collection.search_indexes.create_one(index_definition, name: '') +# end-create-search-index + +# start-create-multiple-search-indexes +index_spec_1 = { + name: '', + definition: { + mappings: { + dynamic: false, + fields: { + : { type: '' } + } + } + } +} + +index_spec_2 = { + name: '', + definition: { + mappings: { + dynamic: false, + fields: { + : { type: '' } + } + } + } +} + +collection.search_indexes.create_many([index_spec_1, index_spec_2]) +# end-create-multiple-search-indexes + +# start-update-search-indexes +updated_definition = { + mappings: { + dynamic: false, + fields: { : { type: '' } } + } +} + +# Specifies the index to update by using the index name +collection.search_indexes.update_one(updated_definition, name: '') + +# Specifies the index to update by using the index id +collection.search_indexes.update_one(updated_definition, id: ) +# end-update-search-indexes + +# start-drop-search-index +# Specifies the index to delete by using the index name +collection.search_indexes.drop_one(name: '') + +# Specifies the index to delete by using the index id +collection.search_indexes.drop_one(id: ) +# end-drop-search-index + +# start-list-entire-spec +puts collection.search_indexes.collect(&:to_json) +# end-list-entire-spec + +# start-list-certain-elements +collection.search_indexes.each do |index_spec| + p index_spec['id'] + p index_spec['name'] + p index_spec['status'] + p index_spec['queryable'] + p index_spec['latestDefinition'] +end +# end-list-certain-elements diff --git a/source/includes/indexes/compound.rb b/source/includes/indexes/compound.rb new file mode 100644 index 000000000..4c0f9a261 --- /dev/null +++ b/source/includes/indexes/compound.rb @@ -0,0 +1,40 @@ +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: "1" }} + +# Creates a new client and connect to the server +client = Mongo::Client.new(uri, options) + +# start-sample-data +database = client.use('sample_mflix') +collection = database[:movies] +# end-sample-data + +# Creates an index on the "runtime" and "year" field +# start-index-compound +collection.indexes.create_one({ runtime: -1, year: 1 }) +# end-index-compound + +# Finds a document with the specified runtime and release year by using the newly created index +# start-index-compound-query +filter = { '$and' => [ + { runtime: { '$gt' => 90 } }, + { year: { '$gt' => 2005 } } + ] } +doc = collection.find(filter).first + +if doc + puts doc.to_json +else + puts "No document found" +end +# end-index-compound-query + +# Lists all indexes on the collection +# start-check-compound-index +puts collection.indexes.collect(&:to_json) +# end-check-compound-index diff --git a/source/includes/indexes/index-code-examples.rb b/source/includes/indexes/index-code-examples.rb new file mode 100644 index 000000000..625eb15eb --- /dev/null +++ b/source/includes/indexes/index-code-examples.rb @@ -0,0 +1,100 @@ +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: '1' }} + +# Creates a new client and connects to the server +client = Mongo::Client.new(uri, options) + +database = client.use('') +collection = database[:] + +# Single Field +# start-index-single +collection.indexes.create_one({ : 1 }) +# end-index-single + +# Compound +# start-index-compound +collection.indexes.create_one({ : -1, : 1 }) +# end-index-compound + +# Multikey +# start-index-multikey +collection.indexes.create_one({ : 1 }) +# end-index-multikey + +# Geospatial +# start-index-geospatial +collection.indexes.create_one({ : '2dsphere' }) +# end-index-geospatial + +# Atlas Search + +# Create Search Index +# start-create-search-index +index_definition = { + mappings: { + dynamic: false, + fields: { + : { type: '' } + } + } +} +collection.search_indexes.create_one(index_definition, name: '') +# end-create-search-index + +# List Search Indexes +# start-list-search-indexes +puts collection.search_indexes.collect(&:to_json) +# end-list-search-indexes + +# Update Search Indexes +#start-update-search-indexes +updated_definition = { + mappings: { + dynamic: false, + fields: { : { type: '' } } + } +} + +collection.search_indexes.update_one(updated_definition, name: '') +#end-update-search-indexes + +# Delete Search Index +# start-drop-search-index +collection.search_indexes.drop_one(name: '') +# end-drop-search-index + +# Text Index +# start-text +collection.indexes.create_one({ : 'text' }) +# end-text + +# Create Many +# start-index-create-many +collection.indexes.create_many([ + { key: { : 1 } }, + { key: { : -1 } }, +]) +# end-index-create-many + +# Delete an Index +# start-drop-single-index +collection.indexes.drop_one( '' ) +# end-drop-single-index + +# Drops all indexes in the collection. +# start-drop-all-index +collection.indexes.drop_all +# end-drop-all-index + +# List an Index +# start-list-indexes +puts collection.indexes.collect(&:to_json) +# end-list-indexes + +client.close diff --git a/source/includes/indexes/index-starter-code.rb b/source/includes/indexes/index-starter-code.rb new file mode 100644 index 000000000..deb89e745 --- /dev/null +++ b/source/includes/indexes/index-starter-code.rb @@ -0,0 +1,19 @@ +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: "1" }} + +# Creates a new client and connect to the server +client = Mongo::Client.new(uri, options) + +database = client.use('') +collection = database[:] + +# Start example code here + +# End example code here + +client.close diff --git a/source/includes/indexes/multikey.rb b/source/includes/indexes/multikey.rb new file mode 100644 index 000000000..4c4b08fa3 --- /dev/null +++ b/source/includes/indexes/multikey.rb @@ -0,0 +1,37 @@ +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: "1" }} + +# Creates a new client and connect to the server +client = Mongo::Client.new(uri, options) + +# start-sample-data +database = client.use('sample_mflix') +collection = database[:movies] +# end-sample-data + +# Creates an index on the "cast" field +# start-index-multikey +collection.indexes.create_one({ cast: 1 }) +# end-index-multikey + +# Finds a document with the specified cast members by using the newly created index +# start-index-multikey-query +filter = { cast: { '$all' => ['Aamir Khan', 'Kajol'] } } +doc = collection.find(filter).first + +if doc + puts doc.to_json +else + puts "No document found" +end +# end-index-multikey-query + +# Lists all indexes on the collection +# start-check-multikey-index +puts collection.indexes.collect(&:to_json) +# end-check-multikey-index diff --git a/source/includes/indexes/single-field.rb b/source/includes/indexes/single-field.rb new file mode 100644 index 000000000..bbf1ff95c --- /dev/null +++ b/source/includes/indexes/single-field.rb @@ -0,0 +1,37 @@ +require 'mongo' + +# Replace the placeholders with your credentials +uri = "" + +# Sets the server_api field of the options object to Stable API version 1 +options = { server_api: { version: "1" }} + +# Creates a new client and connect to the server +client = Mongo::Client.new(uri, options) + +# start-sample-data +database = client.use('sample_mflix') +collection = database[:movies] +# end-sample-data + +# start-index-single +# Creates an index on the "title" field +collection.indexes.create_one({ title: 1 }) +# end-index-single + +# start-index-single-query +# Finds a document with the title "Sweethearts" by using the newly created index +filter = { title: 'Sweethearts' } +doc = collection.find(filter).first + +if doc + puts doc.to_json +else + puts "No document found" +end +# end-index-single-query + +# start-check-single-index +# Lists all indexes on the collection +puts collection.indexes.collect(&:to_json) +# end-check-single-index diff --git a/source/includes/language-compatibility-table-ruby.rst b/source/includes/language-compatibility-table-ruby.rst new file mode 100644 index 000000000..10a303b2e --- /dev/null +++ b/source/includes/language-compatibility-table-ruby.rst @@ -0,0 +1,138 @@ +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: compatibility-large no-padding + + * - Ruby Driver + - Ruby 3.2 + - Ruby 3.1 + - Ruby 3.0 + - Ruby 2.7 + - Ruby 2.6 + - JRuby 9.4 + - JRuby 9.3 + - JRuby 9.2 + - JRuby 9.1 + + * - 2.20 to 2.21 + - |checkmark| + - |checkmark| + - |checkmark| + - D + - + - |checkmark| + - |checkmark| + - D + - + + * - 2.19 + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - D + - + - |checkmark| + - |checkmark| + - + + * - 2.18 + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - + - |checkmark| + - |checkmark| + - + + * - 2.17 + - + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - + - + - |checkmark| + - + + * - 2.16 + - + - + - |checkmark| + - |checkmark| + - |checkmark| + - + - + - |checkmark| + - + + * - 2.15 + - + - + - |checkmark| + - |checkmark| + - |checkmark| + - + - + - |checkmark| + - + + * - 2.14 + - + - + - + - |checkmark| + - |checkmark| + - + - + - |checkmark| + - + + * - 2.11 to 2.13 + - + - + - + - |checkmark| + - |checkmark| + - + - + - |checkmark| + - + + * - 2.10 + - + - + - + - |checkmark| + - |checkmark| + - + - + - |checkmark| + - |checkmark| + + * - 2.9 + - + - + - + - + - |checkmark| + - + - + - |checkmark| + - |checkmark| + + * - 2.6 to 2.8 + - + - + - + - + - |checkmark| + - + - + - |checkmark| + - |checkmark| + +.. include:: /includes/unicode-checkmark.rst \ No newline at end of file diff --git a/source/includes/mongodb-compatibility-table-ruby.rst b/source/includes/mongodb-compatibility-table-ruby.rst new file mode 100644 index 000000000..37a1ef30d --- /dev/null +++ b/source/includes/mongodb-compatibility-table-ruby.rst @@ -0,0 +1,120 @@ +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: compatibility-large no-padding + + * - Ruby Driver + - MongoDB 8.0 + - MongoDB 7.0 + - MongoDB 6.0 + - MongoDB 5.0 + - MongoDB 4.4 + - MongoDB 4.2 + - MongoDB 4.0 + + * - 2.21 + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + + * - 2.19 to 2.20 + - + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + + * - 2.18 + - + - + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + + * - 2.17 + - + - + - + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + + * - 2.16 + - + - + - + - |checkmark| + - |checkmark| + - |checkmark| + - |checkmark| + + * - 2.14 to 2.15 + - + - + - + - + - |checkmark| + - |checkmark| + - |checkmark| + + * - 2.13 + - + - + - + - + - |checkmark| [#ocsp]_ + - |checkmark| + - |checkmark| + + * - 2.12 + - + - + - + - + - + - |checkmark| + - |checkmark| + + * - 2.11 + - + - + - + - + - + - |checkmark| [#client-side-encryption]_ + - |checkmark| + + * - 2.10 + - + - + - + - + - + - |checkmark| [#srv-polling]_ [#client-side-encryption]_ + - |checkmark| + + * - 2.6 to 2.9 + - + - + - + - + - + - + - |checkmark| + +.. [#ocsp] OCSP verification is implemented as of driver version 2.14. +.. [#srv-polling] Polling of SRV records in sharded topologies is + implemented as of driver version 2.11. +.. [#client-side-encryption] Client-side encryption is implemented as of + driver version 2.12. + +.. include:: /includes/unicode-checkmark.rst \ No newline at end of file diff --git a/source/includes/monitoring/monitoring.rb b/source/includes/monitoring/monitoring.rb new file mode 100644 index 000000000..444b11e0a --- /dev/null +++ b/source/includes/monitoring/monitoring.rb @@ -0,0 +1,173 @@ +# start-available-subscriber +subscriber = Mongo::Monitoring::ServerOpeningLogSubscriber.new + +# Globally subscribes to ServerOpening events by using the SERVER_OPENING monitoring topic +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_OPENING, subscriber) +client = Mongo::Client.new(['127.0.0.1:27017']) + +# Subscribes to ServerOpening events at the client level by using the SERVER_OPENING monitoring topic +client.subscribe( Mongo::Monitoring::SERVER_OPENING, subscriber ) +# end-available-subscriber + +# start-sdam +class SDAMLogSubscriber + include Mongo::Loggable + + def succeeded(event) + log_debug(format_event(event)) + end + + private + + def logger + Mongo::Logger.logger + end + + def format_message(message) + format("SDAM | %s", message) + end +end + +class TopologyOpeningLogSubscriber < SDAMLogSubscriber + private + + def format_event(event) + "Topology type '#{event.topology.display_name}' initializing." + end +end + +class ServerOpeningLogSubscriber < SDAMLogSubscriber + private + + def format_event(event) + "Server #{event.address} initializing." + end +end + +class ServerDescriptionChangedLogSubscriber < SDAMLogSubscriber + private + + def format_event(event) + "Server description for #{event.address} changed from " + + "'#{event.previous_description.server_type}' to '#{event.new_description.server_type}'." + end +end + +class TopologyChangedLogSubscriber < SDAMLogSubscriber + private + + def format_event(event) + if event.previous_topology != event.new_topology + "Topology type '#{event.previous_topology.display_name}' changed to " + + "type '#{event.new_topology.display_name}'." + else + "There was a change in the members of the '#{event.new_topology.display_name}' " + + "topology." + end + end +end + +class ServerClosedLogSubscriber < SDAMLogSubscriber + private + + def format_event(event) + "Server #{event.address} connection closed." + end +end + +class TopologyClosedLogSubscriber < SDAMLogSubscriber + private + + def format_event(event) + "Topology type '#{event.topology.display_name}' closed." + end +end +#end-sdam + +# start-sdam-subscriber-global +topology_opening_subscriber = TopologyOpeningLogSubscriber.new +server_opening_subscriber = ServerOpeningLogSubscriber.new +server_description_changed_subscriber = ServerDescriptionChangedLogSubscriber.new +topology_changed_subscriber = TopologyChangedLogSubscriber.new +server_closed_subscriber = ServerClosedLogSubscriber.new +topology_closed_subscriber = TopologyClosedLogSubscriber.new + +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::TOPOLOGY_OPENING, + topology_opening_subscriber) +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_OPENING, + server_opening_subscriber) +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_DESCRIPTION_CHANGED, + server_description_changed_subscriber) +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::TOPOLOGY_CHANGED, + topology_changed_subscriber) +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_CLOSED, + server_closed_subscriber) +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::TOPOLOGY_CLOSED, + topology_closed_subscriber) +# end-sdam-subscriber-global + +# start-sdam-subscriber-client +topology_opening_subscriber = TopologyOpeningLogSubscriber.new +server_opening_subscriber = ServerOpeningLogSubscriber.new +server_description_changed_subscriber = ServerDescriptionChangedLogSubscriber.new +topology_changed_subscriber = TopologyChangedLogSubscriber.new +server_closed_subscriber = ServerClosedLogSubscriber.new +topology_closed_subscriber = TopologyClosedLogSubscriber.new + +sdam_proc = Proc.new do |client| + client.subscribe(Mongo::Monitoring::TOPOLOGY_OPENING, + topology_opening_subscriber) + client.subscribe(Mongo::Monitoring::SERVER_OPENING, + server_opening_subscriber) + client.subscribe(Mongo::Monitoring::SERVER_DESCRIPTION_CHANGED, + server_description_changed_subscriber) + client.subscribe(Mongo::Monitoring::TOPOLOGY_CHANGED, + topology_changed_subscriber) + client.subscribe(Mongo::Monitoring::SERVER_CLOSED, + server_closed_subscriber) + client.subscribe(Mongo::Monitoring::TOPOLOGY_CLOSED, + topology_closed_subscriber) +end + +client = Mongo::Client.new(['127.0.0.1:27017'], database: 'test', + sdam_proc: sdam_proc) +# end-sdam-subscriber-client + +# start-heartbeat +class HeartbeatLogSubscriber + include Mongo::Loggable + + def started(event) + log_debug("#{event.address} | STARTED") + end + + def succeeded(event) + log_debug("#{event.address} | SUCCEEDED | #{event.duration}s") + end + + def failed(event) + log_debug("#{event.address} | FAILED | #{event.error.class}: #{event.error.message} | #{event.duration}s") + end + + private + + def logger + Mongo::Logger.logger + end + + def format_message(message) + format("HEARTBEAT | %s", message) + end +end +# end-heartbeat + +# start-heartbeat-subscribe +subscriber = HeartbeatLogSubscriber.new + +# Globally subscribes to Server Opening events +Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_HEARTBEAT, subscriber) + +# Subscribes to Server Opening events at the client level +client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'test' ) +client.subscribe( Mongo::Monitoring::SERVER_HEARTBEAT, subscriber ) +# end-heartbeat-subscribe diff --git a/source/includes/read/change-streams.rb b/source/includes/read/change-streams.rb new file mode 100644 index 000000000..410a8bee6 --- /dev/null +++ b/source/includes/read/change-streams.rb @@ -0,0 +1,53 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # Accesses the database and collection + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Monitors and prints changes to the "restaurants" collection + # start-open-change-stream + stream = collection.watch + stream.each do |doc| + puts doc + break if doc['operationType'] == 'invalidate' + end + # end-open-change-stream + + # Updates a document that has a 'name' value of 'Blarney Castle' + # start-update-for-change-stream + collection.update_one( + { 'name' => 'Blarney Castle' }, + { '$set' => { 'cuisine' => 'Irish' } } + ) + # end-update-for-change-stream + + # Passes a pipeline argument to watch to monitor only update operations + # start-change-stream-pipeline + pipeline = [{ '$match' => { 'operationType' => 'update' } }] + stream = collection.watch(pipeline) + stream.each do |doc| + puts doc + break if doc['operationType'] == 'invalidate' + end + # end-change-stream-pipeline + + # Passes an options argument to watch to include the post-image of updated documents + # start-change-stream-post-image + options = { full_document: 'updateLookup' } + stream = collection.watch([], options) + stream.each do |doc| + puts doc + break if doc['operationType'] == 'invalidate' + end + # end-change-stream-post-image +end diff --git a/source/includes/read/count.rb b/source/includes/read/count.rb new file mode 100644 index 000000000..5d3478303 --- /dev/null +++ b/source/includes/read/count.rb @@ -0,0 +1,45 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_training') + collection = database['companies'] + # end-db-coll + + # Counts all documents in the collection + # start-count-all + result = collection.count_documents + puts "Number of documents: #{result}" + # end-count-all + + # Counts documents that have a "founded_year" value of 2010 + # start-count-accurate + result = collection.count_documents(founded_year: 2010) + puts "Number of companies founded in 2010: #{result}" + # end-count-accurate + + # Counts a maximum of 100 documents that have a "number_of_employees" value of 50 + # start-modify-accurate + result = collection.count_documents({ number_of_employees: 50 }, limit: 100) + puts "Number of companies with 50 employees: #{result}" + # end-modify-accurate + + # Estimates the number of documents in the collection + # start-count-estimate + result = collection.estimated_document_count + puts "Estimated number of documents: #{result}" + # end-count-estimate + + # Estimates the number of documents in the collection and sets a time limit on the operation + # start-modify-estimate + result = collection.estimated_document_count(max_time_ms: 1000) + puts "Estimated number of documents: #{result}" + # end-modify-estimate +end diff --git a/source/includes/read/cursors.rb b/source/includes/read/cursors.rb new file mode 100644 index 000000000..ca4b17fe0 --- /dev/null +++ b/source/includes/read/cursors.rb @@ -0,0 +1,64 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Iterates over and prints all documents that have a "name" value of "Dunkin' Donuts" + # start-cursor-iterate + cursor = collection.find(name: "Dunkin' Donuts") + cursor.each do |doc| + puts doc + end + # end-cursor-iterate + + # Retrieves and prints the first document stored in the cursor + # start-cursor-first + cursor = collection.find(name: "Dunkin' Donuts") + first_doc = cursor.first + puts first_doc + # end-cursor-first + + # Converts the documents stored in a cursor to an array + # start-cursor-array + cursor = collection.find(name: "Dunkin' Donuts") + array_results = cursor.to_a + # end-cursor-array + + # Creates a collection with a maximum size and inserts documents representing vegetables + # start-capped-coll + db = client.use('db') + collection = db[:vegetables, capped: true, size: 1024 * 1024] + collection.create + + vegetables = [ + { name: 'cauliflower' }, + { name: 'zucchini' } + ] + + collection.insert_many(vegetables) + # end-capped-coll + + + # Iterates over the initial query results and continues iterating until three documents are stored in the cursor + # by using a tailable cursor + # start-tailable + cursor = collection.find({}, cursor_type: :tailable) + docs_found = 0 + + cursor.each do |doc| + puts doc + docs_found += 1 + break if docs_found >= 3 + end + # end-tailable +end diff --git a/source/includes/read/distinct.rb b/source/includes/read/distinct.rb new file mode 100644 index 000000000..7aa64a060 --- /dev/null +++ b/source/includes/read/distinct.rb @@ -0,0 +1,44 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # Access the database and collection + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Retrieves distinct values of the "borough" field + # start-distinct + results = collection.distinct('borough') + results.each do |value| + puts value + end + # end-distinct + + # Retrieves distinct "borough" field values for documents with a "cuisine" value of "Italian" + # start-distinct-with-query + results = collection.distinct('borough', { cuisine: 'Italian' }) + results.each do |value| + puts value + end + # end-distinct-with-query + + # Retrieves distinct "name" field values for documents matching the "borough" and "cuisine" fields query + # and uses primary preferred read preference + # start-distinct-with-opts + filter = { borough: 'Bronx', cuisine: 'Pizza' } + options = { read: { mode: :primary_preferred } } + results = collection.distinct('name', filter, options) + + results.each do |value| + puts value + end + # end-distinct-with-opts +end diff --git a/source/includes/read/limit-skip-sort.rb b/source/includes/read/limit-skip-sort.rb new file mode 100644 index 000000000..2efebd54a --- /dev/null +++ b/source/includes/read/limit-skip-sort.rb @@ -0,0 +1,51 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # Access the database and collection + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Retrieves 5 documents that have a "cuisine" value of "Italian" + # start-limit + filter = { cuisine: 'Italian' } + collection.find(filter) + .limit(5) + .each { |doc| puts doc } + # end-limit + + # Retrieves documents with a "cuisine" value of "Italian" and sorts in ascending "name" order + # start-sort + filter = { cuisine: 'Italian' } + collection.find(filter) + .sort(name: 1) + .each { |doc| puts doc } + # end-sort + + # Retrieves documents with a "borough" value of "Manhattan" but skips the first 10 results + # start-skip + filter = { borough: 'Manhattan' } + collection.find(filter) + .skip(10) + .each { |doc| puts doc } + # end-skip + + # Retrieves 5 documents with a "cuisine" value of "Italian", skips the first 10 results, + # and sorts by ascending "name" order + # start-limit-sort-skip + filter = { cuisine: 'Italian' } + collection.find(filter) + .limit(5) + .skip(10) + .sort(name: 1) + .each { |doc| puts doc } + # end-limit-sort-skip +end diff --git a/source/includes/read/project.rb b/source/includes/read/project.rb new file mode 100644 index 000000000..c08ab8422 --- /dev/null +++ b/source/includes/read/project.rb @@ -0,0 +1,43 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # Access database and collection + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Retrieves documents matching the "name" field query + # and projects their "name", "cuisine", and "borough" values + # start-project-include + opts = { projection: { name: 1, cuisine: 1, borough: 1 } } + collection.find({ name: 'Emerald Pub' }, opts).each do |doc| + puts doc + end + # end-project-include + + # Retrieves documents matching the "name" field query + # and projects their "name", "cuisine", and "borough" values while excluding the "_id" values + # start-project-include-without-id + opts = { projection: { name: 1, cuisine: 1, borough: 1, _id: 0 } } + collection.find({ name: 'Emerald Pub' }, opts).each do |doc| + puts doc + end + # end-project-include-without-id + + # Retrieves documents matching the "name" field query + # and excludes their "grades" and "address" values when printing + # start-project-exclude + opts = { projection: { grades: 0, address: 0 } } + collection.find({ name: 'Emerald Pub' }, opts).each do |doc| + puts doc + end + # end-project-exclude + end \ No newline at end of file diff --git a/source/includes/read/retrieve.rb b/source/includes/read/retrieve.rb new file mode 100644 index 000000000..848e2a2e1 --- /dev/null +++ b/source/includes/read/retrieve.rb @@ -0,0 +1,43 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_training') + collection = database[:companies] + # end-db-coll + + # Finds one document with a "name" value of "LinkedIn" + # start-find-one + document = collection.find(name: 'LinkedIn').first + puts document + # end-find-one + + # Finds documents with a "founded_year" value of 1970 + # start-find-many + results = collection.find(founded_year: 1970) + # end-find-many + + # start-cursor + results.each do |doc| + puts doc + end + # end-cursor + + + # Finds and prints up to 2 documents with a "number_of_employees" value of 1000 + # start-modify + limit_results = collection.find(number_of_employees: 1000).limit(2) + + limit_results.each do |doc| + puts doc + end + # end-modify +end + diff --git a/source/includes/read/specify-queries.rb b/source/includes/read/specify-queries.rb new file mode 100644 index 000000000..ccd6bb635 --- /dev/null +++ b/source/includes/read/specify-queries.rb @@ -0,0 +1,79 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # start-setup + database = client.use('db') + collection = database[:fruits] + + # Inserts documents representing fruits + fruits = [ + { _id: 1, name: 'apples', qty: 5, rating: 3, color: 'red', type: ['fuji', 'honeycrisp'] }, + { _id: 2, name: 'bananas', qty: 7, rating: 4, color: 'yellow', type: ['cavendish'] }, + { _id: 3, name: 'oranges', qty: 6, rating: 2, type: ['naval', 'mandarin'] }, + { _id: 4, name: 'pineapples', qty: 3, rating: 5, color: 'yellow' } + ] + + collection.insert_many(fruits) + # end-setup + + # Retrieves documents in which the "color" value is "yellow" + # start-find-exact + filter = { color: 'yellow' } + results = collection.find(filter) + results.each do |doc| + puts doc + end + # end-find-exact + + # Retrieves and prints documents in which the "rating" value is greater than 2 + # start-find-comparison + filter = { rating: { '$gt' => 2 } } + results = collection.find(filter) + results.each do |doc| + puts doc + end + # end-find-comparison + + # Retrieves and prints documents that match one or both query filters + # start-find-logical + filter = { '$or' => [{ qty: { '$gt' => 5 } }, { color: 'yellow' }] } + results = collection.find(filter) + results.each do |doc| + puts doc + end + # end-find-logical + + # Retrieves and prints documents in which the "type" array has 2 elements + # start-find-array + filter = { type: { '$size' => 2 } } + results = collection.find(filter) + results.each do |doc| + puts doc + end + # end-find-array + + # Retrieves and prints documents that have a "color" field + # start-find-element + filter = { color: { '$exists' => true } } + results = collection.find(filter) + results.each do |doc| + puts doc + end + # end-find-element + + # Retrieves and prints documents in which the "name" value has at least two consecutive "p" characters + # start-find-evaluation + filter = { name: /p{2,}/ } + results = collection.find(filter) + results.each do |doc| + puts doc + end + # end-find-evaluation +end diff --git a/source/includes/usage-examples/databases-collection.rb b/source/includes/usage-examples/databases-collection.rb new file mode 100644 index 000000000..3ad7e6eba --- /dev/null +++ b/source/includes/usage-examples/databases-collection.rb @@ -0,0 +1,96 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # start-access-db + client = Mongo::Client.new(['127.0.0.1:27017'], database: 'test_database') + database = client.database + # end-access-db + + # start-access-cl + database = client.database + collection = database['test_collection'] + # end-access-cl + + # start-create-collection + database = client.database + + database[:example_collection].create(capped: true, size: 1024) + # end-create-collection + + # start-get-list + database = client.database + + collection_list = database.collections + + collection_list.each do |collection| + puts collection.name + end + # end-get-list + + # start-get-list-names + database = client.database + + collection_names = database.collection_names + + collection_names.each do |name| + puts name + end + # end-get-list-names + + # start-delete + database = client.database + + collection = database[:test_collection] + collection.drop + # end-delete + + # start-with-database + database_with_settings = client.use('test_database').with( + read: { mode: :secondary }, + read_concern: { level: :local }, + write: { w: :majority } + ) + # end-with-database + + # start-with-collection + + collection_with_settings = client[:test_collection].with( + read: { mode: :secondary }, + read_concern: { level: :local }, + write: { w: :majority } + ) + # end-with-collection + + # start-tag-sets + client = Mongo::Client.new(['IP_ADDRESS_001:27017'], database: 'test', read: { + mode: :secondary, + tag_sets: [{'dc' => 'ny'}, {'dc' => 'sf'}] + }) + + database = client.database + + collection = database[:example_collection] + # end-tag-sets + + # start-local-threshold-example + client = Mongo::Client.new( + ['IP_ADDRESS_001:27017'], + database: 'test_database', + read: { mode: :secondary_preferred }, + local_threshold: 35 + ) + + database = client.database + + collection = database[:example_collection] + result = collection.find({}).first + puts result + # end-local-threshold-example +end \ No newline at end of file diff --git a/source/includes/usage-examples/read-code-examples.rb b/source/includes/usage-examples/read-code-examples.rb new file mode 100644 index 000000000..55dd514a3 --- /dev/null +++ b/source/includes/usage-examples/read-code-examples.rb @@ -0,0 +1,45 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + + # start-find-one + document = collection.find(name: '').first + puts document + # end-find-one + + # start-find-many + results = collection.find(founded_year: '') + # end-find-many + + # start-count-collection + result = collection.count_documents + puts "Number of documents: #{result}" + # end-count-collection + + # start-count-accurate + result = collection.count_documents('key': '') + puts "value: #{result}" + # end-count-accurate + + # start-count-estimate + result = collection.estimated_document_count + puts "Estimated number of documents: #{result}" + # end-count-estimate + + # start-distinct + results = collection.distinct('field') + # end-distinct + + # start-monitor-changes + stream = collection.watch + collection.insert_one(a: 1) + doc = stream.first + process(doc) + # end-monitor-changes \ No newline at end of file diff --git a/source/includes/usage-examples/read-write-pref.rb b/source/includes/usage-examples/read-write-pref.rb new file mode 100644 index 000000000..9d632ad66 --- /dev/null +++ b/source/includes/usage-examples/read-write-pref.rb @@ -0,0 +1,81 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + # Access the database and collection + + # start-write-concern + client = Mongo::Client.new(['IP_ADDRESS_001:27017'], database: 'myDB') + myDB = client.database + myCollection = myDB[:myCollection] + + myCollection.insert_one( + { name: 'anotherDocumentName' }, + write: { + w: 2, + wtimeout: 5000 + } + ) + # end-write-concern + + # start-write-concern-2 + myDoc = { name: 'New Document' } + new_write_concern = Mongo::WriteConcern.get(myDB.write_concern) + myDB[:myCollection].with(write: new_write_concern).insert_one(myDoc) + # end-write-concern-2 + + # start-read-concern + pipeline = [ + { "$match" => { category: 'KITCHENWARE' } }, + { "$unset" => ['_id', 'category'] } + ] + result = myCollection.aggregate(pipeline, + read: { read_concern: { level: :available } }) + # end-read-concern + + # start-change-read-concern + client = Mongo::Client.new(['IP_ADDRESS_001:27017'], + database: 'mydb', + read_concern: { level: :local }) + myDB = client.database + # end-change-read-concern + + # start-read-preference + transaction_options = { + read: { mode: :primary }, + read_concern: { level: :local }, + write_concern: { w: :majority } + } + session = client.start_session + session.start_transaction(transaction_options) + session.commit_transaction + # ... + rescue => e + session.abort_transaction + puts "Transaction aborted due to an error: #{e.message}" + ensure + session.end_session + end + # end-read-preference + + # start-read-preference-cluster + uri = 'mongodb+srv://:@' + options = { + read: { + mode: :secondary, + max_staleness: 120 + } + } + client = Mongo::Client.new(uri, options) + myDB = client.database + # end-read-preference-cluster +end + + + diff --git a/source/includes/usage-examples/sample-app-intro.rst b/source/includes/usage-examples/sample-app-intro.rst new file mode 100644 index 000000000..4f1a34b73 --- /dev/null +++ b/source/includes/usage-examples/sample-app-intro.rst @@ -0,0 +1,11 @@ +.. _ruby-read-sample: + +Sample Application +~~~~~~~~~~~~~~~~~~ + +You can use the following sample application to test the code examples on this +page. To use the sample application, perform the following steps: + +1. Ensure you have the {+driver-short+} installed in your {+language+} project. +#. Copy the following code and paste it into a new ``.rb`` file. +#. Copy a code example from this page and paste it on the specified lines in the file. \ No newline at end of file diff --git a/source/includes/usage-examples/sample-app.rb b/source/includes/usage-examples/sample-app.rb new file mode 100644 index 000000000..fb00e4567 --- /dev/null +++ b/source/includes/usage-examples/sample-app.rb @@ -0,0 +1,16 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + database = client.use('') + collection = database[:] + + # Start example code here + + # End example code here +end \ No newline at end of file diff --git a/source/includes/usage-examples/sample-read-app.rb b/source/includes/usage-examples/sample-read-app.rb new file mode 100644 index 000000000..17da6f29d --- /dev/null +++ b/source/includes/usage-examples/sample-read-app.rb @@ -0,0 +1,17 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = '' + +Mongo::Client.new(uri) do |client| + database = client.use('') + collection = database[''] + + # Start example code here + + # End example code here +end \ No newline at end of file diff --git a/source/includes/usage-examples/time-series.rb b/source/includes/usage-examples/time-series.rb new file mode 100644 index 000000000..ed44b0512 --- /dev/null +++ b/source/includes/usage-examples/time-series.rb @@ -0,0 +1,35 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + + + # start-create + client = Mongo::Client.new('', database: 'weather') + collection_name = 'october2024' + + time_series_options = { timeField: 'timestamp' } + database = client.database + database.command( + create: collection_name, + timeseries: time_series_options + ) + # end-create + + # start-correct + collections = database.list_collections(filter: { name: 'october2024' }).to_a + puts collections + # end-correct + + # start-insert + client = Mongo::Client.new('', database => 'your_db') + collection = client[:october2024] + + document_list = [ + { temperature: 77, location: "New York City", timestamp: DateTime.new(2024, 10, 22, 6, 0, 0) }, + { temperature: 74, location: "New York City", timestamp: DateTime.new(2024, 10, 23, 6, 0, 0) } + ] + + collection.insert_many(document_list) + #end-insert \ No newline at end of file diff --git a/source/includes/usage-examples/write-code-examples.rb b/source/includes/usage-examples/write-code-examples.rb new file mode 100644 index 000000000..261e2568a --- /dev/null +++ b/source/includes/usage-examples/write-code-examples.rb @@ -0,0 +1,62 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + database = client.use('sample_restaurants') + collection = database[:restaurants] + + # start-insert-one + document = { field_name: '' } + collection.insert_one(document) + # end-insert-one + + # start-insert-many + documents = [ + { field_name: '' }, + { field_name: '' } + ] + collection.insert_many(documents) + # end-insert-many + + # start-update-one + filter = { field_name: '' } + update = { } + collection.update_one(filter, update) + # end-update-one + + # start-update-many + filter = { field_name: '' } + update = { } + collection.update_many(filter, update) + # end-update-many + + # start-replace-one + filter = { field_name: '' } + new_document = { field_name: '' } + collection.replace_one(filter, new_document) + # end-replace-one + + # start-delete-one + filter = { field_name: '' } + collection.delete_one(filter) + # end-delete-one + + # start-delete-many + filter = { field_name: '' } + collection.delete_many(filter) + # end-delete-many + + # start-bulk-write + operations = [ + { }, + { }, + { }, + ] + collection.bulk_write(operations) + # end-bulk-write +end \ No newline at end of file diff --git a/source/includes/write/bulk-write.rb b/source/includes/write/bulk-write.rb new file mode 100644 index 000000000..0e6d0349b --- /dev/null +++ b/source/includes/write/bulk-write.rb @@ -0,0 +1,71 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # start-bulk-insert-one + insert_one = { insert_one: { name: 'Steve Rogers Cafe', borough: 'Brooklyn' } } + # end-bulk-insert-one + + # start-bulk-update-one + update_one = { update_one: + { + filter: { name: 'Mountain View' }, + update: { '$set': { borough: 'Queens' } } + } + } + # end-bulk-update-one + + # start-bulk-update-many + update_many = { update_many: + { + filter: { name: 'Starbucks' }, + update: { '$set': { cuisine: 'Cafe' } } + } + } + # end-bulk-update-many + + # start-bulk-replace-one + replace_one = { replace_one: + { + filter: { name: 'Old World Diner' }, + replacement: { '$set': { name: 'New Age Luncheonette' } } + } + } + # end-bulk-replace-one + + # start-bulk-delete-one + delete_one = { delete_one: { name: 'Old World Diner' } } + # end-bulk-delete-one + + # start-bulk-delete-many + delete_many = { delete_many: { name: 'Starbucks' } } + # end-bulk-delete-many + + # start-bulk-write-mixed + insert_one = { insert_one: { name: 'Nuovo Ristorante', borough: 'Brooklyn', cuisine: 'Italian' } } + update_one = { update_one: + { + filter: { name: 'Moonlit Tavern' }, + update: { '$set': { borough: 'Queens' } } + } + } + delete_many = { delete_many: { name: 'Crepe' } } + writes = [insert_one, update_one, delete_many] + collection.bulk_write(writes) + # end-bulk-write-mixed + + # start-bulk-write-unordered + options = { ordered: false } + collection.bulk_write(writes, options) + # end-bulk-write-unordered +end \ No newline at end of file diff --git a/source/includes/write/delete.rb b/source/includes/write/delete.rb new file mode 100644 index 000000000..f9b05eb31 --- /dev/null +++ b/source/includes/write/delete.rb @@ -0,0 +1,33 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # start-delete-one + filter = { name: 'Happy Garden' } + result = collection.delete_one(filter) + puts "Deleted #{result.deleted_count} document(s)" + # end-delete-one + + # start-delete-many + filter = { name: 'Starbucks', borough: 'Brooklyn' } + result = collection.delete_many(filter) + puts "Deleted #{result.deleted_count} document(s)" + # end-delete-many + + # start-delete-options + filter = { name: /Red/ } + options = { hint: 'name_index' } + result = collection.delete_many(filter, options) + puts "Deleted #{result.deleted_count} document(s)" + # end-delete-options +end \ No newline at end of file diff --git a/source/includes/write/gridfs.rb b/source/includes/write/gridfs.rb new file mode 100644 index 000000000..c77f6e7bc --- /dev/null +++ b/source/includes/write/gridfs.rb @@ -0,0 +1,52 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + database = client.use('sample_restaurants') + collection = database[:restaurants] + + # start-create-bucket + bucket = database.fs + # end-create-bucket + + # start-create-custom-bucket + custom_bucket = database.fs(database, bucket_name: 'files') + # end-create-custom-bucket + + # start-upload-files + metadata = { uploaded_by: 'username' } + File.open('/path/to/file', 'rb') do |file| + file_id = bucket.upload_from_stream('test.txt', file, metadata: metadata) + puts "Uploaded file with ID: #{file_id}" + end + # end-upload-files + + # start-retrieve-file-info + bucket.find.each do |file| + puts "Filename: #{file.filename}" + end + # end-retrieve-file-info + + # start-download-files-id + file_id = BSON::ObjectId('your_file_id') + File.open('/path/to/downloaded_file', 'wb') do |file| + bucket.download_to_stream(file_id, file) + end + # end-download-files-id + + # start-download-files-name + File.open('/path/to/downloaded_file', 'wb') do |file| + bucket.download_to_stream_by_name('mongodb-tutorial', file) + end + # end-download-files-name + + # start-delete-files + file_id = BSON::ObjectId('your_file_id') + bucket.delete(file_id) + # end-delete-files +end \ No newline at end of file diff --git a/source/includes/write/insert.rb b/source/includes/write/insert.rb new file mode 100644 index 000000000..a9ea78358 --- /dev/null +++ b/source/includes/write/insert.rb @@ -0,0 +1,41 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Inserts a single document + # start-insert-one + document = { name: 'Neighborhood Bar & Grill', borough: 'Queens' } + collection.insert_one(document) + # end-insert-one + + # Inserts multiple documents + # start-insert-many + documents = [ + { name: 'Metropolitan Cafe', borough: 'Queens' }, + { name: 'Yankee Bistro', borough: 'Bronx' } + ] + collection.insert_many(documents) + # end-insert-many + + # Inserts multiple documents while enabling the bypass_document_validation option + # start-insert-options + documents = [ + { name: 'Cloudy Day', borough: 'Brooklyn' }, + { name: 'Squall or Shine', borough: 'Staten Island' } + { name: 'Rose Field', borough: 'Queens' } + ] + options = { bypass_document_validation: true } + collection.insert_many(documents, options) + # end-insert-options +end \ No newline at end of file diff --git a/source/includes/write/replace.rb b/source/includes/write/replace.rb new file mode 100644 index 000000000..a5667c2d4 --- /dev/null +++ b/source/includes/write/replace.rb @@ -0,0 +1,29 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Replaces a single document in the collection + # start-replace-one + filter = { name: 'Primola Restaurant' } + new_document = { name: 'Frutti Di Mare', cuisine: 'Seafood', borough: 'Queens' } + result = collection.replace_one(filter, new_document) + puts "Replaced #{result.modified_count} document(s)" + # end-replace-one + + # Uses the upsert option to replace a single document in the collection + # start-replace-options + options = { upsert: true } + result = collection.replace_one(filter, new_document, options) + puts "Replaced #{result.upserted_count} document(s)" + # end-replace-options +end \ No newline at end of file diff --git a/source/includes/write/transaction.rb b/source/includes/write/transaction.rb new file mode 100644 index 000000000..a2d54cf80 --- /dev/null +++ b/source/includes/write/transaction.rb @@ -0,0 +1,45 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + #start-txn + database = client.use('sample_mflix') + movies_collection = database[:movies] + users_collection = database[:users] + + def run_transaction(session, movies_collection, users_collection) + transaction_options = { + read_concern: { level: "snapshot" }, + write_concern: { w: "majority" } + } + + session.with_transaction(transaction_options) do + # Inserts document into the "movies" collection + insert_result = movies_collection.insert_one({ name: 'The Menu', runtime: 107 }, session: session) + puts "Insert completed: #{insert_result.inspect}" + + # Updates document in the "users" collection + update_result = users_collection.update_one({ name: 'Amy Phillips'}, { "$set" => { name: 'Amy Ryan' }}, session: session) + puts "Update completed: #{update_result.inspect}" + end + end + + # Starts a session + session = client.start_session + + begin + # Runs the transaction + run_transaction(session, movies_collection, users_collection) + puts "Transaction committed successfully." + rescue Mongo::Error::OperationFailure => e + puts "Transaction failed and was aborted. Error: #{e.message}" + ensure + session.end_session + end + #end-txn +end \ No newline at end of file diff --git a/source/includes/write/update.rb b/source/includes/write/update.rb new file mode 100644 index 000000000..5b11924b5 --- /dev/null +++ b/source/includes/write/update.rb @@ -0,0 +1,47 @@ +require 'bundler/inline' +gemfile do + source 'https://rubygems.org' + gem 'mongo' +end + +uri = "" + +Mongo::Client.new(uri) do |client| + # start-db-coll + database = client.use('sample_restaurants') + collection = database[:restaurants] + # end-db-coll + + # Updates a single document + # start-update-one + filter = { name: 'Happy Garden' } + + update = { '$set' => { name: 'Mountain House' } } + + single_result = collection.update_one(filter, update) + + puts "#{single_result.modified_count} document(s) updated." + # end-update-one + + # Updates multiple documents + # start-update-many + filter = { name: 'Starbucks' } + + update = { '$rename' => { address: 'location' } } + + many_result = collection.update_many(filter, update) + + puts "#{many_result.modified_count} document(s) updated." + # end-update-many + + # Performs an update operation with the upsert option enabled + # start-update-options + filter = { 'name' => 'Sunrise Pizzeria' } + + update = { '$set' => { borough: 'Queens', cuisine: 'Italian' } } + + upsert_result = collection.update_one(filter, update, upsert: true) + + puts "#{upsert_result.modified_count} document(s) updated." + # end-update-options +end \ No newline at end of file diff --git a/source/index.txt b/source/index.txt index 7343cf07f..b25482634 100644 --- a/source/index.txt +++ b/source/index.txt @@ -1,67 +1,136 @@ -.. http://www.mongodb.org/display/DOCS/Ruby+Language+Center +==================== +{+driver-long+} +==================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: twocols + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Get Started + Connect + Databases & Collections + Read Data + Write Data + Operations on Replica Sets + Indexes + Monitor Your Application + Data Aggregation + Security + Data Formats + View the Source + API Documentation <{+api-root+}> + What's New + Upgrade + Compatibility + Issues & Help + Common Errors + +Introduction +------------ + +Welcome to the documentation site for the {+driver-long+}, the official +MongoDB driver for {+language+} applications. -.. _ruby-language-center: +Get Started +----------- -******************* -Ruby MongoDB Driver -******************* +Learn how to install the driver, establish a connection to MongoDB, and begin +working with data in the :ref:`ruby-get-started` tutorial. -.. default-domain:: mongodb +Connect to MongoDB +------------------ -.. class:: hidden +Learn how to create and configure a connection to a MongoDB deployment +in the :ref:`ruby-connect` section. - .. toctree:: - :titlesonly: +Databases and Collections +------------------------- - Get Started - Tutorials - Connection & Configuration - Working with Data - Schema Operations - API - Release Notes - Additional Resources - Contribute +Learn how to use the {+driver-short+} to work with MongoDB databases and collections in the +:ref:`ruby-databases-collections` section. -Welcome to the documentation site for the official MongoDB Ruby driver. -You can add the driver to your application to work with MongoDB in -Ruby. +Read Data from MongoDB +---------------------- -Get Started -=========== +Learn how you can retrieve data from MongoDB in the :ref:`ruby-read` section. + +Write Data to MongoDB +--------------------- + +Learn how you can write data to MongoDB in the :ref:`ruby-write` section. + +Configure Operations on Replica Sets +------------------------------------ + +Learn how to configure read and write operations on a replica set in the +:ref:`ruby-crud-write-read-pref` section. + +Optimize Queries by Using Indexes +--------------------------------- + +Learn how to work with common types of indexes in the :ref:`ruby-indexes` +section. + +Monitor Your Application +------------------------ + +Learn how to monitor change events in the :ref:`ruby-monitoring` +section. + +Transform Your Data with Aggregation +------------------------------------ + +Learn how to use the {+driver-short+} to perform aggregation operations in the +:ref:`ruby-aggregation` section. + +Secure Your Data +---------------- + +Learn how to authenticate your application and encrypt your data in the +:ref:`ruby-security` section. + +Specialized Data Formats +------------------------ + +Learn how to work with specialized data formats and custom types in the +:ref:`ruby-data-formats` section. -To get started with the Ruby driver, see :doc:`/installation` and -:doc:`/tutorials/quick-start`. Continue to :doc:`/tutorials` -for high level documentation for common operations. +What's New +---------- -BSON -==== +For a list of new features and changes in each version, see the :ref:`What's New ` +section. -The Ruby BSON implementation is packaged in a separate gem with C and -Java extensions for speed depending on the runtime environment. +Upgrade Driver Versions +----------------------- + +Learn what changes you must make to your application to upgrade driver +versions in the :ref:`ruby-upgrade` section. -For reference on the Ruby BSON gem, see the :doc:`/tutorials/bson`. +Compatibility +------------- -Object Mappers -============== +To learn about the versions of the {+mdb-server+} and the {+language+} language +that are compatible with each version of the {+driver-short+}, see the +:ref:`Compatibility ` section. -Because MongoDB is so easy to use, the basic Ruby driver can be the -best solution for many applications. But if you need validations, -associations, and other high-level data modeling functions, then you -may need Object Document Mapper. +Issues & Help +------------- -In the context of a Rails application, an Object Document Mapper -provides functionality equivalent to, but distinct from, ActiveRecord. -Because MongoDB is a document-based database, these mappers are called -Object Document Mappers (ODM) as opposed to Object Relational Mappers -(ORM). +Learn how to report bugs, contribute to the driver, and find more resources for +asking questions and receiving help in the :ref:`Issues & Help ` section. -The ODM officially supported by MongoDB is Mongoid, originally written -by Durran Jordan. +Developer Hub +------------- -For tutorials on Mongoid, see the `Mongoid Manual `_. +The Developer Hub provides tutorials and social engagement for +developers. -.. COMMENT For the actual build, see mongodb/docs-ruby repo which pulls the documentation source from: -.. mongo-ruby-driver, -.. bson-ruby, and -.. mongoid repos. \ No newline at end of file +To ask questions and engage in discussions with fellow developers who +use the {+driver-short+}, see the `forums page. `__ diff --git a/source/indexes.txt b/source/indexes.txt new file mode 100644 index 000000000..7324d5b93 --- /dev/null +++ b/source/indexes.txt @@ -0,0 +1,290 @@ +.. _ruby-indexes: + +================================= +Optimize Queries by Using Indexes +================================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :description: Learn how to use indexes by using the MongoDB Ruby Driver. + :keywords: query, optimization, efficiency, usage example, code example + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Single Field + Compound + Multikey + Atlas Search + Text + Geospatial + +Overview +-------- + +On this page, you can see copyable code examples that show how to manage +different types of indexes by using the {+driver-long+}. + +To use an example from this page, copy the code example into the sample +application or your own application. Be sure to replace all placeholders in the +code examples, such as ````, with the relevant values for +your MongoDB deployment. + +Sample Application +~~~~~~~~~~~~~~~~~~ + +You can use the following sample application to test the code on this page. To +use the sample application, perform the following steps: + +1. Ensure you have the {+driver-short+} installed in your project. See the + :ref:`ruby-quick-start-download-and-install` guide to learn more. + +#. Copy the following code and paste it into a new ``.rb`` file. + +#. Copy a code example from this page and paste it on the specified lines in the + file. + +.. literalinclude:: /includes/indexes/index-starter-code.rb + :language: ruby + :emphasize-lines: 15-17 + +Single Field Index +------------------ + +The following example creates an ascending index on the specified field: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-index-single + :end-before: end-index-single + +To learn more about single field indexes, see the :ref:`ruby-single-field-index` +guide. + +Compound Index +-------------- + +The following example creates a compound index on the two specified fields. + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-index-compound + :end-before: end-index-compound + +To learn more about compound indexes, see the :ref:`ruby-compound-index` guide. + +Multikey Index +-------------- + +The following example creates a multikey index on the specified array-valued field: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-index-multikey + :end-before: end-index-multikey + +To learn more about multikey indexes, see the :ref:`ruby-multikey-index` guide. + +Geospatial Index +---------------- + +The following example creates a 2dsphere index on the specified field that +contains GeoJSON objects: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-index-geospatial + :end-before: end-index-geospatial + +To learn more about geospatial indexes, see the :ref:`ruby-geospatial-index` guide. + +Atlas Search Index Management +----------------------------- + +The following sections contain code examples that describe how to manage +Atlas Search indexes. + +To learn more about search indexes, see the :ref:`ruby-atlas-search-index` guide. + +Create Search Index +~~~~~~~~~~~~~~~~~~~ + +The following example creates an Atlas Search index on the specified field: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-create-search-index + :end-before: end-create-search-index + :dedent: + +List Search Indexes +~~~~~~~~~~~~~~~~~~~ + +The following example prints a list of Atlas Search indexes in the specified +collection: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-list-search-indexes + :end-before: end-list-search-indexes + :dedent: + +Update Search Indexes +~~~~~~~~~~~~~~~~~~~~~ + +The following example updates an existing Atlas Search index with the specified +new index definition: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-update-search-indexes + :end-before: end-update-search-indexes + :dedent: + +Delete Search Indexes +~~~~~~~~~~~~~~~~~~~~~ + +The following example deletes an Atlas Search index with the specified name: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-drop-search-index + :end-before: end-drop-search-index + :dedent: + +Text Index +---------- + +The following example creates a text index on the specified string field: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :start-after: start-text + :end-before: end-text + :language: ruby + :dedent: + +To learn more about text indexes, see the :ref:`ruby-text-index` +guide. + +Create Many Indexes +------------------- + +The following example creates multiple indexes on the given array of index specifications: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :start-after: start-index-create-many + :end-before: end-index-create-many + :language: ruby + :dedent: + +Drop Index +---------- + +The following example deletes an index with the specified name: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-drop-single-index + :end-before: end-drop-single-index + +The following example shows how to delete all indexes in a collection: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-drop-all-index + :end-before: end-drop-all-index + +List Indexes +------------ + +The following example prints a list of all indexes in the specified +collection: + +.. literalinclude:: /includes/indexes/index-code-examples.rb + :language: ruby + :start-after: start-list-indexes + :end-before: end-list-indexes + :dedent: + +Index Options +------------- + +The following is a full list of the available options you can add +when creating indexes. These options mirror the options supported by the +``createIndex`` command. For more information, see the :manual:`createIndex command +` in the {+mdb-server+} manual. + +.. list-table:: + :header-rows: 1 + :widths: 40 80 + + * - Option + - Description + * - ``:background`` + - Either ``true`` or ``false``. Tells the index to be created in the background. + * - ``:expire_after`` + - Number of seconds to expire documents in the collection after. + * - ``:name`` + - The name of the index. + * - ``:sparse`` + - Whether the index should be sparse or not, either ``true`` or ``false``. + * - ``:storage_engine`` + - The name of the storage engine for this particular index. + * - ``:version`` + - The index format version to use. + * - ``:default_language`` + - The default language of text indexes. + * - ``:language_override`` + - The field name to use when overriding the default language. + * - ``:text_version`` + - The version format for text index storage. + * - ``:weights`` + - A document specifying fields and weights in text search. + * - ``:sphere_version`` + - The 2d sphere index version. + * - ``:bits`` + - Sets the maximum boundary for latitude and longitude in the 2d index. + * - ``:max`` + - Maximum boundary for latitude and longitude in the 2d index. + * - ``:min`` + - Minimum boundary for latitude and longitude in the 2d index. + * - ``:bucket_size`` + - The number of units within which to group the location values in a geo haystack index. + * - ``:partial_filter_expression`` + - A filter for a partial index. + * - ``:hidden`` + - A Boolean specifying whether the index should be hidden; a hidden index + is one that exists on the collection but will not be used by the query planner. + * - ``:commit-quorum`` + - Specify how many data-bearing members of a replica set, including the primary, must + complete the index builds successfully before the primary marks the indexes as ready. + Potential values are: + + - integer from 0 to the number of members of the replica set + - ``“majority”`` indicating that a majority of data bearing nodes must vote + - ``“votingMembers”`` which means that all voting data bearing nodes must vote + + For more information, see :manual:`commitQuorom + ` + in the {+mdb-server+} manual. + +API Documentation +----------------- + +To learn more about the methods or objects used in this guide, see the following +API documentation: + +- :ruby-api:`indexes ` +- :ruby-api:`create_one ` +- :ruby-api:`drop_one ` +- :ruby-api:`drop_all ` diff --git a/source/indexes/atlas-search-index.txt b/source/indexes/atlas-search-index.txt new file mode 100644 index 000000000..455a5daf6 --- /dev/null +++ b/source/indexes/atlas-search-index.txt @@ -0,0 +1,130 @@ +.. _ruby-atlas-search-index: + +==================== +Atlas Search Indexes +==================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: index, query, optimization, efficiency + +Overview +-------- + +:atlas:`Atlas Search ` enables you to perform full-text searches on +collections hosted on MongoDB Atlas. With Atlas Search indexes, you can specify the +behavior of the search and which fields to index. + +You can call the following methods to manage you Atlas Search indexes: + +- ``search_indexes#create_one`` +- ``search_indexes#create_many`` +- ``search_indexes#update_one`` +- ``search_indexes#drop_one`` + +The following sections provide code examples that demonstrate how to use +each of the preceding commands. + +.. _ruby-atlas-search-index-create: + +Create a Search Index +--------------------- + +To create one or more Atlas Search indexes, use the ``search_indexes#create_one`` +or the ``search_indexes#create_many`` method. Both methods return immediately, +while the indexes are asynchronously created in the background. + +The following code example shows how to create an Atlas Search index by providing +an index definition and an optional name for the index: + +.. literalinclude:: /includes/indexes/atlas-search-index.rb + :language: ruby + :start-after: start-create-search-index + :end-before: end-create-search-index + :emphasize-lines: 15 + +You can use ``search_indexes#create_many`` to create multiple Atlas Search indexes by +providing an array of index specifications. Each index specification should include a definition +key, which defines the index, and a name key to specify the index name. The following +code example shows how to create multiple search indexes: + +.. literalinclude:: /includes/indexes/atlas-search-index.rb + :language: ruby + :start-after: start-create-multiple-search-indexes + :end-before: end-create-multiple-search-indexes + :emphasize-lines: 25 + +For longer index definitions, it is helpful to define the index definitions outside +of the method call. To learn more about the syntax of index definitions, see the +:atlas:`Review Atlas Search Index Syntax ` +guide in the Atlas manual. + +Update a Search Index +--------------------- + +To update an Atlas Search index, use the ``search_indexes#update_one`` method. + +To update an index, you must provide a new index definition. You must specify +the index you want to update by using either the ``name`` or ``id`` of the index. +The following code shows how to update a search index: + +.. literalinclude:: /includes/indexes/atlas-search-index.rb + :language: ruby + :start-after: start-update-search-indexes + :end-before: end-update-search-indexes + +Delete a Search Index +--------------------- + +To delete an Atlas Search index, use the ``search_indexes#drop_one`` method. + +To delete an index, you must provide the ``id`` or ``name`` of the index. The following +code shows how to delete a search index from a collection: + +.. literalinclude:: /includes/indexes/atlas-search-index.rb + :language: ruby + :start-after: start-drop-search-index + :end-before: end-drop-search-index + +List Search Indexes +------------------- + +You can use the ``search_indexes`` object to list the entire index specification +of each index: + +.. literalinclude:: /includes/indexes/atlas-search-index.rb + :language: ruby + :start-after: start-list-entire-spec + :end-before: end-list-entire-spec + +To list individual fields in the index specification for each index, iterate +over the ``search_indexes`` object: + +.. literalinclude:: /includes/indexes/atlas-search-index.rb + :language: ruby + :start-after: start-list-certain-elements + :end-before: end-list-certain-elements + +Additional Information +---------------------- + +To learn more about MongoDB Atlas Search, see the +:atlas:`Atlas Search ` documentation. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods discussed in this guide, see the +following API documentation: + +- `search_indexes <{+api-root+}/Mongo/Collection.html#search_indexes-instance_method>`__ +- `SearchIndex <{+api-root+}/Mongo/SearchIndex/View.html>`__ diff --git a/source/indexes/compound-index.txt b/source/indexes/compound-index.txt new file mode 100644 index 000000000..fc51cc67c --- /dev/null +++ b/source/indexes/compound-index.txt @@ -0,0 +1,123 @@ +.. _ruby-compound-index: + +================ +Compound Indexes +================ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: index, query, optimization, efficiency + +Overview +-------- + +**Compound indexes** hold references to multiple +fields within a collection's documents, improving query and sort +performance. + +When creating a compound index, you must specify the following details: + +- The fields on which to create the index + +- The sort order for each field (ascending or descending) + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``movies`` collection in the +``sample_mflix`` database from the :atlas:`Atlas sample datasets +`. To access this collection from your {+language+} +application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` +and ``collection`` +variables: + +.. literalinclude:: /includes/indexes/single-field.rb + :start-after: start-sample-data + :end-before: end-sample-data + :language: ruby + :copyable: + +To learn how to create a free MongoDB Atlas cluster and +load the sample datasets, see the :atlas:`Get Started with Atlas +` guide. + +Create a Compound Index +----------------------- + +Use the ``create_one`` method to create a compound index. The following +example creates an index in descending order on the ``runtime`` field and +in ascending order on the ``year`` field: + +.. literalinclude:: /includes/indexes/compound.rb + :start-after: start-index-compound + :end-before: end-index-compound + :language: ruby + :copyable: + +Verify Index Creation +--------------------- + +You can verify that the index was created by listing the indexes in the +collection. You should see an index for ``runtime`` and ``year`` in the list, +as shown in the following output: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/indexes/compound.rb + :start-after: start-check-compound-index + :end-before: end-check-compound-index + :language: ruby + + .. output:: + :visible: true + + {"v": 2, "key": {"runtime": -1, "year": 1}, "name": "runtime_-1_year_1"} + +Example Query +------------- + +The following is an example of a query that is covered by the index +created on the ``runtime`` and ``year`` fields: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/indexes/compound.rb + :start-after: start-index-compound-query + :end-before: end-index-compound-query + :language: ruby + + .. output:: + :visible: false + + {"_id":...,"runtime": 91,...,"title": "Monster House",...,"year": 2006,...} + +Additional Information +---------------------- + +To view runnable examples that demonstrate how to manage indexes, see +:ref:`ruby-indexes`. + +To learn more about compound indexes, see :manual:`Compound +Indexes ` in the {+mdb-server+} manual. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods discussed in this guide, see the +following API documentation: + +- :ruby-api:`indexes ` +- :ruby-api:`create_one ` +- :ruby-api:`find ` diff --git a/source/reference/geospatial-search.txt b/source/indexes/geospatial-index.txt similarity index 97% rename from source/reference/geospatial-search.txt rename to source/indexes/geospatial-index.txt index 8550d64b3..a2518b5bc 100644 --- a/source/reference/geospatial-search.txt +++ b/source/indexes/geospatial-index.txt @@ -1,6 +1,8 @@ -***************** -Geospatial Search -***************** +.. _ruby-geospatial-index: + +================== +Geospatial Indexes +================== .. default-domain:: mongodb diff --git a/source/indexes/multikey-index.txt b/source/indexes/multikey-index.txt new file mode 100644 index 000000000..0e1e6e328 --- /dev/null +++ b/source/indexes/multikey-index.txt @@ -0,0 +1,123 @@ +.. _ruby-multikey-index: + +================ +Multikey Indexes +================ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: index, query, optimization, efficiency + +Overview +-------- + +**Multikey indexes** are indexes that improve the performance of queries +on array-valued fields. You can create a multikey index on a collection +by using the ``create_one`` method and the same syntax that you use to create +a :ref:`single field index `. + + +When creating a multikey index, you must specify the following details: + +- The fields on which to create the index + +- The sort order for each field (ascending or descending) + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``movies`` collection in the +``sample_mflix`` database from the :atlas:`Atlas sample datasets +`. To access this collection from your {+language+} +application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` +and ``collection`` variables: + +.. literalinclude:: /includes/indexes/single-field.rb + :start-after: start-sample-data + :end-before: end-sample-data + :language: ruby + :copyable: + +To learn how to create a free MongoDB Atlas cluster and +load the sample datasets, see the :atlas:`Get Started with Atlas +` guide. + +Create a Multikey Index +----------------------- + +Use the ``create_one`` method to create a multikey index. The following example +creates an index in ascending order on the ``cast`` field: + +.. literalinclude:: /includes/indexes/multikey.rb + :start-after: start-index-multikey + :end-before: end-index-multikey + :language: ruby + :copyable: + +Verify Index Creation +--------------------- + +You can verify that the index was created by listing the indexes in the +collection. You should see an index for ``cast`` in the list, as shown +in the following output: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/indexes/multikey.rb + :start-after: start-check-multikey-index + :end-before: end-check-multikey-index + :language: ruby + + .. output:: + :visible: true + + {"v": 2, "key": {"cast": 1}, "name": "cast_1"} + +Example Query +------------- + +The following is an example of a query that is covered by the index +created on the ``cast`` field: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/indexes/multikey.rb + :start-after: start-index-multikey-query + :end-before: end-index-multikey-query + :language: ruby + + .. output:: + :visible: false + + {"_id":...,"title":"Fanaa",...,"cast": ["Aamir Khan", "Kajol", "Rishi Kapoor", "Tabu"],...} + +Additional Information +---------------------- + +To view runnable examples that demonstrate how to manage indexes, see +:ref:`ruby-indexes`. + +To learn more about multikey indexes, see :manual:`Multikey +Indexes ` in the {+mdb-server+} manual. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods discussed in this guide, see the +following API documentation: + +- :ruby-api:`indexes ` +- :ruby-api:`create_one ` +- :ruby-api:`find ` diff --git a/source/indexes/single-field-index.txt b/source/indexes/single-field-index.txt new file mode 100644 index 000000000..aa35fbb3d --- /dev/null +++ b/source/indexes/single-field-index.txt @@ -0,0 +1,135 @@ +.. _ruby-single-field-index: + +==================== +Single Field Indexes +==================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: index, query, optimization, efficiency + +Overview +-------- + +**Single field indexes** are indexes with a reference to a single field of a +document in a collection. These indexes improve single field query and +sort performance. They also support :manual:`TTL Indexes ` +that automatically remove documents from a collection after a certain +amount of time or at a specified clock time. + +When creating a single field index, you must specify the following +details: + +- The field on which to create the index +- The sort order for the indexed values as either ascending or + descending + +.. note:: + + The default ``_id_`` index is an example of a single field index. + This index is automatically created on the ``_id`` field when a new + collection is created. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``movies`` collection in the +``sample_mflix`` database from the :atlas:`Atlas sample datasets +`. To access this collection from your {+language+} +application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` +and ``collection`` +variables: + +.. literalinclude:: /includes/indexes/single-field.rb + :start-after: start-sample-data + :end-before: end-sample-data + :language: ruby + :copyable: + +To learn how to create a free MongoDB Atlas cluster and +load the sample datasets, see the :atlas:`Get Started with Atlas +` guide. + +Create a Single Field Index +--------------------------- + +Use the ``create_one`` method to create a single +field index. The following example creates an index in ascending order on the +``title`` field: + +.. literalinclude:: /includes/indexes/single-field.rb + :start-after: start-index-single + :end-before: end-index-single + :language: ruby + :copyable: + +Verify Index Creation +--------------------- + +You can verify that the index was created by listing the indexes in the +collection. You should see an index for ``title`` in the list, as shown +in the following output: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/indexes/single-field.rb + :start-after: start-check-single-index + :end-before: end-check-single-index + :language: ruby + :dedent: + + .. output:: + :visible: true + + {"v": 2, "key": {"title": 1}, "name": "title_1"} + +Example Query +------------- + +The following is an example of a query that is covered by the index +created on the ``title`` field: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/indexes/single-field.rb + :start-after: start-index-single-query + :end-before: end-index-single-query + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id":...,"plot":"A musical comedy duo...", + "genres":["Musical"],...,"title":"Sweethearts",...} + +Additional Information +---------------------- + +To view runnable examples that demonstrate how to manage indexes, see +:ref:`ruby-indexes`. + +To learn more about single field indexes, see :manual:`Single Field +Indexes ` in the {+mdb-server+} manual. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods discussed in this guide, see the +following API documentation: + +- :ruby-api:`indexes ` +- :ruby-api:`create_one ` +- :ruby-api:`find ` diff --git a/source/reference/text-search.txt b/source/indexes/text-index.txt similarity index 95% rename from source/reference/text-search.txt rename to source/indexes/text-index.txt index de2e09837..69087623c 100644 --- a/source/reference/text-search.txt +++ b/source/indexes/text-index.txt @@ -1,6 +1,8 @@ -*********** -Text Search -*********** +.. _ruby-text-index: + +============ +Text Indexes +============ .. default-domain:: mongodb diff --git a/source/installation.txt b/source/installation.txt deleted file mode 100644 index a5f404b04..000000000 --- a/source/installation.txt +++ /dev/null @@ -1,56 +0,0 @@ -************ -Installation -************ - -.. default-domain:: mongodb - -The Ruby driver is released as a gem hosted on `Rubygems -`_. - - -Prerequisites -============= - -Please see the :ref:`compatibility ` page for the list of -Ruby versions and MongoDB server versions that this release of the Ruby -driver is compatible with. - -The driver itself is written entirely in Ruby, however it depends on the -`bson library `_ which includes a C extension -for MRI and a compiled Java extension for JRuby. A working C compiler and Ruby -development headers and libraries are required when installing on MRI. -When installing on JRuby, JRE is sufficient because the ``bson`` gem includes -the compiled extension. - -Connecting to TLS-enabled MongoDB servers, using SCRAM authentication -(both SCRAM-SHA-1 and SCRAM-SHA-256) and using X.509 authentication (which -is performed over a TLS connection) requires the Ruby ``openssl`` extension -to be present and working. The :ref:`TLS compatibility ` -section provides further details on usage of newer TLS protocols like TLS 1.1. - - -.. _installation: - -Install the Gem -=============== - -Add ``mongo`` to your ``Gemfile``: - -.. code-block:: ruby - - gem "mongo", "~> 2" - -To install the driver manually: - -.. code-block:: sh - - gem install mongo -v '~> 2' - - -What's New -========== - -Please see the :ref:`release notes ` for the major changes -in each driver release and the `releases page on GitHub -`_ for the complete -list of changes for each release of the driver. diff --git a/source/issues-and-help.txt b/source/issues-and-help.txt new file mode 100644 index 000000000..9217d0bf8 --- /dev/null +++ b/source/issues-and-help.txt @@ -0,0 +1,74 @@ +.. _ruby-issues-and-help: + +============= +Issues & Help +============= + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: ruby, troubleshooting, feedback + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +We are lucky to have a vibrant MongoDB Ruby community that +includes users with varying levels of experience using the +{+driver-short+}. The quickest way to get support for general questions +is through the :community-forum:`MongoDB Community Forums `. + +Bugs / Feature Requests +----------------------- + +If you have feedback about the {+driver-short+}, visit the `MongoDB +Feedback Engine `__ and select +:guilabel:`Drivers` from the list of products on the right side of +your screen. You can propose improvements, report issues, and provide +other types of feedback by using this site. + +You can also open a case in Jira, our issue management tool, to identify +bugs or propose improvements. The following steps describe how to create +a Jira issue: + +1. Visit the `MongoDB Jira issue tracker `__ and click the + `signup link. `__ + Create an account, and then log in to Jira. +#. Navigate to the `RUBY Jira project. `__ +#. Click :guilabel:`Create` to create a ticket. Please provide as much + information as possible about the issue or request in the ticket. + +.. note:: + + Bug reports in the RUBY Jira project are publicly viewable. + +If you've identified a security vulnerability in any official MongoDB +product, please report it according to the instructions found in the +:manual:`Create a Vulnerability Report page. ` + +Pull Requests +------------- + +We are happy to accept contributions to help improve the driver. We will guide +user contributions to ensure they meet the standards of the codebase. Please +ensure that any pull requests include documentation and tests. + +To get started, clone the source repository and work on a branch by +running the following commands: + +.. code-block:: bash + + git clone https://github.com/mongodb/mongo-ruby-driver.git + cd mongo-ruby-driver + git checkout -b myNewFeature + +.. tip:: + + If your changes correspond to a specific Jira ticket, title your pull + request by using the following convention: + + ``RUBY-`` diff --git a/source/meta/404.txt b/source/meta/404.txt deleted file mode 100644 index 4143ded8d..000000000 --- a/source/meta/404.txt +++ /dev/null @@ -1,7 +0,0 @@ -:orphan: - -************** -File not found -************** - -The URL you requested does not exist or has been removed. diff --git a/source/monitoring.txt b/source/monitoring.txt new file mode 100644 index 000000000..a23f92a1f --- /dev/null +++ b/source/monitoring.txt @@ -0,0 +1,16 @@ +.. _ruby-monitoring: + +======================== +Monitor Your Application +======================== + +.. toctree:: + :caption: Monitoring categories + + Cluster Monitoring + +In this section, you can learn how to monitor different change +events by using the {+driver-short+}. + +- :ref:`Cluster Monitoring `: Monitor changes + in your cluster configuration \ No newline at end of file diff --git a/source/monitoring/cluster-monitoring.txt b/source/monitoring/cluster-monitoring.txt new file mode 100644 index 000000000..c30dcd7c8 --- /dev/null +++ b/source/monitoring/cluster-monitoring.txt @@ -0,0 +1,250 @@ +.. _ruby-cluster-monitoring: + +================== +Cluster Monitoring +================== + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code example, server, topology + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecols + +Overview +-------- + +This guide shows you how to use the {+driver-short+} to monitor server discovery +and monitoring (SDAM) events in a MongoDB instance, replica set, or sharded +cluster by using custom subscribers or available subscriber methods. These events +occur when there are changes in the state of the MongoDB instance or cluster +that you are connected to. + +You can use information about SDAM events in your application to understand +cluster changes, assess cluster health, or perform capacity planning. + +SDAM Subscribers +---------------- + +You can use the {+driver-short+}'s ``subscribe`` method to subscribe to events. +Pass a monitoring topic, which defines the monitoring event type, and a subscriber +object as arguments to the ``subscribe`` method. + +The following code uses the ``ServerOpeningLogSubscriber`` subscriber to monitor a connection +to a server instance. You can subscribe to events at a global level, which monitors +all clients of a cluster, or at the client level: + +.. literalinclude:: /includes/monitoring/monitoring.rb + :start-after: start-available-subscriber + :end-before: end-available-subscriber + :language: ruby + :copyable: + :dedent: + +The following table provides available subscribers and their monitoring topic: + +.. list-table:: + :header-rows: 1 + :widths: 35 20 45 + + * - Subscriber Name + - Monitoring Topic + - Description + + * - `ServerClosedLogSubscriber <{+api-root+}/Mongo/Monitoring/ServerClosedLogSubscriber.html>`__ + - ``SERVER_CLOSED`` + - Subscribes to ``ServerClosed`` events and logs them. + + * - `ServerDescriptionChangedLogSubscriber <{+api-root+}/Mongo/Monitoring/ServerDescriptionChangedLogSubscriber.html>`__ + - ``SERVER_DESCRIPTION_CHANGED`` + - Subscribes to ``ServerDescriptionChanged`` events and logs them. + + * - `ServerOpeningLogSubscriber <{+api-root+}/Mongo/Monitoring/ServerOpeningLogSubscriber.html>`__ + - ``SERVER_OPENING`` + - Subscribes to ``ServerOpening`` events and logs them. + + * - `TopologyChangedLogSubscriber <{+api-root+}/Mongo/Monitoring/TopologyChangedLogSubscriber.html>`__ + - ``TOPOLOGY_CHANGED`` + - Subscribes to ``TopologyChanged`` events and logs them. + + * - `TopologyClosedLogSubscriber <{+api-root+}/Mongo/Monitoring/TopologyClosedLogSubscriber.html>`__ + - ``TOPOLOGY_CLOSED`` + - Subscribes to ``TopologyClosed`` events and logs them. + + * - `TopologyOpeningLogSubscriber <{+api-root+}/Mongo/Monitoring/TopologyOpeningLogSubscriber.html>`__ + - ``TOPOLOGY_OPENING`` + - Subscribes to ``TopologyOpening`` events and logs them. + +You can find a table of SDAM event descriptions in the :ref:`Event Descriptions ` +section on this page. + +Custom SDAM Monitoring +---------------------- + +You can create a custom SDAM subscriber to access details about server +and topology events. Create a separate class for each event type, as available +data for each event varies. + +For all events, the subscriber calls the ``succeeded`` method and passes the event +as an argument. A simple SDAM logging subscriber can look +like the following code: + +.. literalinclude:: /includes/monitoring/monitoring.rb + :start-after: start-sdam + :end-before: end-sdam + :language: ruby + :copyable: + :dedent: + +To subscribe to events, create the appropriate subscriber and +subscribe to the correct monitoring topic. The following code shows how +to subscribe to SDAM events globally: + +.. literalinclude:: /includes/monitoring/monitoring.rb + :start-after: start-sdam-subscriber-global + :end-before: end-sdam-subscriber-global + :language: ruby + :copyable: + :dedent: + +The following code shows how to subscribe to SDAM events for a single client +by using the ``sdam-proc`` client option: + +.. literalinclude:: /includes/monitoring/monitoring.rb + :start-after: start-sdam-subscriber-client + :end-before: end-sdam-subscriber-client + :language: ruby + :copyable: + :dedent: + +.. note:: + + The ``:sdam_proc`` client option applies only to the given client. + When certain client options are changed by using the + ``Client#with`` call, the driver may create a new cluster with + a default set of event subscribers. If this happens, the provided + ``:sdam_proc`` is not called, and the application may miss events. + +When you run the application, your subscriber records the SDAM event and +outputs messages such as the following: + +.. code-block:: none + :copyable: false + + D, [2018-10-09T13:58:03.489461 #22079] DEBUG -- : SDAM | Topology type 'Unknown' initializing. + D, [2018-10-09T13:58:03.489699 #22079] DEBUG -- : SDAM | Server 127.0.0.1:27100 initializing. + D, [2018-10-09T13:58:03.491384 #22079] DEBUG -- : SDAM | Server description for 127.0.0.1:27100 changed from 'unknown' to 'unknown'. + D, [2018-10-09T13:58:03.491642 #22079] DEBUG -- : SDAM | Server localhost:27100 initializing. + D, [2018-10-09T13:58:03.493199 #22079] DEBUG -- : SDAM | Server description for localhost:27100 changed from 'unknown' to 'primary'. + D, [2018-10-09T13:58:03.493473 #22079] DEBUG -- : SDAM | Server localhost:27101 initializing. + D, [2018-10-09T13:58:03.494874 #22079] DEBUG -- : SDAM | Server description for localhost:27101 changed from 'unknown' to 'secondary'. + D, [2018-10-09T13:58:03.495139 #22079] DEBUG -- : SDAM | Server localhost:27102 initializing. + D, [2018-10-09T13:58:03.496504 #22079] DEBUG -- : SDAM | Server description for localhost:27102 changed from 'unknown' to 'secondary'. + D, [2018-10-09T13:58:03.496777 #22079] DEBUG -- : SDAM | Topology type 'Unknown' changed to type 'ReplicaSetNoPrimary'. + D, [2018-10-09T13:58:03.497306 #22079] DEBUG -- : SDAM | Server 127.0.0.1:27100 connection closed. + D, [2018-10-09T13:58:03.497606 #22079] DEBUG -- : SDAM | Topology type 'ReplicaSetNoPrimary' changed to type 'ReplicaSetWithPrimary'. + + # client.close + + D, [2018-10-09T13:58:05.342057 #22079] DEBUG -- : SDAM | Server localhost:27100 connection closed. + D, [2018-10-09T13:58:05.342299 #22079] DEBUG -- : SDAM | Server localhost:27101 connection closed. + D, [2018-10-09T13:58:05.342565 #22079] DEBUG -- : SDAM | Server localhost:27102 connection closed. + D, [2018-10-09T13:58:05.342693 #22079] DEBUG -- : SDAM | Topology type 'ReplicaSetWithPrimary' closed. + +Server Heartbeats +~~~~~~~~~~~~~~~~~ + +You can also create a custom subscriber to monitor server heartbeats, which occur +when the server monitor sends a ``hello`` command to the server. + +Custom server heartbeat subscribers differ from other SDAM subscribers, +as they must implement the following three methods: + +- ``started``: Invoked when the listener receives the heartbeat +- ``succeeded``: Response for a successful heartbeat outcome +- ``failed``: Response for a failed heartbeat outcome + +The following example shows a heartbeat event subscriber: + +.. literalinclude:: /includes/monitoring/monitoring.rb + :start-after: start-heartbeat + :end-before: end-heartbeat + :language: ruby + :copyable: + :dedent: + +You can subscribe to heartbeat events globally or for a specific client, +as shown in the following example: + +.. literalinclude:: /includes/monitoring/monitoring.rb + :start-after: start-heartbeat-subscribe + :end-before: end-heartbeat-subscribe + :language: ruby + :copyable: + :dedent: + +When you run the application, your subscriber records the heartbeat event and +outputs messages such as the following: + +.. code-block:: none + :copyable: false + + D, [2018-09-23T13:44:10.707018 #1739] DEBUG -- : HEARTBEAT | 127.0.0.1:27027 | STARTED + D, [2018-09-23T13:44:10.707778 #1739] DEBUG -- : HEARTBEAT | 127.0.0.1:27027 | SUCCEEDED | 0.000772381s + +.. _SDAM-event-descriptions: + +Event Descriptions +------------------ + +The following table provides the name and description of each SDAM event: + +.. list-table:: + :header-rows: 1 + :widths: 40 60 + + * - Event Type + - Description + + * - `ServerClosed <{+api-root+}/Mongo/Monitoring/Event/ServerClosed.html>`__ + - Event created when the server instance is closed. + + * - `ServerDescriptionChanged <{+api-root+}/Mongo/Monitoring/Event/ServerDescriptionChanged.html>`__ + - Event created when a server's description changes. + + * - `ServerHeartbeatFailed <{+api-root+}/Mongo/Monitoring/Event/ServerHeartbeatFailed.html>`__ + - Event created when a server heartbeat fails. + + * - `ServerHeartbeatStarted <{+api-root+}/Mongo/Monitoring/Event/ServerHeartbeatStarted.html>`__ + - Event created when a server heartbeat is received by the listener. + + * - `ServerHeartbeatSucceeded <{+api-root+}/Mongo/Monitoring/Event/ServerHeartbeatSucceeded.html>`__ + - Event created when a server heartbeat succeeds. + + * - `ServerOpening <{+api-root+}/Mongo/Monitoring/Event/ServerOpening.html>`__ + - Event created when the driver connects to the server. + + * - `TopologyChanged <{+api-root+}/Mongo/Monitoring/Event/TopologyChanged.html>`__ + - Event created when the topology changes. + + * - `TopologyClosed <{+api-root+}/Mongo/Monitoring/Event/TopologyClosed.html>`__ + - Event created when all instance connections in the topology close. + + * - `TopologyOpening <{+api-root+}/Mongo/Monitoring/Event/TopologyOpening.html>`__ + - Event created before the driver attempts to connect to an instance. + +API Documentation +----------------- + +To learn more about any of the classes or methods discussed in this guide, see the +following API documentation: + +- :ruby-api:`Mongo::Monitoring ` +- :ruby-api:`Mongo::Monitoring::Event ` +- :ruby-api:`subscribe ` diff --git a/source/nesting-levels.txt b/source/nesting-levels.txt deleted file mode 100644 index 6df05d1cb..000000000 --- a/source/nesting-levels.txt +++ /dev/null @@ -1,17 +0,0 @@ -This file is not part of Ruby driver documentation proper, it is an internal -reference for the nesting levels that other files should be using. - -Ruby driver documentation nesting levels: - -********** -Page Title -********** - -First Level Heading -=================== - -Second Level Heading --------------------- - -Third Level Heading -``````````````````` diff --git a/source/read-write-pref.txt b/source/read-write-pref.txt new file mode 100644 index 000000000..e6b6ea740 --- /dev/null +++ b/source/read-write-pref.txt @@ -0,0 +1,240 @@ +.. _ruby-crud-write-read-pref: + +=============================== +CRUD Operations on Replica Sets +=============================== + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: ruby, customize, preferences, replica set, consistency + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +Overview +-------- + +In this guide, you can learn how to use the **write concern**, **read concern**, and +**read preference** configurations to modify the way that MongoDB runs +create, read, update, and delete (CRUD) operations on replica sets. + +You can set write concern, read concern, and read preference options at the following +levels: + +- Client, which sets the *default for all operation executions* unless overridden +- Session +- Transaction +- Database +- Collection + +The preceding list also indicates the increasing order of precedence of the option +settings. For example, if you set a read concern level for a transaction, it will +override a read concern level set for the client. + +These options allow you to customize the causal consistency and availability of the data +in your replica sets. + +Write Concern +------------- + +The write concern specifies the level of acknowledgement requested from MongoDB for +write operations, such as an insert or update, before the operation successfully returns. +Operations that do not specify an explicit write concern inherit the global default write +concern settings. + +For more information, see :manual:`Write Concern ` in the +{+mdb-server+} manual. For detailed API documentation, see the +:ruby-api:`Write Concern API documentation `. + +The following table describes the ``write_concern`` parameters: + +.. list-table:: + :header-rows: 1 + :widths: 25 25 50 + + * - Parameter + - Type + - Description + + * - ``w`` *(optional)* + - integer or string + - Requests acknowledgment that the write operation has propagated to a specified + number of ``mongod`` instances or to ``mongod`` instances that are labelled + with specified tags. + + * - ``wtimeoutMS`` *(optional)* + - integer + - Specifies a time limit to prevent write operations from blocking indefinitely. + + * - ``journal`` *(optional)* + - boolean + - Requests acknowledgment that the write operation has been written to the + on-disk journal. + +Example: Set the Write Concern for a Single Write Operation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following code creates a new document and specifies the ``w`` and ``wtimeout`` +write concern settings: + +.. literalinclude:: /includes/usage-examples/read-write-pref.rb + :language: ruby + :dedent: + :start-after: start-write-concern + :end-before: end-write-concern + +Example: Retrieve and Apply an Existing Write Concern +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following code uses the ``new_write_concern`` method to construct a ``write_concern`` +from the options of an existing database reference, ``myDB``. Then the new +write concern is applied to an inserted document. + +.. literalinclude:: /includes/usage-examples/read-write-pref.rb + :language: ruby + :dedent: + :start-after: start-write-concern-2 + :end-before: end-write-concern-2 + +.. note:: + + ``myDB`` can be replaced with a reference to any entity that accepts a write concern option. + +Read Concern +------------ + +The read concern specifies the following behaviors: + +- Level of :manual:`causal consistency ` + across replica sets + +- :manual:`Isolation guarantees ` + maintained during a query + +You can specify the read concern setting by using the ``level`` parameter. The default +read concern level is ``local``. This means that the client returns the data from the +replica set member that the client is connected to, with no guarantee that the data has +been written to all replica set members. + +.. note:: + + Lower read concern level requirements may reduce latency. + +For more information about read concerns or read concern levels, see +:manual:`Read Concern ` in the {+mdb-server+} manual. For more +detail on the ``read_concern`` type and definitions of the read concern levels, see +:ruby-api:`Read Concern ` +in the API documentation. + +Example: Set the Read Concern Level of an Aggregation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following code sets the read concern level of an aggregation to ``"available"``: + +.. literalinclude:: /includes/usage-examples/read-write-pref.rb + :language: ruby + :dedent: + :start-after: start-read-concern + :end-before: end-read-concern + +.. tip:: + + To learn more about aggregation operations, see the + :ref:`ruby-aggregation` guide. + +Example: Change the Read Concern of a Database +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following code changes the read concern level of a database to ``"local"``: + +.. literalinclude:: /includes/usage-examples/read-write-pref.rb + :language: ruby + :dedent: + :start-after: start-change-read-concern + :end-before: end-change-read-concern + +Read Preference +--------------- + +The read preference determines which member of a replica set MongoDB reads when running a +query. + +For more detailed API documentation, see the :ruby-api:`Read Preference API +documentation `. + +The following table shows options you can use to customize how the server evaluates +members: + +.. list-table:: + :widths: 25 25 50 + :header-rows: 1 + + * - Parameter + - Type + - Description + + * - ``mode`` + - ``Symbol`` + - Specifies a requirement or preference for which replica set + member the server reads from. The default mode, ``:primary``, specifies that + operations read from the primary member of the replica set. + + * - ``tags`` *(optional)* + - ``Array`` + - Assigns tags to secondary replica set members to customize how the server evaluates + them. Tags cannot be used with the ``:primary`` read preference mode setting. + + * - ``options`` *(optional)* + - ``Hash`` + - Sets various options, including :manual:`hedge ` + and :manual:`maxStalenessSeconds ` that can be + applied to your read preference. + +Example: Set Read Preference and Concerns for a Transaction +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following code sets the read preference, read concern, and write concern for +the operations in a transaction: + +.. literalinclude:: /includes/usage-examples/read-write-pref.rb + :language: ruby + :dedent: + :start-after: start-read-preference + :end-before: end-read-preference + +.. tip:: + + To learn more about transactions, see the + :ref:`ruby-transactions` guide. + +Example: Set the Read Preference of a Cluster in the Connection String +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This code example creates a ``MongoClient`` that uses the ``secondary`` read +preference mode when performing queries on a cluster: + +.. literalinclude:: /includes/usage-examples/read-write-pref.rb + :language: ruby + :dedent: + :start-after: start-read-preference-cluster + :end-before: end-read-preference-cluster + +The preceding example also sets the ``maxStalenessSeconds`` option to ``120``. +For more information about connection string options, see the :manual:`Connection String Options ` +section in the {+mdb-server+} manual. + +API Documentation +----------------- + +To learn more about the methods and types mentioned in this guide, see the following API +documentation: + +- :ruby-api:`Write Concern ` +- :ruby-api:`Read Concern ` +- :ruby-api:`Read Preference ` \ No newline at end of file diff --git a/source/read.txt b/source/read.txt new file mode 100644 index 000000000..e8c6e83d5 --- /dev/null +++ b/source/read.txt @@ -0,0 +1,170 @@ +.. _ruby-read: + +====================== +Read Data from MongoDB +====================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :description: Learn how to use the Ruby driver to read data from MongoDB. + :keywords: usage examples, save, crud, read, code example + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + Retrieve Data + Specify a Query + Specify Documents to Return + Specify Fields to Return + Distinct Field Values + Count Documents + Cursors + Monitor Changes + Collations + +Overview +-------- + +On this page, you can see copyable code examples that show common {+driver-short+} methods you +can use to read data from MongoDB. + +.. tip:: + + To learn more about any of the methods shown on this page, see the link + provided in each section. + +To use an example from this page, copy the code example into the +:ref:`ruby-read-sample` below or your own application. +Be sure to replace all placeholders in the code examples, such as ````, with +the relevant values for your MongoDB deployment. + +.. _read-sample: + +.. include:: /includes/usage-examples/sample-app-intro.rst + +.. literalinclude:: /includes/usage-examples/sample-read-app.rb + :language: ruby + :copyable: + :linenos: + :emphasize-lines: 14-16 + +Find One +-------- + +The following example retrieves a document that matches the criteria specified by the +given filter: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-find-one + :end-before: end-find-one + :language: ruby + :copyable: + :dedent: + +To learn more about the ``first`` method, see the :ref:`Retrieve Data ` +guide. + +Find Multiple +------------- + +The following example retrieves all documents that match the criteria specified by the +given filter: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-find-many + :end-before: end-find-many + :language: ruby + :copyable: + :dedent: + +To learn more about the ``find`` method, see the :ref:`Retrieve Data ` +guide. + +Count Documents in a Collection +------------------------------- + +The following example returns the number of documents in the specified collection: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-count-collection + :end-before: end-count-collection + :language: ruby + :copyable: + :dedent: + +To learn more about the ``count_documents`` method, see the :ref:`Count Documents ` +guide. + +Count Documents Returned from a Query +------------------------------------- + +The following example returns the number of documents in the specified +collection that match the query criteria: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-count-accurate + :end-before: end-count-accurate + :language: ruby + :copyable: + :dedent: + +To learn more about the ``countDocuments()`` method, see the :ref:`Count Documents ` +guide. + +Estimated Document Count +------------------------ + +The following example returns an approximate number of documents in the specified +collection based on collection metadata: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-count-estimate + :end-before: end-count-estimate + :language: ruby + :copyable: + :dedent: + +To learn more about the ``estimated_document_count()`` method, see the :ref:`Count Documents ` +guide. + +Retrieve Distinct Values +------------------------ + +The following example returns all distinct values of the specified field name in a given +collection: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-distinct + :end-before: end-distinct + :language: ruby + :copyable: + :dedent: + +To learn more about the ``distinct`` method, see the :ref:`` guide. + +Monitor Data Changes +-------------------- + +The following example creates a change stream for a given collection and prints out +subsequent change events in that collection: + +.. literalinclude:: /includes/usage-examples/read-code-examples.rb + :start-after: start-monitor-changes + :end-before: end-monitor-changes + :language: ruby + :copyable: + :dedent: + +To learn more about the ``watch()`` method, see the :ref:`Monitor Data Changes ` guide. + + diff --git a/source/read/change-streams.txt b/source/read/change-streams.txt new file mode 100644 index 000000000..e94797238 --- /dev/null +++ b/source/read/change-streams.txt @@ -0,0 +1,252 @@ +.. _ruby-change-streams: + +==================== +Monitor Data Changes +==================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: watch, code example + +Overview +-------- + +In this guide, you can learn how to use a **change stream** to monitor real-time +changes to your data. A change stream is a {+mdb-server+} feature that +allows your application to subscribe to data changes on a collection, database, +or deployment. + +When using the {+driver-short+}, you can call the ``watch`` method to return a +``Mongo::Collection::View::ChangeStream`` object. Then, you can iterate through +its content to monitor data changes, such as updates, insertions, and deletions. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/change-streams.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Open a Change Stream +-------------------- + +To open a change stream, call the ``watch`` method. The object on which you +call the ``watch`` method determines the scope of events that the change +stream monitors. You can call the ``watch`` method on the following objects + +- ``Mongo::Client``: Monitors changes to all collections across all databases + in a deployment, excluding :manual:`system collections ` + or collections in the ``admin``, ``local``, and ``config`` databases +- ``Mongo::Database``: Monitors changes to all collections in one database +- ``Mongo::Collection``: Monitors changes to one collection + +The following example opens a change stream on the ``restaurants`` collection +and outputs changes as they occur: + +.. literalinclude:: /includes/read/change-streams.rb + :start-after: start-open-change-stream + :end-before: end-open-change-stream + :language: ruby + :dedent: + +To begin watching for changes, run the preceding code. Then, in a separate +shell, modify the ``restaurants`` collection. The following example updates +a document that has a ``name`` field value of ``'Blarney Castle'``: + +.. _ruby-change-stream-update: + +.. literalinclude:: /includes/read/change-streams.rb + :start-after: start-update-for-change-stream + :end-before: end-update-for-change-stream + :language: ruby + :dedent: + +When you update the collection, the change stream application prints the change +as it occurs. The printed change event resembles the following output: + +.. code-block:: none + :copyable: false + + {"_id"=>{"_data"=>"..."}, "operationType"=>"update", "clusterTime"=>#<...>, + "ns"=>{"db"=>"sample_restaurants", "coll"=>"restaurants"}, "documentKey"=> + {"_id"=>BSON::ObjectId('...')}, "updateDescription"=>{"updatedFields"=> + {"cuisine"=>"Irish"}, "removedFields"=>[], "truncatedArrays"=>[]}} + +Modify the Change Stream Output +------------------------------- + +To modify the change stream output, you can pass pipeline stages in an array as a +parameter to the ``watch`` method. You can include the following stages in the +array: + +- ``$addFields`` or ``$set``: Adds new fields to documents +- ``$match``: Filters the documents +- ``$project``: Projects a subset of the document fields +- ``$replaceWith`` or ``$replaceRoot``: Replaces the input document with the + specified document +- ``$redact``: Restricts the contents of the documents +- ``$unset``: Removes fields from documents + +The following example passes a pipeline that includes the ``$match`` stage to the +``watch`` method. This instructs the ``watch`` method to output events only +when update operations occur: + +.. literalinclude:: /includes/read/change-streams.rb + :start-after: start-change-stream-pipeline + :end-before: end-change-stream-pipeline + :language: ruby + :dedent: + +Modify watch Behavior +--------------------- + +To modify the behavior of the ``watch`` method, you can pass an options hash +as a parameter to ``watch``. The following table describes some of the options that +you can set: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``full_document`` + - | Specifies whether to show the full document after the change, rather + than showing only the changes made to the document. To learn more about + this option, see the :ref:`ruby-change-stream-pre-post-image` section of this + guide. + + * - ``full_document_before_change`` + - | Specifies whether to show the full document as it was before the change, rather + than showing only the changes made to the document. To learn more about + this option, see :ref:`ruby-change-stream-pre-post-image`. + + * - ``resume_after`` + - | Specifies the logical starting point for the change stream. + | This option is mutually exclusive with ``start_at_operation_time``. + + * - ``start_at_operation_time`` + - | Instructs the change stream to only provide changes that occurred at or after + the specified timestamp. + | This option is mutually exclusive with ``resume_after``. + + * - ``collation`` + - | Sets the collation to use for the change stream cursor. + +For a full list of ``watch`` options, see :ruby-api:`watch ` +in the API documentation. + +.. _ruby-change-stream-pre-post-image: + +Include Pre-Images and Post-Images +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. important:: + + You can enable pre-images and post-images on collections only if your + deployment uses MongoDB v6.0 or later. + +By default, when you perform an operation on a collection, the corresponding +change event includes only the modified fields and their values before and +after the operation. + +You can instruct the ``watch`` method to return the document's **pre-image**, the +full version of the document *before* changes, in addition to the modified fields. To +include the pre-image in the change stream event, pass an options hash to ``watch`` +that sets the ``full_document_before_change`` option. You can set this option to the +following string values: + +- ``'whenAvailable'``: The change event includes a pre-image + of the modified document for change events. If the pre-image is not available, this + change event field has a ``nil`` value. +- ``'required'``: The change event includes a pre-image + of the modified document for change events. If the pre-image is not available, the + server raises an error. +- ``'off'``: (Default) The change event does not include a pre-image of the modified document. + +You can also instruct the ``watch`` method to return the document's **post-image**, +the full version of the document *after* changes, in addition to the modified fields. +To include the post-image in the change stream event, pass an options hash to ``watch`` +that sets the ``full_document`` option. You can set this option to the following string +values: + +- ``'updateLookup'``: The change event includes a + copy of the entire changed document from some time after the change. +- ``'whenAvailable'``: The change event includes a post-image of the modified + document for change events. If the post-image is not available, this change + event field has a ``nil`` value. +- ``'required'``: The change event includes a post-image of the modified document + for change events. If the post-image is not available, the server raises an error. +- ``'default'``: (Default) The change event does not include a post-image of the modified document. + +The following example calls the ``watch`` method on a collection and includes the post-image +of updated documents by setting the ``full_document`` option: + +.. literalinclude:: /includes/read/change-streams.rb + :start-after: start-change-stream-post-image + :end-before: end-change-stream-post-image + :language: ruby + :dedent: + +With the change stream application running in a separate shell, updating a +document in the ``restaurants`` collection by using the :ref:`preceding update +example ` prints a change event resembling the following +output: + +.. code-block:: none + :copyable: false + :emphasize-lines: 2-6 + + {"_id"=>{"_data"=>"..."}, "operationType"=>"update", "clusterTime"=> + #<...1>, "wallTime"=>..., "fullDocument"=>{"_id"=>BSON::ObjectId('...'), + "address"=>{"building"=>"202-24", "coord"=>[-73.9250442, 40.5595462], + "street"=>"Rockaway Point Boulevard", "zipcode"=>"11697"}, + "borough"=>"Queens", "cuisine"=>"Irish", "grades"=>[...], + "name"=>"Blarney Castle", "restaurant_id"=>"40366356"}, "ns"=> + {"db"=>"sample_restaurants", "coll"=>"restaurants"}, "documentKey"=> + {"_id"=>BSON::ObjectId('...')}, "updateDescription"=>{"updatedFields"=> + {"cuisine"=>"Irish"}, "removedFields"=>[], "truncatedArrays"=>[]}} + +.. tip:: + + To learn more about pre-images and post-images, see + :manual:`Change Streams with Document Pre- and Post-Images ` + in the {+mdb-server+} manual. + +Additional Information +---------------------- + +To learn more about change streams, see :manual:`Change Streams +` in the {+mdb-server+} manual. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`Mongo::Collection::View::ChangeStream ` +- :ruby-api:`Mongo::Client::watch ` +- :ruby-api:`Mongo::Database::watch ` +- :ruby-api:`Mongo::Collection::watch ` \ No newline at end of file diff --git a/source/reference/collations.txt b/source/read/collations.txt similarity index 99% rename from source/reference/collations.txt rename to source/read/collations.txt index f58b63f0c..a6fd182e1 100644 --- a/source/reference/collations.txt +++ b/source/read/collations.txt @@ -1,6 +1,8 @@ -********** +.. _ruby-collations: + +========== Collations -********** +========== .. default-domain:: mongodb @@ -11,7 +13,7 @@ Collations :class: singlecol Overview -======== +-------- .. versionadded:: 3.4 @@ -42,7 +44,7 @@ strings. As such, the sort order of the words would be: cote < coté < côte < côté Usage -===== +----- You can specify a default collation for collections and indexes when they are created, or specify a collation for CRUD operations and @@ -135,7 +137,7 @@ value than the collation on the index. "collation" => { "locale" => "en_US", "strength" => 2 }) Operations that Support Collation -================================= +--------------------------------- All reading, updating, and deleting methods support collation. Some examples are listed below. diff --git a/source/read/count.txt b/source/read/count.txt new file mode 100644 index 000000000..60ea71ba4 --- /dev/null +++ b/source/read/count.txt @@ -0,0 +1,258 @@ +.. _ruby-count: + +=============== +Count Documents +=============== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: number, amount, estimation, code example + +Overview +--------- + +In this guide, you can learn how to use the {+driver-short+} to retrieve an accurate +and estimated count of the number of documents in a collection. The following methods +count documents in a collection: + +- ``count_documents``: Returns the exact number of documents that + match a query filter or that exist in a collection + +- ``estimated_document_count``: Returns the estimated number of documents + that exist in a collection + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``companies`` collection in the ``sample_training`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/count.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +.. _ruby-accurate-count: + +Retrieve an Accurate Count +-------------------------- + +Use the ``count_documents`` method to count the number of documents +in a collection. To count the number of documents that match specific search criteria, +pass a query filter to the ``count_documents`` method. + +.. tip:: + + To learn more about specifying a query, see the :ref:`ruby-specify-query` + guide. + +.. _ruby-count-all: + +Count All Documents +~~~~~~~~~~~~~~~~~~~ + +To return a count of all documents in the collection, call the +``count_documents`` method without passing a query filter, as shown +in the following example: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/count.rb + :start-after: start-count-all + :end-before: end-count-all + :language: ruby + :dedent: + + .. output:: + :visible: false + + Number of documents: 9500 + +.. _ruby-count-specific: + +Count Specific Documents +~~~~~~~~~~~~~~~~~~~~~~~~ + +To return a count of documents that match specific search criteria, pass a query +filter to the ``count_documents`` method. + +The following example counts the number of documents in which the value of the +``founded_year`` field is ``2010``: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/count.rb + :start-after: start-count-accurate + :end-before: end-count-accurate + :language: ruby + :dedent: + + .. output:: + :visible: false + + Number of companies founded in 2010: 33 + +Customize Count Behavior +~~~~~~~~~~~~~~~~~~~~~~~~ + +You can modify the behavior of the ``count_documents`` method by +passing a second parameter that specifies option values. The following table +describes the options you can set to customize the count operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``collation`` + - | The collation to use for the operation. + | **Type**: ``Hash`` + + * - ``hint`` + - | The index to use for the operation. + | **Type**: ``Hash`` + + * - ``comment`` + - | The comment to attach to the operation. + | **Type**: ``Object`` + + * - ``limit`` + - | The maximum number of documents to count. This value must be a positive integer. + | **Type**: ``Integer`` + + * - ``max_time_ms`` + - | The maximum amount of time in milliseconds that the operation can run. + | **Type**: ``Integer`` + + * - ``skip`` + - | The number of documents to skip before counting documents. + | **Type**: ``Integer`` + + * - ``read`` + - | The read preference to use for the operation. To learn more, see + :manual:`Read Preference ` in the {+mdb-server+} manual. + | **Type**: ``Hash`` + +The following example uses the ``count_documents`` method to count the number of +documents in which the ``number_of_employees`` field has the value ``50`` and instructs the +operation to count a maximum of ``100`` results: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/count.rb + :start-after: start-modify-accurate + :end-before: end-modify-accurate + :language: ruby + :dedent: + + .. output:: + :visible: false + + Number of companies with 50 employees: 100 + +.. important:: + + When you pass an options parameter to the ``count_documents`` method, + you must enclose the query filter in brackets (``{}``). + +.. _ruby-estimated-count: + +Retrieve an Estimated Count +--------------------------- + +You can retrieve an estimate of the number of documents in a collection by calling +the ``estimated_document_count`` method. The method estimates the amount +of documents based on collection metadata, which might be faster than +performing an accurate count. + +The following example estimates the number of documents in a collection: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/count.rb + :start-after: start-count-estimate + :end-before: end-count-estimate + :language: ruby + :dedent: + + .. output:: + :visible: false + + Estimated number of documents: 9500 + +Customize Estimated Count Behavior +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can modify the behavior of the ``estimated_document_count`` method +by passing a parameter that specifies option values. The +following table describes the options you can set to customize +the operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``comment`` + - | The comment to attach to the operation. + | **Type**: ``Object`` + + * - ``max_time_ms`` + - | The maximum amount of time in milliseconds that the operation can run. + | **Type**: ``Integer`` + + * - ``read`` + - | The read concern to use for the operation. To learn more, see + :manual:`Read Concern ` in the {+mdb-server+} manual. + | **Type**: ``Hash`` + +The following example uses the ``estimated_document_count`` method to return an +estimate of the number of documents in the collection and sets a timeout of +``1000`` milliseconds on the operation: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/count.rb + :start-after: start-modify-estimate + :end-before: end-modify-estimate + :language: ruby + :dedent: + + .. output:: + :visible: false + + Estimated number of documents: 9500 + +API Documentation +----------------- + +To learn more about any of the methods discussed in this +guide, see the following API documentation: + +- :ruby-api:`count_documents ` +- :ruby-api:`estimated_document_count ` \ No newline at end of file diff --git a/source/read/cursors.txt b/source/read/cursors.txt new file mode 100644 index 000000000..7c897de90 --- /dev/null +++ b/source/read/cursors.txt @@ -0,0 +1,187 @@ +.. _ruby-cursors: + +========================= +Access Data From a Cursor +========================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: read, results, oplog + +Overview +-------- + +In this guide, you can learn how to access data from a **cursor** by using the +{+driver-short+}. + +A cursor is a mechanism that returns the results of a read operation in iterable +batches. Because a cursor holds only a subset of documents at any given time, +cursors reduce both memory consumption and the number of requests the driver sends to +the server. + +You cannot access the ``Mongo::Cursor`` class directly from your application code. When +you use the {+driver-short+} to perform a read operation, the driver returns a +``Mongo::Collection::View`` object that represents the query. Once you request +query results from the ``Collection::View`` object, the driver internally stores +these results in a ``Cursor`` object. Then, the ``Collection::View`` exposes +the ``Enumerable`` interface, backed by the ``Cursor`` class, from +which you can access the results. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/cursors.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +.. _ruby-cursors-iterate: + +Access Cursor Contents Iteratively +---------------------------------- + +To iterate over the contents of a cursor, call the ``each`` method on the +``Mongo::Collection::View`` object returned by the read operation. This instructs +the driver to perform the operation and return each result stored in the +``Mongo::Cursor``. + +The following example uses the ``find`` method to retrieve all documents +in which the ``name`` field value is ``"Dunkin' Donuts"``. It then prints +each document stored in the cursor: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/cursors.rb + :start-after: start-cursor-iterate + :end-before: end-cursor-iterate + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), ..., "name"=>"Dunkin' Donuts", "restaurant_id"=>"40363098"} + {"_id"=>BSON::ObjectId('...'), ..., "name"=>"Dunkin' Donuts", "restaurant_id"=>"40379573"} + {"_id"=>BSON::ObjectId('...'), ..., "name"=>"Dunkin' Donuts", "restaurant_id"=>"40392410"} + ... + +Retrieve Documents Individually +------------------------------- + +To retrieve documents from a cursor individually, call the ``first`` method +on the ``Mongo::Collection::View`` object returned by the read operation. + +The following example finds all documents in a collection that have a ``name`` value +of ``"Dunkin' Donuts"``. It then prints the first document in the cursor by calling the +``first`` method. + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/cursors.rb + :start-after: start-cursor-first + :end-before: end-cursor-first + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), ..., "name"=>"Dunkin' Donuts", "restaurant_id"=>"40363098"} + +Retrieve All Documents +---------------------- + +.. warning:: + + If the number and size of documents returned by your query exceeds available + application memory, your program will crash. If you expect a large result + set, :ref:`access your cursor iteratively `. + +To retrieve all documents from a cursor, convert the cursor into an array by using +the ``to_a`` method on its corresponding ``Mongo::Collection::View`` object. + +The following example calls the ``to_a`` method to store the cursor results +in an array: + +.. literalinclude:: /includes/read/cursors.rb + :language: ruby + :dedent: + :start-after: start-cursor-array + :end-before: end-cursor-array + +.. _ruby-tailable-cursor: + +Tailable Cursors +---------------- + +When querying on a :manual:`capped collection `, you +can use a **tailable cursor** that remains open after the client exhausts the +results in a cursor. To create a tailable cursor, pass the ``cursor_type`` option to +the ``find`` method. Set this option to ``:tailable``. + +For example, you can create a capped collection called ``vegetables``, as +shown in the following code: + +.. literalinclude:: /includes/read/cursors.rb + :language: ruby + :dedent: + :start-after: start-capped-coll + :end-before: end-capped-coll + +Then, you can use the following code to retrieve all documents +in the ``vegetables`` collection and store the results in a tailable +cursor. After the cursor is exhausted, it remains open until +retrieving three documents: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/cursors.rb + :start-after: start-tailable + :end-before: end-tailable + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), "name"=>"cauliflower"} + {"_id"=>BSON::ObjectId('...'), "name"=>"zucchini"} + +If you insert another document into the ``vegetables`` collection, the preceding code prints +the new document and does not retrieve more results from the cursor. + +To learn more about tailable cursors, see :manual:`Tailable Cursors +` in the {+mdb-server+} manual. + +API Documentation +----------------- + +To learn more about any of the functions discussed in this guide, see the following API +documentation: + +- :ruby-api:`Mongo::Cursor ` +- :ruby-api:`Mongo::Collection::View ` +- :ruby-api:`find ` +- :ruby-api:`each ` \ No newline at end of file diff --git a/source/read/distinct.txt b/source/read/distinct.txt new file mode 100644 index 000000000..abccad450 --- /dev/null +++ b/source/read/distinct.txt @@ -0,0 +1,185 @@ +.. _ruby-distinct: + +============================== +Retrieve Distinct Field Values +============================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: read, unique, code example + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to retrieve the +distinct values of a specified field across a collection. + +Within a collection, documents might contain different values for a +single field. For example, one document in a ``restaurants`` collection has a +``borough`` value of ``'Manhattan'``, and another has a ``borough`` value of +``'Queens'``. You can use the {+driver-short+} to retrieve all the unique values +that a field contains across multiple documents in a collection. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/distinct.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Retrieve Distinct Values +------------------------ + +To retrieve the distinct values for a specified field, call the ``distinct`` +method and pass in the name of the field you want to find distinct values for. + +Retrieve Values Across a Collection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following example retrieves the distinct values of the ``borough`` field in +the ``restaurants`` collection: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/distinct.rb + :start-after: start-distinct + :end-before: end-distinct + :language: ruby + :dedent: + + .. output:: + :visible: false + + Bronx + Brooklyn + Manhattan + Missing + Queens + Staten Island + +The operation returns an array that stores each distinct ``borough`` field value. Although +several documents have the same value in the ``borough`` field, each value appears in the +results only once. + +Retrieve Values Across Specified Documents +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can provide a **query filter** to the ``distinct`` method to find the distinct +field values across a subset of documents in a collection. A query filter is an expression +that specifies search criteria used to match documents in an operation. + +.. tip:: + + To learn more about creating a query filter, see the :ref:`ruby-specify-query` + guide. + +The following example retrieves the distinct values of the ``borough`` field for +all documents that have a ``cuisine`` field value of ``'Italian'``: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/distinct.rb + :start-after: start-distinct-with-query + :end-before: end-distinct-with-query + :language: ruby + :dedent: + + .. output:: + :visible: false + + Bronx + Brooklyn + Manhattan + Queens + Staten Island + +Modify Distinct Behavior +~~~~~~~~~~~~~~~~~~~~~~~~ + +You can modify the behavior of the ``distinct`` method by passing a +``Hash`` object that specifies option values. The following table describes the +options you can set to customize the operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``collation`` + - | The collation to use for the operation. + | **Type**: ``Hash`` + + * - ``max_time_ms`` + - | The maximum amount of time in milliseconds that the operation can run. + | **Type**: ``Integer`` + + * - ``read`` + - | The read preference to use for the operation. To learn more, see + :manual:`Read Preference ` in the {+mdb-server+} manual. + | **Type**: ``Hash`` + + * - ``session`` + - | The session to use for the operation. + | **Type**: ``Session`` + +The following example retrieves the distinct values of the ``name`` field for +all documents that have a ``borough`` field value of ``'Bronx'`` and a +``cuisine`` field value of ``'Pizza'``. It also sets the ``read`` option, +which instructs the operation to use a ``primary_preferred`` +read preference: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/distinct.rb + :start-after: start-distinct-with-opts + :end-before: end-distinct-with-opts + :language: ruby + :dedent: + + .. output:: + :visible: false + + $1.25 Pizza + 18 East Gunhill Pizza + 2 Bros + Aenos Pizza + Alitalia Pizza Restaurant + Amici Pizza And Pasta + Angie'S Cafe Pizza + Anthony & Joe'S Pizza + Anthony'S Pizza + Antivari Pizza + Arturo'S Pizza + Bartow Pizza + ... + +API Documentation +----------------- + +To learn more about the ``distinct`` method, see the +:ruby-api:`API documentation. ` \ No newline at end of file diff --git a/source/read/project.txt b/source/read/project.txt new file mode 100644 index 000000000..b3698db1b --- /dev/null +++ b/source/read/project.txt @@ -0,0 +1,159 @@ +.. _ruby-project: + +======================== +Specify Fields To Return +======================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: read, filter, project, select, code example + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to specify which fields +to return from a read operation by using a **projection**. A projection is a document +that specifies which fields MongoDB returns from a query. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/project.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Projection Types +---------------- + +You can use a projection to specify which fields to include or exclude in +a return Document. You cannot combine inclusion and exclusion statements in +a single projection, unless you are excluding the ``_id`` field. + +Specify Fields to Include +~~~~~~~~~~~~~~~~~~~~~~~~~ + +To include specific fields in a read operation result, specify the ``projection`` +option in a parameter to the ``find`` method. To set this option, use the following syntax: + +.. code-block:: ruby + + { projection: { : 1 } } + +The following example uses the ``find`` method to find all restaurants in which the ``name`` +field value is ``'Emerald Pub'``. Then, the code specifies the ``projection`` option +to instruct the find operation to return only the ``name``, ``cuisine``, and ``borough`` fields +of matching documents: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/project.rb + :start-after: start-project-include + :end-before: end-project-include + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), "borough"=>"Manhattan", "cuisine"=>"American", "name"=>"Emerald Pub"} + {"_id"=>BSON::ObjectId('...'), "borough"=>"Queens", "cuisine"=>"American", "name"=>"Emerald Pub"} + +When you use a projection to specify fields to include in the return +document, the ``_id`` field is also included by default. All other fields are +implicitly excluded. To remove the ``_id`` field from the return +document, you must :ref:`explicitly exclude it `. + +.. _ruby-project-remove-id: + +Exclude the ``_id`` Field +~~~~~~~~~~~~~~~~~~~~~~~~~ + +When specifying fields to include, you can also exclude the ``_id`` field from +the returned document. + +The following example performs the same query as the preceding example but +excludes the ``_id`` field from the projection: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/project.rb + :start-after: start-project-include-without-id + :end-before: end-project-include-without-id + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"borough"=>"Manhattan", "cuisine"=>"American", "name"=>"Emerald Pub"} + {"borough"=>"Queens", "cuisine"=>"American", "name"=>"Emerald Pub"} + +Specify Fields to Exclude +~~~~~~~~~~~~~~~~~~~~~~~~~ + +To exclude specific fields from a read operation result, specify the ``projection`` +option in a parameter to the ``find`` method. To set this option, use the +following syntax: + +.. code-block:: ruby + + { projection: { : 0 } } + +The following example uses the ``find`` method to find all restaurants in which the ``name`` +field value is ``'Emerald Pub'``. Then, the code uses the ``projection`` option +to instruct the find operation to omit the ``grades`` and ``address`` fields +in the result: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/project.rb + :start-after: start-project-exclude + :end-before: end-project-exclude + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), "borough"=>"Manhattan", "cuisine"=>"American", + "name"=>"Emerald Pub", "restaurant_id"=>"40367329"} + {"_id"=>BSON::ObjectId('...'), "borough"=>"Queens", "cuisine"=>"American", + "name"=>"Emerald Pub", "restaurant_id"=>"40668598"} + +When you use a projection to specify which fields to exclude, +any unspecified fields are implicitly included in the return document. + +Additional Information +---------------------- + +To learn more about projections, see the :manual:`Project Fields +` guide in the {+mdb-server+} manual. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about the ``find`` method, see the +:ruby-api:`API documentation `. diff --git a/source/read/retrieve.txt b/source/read/retrieve.txt new file mode 100644 index 000000000..ccddb763d --- /dev/null +++ b/source/read/retrieve.txt @@ -0,0 +1,243 @@ +.. _ruby-retrieve: + +============= +Retrieve Data +============= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code examples, read, query, cursor + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to retrieve +data from a MongoDB collection by using **read operations**. You can call the +``find`` method on a collection to retrieve documents that match a set of +criteria. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``companies`` collection in the ``sample_training`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/retrieve.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +.. _ruby-retrieve-find: + +Find Documents +-------------- + +To retrieve documents from a collection, use the ``find`` method. This method +takes a **query filter** parameter and returns a ``Mongo::Collection::View`` object, +which represents the query. The driver defers the query execution until you +fetch the results by using methods like ``first`` or ``each``. After you request +the results, the driver sends the query to the server and returns a ``Mongo::Cursor`` +object from which you can access the results. + +You can chain option methods to the ``find`` method to refine the results of the operation. + +.. tip:: + + To learn more about query filters, see the :ref:`ruby-specify-query` guide. + +.. _ruby-retrieve-find-multiple: + +Find Multiple Documents +~~~~~~~~~~~~~~~~~~~~~~~ + +To find multiple documents in a collection, pass a query filter to the +``find`` method that specifies the criteria of the documents you want to retrieve. + +The following example uses the ``find`` method to find all documents in which +the ``founded_year`` field has the value ``1970``: + +.. literalinclude:: /includes/read/retrieve.rb + :language: ruby + :dedent: + :start-after: start-find-many + :end-before: end-find-many + +When you call the ``each`` method on the ``Mongo::Collection::View`` object representing +the query, the driver returns a ``Mongo::Cursor`` object. A cursor is a mechanism that allows an +application to iterate over database results while holding only a subset of them in +memory at a given time. Cursors are useful when your ``find`` method returns a large +amount of documents. + +The following code calls the ``each`` method to iterate over the query results: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/retrieve.rb + :start-after: start-cursor + :end-before: end-cursor + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), "name"=>"Mitsubishi Motors", "permalink"=>"mitsubishi-motors", + "crunchbase_url"=>"http://www.crunchbase.com/company/mitsubishi-motors", + "homepage_url"=>"http://www.mitsubishi-motors.com", ...} + {"_id"=>BSON::ObjectId('...'), "name"=>"Western Digital", "permalink"=>"western-digital", + "crunchbase_url"=>"http://www.crunchbase.com/company/western-digital", + "homepage_url"=>"http://www.wdc.com/en", ...} + {"_id"=>BSON::ObjectId('...'), "name"=>"Celarayn", "permalink"=>"celarayn", + "crunchbase_url"=>"http://www.crunchbase.com/company/celarayn", + "homepage_url"=>"http://www.celarayn.es", ...} + +.. note:: Find All Documents + + To find all documents in a collection, call the ``find`` method + without passing a query filter: + + .. code-block:: ruby + + results = collection.find + +.. _ruby-retrieve-find-one: + +Find One Document +~~~~~~~~~~~~~~~~~ + +To find a single document in a collection, call the ``find`` method and pass a query +filter that specifies the criteria of the document you want to find. Then, chain +the ``first`` method to ``find``. + +If the query filter matches more than one document, the ``first`` method retrieves the *first* +matching document from the operation results. + +The following example chains the ``first`` method to ``find`` to find the first +document in which the ``name`` field has the value ``'LinkedIn'``: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/retrieve.rb + :start-after: start-find-one + :end-before: end-find-one + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), "name"=>"LinkedIn", "permalink"=>"linkedin", + "crunchbase_url"=>"http://www.crunchbase.com/company/linkedin", + "homepage_url"=>"http://linkedin.com", "blog_url"=>"http://blog.linkedin.com", + ...} + +.. tip:: Sort Order + + The ``first`` method returns the first document in + :manual:`natural order ` + on disk if no sort criteria is specified. + +.. _ruby-retrieve-modify: + +Modify Find Behavior +~~~~~~~~~~~~~~~~~~~~ + +You can chain option methods to the ``find`` method to modify the operation +results. The following table describes some of these options: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``batch_size`` + - | The number of documents to return per batch. The default value is ``101``. + | **Type**: ``Integer`` + + * - ``collation`` + - | The collation to use for the operation. The default value is the collation + specified for the collection. + | **Type**: ``Hash`` + + * - ``comment`` + - | The comment to attach to the operation. + | **Type**: ``Object`` + + * - ``limit`` + - | The maximum number of documents the operation can return. + | **Type**: ``Integer`` + + * - ``skip`` + - | The number of documents to skip before returning results. + | **Type**: ``Integer`` + + * - ``sort`` + - | The order in which the operation returns matching documents. + | **Type**: ``Hash`` + +The following example uses the ``find`` method to find all documents in which +the ``number_of_employees`` field has the value ``1000``. The example uses the +``limit`` option to return a maximum of ``2`` results: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/retrieve.rb + :start-after: start-modify + :end-before: end-modify + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), "name"=>"Akamai Technologies", "permalink"=>"akamai-technologies", + "crunchbase_url"=>"http://www.crunchbase.com/company/akamai-technologies", + "homepage_url"=>"http://www.akamai.com", ...} + {"_id"=>BSON::ObjectId('...'), "name"=>"Yodle", "permalink"=>"yodle", + "crunchbase_url"=>"http://www.crunchbase.com/company/yodle", + "homepage_url"=>"http://www.yodle.com", ...} + +For a full list of options, see the API documentation for the +:ruby-api:`find ` +method. + +.. _ruby-retrieve-additional-information: + +Additional Information +---------------------- + +To learn more about query filters, see the :ref:`ruby-specify-query` guide. + +To view code examples that retrieve documents by using the {+driver-short+}, +see :ref:`ruby-read`. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`find ` +- :ruby-api:`Mongo::Collection::View ` +- :ruby-api:`Mongo::Cursor ` diff --git a/source/read/specify-a-query.txt b/source/read/specify-a-query.txt new file mode 100644 index 000000000..d10ed54b8 --- /dev/null +++ b/source/read/specify-a-query.txt @@ -0,0 +1,280 @@ +.. _ruby-specify-query: + +=============== +Specify a Query +=============== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: expressions, operations, read, filter, code example + +Overview +-------- + +In this guide, you can learn how to specify a query by using the {+driver-short+}. + +You can refine the set of documents that a query returns by creating a +**query filter**. A query filter is an expression that specifies the search +criteria that MongoDB uses to match documents in a read or write operation. +In a query filter, you can prompt the driver to search for documents that have +an exact match to your query, or you can compose query filters to express more +complex matching criteria. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide run operations on the ``fruits`` collection, +which contains documents representing fruits. The following +code example shows how to create a database and collection, and then +insert the sample documents into your collection: + +.. literalinclude:: /includes/read/specify-queries.rb + :start-after: start-setup + :end-before: end-setup + :language: ruby + :dedent: + :copyable: + +Exact Match +----------- + +Literal value queries return documents that have an exact match to your query filter. + +The following example specifies a query filter as a parameter to the ``find`` +method. The code returns all documents in which the value of the ``color`` field +is ``'yellow'``: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/specify-queries.rb + :start-after: start-find-exact + :end-before: end-find-exact + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>2, "name"=>"bananas", "qty"=>7, "rating"=>4, "color"=>"yellow", "type"=>["cavendish"]} + {"_id"=>4, "name"=>"pineapples", "qty"=>3, "rating"=>5, "color"=>"yellow"} + +.. note:: Find All Documents + + To find all documents in a collection, call the ``find`` method + without passing any parameters: + + .. code-block:: ruby + + results = collection.find + +Comparison Operators +-------------------- + +Comparison operators evaluate a document field value against a specified value +in your query filter. The following list describes common comparison operators: + +- ``$gt``: Returns documents in which the value of the given field is *greater than* + the specified value +- ``$lte``: Returns documents in which the value of the given field is *less than or + equal to* the specified value +- ``$ne``: Returns documents in which the value of the given field *does not equal* the + specified value + +.. tip:: + + To view a full list of comparison operators, see the :manual:`Comparison Query Operators + ` guide in the {+mdb-server+} manual. + +The following example specifies a comparison operator in a query filter as a +parameter to the ``find`` method. The code returns all documents that have a +``rating`` field value greater than ``2``: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/specify-queries.rb + :start-after: start-find-comparison + :end-before: end-find-comparison + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>1, "name"=>"apples", "qty"=>5, "rating"=>3, "color"=>"red", "type"=>["fuji", "honeycrisp"]} + {"_id"=>2, "name"=>"bananas", "qty"=>7, "rating"=>4, "color"=>"yellow", "type"=>["cavendish"]} + {"_id"=>4, "name"=>"pineapples", "qty"=>3, "rating"=>5, "color"=>"yellow"} + +Logical Operators +----------------- + +Logical operators match documents by using logic applied to the results of two or +more sets of expressions. The following list describes each logical operator: + +- ``$and``: Returns documents that match the conditions of *all* clauses +- ``$or``: Returns documents that match the conditions of *one* clause +- ``$nor``: Returns documents that *do not* match the conditions of any clause +- ``$not``: Returns documents that *do not* match the expression + +.. tip:: + + To learn more about logical operators, see the :manual:`Logical Query Operators + ` guide in the {+mdb-server+} manual. + +The following example specifies a logical operator in a query filter as a +parameter to the ``find`` method. The code returns all documents that have a +``qty`` field value greater than ``5`` **or** a ``color`` field value of +``'yellow'``: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/specify-queries.rb + :start-after: start-find-logical + :end-before: end-find-logical + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>2, "name"=>"bananas", "qty"=>7, "rating"=>4, "color"=>"yellow", "type"=>["cavendish"]} + {"_id"=>3, "name"=>"oranges", "qty"=>6, "rating"=>2, "type"=>["naval", "mandarin"]} + {"_id"=>4, "name"=>"pineapples", "qty"=>3, "rating"=>5, "color"=>"yellow"} + +Array Operators +--------------- + +Array operators match documents based on the value or quantity of elements in an +array field. The following list describes each array operator: + +- ``$all``: Returns documents with arrays that contain all elements in the query +- ``$elemMatch``: Returns documents if an element in their array field matches + all conditions in the query +- ``$size``: Returns documents with arrays of a specified size + +.. tip:: + + To learn more about array operators, see the :manual:`Array Query Operators + ` guide in the {+mdb-server+} manual. + +The following example specifies an array operator in a query filter as a +parameter to the ``find`` method. The code returns all documents in which the +``type`` array field contains ``2`` elements: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/specify-queries.rb + :start-after: start-find-array + :end-before: end-find-array + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>1, "name"=>"apples", "qty"=>5, "rating"=>3, "color"=>"red", "type"=>["fuji", "honeycrisp"]} + {"_id"=>3, "name"=>"oranges", "qty"=>6, "rating"=>2, "type"=>["naval", "mandarin"]} + +Element Operators +----------------- + +Element operators query data based on the presence or type of a field. The following +list describes each element operator: + +- ``$exists``: Returns documents that contain the specified field +- ``$type``: Returns documents that contain a field of the specified type + +.. tip:: + + To learn more about element operators, see the :manual:`Element Query Operators + ` guide in the {+mdb-server+} manual. + +The following example specifies an element operator in a query filter as a +parameter to the ``find`` method. The code returns all documents that have a +``color`` field: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/specify-queries.rb + :start-after: start-find-element + :end-before: end-find-element + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>1, "name"=>"apples", "qty"=>5, "rating"=>3, "color"=>"red", "type"=>["fuji", "honeycrisp"]} + {"_id"=>2, "name"=>"bananas", "qty"=>7, "rating"=>4, "color"=>"yellow", "type"=>["cavendish"]} + {"_id"=>4, "name"=>"pineapples", "qty"=>3, "rating"=>5, "color"=>"yellow"} + +Evaluation Operators +-------------------- + +Evaluation operators return data based on evaluations of either individual +fields or the entire collection's documents. The following list describes +common element operators: + +- ``$text``: Performs a text search on the documents +- ``$regex``: Returns documents that match a specified regular expression +- ``$mod``: Performs a modulo operation on the value of a field and + returns documents where the remainder is a specified value + +.. tip:: + + To view a full list of evaluation operators, see the :manual:`Evaluation Query Operators + ` guide in the {+mdb-server+} manual. + +The following example specifies an evaluation operator in a query filter as a +parameter to the ``find`` method. The code uses a regular expression to return +all documents in which the ``name`` field value has at least two consecutive +``'p'`` characters: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/specify-queries.rb + :start-after: start-find-evaluation + :end-before: end-find-evaluation + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>1, "name"=>"apples", "qty"=>5, "rating"=>3, "color"=>"red", "type"=>["fuji", "honeycrisp"]} + {"_id"=>4, "name"=>"pineapples", "qty"=>3, "rating"=>5, "color"=>"yellow"} + +.. note:: + + The {+driver-short+} implicitly uses the ``$regex`` operator + when a query filter includes a regular expression value, as shown + in the preceding example. + +Additional Information +---------------------- + +To learn more about querying documents, see :manual:`Query Documents +` in the {+mdb-server+} manual. + +To learn more about retrieving documents by using the {+driver-short+}, see the +:ref:`ruby-retrieve` guide. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about the ``find`` method, see the +:ruby-api:`API documentation. ` \ No newline at end of file diff --git a/source/read/specify-documents-to-return.txt b/source/read/specify-documents-to-return.txt new file mode 100644 index 000000000..4d806e1a2 --- /dev/null +++ b/source/read/specify-documents-to-return.txt @@ -0,0 +1,210 @@ +.. _ruby-specify-documents-to-return: + +=========================== +Specify Documents to Return +=========================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: read, paginate, pagination, order, code example + +Overview +-------- + +In this guide, you can learn how to specify which documents to return +from a read operation by chaining the following methods to the ``find`` +method: + +- :ref:`limit `: Specifies the maximum number of documents + to return from a query +- :ref:`sort `: Specifies the sort order for the returned documents +- :ref:`skip `: Specifies the number of documents to skip before + returning query results + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to +an Atlas cluster and assign the following values to your ``database`` and ``collection`` +variables: + +.. literalinclude:: /includes/read/limit-skip-sort.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +.. _ruby-return-documents-limit: + +Limit +----- + +To specify the maximum number of documents returned from a read operation, apply +the ``limit`` option to the operation. You can set this option by chaining the +``limit`` setter method to the ``find`` method. + +The following example finds all restaurants that have a ``cuisine`` field value +of ``'Italian'`` and limits the results to ``5`` documents: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/limit-skip-sort.rb + :start-after: start-limit + :end-before: end-limit + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Philadelhia Grille Express", + "restaurant_id"=>"40364305"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Isle Of Capri Restaurant", + "restaurant_id"=>"40364373"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Marchis Restaurant", + "restaurant_id"=>"40364668"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Crystal Room", + "restaurant_id"=>"40365013"} + {"_id"=>BSON::ObjectId('...'), ... , name"=>"Forlinis Restaurant", + "restaurant_id"=>"40365098"} + +.. tip:: + + The preceding example returns the first five documents matched by the query + according to their :manual:`natural order ` + in the database. The following section describes how to return the documents + in a specified order. + +.. _ruby-return-documents-sort: + +Sort +---- + +To return documents in a specified order, apply the ``sort`` option to +the read operation. You can set this option by chaining the ``sort`` +setter method to the ``find`` method. + +When calling ``sort``, pass the field to sort the results by and the +sort direction. A sort direction value of ``1`` sorts values from lowest +to highest, and a value of ``-1`` sorts them from highest to lowest. + +The following example returns all documents that have a ``cuisine`` field value +of ``'Italian'``, sorted in ascending order of ``name`` field values: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/limit-skip-sort.rb + :start-after: start-sort + :end-before: end-sort + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"(Lewis Drug Store) Locanda Vini E Olii", + "restaurant_id"=>"40804423"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"101 Restaurant And Bar", + "restaurant_id"=>"40560108"} + ... + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Zucchero E Pomodori", + "restaurant_id"=>"41189590"} + +.. _ruby-return-documents-skip: + +Skip +---- + +To skip a specified number of documents before returning your query results, apply +the ``skip`` option to the read operation. You can set this option by chaining the +``skip`` setter method to the ``find`` method. + +The following example returns all documents that have a ``borough`` field value +of ``'Manhattan'`` and skips the first ``10`` documents: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/limit-skip-sort.rb + :start-after: start-skip + :end-before: end-skip + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Cafe Metro", "restaurant_id"=>"40363298"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Lexler Deli", "restaurant_id"=>"40363426"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Domino'S Pizza", "restaurant_id"=>"40363644"} + ... + +.. _ruby-return-documents-combine: + +Combine Limit, Sort, and Skip +----------------------------- + +You can chain the ``limit``, ``sort``, and ``skip`` methods to a single +``find`` method call. This allows you to set a maximum number of sorted documents +to return from the read operation, skipping a specified number of documents before +returning. + +The following example returns ``5`` documents that have a ``cuisine`` value of +``'Italian'``. The results are sorted in ascending order by the ``name`` field value, +skipping the first ``10`` documents: + +.. io-code-block:: + :copyable: + + .. input:: /includes/read/limit-skip-sort.rb + :start-after: start-limit-sort-skip + :end-before: end-limit-sort-skip + :language: ruby + :dedent: + + .. output:: + :visible: false + + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Acqua", "restaurant_id"=>"40871070"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Acqua Restaurant", + "restaurant_id"=>"41591488"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Acqua Santa", "restaurant_id"=>"40735858"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Acquista Trattoria", + "restaurant_id"=>"40813992"} + {"_id"=>BSON::ObjectId('...'), ... , "name"=>"Acquolina Catering", "restaurant_id"=>"41381423"} + +.. note:: + + The order in which you call these methods doesn't change the documents + that are returned. The {+driver-short+} automatically reorders the calls to + perform the sort operation first, the skip operation next, and then the limit + operation. + +Additional Information +---------------------- + +For more information about retrieving documents, see the :ref:`ruby-retrieve` guide. + +For more information about specifying a query, see the :ref:`ruby-specify-query` guide. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about the ``find`` method and its options, see the +:ruby-api:`API documentation. ` \ No newline at end of file diff --git a/source/reference/additional-resources.txt b/source/reference/additional-resources.txt deleted file mode 100644 index 218218f1c..000000000 --- a/source/reference/additional-resources.txt +++ /dev/null @@ -1,200 +0,0 @@ -.. _ruby-external-resources: - -******************** -Additional Resources -******************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: twocols - -There are a number of good resources appearing all over the web for -learning about MongoDB and Ruby. A useful selection is listed below. If -you know of others, do let us know. - -Screencasts -=========== - -- `Introduction to MongoDB - Part I - `_ - - An introduction to MongoDB via the MongoDB shell. - -- `Introduction to MongoDB - Part II - `_ - - In this screencast, Joon You teaches how to use the Ruby driver to - build a simple Sinatra app. - -- `Introduction to MongoDB - Part III - `_ - - For the final screencast in the series, Joon You introduces - MongoMapper and Rails. - -- `RailsCasts: MongoDB & MongoMapper - `_ - - Ryan Bates' RailsCast introducing MongoDB and MongoMapper. - -- `RailsCasts: Mongoid `_ - - Ryan Bates' RailsCast introducing Mongoid. - -Presentations -============= - -- `Introduction to MongoDB (Video) `_ - - Mike Dirolf's introduction to MongoDB at Pivotal Labs, SF. - -- `MongoDB: A Ruby Document Store that doesn't rhyme with 'Ouch' - (Slides) - `_ - - Wynn Netherland's introduction to MongoDB with some comparisons to - CouchDB. - -- `MongoDB (is) for Rubyists (Slides) - `_ - - Kyle Banker's presentation on why MongoDB is for Rubyists (and all - human-oriented programmers). - -Articles -======== - -- `Why I Think Mongo is to Databases What Rails was to Frameworks - `_ - -- `What if a key-value store mated with a relational database system? - `_ - -- `Mongo Tips `_ - - John Nunemaker's articles on MongoDB and his Mongo Tips blog. - -- A series of articles on aggregation with MongoDB and Ruby: - - 1. `Part I: Introduction of Aggregation in MongoDB - `_ - - #. `Part II: MongoDB Grouping Elaborated - `_ - - #. `Part III: Introduction to Map-Reduce in MongoDB - `_ - -- `Does the MongoDB Driver Support Feature X? - `_ - - An explanation of how the MongoDB drivers usually automatically - support new database features. - -Projects -======== - -- `Capistrano Mongo Sync `_ - - Sync your local development db with your remote production db using capistrano. - -- `Simple Pub/Sub `_ - - A very simple pub/sub system. - -- `Mongo Queue `_ - - An extensible thread safe job/message queueing system that uses - MongoDB as the persistent storage engine. - -- `Resque-mongo `_ - - A port of the Github's Resque to MongoDB. - -- `Mongo Admin `_ - - A Rails plugin for browsing and managing MongoDB data. See the `live - demo `_. - -- `Sinatra Resource `_ - - Resource Oriented Architecture (REST) for Sinatra and MongoMapper. - -- `NewsMonger `_ - - A simple social news application demonstrating MongoMapper and Rails. - -- `Data Catalog API `_ - - From `Sunlight Labs `_, a non-trivial - application using MongoMapper and Sinatra. - -- `Watchtower `_ - - An example application using Mustache, MongoDB, and Sinatra. - -- `Shapado `_ - - A question and answer site similar to Stack Overflow. Live version at - `shapado.com `_. - -.. Does not seem to exist -.. - `Shorty `_ -.. A URL-shortener written with Sinatra and the MongoDB Ruby driver. - -Libraries -========= - -- `ActiveExpando `_ - - An extension to ActiveRecord to allow the storage of arbitrary - attributes in MongoDB. - -- `ActsAsTree (MongoMapper) - `_ - - ActsAsTree implementation for MongoMapper. - -- `Machinist adapter (MongoMapper) - `_ - - Machinist adapter using MongoMapper. - -- `Mongo-Delegate `_ - - A delegation library for experimenting with production data without - altering it. A quite useful pattern. - -- `Remarkable Matchers (MongoMapper) - `_ - - Testing / Matchers library using MongoMapper. - -- `OpenIdAuthentication, supporting MongoDB as the datastore - `_ - - Brandon Keepers' fork of OpenIdAuthentication supporting MongoDB. - -- `MongoTree (MongoRecord) - `_ - - MongoTree adds parent / child relationships to MongoRecord. - -- `Merb_MongoMapper - `_ - - A plugin for the Merb framework for supporting MongoMapper models. - -- `Mongolytics (MongoMapper) - `_ - - A web analytics tool. - -- `Rack-GridFS `_ - - A Rack middleware component that creates HTTP endpoints for files - stored in GridFS. diff --git a/source/reference/aggregation.txt b/source/reference/aggregation.txt deleted file mode 100644 index ee29d5568..000000000 --- a/source/reference/aggregation.txt +++ /dev/null @@ -1,126 +0,0 @@ -.. _aggregation: - -*********** -Aggregation -*********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 2 - :class: singlecol - -:manual:`Aggregation framework` -operations process data records and return -computed results. Aggregation operations group values from -multiple documents together, and can perform a variety of -operations on the grouped data to return a single result. - -The Aggregation Pipeline -```````````````````````` - -The aggregation pipeline is a framework for data aggregation -modeled on the concept of data processing pipelines. Documents -enter a multi-stage pipeline that transforms the documents into -aggregated results. - -For a full explanation and a complete list of pipeline stages -and operators, see the -:manual:`manual`. - -The following example uses the aggregation pipeline on the -``restaurants`` sample dataset to find -a list of the total number of 5-star restaurants, grouped by restaurant -category. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - coll = client['restaurants'] - aggregation = coll.aggregate([ - { '$match'=> { 'stars'=> 5 } }, - { '$unwind'=> '$categories'}, - { '$group'=> { '_id'=> '$categories', 'fiveStars'=> { '$sum'=> 1 } } } - ]) - - aggregation.each do |doc| - #=> Yields a BSON::Document. - end - -Inside the ``aggregate`` method, the first pipeline stage filters out -all documents except those with ``5`` in the ``stars`` field. The -second stage unwinds the ``categories`` field, which is an array, and -treats each item in the array as a separate document. The third stage -groups the documents by category and adds up the number of matching -5-star results. - -Aggregation pipeline stages have a -:manual:`maximum memory use limit`. -To handle large datasets, set the ``allowDiskUse`` option to true to enable -writing data to temporary files. - -- You can call the ``allow_disk_use`` method the ``aggregation`` - object to get a new object with the option set: - -.. code-block:: ruby - - aggregation = coll.aggregate([ ]) - aggregation_with_disk_use = aggregation.allow_disk_use(true) - -- Or you can pass an option to the ``aggregate`` method: - -.. code-block:: ruby - - aggregation = coll.aggregate([ ], - :allow_disk_use => true) - -Single Purpose Aggregation Operations -````````````````````````````````````` - -MongoDB provides helper methods for some aggregation functions, -including :manual:`count` -and :manual:`distinct`. - -Count -~~~~~ - -The following example demonstrates how to use the ``count`` method to -find the total number of documents which have the exact array -``[ 'Chinese', 'Seafood' ]`` in the ``categories`` field. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - coll = client['restaurants'] - aggregation = coll.count({ 'categories': [ 'Chinese', 'Seafood' ] }) - - count = coll.count({ 'categories' => [ 'Chinese', 'Seafood' ] }) - -.. note:: - - The ``count`` method is not the same as the ``countDocuments`` - method and may not support the same filters. ``countDocuments`` uses the - ``$match`` stage of the aggregation pipeline to filter documents. To learn more - about limitations of the ``$match`` stage, see :manual:`$match Restrictions ` - in the MongoDB Server manual. - -Distinct -~~~~~~~~ - -The ``distinct`` helper method eliminates results which contain -values and returns one record for each unique value. - -The following example returns a list of unique values for the -``categories`` field in the ``restaurants`` collection: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - coll = client['restaurants'] - aggregation = coll.distinct('categories') - - aggregation.each do |doc| - #=> Yields a BSON::Document. - end diff --git a/source/reference/authentication.txt b/source/reference/authentication.txt deleted file mode 100644 index 0c30c7056..000000000 --- a/source/reference/authentication.txt +++ /dev/null @@ -1,534 +0,0 @@ -************** -Authentication -************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 2 - :class: singlecol - -MongoDB supports a variety of -:manual:`authentication mechanisms `. - -For more information about configuring your MongoDB server for each of -these authentication mechanisms see MongoDB's -:manual:`online documentation `. - -For more information about users and the Ruby driver's helpers for -user management, see the :ref:`User Management tutorial`. - - -Providing credentials -===================== - -If authentication is enabled, provide credentials when creating a new -client: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - user: 'test', - password: '123', - database: 'mydb' ) - - # If using a URI: - client = Mongo::Client.new("mongodb://test:123@127.0.0.1:27017/mydb") - -Authentication credentials can be changed on a client instance to obtain -a new client using the ``Client#with`` method: - -.. code-block:: ruby - - authenticated_client = client.with( user: 'another-user', - password: '123' ) - -It is also possible to change the client's database and credentials in -one step: - -.. code-block:: ruby - - authenticated_music_client = client.with( database: 'music', - user:'test', - password:'123' ) - - -.. _auth-source: - -Auth Source -=========== - -A user's auth source is the database where that user's authentication -credentials are stored. - -The user's auth source may be specified whenever the credentials are specified: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - database: 'mydb', - user: 'test', - password: '123', - auth_source: 'admin' ) - - # If using a URI: - client = Mongo::Client.new("mongodb://test:123@127.0.0.1:27017/mydb?authSource=admin") - -If no auth source is specified, then a default will be assumed by the client. -The default auth source depends on the authentication mechanism that is being -used to connect. - -For the ``MONGODB-CR``, ``SCRAM-SHA-1``, and ``SCRAM-SHA-256`` authentication -mechanisms, the default auth source is the database to which the client is -connecting; if no database is specified, ``admin`` database is the default -database and hence the default auth source. For the ``PLAIN`` mechanism (LDAP), -the default auth source is the database to which the client is connecting; -if no database is specified, the ``$external`` database is used as the -auth source. For the ``AWS``, ``GSSAPI`` and ``MONGODB_X509`` mechanisms, the -auth source is always ``$external``. - -When a client is constructed using an SRV URI, the driver will look for URI -options in a TXT DNS record that corresponds to the SRV record. Thus, for -example, MongoDB Atlas generally uses the ``admin`` database as its auth -source, but this is not specified in SRV URIs because the database is given -as a URI option on the TXT records. - -Note that when using SRV URIs, the SRV query and the TXT query are performed -separately. On systems where DNS resolution is not 100% reliable, the -failure to look up TXT records can cause authentication errors, as the driver -may end up using an incorrect auth source. If reliable DNS resolution cannot -be guaranteed, the auth source can be specified explicitly in SRV URIs as -a URI option: - -.. code-block:: ruby - - Mongo::Client.new("mongodb+srv://username:myRealPassword@cluster0.mongodb.net/test?w=majority&authSource=admin") - -.. note:: - - When changing the database using the ``with`` method, the auth source is - determined in the new ``Client`` instance using the full set of options - that applies to it. For example, if the original client had an auth source - specified, this auth source would take precedence over the database - given in the ``with`` call. If the original client did not have an auth - source specified, the new database would be the new auth source, subject - to the rules of the authentication mechanism used. - - -Authentication Mechanisms -========================= - -MongoDB supports several authentication mechanisms, as detailed in this section. -Authentication mechanism to use can be explicitly specified when a Client is -created; if authentication mechanism is not provided by the application, it is -selected as follows: - -- For MongoDB 4.0 and higher, the client performs SCRAM mechanism negotiation - with the server. If the user specified in client configuration permits - authentication with SCRAM-SHA-256, then SCRAM-SHA-256 is used for - authentication. Otherwise SCRAM-SHA-1 is used. -- For MongoDB 3.0 through 3.6, SCRAM-SHA-1 is used. -- For MongoDB 2.6, MONGODB-CR is used. - -Note that: - -- X.509, AWS, LDAP and Kerberos authentication mechanisms must always be - explicitly requested. -- If the MongoDB server that the client is connecting to supports SCRAM, - the client will attempt to authenticate using SCRAM if no authentication - mechanism is explicitly specified. To authenticate to MongoDB 3.0 and - higher servers using MONGODB-CR, the MONGODB-CR mechanism must be - explicitly requested. - -.. _scram: - -SCRAM -````` - -:manual:`SCRAM authentication ` is the default -authentication mechanism for MongoDB. There are two SCRAM mechanisms in -MongoDB: SCRAM-SHA-1 (available as of MongoDB 3.0) and SCRAM-SHA-256 -(available as of MongoDB 4.0). If an authentication mechanism is not -specified but user credentials are, the driver will attempt to use SCRAM -authentication on server 3.0 or newer and will negotiate the mechanism -to use based on the server version and the mechanisms defined for a -particular user (it is possible to configure a user in the server to only -allow SCRAM-SHA-1 mechanism, only SCRAM-SHA-256 mechanism or both). - -To explicitly specify SCRAM-SHA-1 as the authentication mechanism, use the -``auth_mech: :scram`` Ruby client option or the ``SCRAM-SHA-1`` as the value -for the ``authMechanism`` URI option, as follows: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - database: 'mydb', - user: 'test', - password: '123', - auth_mech: :scram ) - - client = Mongo::Client.new("mongodb://test:123@127.0.0.1:27017/mydb?authMechanism=SCRAM-SHA-1") - -To explicitly specify SCRAM-SHA-256 as the authentication mechanism, use the -``auth_mech: :scram256`` Ruby client option or the ``SCRAM-SHA-256`` as the -value for the ``authMechanism`` URI option, as follows: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - database: 'mydb', - user: 'test', - password: '123', - auth_mech: :scram256 ) - - client = Mongo::Client.new("mongodb://test:123@127.0.0.1:27017/mydb?authMechanism=SCRAM-SHA-256") - - -.. _x.509: - -Client Certificate (X.509) -`````````````````````````` - -The driver presents an X.509 certificate during TLS negotiation. -The MONGODB-X509 authentication mechanism authenticates a username -retrieved from the distinguished subject name of this certificate. - -.. note:: - - Since the username is retrieved from the certificate, a username does not - need to be specified. If a username is specified, it will be sent to the - server verbatim. If a password is provided, an error will be raised. - -This authentication method requires the use of TLS connections with -certificate validation. - -To authenticate the client, you will need a valid TLS certificate -and private encryption key. These can be stored in separate files, -or together in one file (in the PEM format). Even if the certificate -and private key are stored in the same file, you must specify the path to -that file by passing both the ``ssl_cert`` and ``ssl_key`` options -to the client. - -For more information about configuring X.509 authentication in MongoDB, -see the :manual:`X.509 tutorial in the MongoDB Manual -`. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - auth_mech: :mongodb_x509, - ssl: true, - ssl_cert: '/path/to/client.pem', - ssl_key: '/path/to/client.pem', - ssl_ca_cert: '/path/to/ca.pem' ) - - -.. _aws-auth: - -AWS -``` - -*Requires MongoDB Enterprise Edition and server version 4.4 or later.* - -The AWS authentication mechanism uses AWS `Identity and Access Management (IAM) -`_ -and AWS `Security Token Service (STS) -`_ -to prove the client's identity to a MongoDB server. Briefly, AWS authentication -works as follows: - -1. The client uses AWS IAM credentials to create a signature that is sent to - the MongoDB server. -2. The server sends a request to AWS STS using the client's signature. -3. A successful STS request returns the username (technically, the ARN of - the IAM user or role) corresponding to the credentials that the client used. - The IAM user ARN is used by the server to look up a defined user, and the - client is considered to have authenticated as this user. - -.. note:: - - Unlike other authentication mechanisms, the username that the application - provides when creating a client and the username of the server user are - different: the username on the client is the AWS access key ID, but the - username on the server is the ARN of the IAM user or role corresponding - to the access key ID. - -AWS credentials are comprised of: - -- The access key ID. -- The secret access key. -- The optional session token. - -Authentication with `AWS IAM credentials -`_, -uses the access key ID and the secret access key. Authentication with -`temporary AWS IAM credentials -`_ -uses all three components. - -.. note:: - - The driver never sends the secret access key or the session token over - the network. - -Temporary credentials are used with: - -- STS `Assume Role `_ - requests. -- `EC2 instance roles `_. -- `ECS task roles `_. -- `AWS Lambda environment `_. -- `IAM roles for service accounts `_. - -The Ruby driver allows providing both regular and temporary credentials -explicitly as Ruby options or URI options. If credentials are not explicitly -provided, the driver will attempt to retrieve them from environment variables -described below and from EC2 instance and ECS task metadata endpoints. - -Providing Credentials Explicitly -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Regular (non-temporary) IAM credentials can be provided as Ruby options, -as follows: - -.. code-block:: ruby - - client = Mongo::Client.new(['mongodb.example.com'], - auth_mech: :aws, - user: '', - password: '', - database: 'mydb', - ) - -They can also be provided via a URI: - -.. code-block:: ruby - - client = Mongo::Client.new( - 'mongodb://:@mongodb.example.com/mydb?authMechanism=MONGODB-AWS') - -.. note:: - - When credentials are provided via a URI, they must be percent-escaped. - -To provide temporary credentials, specify the session token in the -authentication mechanism properties as follows: - -.. code-block:: ruby - - client = Mongo::Client.new(['mongodb.example.com'], - auth_mech: :aws, - user: '', - password: '', - auth_mech_properties: { - aws_session_token: '', - }, - database: 'mydb', - ) - -The temporary credentials can also be provided via a URI: - -.. code-block:: ruby - - client = Mongo::Client.new( - 'mongodb://:@mongodb.example.com/mydb?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:') - -.. _auto-retrieve-aws-credentials: - -Automatically Retrieving Credentials -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The client can retrieve credentials from the environment or from EC2 or ECS -metadata endpoints. To retrieve credentials automatically, specify the -AWS authentication mechanism but do not specify a username nor a password: - -.. code-block:: ruby - - client = Mongo::Client.new(['mongodb.example.com'], - auth_mech: :aws, - database: 'mydb', - ) - - # Using a URI: - client = Mongo::Client.new( - 'mongodb://mongodb.example.com/mydb?authMechanism=MONGODB-AWS') - -The driver will try to obtain credentials from the following sources, in -the specified order: - -- ``AWS_ACCESS_KEY_ID``, ``AWS_SECRET_ACCESS_KEY`` and ``AWS_SESSION_TOKEN`` - environment variables. These environment variables are recognized by - a variety of AWS-related libraries and tools such as the official - AWS Ruby SDK and the AWS CLI. They are also defined when running in an - AWS Lambda environment. -- The AWS STS `AssumeRoleWithWebIdentity action - `_. - This returns credentials associated with the service account token. This mechanism - requires the following environment variables to be set: - - - ``AWS_WEB_IDENTITY_TOKEN_FILE`` - path to a file containing the service - account token. - - ``AWS_ROLE_ARN`` - the Amazon Resource Name (ARN) of the role that the - caller is assuming. - - ``AWS_ROLE_SESSION_NAME`` (optional) - An identifier for the assumed role - session. If omitted, a random name will be generated by the driver. - -- The AWS `ECS task metadata endpoint - `_. - This returns credentials associated with the ECS task role assigned to - the container. -- The AWS `EC2 instance metadata endpoint - `_. - This returns credentials associated with the EC2 instance role assigned to - the instance. - -.. note:: - - A credentials source that provides any credentials must provide a complete - set of credentials. For example, the driver will raise an error if only - one of ``AWS_ACCESS_KEY_ID`` or ``AWS_SECRET_ACCESS_KEY`` environment - variables is populated but not the other. - -.. note:: - - If an application is running in an ECS container on an EC2 instance and - `the container is allowed access to the instance metadata - `_, - the driver will attempt to retrieve credentials for the AWS authentication - mechanism from the EC2 instance metadata endpoint, thus potentially - authenticating as the IAM role assigned to the EC2 instance, if it was not - able to retrieve ECS task role credentials from the ECS task endpoint. - - -.. _plain: - -LDAP (SASL PLAIN) -````````````````` - -*Requires MongoDB Enterprise Edition.* - -MongoDB Enterprise Edition supports the LDAP authentication mechanism -which allows you to delegate authentication using a Lightweight Directory -Access Protocol `LDAP `_ server. - -.. warning:: - - When using LDAP, passwords are sent to the server in plain text. For this - reason, we strongly recommend enabling TLS when using LDAP as your - authentication mechanism. - -For more information about configuring LDAP authentication in -MongoDB, see the :manual:`SASL/LDAP tutorial in the MongoDB Manual -`. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - auth_mech: :plain, - ssl: true, - ssl_verify: true, - ssl_cert: '/path/to/client.pem', - ssl_ca_cert: '/path/to/ca.pem' ) - - -.. _kerberos: - -Kerberos (GSSAPI) -````````````````` - -*Requires MongoDB Enterprise Edition.* - -To configure the MongoDB server to use Kerberos, please refer to the -:manual:`server Kerberos documentation -`. - -To use the Kerberos authentication mechanism with the Ruby MongoDB driver, -an additional library implementing the Kerberos authenticator - -`mongo_kerberos `_ - must be -installed and loaded. To do so, add to your ``Gemfile``: - -.. code-block:: ruby - - gem 'mongo', '~> 2' - gem 'mongo_kerberos', '~> 2' - -... and add to your application code: - -.. code-block:: ruby - - require 'mongo' - require 'mongo_kerberos' - -If using Kerberos authentication with **MRI**, the password is not specified -in driver configuration and it is not sent to the MongoDB server by the driver. -Instead a Kerberos session must be established externally to the driver -and this session is used by the driver to prove the user's identity to -the server. Establishing this session requires that the host system is -configured for Kerberos authentication; refer to the `Kerberos documentation -`_ -or your operating system documentation for details. Use the `kinit utility -`_ -to establish a Kerberos session. - -If using Kerberos authentication with **JRuby**, the Kerberos session may -be estabished externally to the driver using the process described above -for MRI; alternatively, the password may be provided directly to the driver -via client configuration, or the path to a keytab file may be provided via -configuration stored in the ``java.security.auth.login.config`` system property. -Additionally, the Java runtime environment must be configured for Kerberos; -please refer to the `MongoDB Java Driver Kerberos documentation -`_ -for more information. - -.. note:: - - As per the server Kerberos documentation, the FQDN of the host - running MongoDB must be specified when using Kerberos authentication. - -.. note:: - - If using MongoDB URIs, be sure to percent-escape special characters like - ``/`` and ``@`` when they appear in the username. - -.. code-block:: ruby - - # Authenticate as appuser@MYREALM: - client = Mongo::Client.new("mongodb://appuser%40MYREALM@myserver.mycompany.com:27017/mydb?authMechanism=GSSAPI") - - # Authenticate as myapp/appuser@MYREALM: - client = Mongo::Client.new("mongodb://myapp%2Fappuser%40MYREALM@myserver.mycompany.com:27017/mydb?authMechanism=GSSAPI") - - # Authenticate using Ruby options: - client = Mongo::Client.new(['myserver.mycompany.com:27017'], - auth_mech: :gssapi, - user: 'myapp/appuser@MYREALM') - - -MONGODB-CR -`````````` - -*Deprecated:* MONGODB-CR mechanism is deprecated as of MongoDB 3.6 and -removed as of MongoDB 4.0. Please use `SCRAM authentication <#scram>`_ instead. - -MONGODB-CR was the default authentication mechanism for MongoDB through -version 2.6. - -The mechanism can be explicitly set with the credentials: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], - database: 'mydb', - user: 'test', - password: '123', - auth_mech: :mongodb_cr ) - -.. note:: - - If the MongoDB server that the client is connecting to supports SCRAM, - the client will attempt to authenticate using SCRAM if no authentication - mechanism is explicitly specified. To authenticate to MongoDB 3.0 and - higher servers using MONGODB-CR, the MONGODB-CR mechanism must be - explicitly requested. diff --git a/source/reference/bulk-operations.txt b/source/reference/bulk-operations.txt deleted file mode 100644 index 7f4d59b12..000000000 --- a/source/reference/bulk-operations.txt +++ /dev/null @@ -1,169 +0,0 @@ -*********** -Bulk Writes -*********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -.. _bulk-operations: - -The bulk write API sends several write operations to the server in a single -command. Use the bulk write API to reduce the number of network round-trips -when performing several writes at a time. For example, to efficiently perform -multiple updates, one might do: - -.. code-block:: ruby - - collection = client['colors'] - collection.bulk_write([ - { - update_one: { - filter: {name: 'yellow'}, - update: {'$set' => {hex: 'ffff00'}}, - }, - }, - { - update_one: { - filter: {name: 'purple'}, - update: {'$set' => {hex: '800080'}}, - }, - }, - ], ordered: true, write_concern: {w: :majority}) - -The following example shows how to execute different types of operations -in the same request: - -.. code-block:: ruby - - collection.bulk_write([ - { insert_one: { x: 1 } }, - { update_one: { - filter: { x: 1 }, - update: {'$set' => { x: 2 } }, - } }, - { replace_one: { - filter: { x: 2 }, - replacement: { x: 3 }, - } }, - ], :ordered => true) - -The first argument to ``bulk_write`` is the list of operations to perform. -Each operation must be specified as a hash with exactly one key which is -the operation name and the operation specification as the corresponding -value. The supported operations are detailed below. The ``bulk_write`` method -also accepts the following options: - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``bypass_document_validation`` - - ``true`` or ``false``. Whether to bypass document validation. - * - ``ordered`` - - If the ``ordered`` option is set to ``true`` (which is the default), - the operations are applied in order and if any operation fails, subsequent - operations are not attempted. If the ``ordered`` option is set to ``false``, - all specified operations are attempted. - * - ``write_concern`` - - The write concern for the operation, specified as a hash. - -Valid bulk write operations are the following: - - -insert_one -========== - -.. code-block:: ruby - - { insert_one: { x: 1 } } - -.. note:: - - There is no ``insert_many`` bulk operation. To insert multiple documents, - specify multiple ``insert_one`` operations. - - -update_one -========== - -.. code-block:: ruby - - { update_one: { - filter: { x: 1 }, - update: { '$set' => { x: 2 } }, - # upsert is optional and defaults to false - upsert: true, - } } - - -update_many -=========== - -.. code-block:: ruby - - { update_many: { - filter: { x: 1 }, - update: { '$set' => { x: 2 } }, - # upsert is optional and defaults to false - :upsert => true, - } } - - -replace_one -=========== - -.. code-block:: ruby - - { replace_one: { - filter: { x: 1 }, - replacement: { x: 2 }, - # upsert is optional and defaults to false - upsert: true, - } } - -.. note:: - - The ``:replace_one`` operation requires that the replacement value is a - document. ``:replace_one`` does not recognize MongoDB update operators in - the replacement value. In a future release the driver is expected to - prohibit using keys beginning with ``$`` in the replacement document. - - -delete_one -========== - -.. code-block:: ruby - - { delete_one: { - filter: { x: 1 }, - } } - - -delete_many -=========== - -.. code-block:: ruby - - { delete_many: { - filter: { x: 1 }, - } } - - -Bulk Write Splitting -==================== - -The driver allows the application to submit arbitrarily large bulk write -requests. However, since MongoDB server limits the size of command documents -(currently this limit is 48 MiB), bulk writes that exceed this limit will be -split into multiple requests. - -When :ref:`client-side encryption ` is used, the -threshold used for bulk write splitting is reduced to allow for overhead in -the ciphertext. diff --git a/source/reference/change-streams.txt b/source/reference/change-streams.txt deleted file mode 100644 index e8f896a8c..000000000 --- a/source/reference/change-streams.txt +++ /dev/null @@ -1,213 +0,0 @@ -.. _change-streams: - -************** -Change Streams -************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -As of version 3.6 of the MongoDB server, a new ``$changeStream`` pipeline stage -is supported in the aggregation framework. Specifying this stage first in an -aggregation pipeline allows users to request that notifications are sent for all -changes to a particular collection. As of MongoDB 4.0, change streams are -supported on databases and clusters in addition to collections. - -The Ruby driver provides an API for -receiving notifications for changes to a particular collection, database -or cluster using this -new pipeline stage. Although you can create a change stream using the pipeline -operator and aggregation framework directly, it is recommended to use the -driver API described below as the driver resumes the change stream one time -if there is a timeout, a network error, a server error indicating that a -failover is taking place or another type of a resumable error. - -Change streams on the server require a ``"majority"`` read concern or no -read concern. - -Change streams do not work properly with JRuby because of the issue documented here_. -Namely, JRuby eagerly evaluates ``#next`` on an Enumerator in a background -green thread, therefore calling ``#next`` on the change stream will cause -getMores to be called in a loop in the background. - -.. _here: https://github.com/jruby/jruby/issues/4212 - -Watching for Changes on a Collection -==================================== - -A collection change stream is created by calling the ``#watch`` method on a -collection: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - collection = client[:test] - stream = collection.watch - collection.insert_one(a: 1) - doc = stream.to_enum.next - process(doc) - - -You can also receive the notifications as they become available: - -.. code-block:: ruby - - stream = collection.watch - enum = stream.to_enum - while doc = enum.next - process(doc) - end - -The ``next`` method blocks and polls the cluster until a change is available. -Use the ``try_next`` method to iterate a change stream without blocking; this -method will wait up to max_await_time_ms milliseconds for changes from the server, -and if no changes are received it will return nil. If there is a non-resumable -error, both ``next`` and ``try_next`` will raise an exception. -See Resuming a Change Stream section below for an example that reads -changes from a collection indefinitely. - -The change stream can take filters in the aggregation framework pipeline -operator format: - -.. code-block:: ruby - - stream = collection.watch([{'$match' => { 'operationType' => {'$in' => ['insert', 'replace'] } } }, - {'$match' => { 'fullDocument.n' => { '$gte' => 1 } } } - ]) - enum = stream.to_enum - while doc = enum.next - process(doc) - end - -Watching for Changes on a Database -================================== - -A database change stream notifies on changes on any collection within the -database as well as database-wide events, such as the database being dropped. - -A database change stream is created by calling the ``#watch`` method on a -database object: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - database = client.database - stream = database.watch - client[:test].insert_one(a: 1) - doc = stream.to_enum.next - process(doc) - - -Watching for Changes on a Cluster -================================= - -A cluster change stream notifies on changes on any collection, any database -within the cluster as well as cluster-wide events. - -A cluster change stream is created by calling the ``#watch`` method on a -client object (not the cluster object): - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - stream = client.watch - client[:test].insert_one(a: 1) - doc = stream.to_enum.next - process(doc) - - -Closing a Change Stream -======================= - -You can close a change stream by calling its ``#close`` method: - -.. code-block:: ruby - - stream.close - - -Resuming a Change Stream -======================== - -A change stream consists of two types of operations: the initial aggregation -and ``getMore`` requests to receive the next batch of changes. - -The driver will automatically retry each ``getMore`` operation once on -network errors and when the server returns an error indicating it changed -state (for example, it is no longer the primary). The driver does not retry -the initial aggregation. - -In practical terms this means that, for example: - -- Calling ``collection.watch`` will fail if the cluster does not have - enough available nodes to satisfy the ``"majority"`` read preference. -- Once ``collection.watch`` successfully returns, if the cluster subsequently - experiences an election or loses a node, but heals quickly enough, - change stream reads via ``next`` or ``each`` methods will continue - transparently to the application. - -To indefinitely and reliably watch for changes without losing any changes or -processing a change more than once, the application must track the resume -token for the change stream and restart the change stream when it experiences -extended error conditions that cause the driver's automatic resume to also -fail. The following code snippet shows an example of iterating a change stream -indefinitely, retrieving the resume token using the ``resume_token`` change -stream method and restarting the change stream using the ``:resume_after`` -option on all MongoDB or network errors: - -.. code-block:: ruby - - token = nil - loop do - begin - stream = collection.watch([], resume_after: token) - enum = stream.to_enum - while doc = enum.next - process(doc) - token = stream.resume_token - end - rescue Mongo::Error - sleep 1 - end - end - -The above iteration is blocking at the ``enum.next`` call, and does not -permit resuming processing in the event the Ruby process running this code -is terminated. The driver also provides the ``try_next`` method which returns -``nil`` (after a small waiting period) instead of blocking indefinitely when -there are no changes in the change stream. Using the ``try_next`` method, -the resume token may be persisted after each ``getMore`` request, even when -a particular request does not return any changes, such that the resume token -remains at the top of the oplog and the application has an opportunity to -persist it should the process handling changes terminates: - -.. code-block:: ruby - - token = nil - loop do - begin - stream = collection.watch([], resume_after: token) - enum = stream.to_enum - doc = enum.try_next - if doc - process(doc) - end - token = stream.resume_token - # Persist +token+ to support resuming processing upon process restart - rescue Mongo::Error - sleep 1 - end - end - -Note that the resume token should be retrieved from the change stream after -every ``try_next`` call, even if the call returned no document. - -The resume token is also provided in the ``_id`` field of each change stream -document. Reading the ``_id`` field is not recommended because it may be -projected out by the application, and because using only the ``_id`` field -would not advance the resume token when a ``getMore`` returns no documents. diff --git a/source/reference/collection-tasks.txt b/source/reference/collection-tasks.txt deleted file mode 100644 index e5437c81c..000000000 --- a/source/reference/collection-tasks.txt +++ /dev/null @@ -1,334 +0,0 @@ -*********** -Collections -*********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -MongoDB stores documents in collections. If a collection does not -exist, MongoDB creates the collection when you first insert a -document in that collection. - -You can also explicitly create a collection with various options, -such as setting the maximum size or the documentation validation rules. - -Time Series Collections -``````````````````````` - -Time series collections were added in MongoDB 5.0. You can read the documentation -`here `_. - -Time series collections efficiently store sequences of measurements over a -period of time. Time series data is any data that is collected over time and is -uniquely identified by one or more unchanging parameters. The unchanging -parameters that identify your time series data is generally your data source's -metadata. - -Creating a Time Series Collection ---------------------------------- -In order to create a time series collection, you must explicitly create a -collection using the time series options: - -.. code-block:: ruby - - opts = { - time_series: { - timeField: "timestamp", - metaField: "metadata", - granularity: "hours" - }, - expire_after: 604800 - } - - db['weather', opts].create - -When creating a time series collection, specify the following options: - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Field - - Description - * - ``time_series[:timeField]`` - - Required. The name of the field which contains the date in each time series document. - * - ``time_series[:metaField]`` - - Optional. The name of the field which contains metadata in each time series document. The metadata in the specified field should be data that is used to label a unique series of documents. The metadata should rarely, if ever, change. - * - ``time_series[:granularity]`` - - Optional. Possible values are "seconds", "minutes", and "hours". By default, MongoDB sets the granularity to "seconds" for high-frequency ingestion. - * - ``:expireAfterSeconds`` - - Optional. Enable the automatic deletion of documents in a time series collection by specifying the number of seconds after which documents expire. MongoDB deletes expired documents automatically. - -See the MongoDB `docs `_ -for more information about time series collection options. - -Inserting into a Time Series Collection ---------------------------------------- - -Inserting into a time series collection is similar to inserting into a regular collection: - -.. code-block:: ruby - - db['weather'].insert_many([ - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 18, 0, 0, 0), - temp: 12 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 18, 4, 0, 0), - temp: 11 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 18, 8, 0, 0), - temp: 11 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 18, 12, 0, 0), - temp: 12 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 18, 16, 0, 0), - temp: 16 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 18, 20, 0, 0), - temp: 15 - }, { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 19, 0, 0, 0), - temp: 13 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 19, 4, 0, 0), - temp: 12 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 19, 8, 0, 0), - temp: 11 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 19, 12, 0, 0), - temp: 12 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 19, 16, 0, 0), - temp: 17 - }, - { - metadata: { sensorId: 5578, type: "temperature" }, - timestamp: Time.utc(2021, 5, 19, 20, 0, 0), - temp: 12 - } - ]) - - -Querying a Time Series Collection ---------------------------------- - -Querying a time series collection is also very similar to a regular collection: - -.. code-block:: ruby - - weather.find(timestamp: Time.utc(2021, 5, 18, 0, 0, 0)).first - -The result of this query: - -.. code-block:: ruby - - { - "timestamp" => 2021-05-18 00:00:00 UTC, - "metadata" => { - "sensorId" => 5578, - "type" => "temperature" - }, - "temp" => 12, - "_id" => BSON::ObjectId('624dfb87d1327a60aeb048d2') - } - - -Using the Aggregation Pipeline on a Time Series Collection ----------------------------------------------------------- - -The aggregation pipeline can also be used for additional query functionality: - -.. code-block:: ruby - - weather.aggregate([ - { - "$project": { - date: { - "$dateToParts": { date: "$timestamp" } - }, - temp: 1 - } - }, - { - "$group": { - _id: { - date: { - year: "$date.year", - month: "$date.month", - day: "$date.day" - } - }, - avgTmp: { "$avg": "$temp" } - } - } - ]).to_a - -The example aggregation pipeline groups all documents by the date of the -measurement and then returns the average of all temperature measurements -that day: - -.. code-block:: ruby - - [{ - "_id" => { - "date" => { - "year" => 2021, - "month" => 5, - "day" => 18 - } - }, - "avgTmp" => 12.833333333333334 - }, - { - "_id" => { - "date" => { - "year" => 2021, - "month" => 5, - "day" => 19 - } - }, - "avgTmp" => 12.833333333333334 - }] - -See the MongoDB documentation on `time series collections `_ -for more information. - -Capped Collections -`````````````````` - -Capped collections have maximum size or document counts that prevent -them from growing beyond maximum thresholds. All capped collections must -specify a maximum size and may also specify a maximum document count. -MongoDB removes older documents if a collection reaches the maximum size -limit before it reaches the maximum document count. - -To create a :manual:`capped collection`, use -the ``capped: true`` option along with a ``size`` in bytes. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - collection = client[:artists, capped: true, size: 10000] - collection.create - collection.capped? # => true - -Convert an Existing Collection to Capped -```````````````````````````````````````` - -To convert an existing collection from non-capped to capped, use -the ``convertToCapped`` command. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - db = client.database - db.command({ 'convertToCapped' => 'artists', 'size' => 10000 }) - - -Document Validation -``````````````````` - -If you're using MongoDB version 3.2 or later, you can use -:manual:`document validation`. -Collections with validations compare each inserted or updated -document against the criteria specified in the validator option. -Depending on the ``validationLevel`` and ``validationAction``, MongoDB -either returns a warning, or refuses to insert or update the document -if it fails to meet the specified criteria. - -The following example creates a ``contacts`` collection with a validator -that specifies that inserted or updated documents should match at -least one of three following conditions: - -- the ``phone`` field is a string -- the ``email`` field matches the regular expression -- the ``status`` field is either ``Unknown`` or ``Incomplete``. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - client[:contacts, - - { - 'validator' => { '$or' => - [ - { 'phone' => { '$type' => "string" } }, - { 'email' => { '$regex' => /@mongodb\.com$/ } }, - { 'status' => { '$in' => [ "Unknown", "Incomplete" ] } } - ] - } - } - - ].create - -Add Validation to an Existing Collection -```````````````````````````````````````` - -To add document validation criteria to an existing collection, use the -``collMod`` command. The example below demonstrates how to add a -validation to the ``contacts`` collection, ensuring that all new -documents must contain an ``age`` field which is a number. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - db = client.database - db.command({ 'collMod' => 'contacts', - 'validator' => - { 'age' => - { '$type' => "number" } - } - }) - -Listing Collections -``````````````````` - -Use ``collections`` or ``collection_names`` methods on a database -objects to list collections: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - database = client.database - - database.collections # Returns an array of Collection objects. - database.collection_names # Returns an array of collection names as strings. - -Dropping Collections -```````````````````` - -To drop a collection, call ``drop`` on the collection object. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - artists.drop diff --git a/source/reference/connection-and-configuration.txt b/source/reference/connection-and-configuration.txt deleted file mode 100644 index ae7842ead..000000000 --- a/source/reference/connection-and-configuration.txt +++ /dev/null @@ -1,18 +0,0 @@ -.. _connection-and-configuration: - -************************** -Connection & Configuration -************************** - -.. default-domain:: mongodb - -.. toctree:: - :titlesonly: - - Create a Client - Authentication - Monitoring - User Management - -This section describes how to create the client objects and what configuration -options the driver provides, including authentication. diff --git a/source/reference/create-client.txt b/source/reference/create-client.txt deleted file mode 100644 index 2305e6d5d..000000000 --- a/source/reference/create-client.txt +++ /dev/null @@ -1,2142 +0,0 @@ -***************** -Creating a Client -***************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 2 - :class: singlecol - -Using Mongo::Client -=================== - -To connect to a MongoDB deployment, create a ``Mongo::Client`` object. -Provide a list of hosts and options or a :manual:`connection string URI -` to the ``Mongo::Client`` constructor. -The client's selected database defaults to ``admin``. - -By default, the driver will automatically detect the topology used by the -deployment and connect appropriately. - -To connect to a local standalone MongoDB deployment, specify the host and -port of the server. In most cases you would also specify the database name -to connect to; if no database name is specified, the client will use the -``admin`` database: - -.. code-block:: ruby - - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'mydb') - - # Or using the URI syntax: - Mongo::Client.new("mongodb://127.0.0.1:27017/mydb") - -.. note:: - - The hostname ``localhost`` is treated specially by the driver and will - be resolved to IPv4 addresses only. - -To `connect to MongoDB Atlas `_, -specify the Atlas deployment URI: - -.. code-block:: ruby - - Mongo::Client.new("mongodb+srv://username:myRealPassword@cluster0.mongodb.net/mydb?w=majority") - -The driver will discover all nodes in the cluster and connect to them as -needed. - -Block Syntax ------------- - -Another way to create a Mongo::Client object is to use the block syntax: - -.. code-block:: ruby - - Mongo::Client.new(...) do |client| - # work with the client - end - -Note that when creating a client using this syntax, the client is automatically closed after the block finishes executing. - -Database Selection -================== - -By default, the client will connect to the ``admin`` database. - -The ``admin`` database is a special database in MongoDB often used for -administrative tasks and storing administrative data such as users and -roles (although users and roles may also be defined in other databases). -In a sharded cluster, the ``admin`` database -:manual:`exists on the config servers ` -rather than the shard servers. Although it is possible to use the ``admin`` -database for ordinary operations (such as storing application data), this -is not recommended and the application should explicitly specify the -database it wishes to use. - -The database can be specified during ``Client`` construction: - -.. code-block:: ruby - - # Using Ruby client options: - client = Mongo::Client.new(['localhost'], database: 'mydb') - - # Using a MongoDB URI: - client = Mongo::Client.new('mongodb://localhost/mydb') - -Given a ``Client`` instance, the ``use`` method can be invoked to obtain a -new ``Client`` instance configured with the specified database: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost'], database: 'mydb') - - admin_client = client.use('admin') - - # Issue an administrative command - admin_client.database.command(replSetGetConfig: 1).documents.first - -There are other special databases in MongoDB which should be only used for -their stated purposes: - -- The :manual:`config ` database. -- The :manual:`local ` database. -- The ``$external`` database, which is used with :ref:`PLAIN `, - :ref:`Kerberos ` and :ref:`X.509 ` authentication - mechanisms. - - -Connection Types -================ - -The driver will, by default, discover the type of deployment it is instructed -to connect to (except for load-balanced deployments) -and behave in the manner that matches the deployment type. -The subsections below describe how the driver behaves in each of the deployment -types as well as how to force particular behavior, bypassing automatic -deployment type detection. - -Note that the detection of deployment type happens when the driver receives -the first reply from any of the servers it is instructed to connect to -(unless the load-balancing mode is requested, see below). The driver will -remain in the discovered or configured topology even if the underlying -deployment is replaced by one of a different type. In particular, when -replacing a replica set with a sharded cluster at the same address -the client instance must be recreated (such as by restarting the application) -for it to communicate with the sharded cluster. - -Automatic discovery of load-balanced deployments is currently not supported. -Load-balanced deployments will be treated as deployments of their underlying -type, which would generally be sharded clusters. The driver will fail to -correctly operate when treating a load-balanced deployment as a sharded -cluster, therefore when the deployment is a load-balanced one the client -must be explicitly configured to :ref:`connect to a load balancer -`. - - -Standalone Server Connection ----------------------------- - -If the deployment is a single server, also known as a standalone deployment, -all operations will be directed to the specified server. - -If the server is shut down and replaced by a replica set node, the driver -will continue sending all operations to that node, even if the node is or -becomes a secondary. - -To force a standalone connection, see the :ref:`direct connection -` section below. - - -.. _connect-replica-set: - -Replica Set Connection ----------------------- - -When connecting to a :manual:`replica set`, it is sufficient -to pass the address of any node in the replica set to the driver. -The node does not have to be the primary and it may be a hidden node. -The driver will then automatically discover the remaining nodes. - -However, it is recommended to specify all nodes that are part of the -replica set, so that in the event of one or more nodes being unavailable -(for example, due to maintenance or reconfiguration) the driver can still -connect to the replica set. - -Replica set connection examples: - -.. code-block:: ruby - - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'mydb') - - Mongo::Client.new([ '127.0.0.1:27017', '127.0.0.1:27018' ], database: 'mydb') - - # Or using the URI syntax: - Mongo::Client.new("mongodb://127.0.0.1:27017,127.0.0.1:27018/mydb") - -To make the driver verify the replica set name upon connection, pass it using -the ``replica_set`` Ruby option or the ``replicaSet`` URI option: - -.. code-block:: ruby - - Mongo::Client.new([ '127.0.0.1:27017', '127.0.0.1:27018' ], - database: 'mydb', replica_set: 'myapp') - - # Or using the URI syntax: - Mongo::Client.new("mongodb://127.0.0.1:27017,127.0.0.1:27018/mydb?replicaSet=myapp") - -If the deployment is not a replica set or uses a different replica set name, -all operations will fail (until the expected replica set is returned by -the servers). - -It is also possible to force a replica set connection without specifying -the replica set name. Doing so is generally unnecessary and is deprecated: - -.. code-block:: ruby - - Mongo::Client.new([ '127.0.0.1:27017', '127.0.0.1:27018' ], - database: 'mydb', connect: :replica_set) - - # Or using the URI syntax: - Mongo::Client.new("mongodb://127.0.0.1:27017,127.0.0.1:27018/mydb?connect=replica_set") - -To connect to a MongoDB Atlas cluster which is deployed as a replica set, -connect to the URI: - -.. code-block:: ruby - - Mongo::Client.new("mongodb+srv://username:myRealPassword@cluster0.mongodb.net/test?w=majority") - -Please review the :ref:`SRV URI notes ` if using SRV URIs. - - -.. _connect-sharded-cluster: - -Sharded Cluster Connection --------------------------- - -To connect to a :manual:`sharded cluster` deployment, specify -the addresses of the ``mongos`` routers: - -.. code-block:: ruby - - Mongo::Client.new([ '1.2.3.4:27017', '1.2.3.5:27017' ], database: 'mydb') - - Mongo::Client.new("mongodb://1.2.3.4:27017,1.2.3.5:27017/mydb") - -Note that unlike a replica set connection, you may choose to connect to a -subset of the ``mongos`` routers that exist in the deployment. The driver -will monitor each router and will use the ones that are available -(i.e., the driver will generally handle individual routers becoming -unavailable due to failures or maintenance). When specifying the list of -routers explicitly, the driver will not discover remaining routers that -may be configured and will not attempt to connect to them. - -The driver will automatically balance the operation load among the routers -it is aware of. - -To connect to a MongoDB Atlas cluster which is deployed as a sharded cluster, -connect to the URI: - -.. code-block:: ruby - - Mongo::Client.new("mongodb+srv://username:myRealPassword@cluster0.mongodb.net/test?w=majority") - -When the driver connects to a sharded cluster via an SRV URI, it will -periodically poll the SRV records of the address specified in the URI -for changes and will automatically add and remove the ``mongos`` hosts -to/from its list of servers as they are added and removed to/from the -sharded cluster. - -To force a sharded cluster connection, use the ``connect: :sharded`` -option. Doing so is generally unnecessary and is deprecated: - -.. code-block:: ruby - - Mongo::Client.new([ '127.0.0.1:27017', '127.0.0.1:27018' ], - database: 'mydb', connect: :sharded) - - # Or using the URI syntax: - Mongo::Client.new("mongodb://127.0.0.1:27017,127.0.0.1:27018/mydb?connect=sharded") - -Please review the :ref:`SRV URI notes ` if using SRV URIs. - - -.. _direct-connection: - -Direct Connection ------------------ - -To disable the deployment type discovery and force all operations to be -performed on a particular server, specify the ``direct_connection`` option: - -.. code-block:: ruby - - Mongo::Client.new([ '1.2.3.4:27017' ], database: 'mydb', direct_connection: true) - - # Or using the URI syntax: - Mongo::Client.new("mongodb://1.2.3.4:27017/mydb?directConnection=true") - -Alternatively, the deprecated ``connect: :direct`` option is equivalent: - -.. code-block:: ruby - - Mongo::Client.new([ '1.2.3.4:27017' ], database: 'mydb', connect: :direct) - - # Or using the URI syntax: - Mongo::Client.new("mongodb://1.2.3.4:27017/mydb?connect=direct") - -The direct connection mode is most useful for performing operations on a -particular replica set node, although it also permits the underlying server -to change type (e.g. from a replica set node to a ``mongos`` router, or vice -versa). - - -.. _load-balancer-connection: - -Load Balancer Connection ------------------------- - -Unlike other deployment types, the driver does not currently automatically -detect a load-balanced deployment. - -To connect to a load balancer, specify the ``load_balanced: true`` Ruby option -or the ``loadBalanced=true`` URI option: - -.. code-block:: ruby - - Mongo::Client.new([ '1.2.3.4:27017' ], database: 'mydb', load_balanced: true) - - # Or using the URI syntax: - Mongo::Client.new("mongodb://1.2.3.4:27017/mydb?loadBalanced=true") - -When using these options, if the specified server is not a load balancer, -the client will fail all operations (until the server becomes a load balancer). - -To treat the server as a load balancer even if it doesn't identify as such, -use the ``connect: :load_balanced`` Ruby option or the ``connect=load_balanced`` -URI option: - -.. code-block:: ruby - - Mongo::Client.new([ '1.2.3.4:27017' ], - database: 'mydb', load_balanced: true, connect: :load_balanced) - - # Or using the URI syntax: - Mongo::Client.new("mongodb://1.2.3.4:27017/mydb?loadBalanced=true&connect=load_balanced") - -MongoDB Atlas Connection ------------------------- - -To connect to a MongoDB deployment on Atlas, first create a ``Mongo::Client`` instance using your -cluster's connection string and other client options. - -You can set the `Stable API `_ version as -a client option to avoid breaking changes when you upgrade to a new server version. - -The following code shows how you can specify the connection string and the Stable API client option -when connecting to a MongoDB deployment and verify that the connection is successful: - -.. code-block:: ruby - - require 'mongo' - - # Replace the placeholders with your credentials - uri = "mongodb+srv://:@cluster0.sample.mongodb.net/?retryWrites=true&w=majority" - - # Set the server_api field of the options object to Stable API version 1 - options = { server_api: { version: "1" } } - - # Create a new client and connect to the server - client = Mongo::Client.new(uri, options) - - # Send a ping to confirm a successful connection - begin - admin_client = client.use('admin') - result = admin_client.database.command(ping: 1).documents.first - puts "Pinged your deployment. You successfully connected to MongoDB!" - rescue Mongo::Error::OperationFailure => ex - puts ex - ensure - client.close - end - -Connect to MongoDB Atlas from AWS Lambda ----------------------------------------- - -To learn how to connect to Atlas from AWS Lambda, see the -`Manage Connections with AWS Lambda `__ -documentation. - -.. _srv-uri-notes: - -SRV URI Notes -============= - -When the driver connects to a -:manual:`mongodb+srv protocol ` -URI, keep in mind the following: - -1. SRV URI lookup is performed synchronously when the client is constructed. - If this lookup fails for any reason, client construction will fail with an - exception. When a client is constructed with a list of hosts, the driver - will attempt to contact and monitor those hosts for as long as the client - object exists. If one of these hosts does not resolve initially but becomes - resolvable later, the driver will be able to establish a connection to such - a host when it becomes available. The initial SRV URI lookup must succeed - on the first attempt; subsequent host lookups will be retried by the driver - as needed. -2. The driver looks up URI options in the DNS TXT records corresponding to the - SRV records. These options can be overridden by URI options specified in the - URI and by Ruby options, in this order. -3. Because the URI options are retrieved in a separate DNS query from the - SRV lookup, in environments with unreliable network connectivity - the URI option query may fail when the SRV lookup succeeds. Such a failure - would cause the driver to use the wrong auth source leading to - authentication failures. This can be worked around by explicitly specifying - the auth source: - - .. code-block:: ruby - - Mongo::Client.new("mongodb+srv://username:myRealPassword@cluster0.mongodb.net/test?w=majority&authSource=admin") - -4. If the topology of the constructed ``Client`` object is unknown or a - sharded cluster, the driver will begin monitoring the specified SRV DNS - records for changes and will automatically update the list of servers in the - cluster. The updates will stop if the topology becomes a single or a replica - set. - - -.. _client-options: - -Client Options -============== - -``Mongo::Client``'s constructor accepts a number of options configuring the -behavior of the driver. The options can be provided in the options hash as -Ruby options, in the URI as URI options, or both. If both a Ruby option and -the analogous URI option are provided, the Ruby option takes precedence. - - -Ruby Options ------------- - -.. note:: - - The options passed directly should be symbols. - -.. note:: - - Unless otherwise specified, Ruby options that deal with times are given in - seconds. - -.. list-table:: - :header-rows: 1 - :widths: 25 40 10 15 - - * - Option - - Description - - Type - - Default - - * - ``:app_name`` - - Application name that is printed to the mongod logs upon establishing a connection - in server versions >= 3.4. - - ``String`` - - none - - * - ``:auth_mech`` - - Specifies the authenticaion mechanism to use. Can be one of: - ``:gssapi``, ``:mongodb_cr``, ``:mongodb_x509``, ``:plain``, - ``:scram``, ``:scram256``. GSSAPI (Kerberos) authentication - :ref:`requires additional dependencies `. - - ``Symbol`` - - If user credentials are not supplied, ``nil``. If user credentials - are supplied, the default depends on server version. - MongoDB 4.0 and later: ``:scram256`` if user credentials correspond - to a user which supports SCRAM-SHA-256 authentication, otherwise - ``:scram``. - MongoDB 3.0-3.6: ``:scram``. - MongoDB 2.6: ``:mongodb_cr`` - - * - ``:auth_mech_properties`` - - Provides additional authentication mechanism properties. - - The keys in properties are interpreted case-insensitively. - When the client is created, keys are lowercased. - - - ``Hash`` - - When using the GSSAPI authentication mechanism, the default properties - are ``{service_name: "mongodb"}``. Otherwise the default is nil. - - * - ``:auth_source`` - - Specifies the authentication source. - - ``String`` - - For MongoDB 2.6 and later: **admin** if credentials are - supplied, otherwise the current database - - * - ``:auto_encryption_options`` - - A ``Hash`` of options for configuring automatic encryption. - - - ``:key_vault_client`` - A client connected to the MongoDB instance - storing the encryption data keys (``Mongo::Client``, defaults to the - top-level client instance). - - ``:key_vault_namespace`` - The namespace of the key vault collection - in the format ``"database.collection"`` (``String``, required). - - ``:kms_providers`` - Key management service configuration information. - One or both of the keys ``:local`` and ``:aws`` must be specified - (``Hash``, required). See the "The ``kms_providers`` option`` section of the - :ref:`Client-Side Encryption tutorial` for more - information about this option. - - ``:schema_map`` - The JSONSchema for one or more collections specifying - which fields should be encrypted (``Hash``, optional, defaults to ``nil``). - - ``:bypass_auto_encryption`` - Whether to skip automatic encryption when - performing database operations (``Boolean``, defaults to ``false``). - - ``:extra_options`` - Options related to spawning mongocryptd (``Hash``, - optional, defaults to ``nil``). - - For more information about formatting these options, see the - "Auto-Encryption Options" section of the :ref:`Client-Side Encryption tutorial`. - - ``Hash`` - - none - - * - ``:bg_error_backtrace`` - - Experimental. Controls whether and how backtraces are logged when - errors occur in background threads. If ``true``, the driver will log - complete backtraces. If set to a positive integer, the driver will - log up to that many backtrace lines. If set to ``false`` or ``nil``, - no backtraces will be logged. Other values are an error. - - ``true``, ``false``, ``nil``, ``Integer`` - - none - - * - ``:compressors`` - - A list of potential compressors to use, in order of preference. - Please see below for details on how the driver implements compression. - - ``Array`` - - none - - * - ``:connect`` - - **Deprecated.** Disables deployment topology discovery normally - performed by the dirver and forces the cluster topology to a specific - type. Valid values are ``:direct``, ``:load_balanced``, - ``:replica_set`` or ``:sharded``. If ``:load_balanced`` is used, - the client will behave as if it is connected to a load balancer - regardless of whether the server(s) it connects to advertise themselves - as load balancers. - - ``Symbol`` - - none - - * - ``:connect_timeout`` - - The number of seconds to wait to establish a socket connection - before raising an exception. This timeout is also used for SRV DNS - record resolution. ``nil`` and ``0`` mean no timeout. - Client creation will fail with an error if an invalid timeout value - is passed (such as a negative value or a non-numeric value). - - ``Float`` - - 10 - - * - ``:database`` - - The name of the database to connect to. - - ``String`` - - admin - - * - ``:direct_connection`` - - Connect directly to the specified host, do not discover deployment - topology. - - ``Boolean`` - - false - - * - ``:heartbeat_frequency`` - - The number of seconds for the server monitors to refresh - server states asynchronously. - - ``Float`` - - 10 - - * - ``:id_generator`` - - A custom object to generate ids for documents. Must respond to #generate. - - ``Object`` - - none - - * - ``:load_balanced`` - - Whether to expect to connect to a load balancer. - - ``Boolean`` - - false - - * - ``:local_threshold`` - - Specifies the maximum latency in seconds between the nearest - server and the servers that can be available for selection to operate on. - - ``Float`` - - 0.015 - - * - ``:logger`` - - A custom logger. - - ``Object`` - - ``Logger`` - - * - ``:max_connecting`` - - The maximum number of connections that the connection pool will try to establish in parallel. - - ``Integer`` - - 2 - - * - ``:max_idle_time`` - - The maximum time, in seconds, that a connection can be idle before it - is closed by the connection pool. - - *Warning:* when connected to a load balancer, the driver uses existing - connections for iterating cursors (which includes change streams) - and executing transactions. Setting an idle time via this option may - cause the driver to close connections that are needed for subsequent - operations, causing those operations to fail. - - ``Integer`` - - none - - * - ``:max_pool_size`` - - The maximum size of the connection pool for each server. - Setting this option to zero removes the max size limit from the connection pool, permitting it to grow to any number of connections. - - ``Integer`` - - 20 - - * - ``:max_read_retries`` - - The maximum number of read retries, when legacy read retries are used. - Set to 0 to disable legacy read retries. - - ``Integer`` - - 1 - - * - ``:max_write_retries`` - - The maximum number of write retries, when legacy write retries are used. - Set to 0 to disable legacy write retries. - - ``Integer`` - - 1 - - * - ``:min_pool_size`` - - The minimum number of connections in the connection pool for each - server. The driver will establish connections in the background until - the pool contains this many connections. - - ``Integer`` - - 0 - - * - ``:monitoring`` - - The monitoring object. - - ``Object`` - - none - - * - ``:password`` - - The password of the user to authenticate with. - - ``String`` - - none - - * - ``:platform`` - - Platform information to include in the metadata printed to the mongod logs upon establishing a - connection in server versions >= 3.4. - - ``String`` - - none - - * - ``:read`` - - Specifies the read preference mode and tag sets for selecting servers - as a ``Hash``. Allowed Keys in the hash are ``:mode``, ``:tag_sets`` and - ``:max_staleness``. - - .. code-block:: ruby - - { read: - { mode: :secondary, - tag_sets: [ "data_center" => "berlin" ], - max_staleness: 5, - } - } - - If tag sets are provided, they must be an array of hashes. A server - satisfies the read preference if its tags match any one hash in the - provided tag sets. - - Each tag set must be a hash, and will be converted internally to - a ``BSON::Document`` instance prior to being used for server selection. - Hash keys can be strings or symbols. The keys are case sensitive. - Hash values must be strings, and are matched exactly against the values - in the replica set configuration. - - - ``Hash`` - - ``{ :mode => :primary }`` - - * - ``:read_concern`` - - Specifies the read concern options. The only valid key is ``level``, - for which the valid values are ``:local``, ``:available``, ``:majority``, - ``:snapshot``, and ``:linearizable``. - - ``Hash`` - - none - - * - ``:read_retry_interval`` - - The interval, in seconds, in which reads on a mongos are retried. - - ``Integer`` - - 5 - - * - ``:replica_set`` - - When connecting to a replica set, this is the name of the set to - filter servers by. - - ``String`` - - none - - * - ``:retry_writes`` - - If a single-statement write operation fails from a network error, the driver automatically retries it once - when connected to server versions 3.6+. - - ``Boolean`` - - true - - * - ``:sdam_proc`` - - Since the client begins monitoring the deployment in background as - soon as it is constructed, constructing a client and then subscribing - to :ref:`SDAM ` events in a separate statement may result in the - subscriber not receiving some of the SDAM events. The ``:sdam_proc`` - option permits adding event subscribers on the client being constructed - before any SDAM events are published. - - Pass a ``Proc`` which will be called with the ``Client`` as the argument - after the client's event subscription mechanism has been initialized - but before any of the servers are added to the client. Use this - ``Proc`` to set up SDAM event subscribers on the client. - - Note: the client is not fully constructed when the ``Proc`` provided in - ``:sdam_proc is invoked, in particular the cluster is nil at this time. - ``:sdam_proc`` procedure should limit itself to calling - ``Client#subscribe`` and ``Client#unsubscribe`` methods on on the - passed client only. - - ``Proc`` - - none - - * - ``:server_api`` - - The server API version requested. - This is a hash with the following allowed items: - - ``:version`` (String) - - ``:strict`` (true or false) - - ``:deprecation_errors`` (true or false) - - Note that the server API version can only be specified as a Ruby option, - not as a URI option, and it cannot be overridden for database and - collection objects. - - If server API version is changed on a client (such as via the ``with`` - call), the entire API version hash is replaced with the new specification - (the old and the new individual fields are NOT merged). - - ``Hash`` - - none - - * - ``:server_selection_timeout`` - - The number of seconds to wait for an appropriate server to - be selected for an operation to be executed before raising an exception. - - ``Float`` - - 30 - - * - ``:socket_timeout`` - - The number of seconds to wait for an operation to execute on a - socket before raising an exception. ``nil`` and ``0`` mean no timeout. - Client creation will fail with an error if an invalid timeout value - is passed (such as a negative value or a non-numeric value). - - ``Float`` - - none - - * - ``:srv_max_hosts`` - - The maximum number of mongoses that the driver will communicate with - for sharded topologies. If this option is set to 0, there will - be no maximum number of mongoses. If the given URI resolves - to more hosts than ``:srv_max_hosts``, the client will ramdomly - choose an ``:srv_max_hosts`` sized subset of hosts. Note that the - hosts that the driver ignores during client construction will never - be used. If the hosts chosen by the driver become unavailable, the - client will quit working completely, even though the deployment has - other functional mongoses. - - ``Integer`` - - 0 - - * - ``:srv_service_name`` - - The service name to use in the SRV DNS query. - - ``String`` - - mongodb - - * - ``:ssl`` - - Tell the client to connect to the servers via TLS. - - ``Boolean`` - - false - - * - ``:ssl_ca_cert`` - - The file path containing concatenated certificate authority certificates - used to validate certs passed from the other end of the connection. - One of ``:ssl_ca_cert``, ``:ssl_ca_cert_string`` or ``:ssl_ca_cert_object`` - (in order of priority) is required for ``:ssl_verify``. - - ``String`` - - none - - * - ``:ssl_ca_cert_object`` - - An array of OpenSSL::X509::Certificate representing the certificate - authority certificates used to validate certs passed from the other end - of the connection. One of ``:ssl_ca_cert``, ``:ssl_ca_cert_string`` or - ``:ssl_ca_cert_object`` (in order of priority) is required for ``:ssl_verify``. - - ``Array< OpenSSL::X509::Certificate >`` - - none - - * - ``:ssl_ca_cert_string`` - - A string containing concatenated certificate authority certificates - used to validate certs passed from the other end of the connection. - One of ``:ssl_ca_cert``, ``:ssl_ca_cert_string`` or ``:ssl_ca_cert_object`` - (in order of priority) is required for ``:ssl_verify``. - - ``String`` - - none - - * - ``:ssl_cert`` - - Path to the client certificate file used to identify the application to - the MongoDB servers. The file may also contain the certificate's private - key; if so, the private key is ignored by this option. The file may - also contain intermediate certificates forming the certificate chain - from the client certificate to the CA certificate; any intermediate - certificates will be parsed by the driver and provided to the OpenSSL - context in ``extra_chain_cert`` attribute. If intermediate certificates - are provided, they must follow the client certificate which must be - the first certificate in the file. - - This option, if present, takes precedence over ``:ssl_cert_string`` and - ``:ssl_cert_object`` options. - - ``String`` - - none - - * - ``:ssl_cert_object`` - - The OpenSSL::X509::Certificate used to identify the application to - the MongoDB servers. Only one certificate may be passed through this - option. - - ``OpenSSL::X509::Certificate`` - - none - - * - ``:ssl_cert_string`` - - A string containing the PEM-encoded certificate used to identify the - application to the MongoDB servers. The string may also contain the - certificate's private key; if so, the private key is ignored by this - option. The string may also contain intermediate certificates forming - the certificate chain from the client certificate to the CA certificate; - any intermediate certificates will be parsed by the driver and provided - to the OpenSSL context in ``extra_chain_cert`` attribute. If intermediate - certificates are provided, they must follow the client certificate which - must be the first certificatet in the string. - - This option, if present, takes precedence over the ``:ssl_cert_object`` - option. - - ``String`` - - none - - * - ``:ssl_key`` - - The private keyfile used to identify the connection against MongoDB. Note that even if the key is stored in - the same file as the certificate, both need to be explicitly specified. This option, if present, takes - precedence over the values of :ssl_key_string and :ssl_key_object. - - ``String`` - - none - - * - ``:ssl_key_object`` - - The private key used to identify the connection against MongoDB. - - ``OpenSSL::PKey`` - - none - - * - ``:ssl_key_pass_phrase`` - - A passphrase for the private key. - - ``String`` - - none - - * - ``:ssl_key_string`` - - A string containing the PEM-encoded private key used to identify the - connection against MongoDB. This parameter, if present, takes precedence - over the value of option :ssl_key_object. - - ``String`` - - none - - * - ``:ssl_verify`` - - Whether to perform peer certificate, hostname and OCSP endpoint - validation. Note that the decision of whether to validate certificates - will be overridden if ``:ssl_verify_certificate`` is set, the decision - of whether to validate hostnames will be overridden if - ``:ssl_verify_hostname`` is set and the decision of whether to validate - OCSP endpoint will be overridden if ``:ssl_verify_ocsp_endpoint`` is set. - - ``Boolean`` - - true - - * - ``:ssl_verify_certificate`` - - Whether to perform peer certificate validation. This setting overrides - the ``:ssl_verify`` setting with respect to whether certificate - validation is performed. - - ``Boolean`` - - true - - * - ``:ssl_verify_hostname`` - - Whether to perform peer hostname validation. This setting overrides - the ``:ssl_verify`` setting with respect to whether hostname validation - is performed. - - ``Boolean`` - - true - - * - ``:ssl_verify_ocsp_endpoint`` - - Whether to validate server-supplied certificate against the OCSP - endpoint specified in the certificate, if the OCSP endpoint is specified - in the certificate. This setting overrides :ssl_verify with respect to - whether OCSP endpoint validation is performed. - - ``Boolean`` - - true - - * - ``:truncate_logs`` - - Whether to truncate the logs at the default 250 characters. - - ``Boolean`` - - true - - * - ``:user`` - - The name of the user to authenticate with. - - ``String`` - - none - - * - ``:wait_queue_timeout`` - - The number of seconds to wait for a connection in the connection - pool to become available. - - ``Float`` - - 10 - - * - ``:wrapping_libraries`` - - Information about libraries such as ODMs that are wrapping the driver. - Specify the lower level libraries first. Allowed hash keys: :name, - :version, :platform. Example: ``[name: 'Mongoid', version: '7.1.2']`` - - ``Array`` - - none - - * - ``:write`` - - Deprecated. Equivalent to ``:write_concern`` option. If both ``:write`` - and ``:write_concern`` are specified, their values must be identical. - - - ``Hash`` - - ``{ w: 1 }`` - - * - ``:write_concern`` - - Specifies write concern options as a ``Hash``. - Keys in the hash can be ``:w``, ``:wtimeout``, ``:j``, ``:fsync``. - Note that ``:wtimeout`` is specified in milliseconds, not seconds. - - .. code-block:: ruby - - { write_concern: { w: 2 } } - - - ``Hash`` - - ``{ w: 1 }`` - - * - ``:zlib_compression_level`` - - The Zlib compression level to use, if using compression. See Ruby's Zlib module for valid levels. - - ``Integer`` - - none - -.. note:: - - The Ruby driver does not implement certificate revocation list (CRL) - checking. - - -URI Options ------------ - -Since the URI options are required to be in camel case, which is not the Ruby -standard, the following table shows URI options and their corresponding Ruby -options. - -URI options are explained in detail in the :manual:`Connection URI reference -`. - -.. note:: - - Options that are set in **milliseconds** in the URI are - represented as a ``float`` in Ruby and the units are **seconds**. - -.. list-table:: - :header-rows: 1 - :widths: 40 105 - - * - URI Option - - Ruby Option - - * - appName=String - - ``:app_name => String`` - - * - authMechanism=String - - ``:auth_mech => Symbol`` - - Auth mechanism values are converted as follows from URI options to - Ruby options: - - - ``GSSAPI`` => ``:gssapi`` - - ``MONGODB-CR`` => ``:mongodb_cr`` - - ``MONGODB-X509`` => ``:mongodb_x509`` - - ``PLAIN`` => ``:plain`` - - ``SCRAM-SHA-1`` => ``:scram`` - - ``SCRAM-SHA-256`` => ``:scram256`` - - If a different value is provided for auth mechanism, it is converted - to the Ruby option unmodified and retains its ``String`` type. - Note that, while currently the driver allows a ``Client`` instance - to be constructed with an unrecognized auth mechanism, this behavior - `may change in a future version of the driver `_. - - * - authMechanismProperties=Strings - - ``{ :auth_mech_properties => { :service_realm => String, :canonicalize_host_name => true|false, :service_name => String } }`` - - Specified as comma-separated key:value pairs, e.g. ``"SERVICE_REALM:foo,CANONICALIZE_HOST_NAME:TRUE"``. - - * - authSource=String - - ``:auth_source => String`` - - * - compressors=Strings - - ``:compressors => Array`` - - A comma-separated list of potential compressors to use, in order of - preference. Please see below for details on how the driver implements - compression. - - * - connect=String - - ``:connect => Symbol`` - - The same values that the ``:connect`` Ruby option accepts are - accepted here. For multi-word values, the values must be provided - using underscores to separate the words, i.e. - ``connect=replica_set`` and ``connect=load_balanced``. - - * - connectTimeoutMS=Integer - - ``:connect_timeout => Float`` - - Unlike the corresponding Ruby option which fails client creation on - invalid values (e.g. negative and non-numeric values), invalid values - provided via this URI option are ignored with a warning. - - * - directConnection=Boolean - - ``:direct_connection => Boolean`` - - * - fsync=Boolean - - ``{ :write_concern => { :fsync => true|false }}`` - - * - heartbeatFrequencyMS=Integer - - ``:heartbeat_frequency => Float`` - - * - journal=Boolean - - ``{ :write_concern => { :j => true|false }}`` - - * - loadBalanced=Boolean - - ``:load_balanced => Boolean`` - - * - localThresholdMS=Integer - - ``:local_threshold => Float`` - - * - maxConnecting=Integer - - ``:max_connecting => Integer`` - - * - maxIdleTimeMS=Integer - - ``:max_idle_time => Float`` - - * - maxStalenessSeconds=Integer - - ``{ :read => { :max_staleness => Integer }}`` - - If the maxStalenessSeconds URI option value is -1, the driver treats - this as if the option was not given at all. Otherwise, - if the option value is numeric, the Ruby option is set to the - specified value converted to an ``Integer``. - Note that numeric values greater than 0 but less than 90, or less than - -1, are accepted by the ``Client`` constructor but will cause server - selection to fail (unless the option is changed via, for example, the - ``with`` method prior to any operations being performed on the driver). - If the option value is non-numeric, it is ignored and the driver - treats this case as if the option was not given at all. - - * - maxPoolSize=Integer - - ``:max_pool_size => Integer`` - - * - minPoolSize=Integer - - ``:min_pool_size => Integer`` - - * - readConcernLevel=String - - ``:read_concern => Hash`` - - * - readPreference=String - - ``{ :read => { :mode => Symbol }}`` - - * - readPreferenceTags=Strings - - ``{ :read => { :tag_sets => Array }}`` - - Each instance of the readPreferenceTags field is a comma-separated key:value pair which will appear in the :tag_sets array in the order they are specified. For instance, ``"readPreferenceTags=dc:ny,rack:1&readPreferenceTags=dc:ny"`` will be converted to ``[ { 'dc' => 'ny', 'rack' => '1' }, { 'dc' => 'ny' }]``. - - * - replicaSet=String - - ``:replica_set => String`` - - * - retryWrites=Boolean - - ``:retry_writes => boolean`` - - * - serverSelectionTimeoutMS=Integer - - ``:server_selection_timeout => Float`` - - * - socketTimeoutMS=Integer - - ``:socket_timeout => Float`` - - Unlike the corresponding Ruby option which fails client creation on - invalid values (e.g. negative and non-numeric values), invalid values - provided via this URI option are ignored with a warning. - - * - srvMaxHosts=Integer - - ``:srv_max_hosts => Integer`` - - * - srvServiceName=String - - ``:srv_service_name => String`` - - * - ssl=Boolean - - ``:ssl => true|false`` - - * - tls=Boolean - - ``:ssl => boolean`` - - * - tlsAllowInvalidCertificates=Boolean - - ``:ssl_verify_certificate => boolean`` - - Because ``tlsAllowInvalidCertificates`` uses ``true`` to signify that - verification should be disabled and ``ssl_verify_certificate`` uses - ``false`` to signify that verification should be disabled, the boolean - is inverted before being used to set ``ssl_verify_certificate``. - - * - tlsAllowInvalidHostnames=Boolean - - ``:ssl_verify_hostname => boolean`` - - Because ``tlsAllowInvalidHostnames`` uses ``true`` to signify that - verification should be disabled and ``ssl_verify_hostname`` uses - ``false`` to signify that verification should be disabled, the boolean - is inverted before being used to set ``ssl_verify_hostname``. - - * - tlsCAFile=String - - ``:ssl_ca_cert => String`` - - * - tlsCertificateKeyFile=String - - ``:ssl_cert => String`` - - * - tlsCertificateKeyFile=String - - ``:ssl_key => String`` - - * - tlsCertificateKeyFilePassword=String - - ``:ssl_key_pass_phrase => String`` - - * - tlsDisableOCSPEndpointCheck=Boolean - - ``:ssl_verify_ocsp_endpoint => boolean`` - - Because ``tlsDisableOCSPEndpointCheck`` uses ``true`` to signify that - verification should be disabled and ``ssl_verify_ocsp_endpoint`` uses - ``false`` to signify that verification should be disabled, the boolean - is inverted before being used to set ``ssl_verify_ocsp_endpoint``. - - * - tlsInsecure=Boolean - - ``:ssl_verify => boolean`` - - Because tlsInsecure uses ``true`` to signify that verification should - be disabled and ``ssl_verify`` uses ``false`` to signify that - verification should be disabled, the boolean is inverted before being - used to set ``ssl_verify``. - - * - w=Integer|String - - ``{ :write_concern => { :w => Integer|String }}`` - - * - waitQueueTimeoutMS=Integer - - ``:wait_queue_timeout => Float`` - - * - wtimeoutMS=Integer - - ``{ :write_concern => { :wtimeout => Integer }}`` - - * - zlibCompressionLevel=Integer - - ``:zlib_compression_level => Integer`` - -.. note:: - - The Ruby driver only fails connections when it receives a definitive signed - response indicating that the server's certificate has been revoked. - Because of this, the driver does not recognize the - ``tlsDisableCertificateRevocationCheck`` URI option. If this option is - provided in a URI, it will be ignored. - - -Timeout Options -=============== - -``server_selection_timeout`` ----------------------------- - -When executing an operation, the number of seconds to wait for the driver -to find an appropriate server to send an operation to. Defaults to 30. - -A value of 0 means no timeout. - -When an invalid value (e.g. a negative value or a non-numeric value) is passed -via the URI option, the invalid input is ignored with a warning. When an -invalid value is passed directly to Client via a Ruby option, Client -construction fails with an error. - -In replica set deployments, this timeout should be set to exceed the typical -:manual:`replica set election times ` -in order for the driver to transparently handle primary changes. This timeout -also allows the application and the database to be started simultaneously; -the application will wait up to this much time for the database to become -available. - -If the application server is behind a reverse proxy, server selection timeout -should be lower than the request timeout configured on the reverse proxy (for -example, this applies to deployments on Heroku which has a fixed 30 second -timeout in the routing layer). In development this value can be lowered to -provide quicker failure when the server is not running. - -``socket_timeout`` ------------------- - -The number of seconds to wait for a socket read or write to complete on -regular (non-monitoring) connections. Default is no timeout. - -A value of 0 means no timeout. - -When an invalid value (e.g. a negative value or a non-numeric value) is passed -via the URI option, the invalid input is ignored with a warning. When an -invalid value is passed directly to Client via a Ruby option, Client -construction fails with an error. - -This timeout should take into account both network latency and operation -duration. For example, setting this timeout to 5 seconds will abort queries -taking more than 5 seconds to execute on the server with ``Mongo::Error::SocketTimeoutError``. - -Note that even though by default there is no socket timeout set, the -operating system may still time out read operations depending on its -configuration. The keepalive settings are intended to detect broken network -connections (as opposed to aborting operations simply because they take a -long time to execute). - -Note that if an operation is timed out by the driver due to exceeding the -``socket_timeout`` value, it is not aborted on the server. For this reason -it is recommended to use ``max_time_ms`` option for potentially long running -operations, as this will abort their execution on the server. - -This option does not apply to monitoring connections. - -``connect_timeout`` -------------------- - -The number of seconds to wait for a socket connection to be established to -a server. Defaults to 10. - -This timeout is also used as both connect timeout and socket timeout for -monitoring connections. - -When using a ``mongodb+srv://`` URI, this timeout is also used for SRV and TXT -DNS lookups. Note that the timeout applies per lookup; due to DNS suffix search -lists, multiple lookups may be performed as part of a single name resolution. - -``wait_queue_timeout`` -`````````````````````` - -The number of seconds to wait for a connection in the connection pool to -become available. Defaults to 10. - -As of driver version 2.11, this timeout should be set to a value at least -as large as ``connect_timeout`` because connection pool now fully establishes -connections prior to returning them, which may require several network -round trips. - -``max_time_ms`` ---------------- - -Specified as an option on a particular operation, the number of milliseconds -to allow the operation to execute for on the server. Not set by default. - -Consider using this option instead of a ``socket_timeout`` for potentially -long running operations to be interrupted on the server when they take too -long. - -``wtimeout`` ------------- - -The number of milliseconds to wait for a write to be acknowledged by the -number of servers specified in the write concern. Not set by default, which -instructs the server to apply its default. This option can be set globally -on the client or passed to individual operations under ``:write_concern``. - - -TLS Connections -=============== - -To connect to the MongoDB deployment using TLS: - -- Enable TLS connections in ``Mongo::Client``. -- Specify the client TLS certificate. -- Specify the CA certificate to verify the server's TLS certificate. - -.. note:: - - When using JRuby, ECDSA certificates are not currently supported. - -TLS vs SSL Option Names ------------------------ - -All MongoDB server versions supported by the Ruby driver (2.6 and higher) -only implement TLS. 2.6 and higher servers do not use SSL. - -For historical reasons, the Ruby option names pertaining to TLS configuration -use the ``ssl`` rather than the ``tls`` prefix. The next major version of -the Ruby driver (3.0) will use the ``tls`` prefix for Ruby option names. - -The URI option names use the ``tls`` prefix, with one exception: there is -a ``ssl`` URI option that is deprecated and equivalent to the ``tls`` URI -option. - -Enable TLS Connections ----------------------- - -TLS must be explicitly requested on the client side when the deployment -requires TLS connections - there is currently no automatic detection of -whether the deployment requires TLS. - -To request TLS connections, specify the following client options when -constructing a ``Mongo::Client``: - -- The ``:ssl`` Ruby option. -- The ``tls`` URI option. -- The ``ssl`` URI option (deprecated). - -Specify Client TLS Certificate ------------------------------- - -By default, MongoDB server will attempt to verify the connecting clients' -TLS certificates, which requires the clients to specify their TLS certificates -when connecting. This can be accomplished via: - -- The ``:ssl_cert``/``:ssl_cert_object``/``:ssl_cert_string`` and - ``:ssl_key``/``:ssl_key_object``/``:ssl_key_string``/``:ssl_key_pass_phrase`` - Ruby options. -- The ``tlsCertificateKeyFile`` URI option. - -When using the Ruby options, the client TLS certificate and the corresponding -private key may be provided separately. For example, if the certificate is -stored in ``client.crt`` and the private key is stored in ``client.key``, -a ``Mongo::Client`` may be constructed as follows: - -.. code-block:: ruby - - client = Mongo::Client.new(["localhost:27017"], - ssl: true, - ssl_cert: 'path/to/client.crt', - ssl_key: 'path/to/client.key', - ssl_ca_cert: 'path/to/ca.crt', - ) - -``ssl_cert``, ``ssl_cert_string``, ``ssl_key`` and ``ssl_key_string`` Ruby -options also permit the certificate and the key to be provided in the same -file or string, respectively. The files containing both certificate and -private key frequently have the ``.pem`` extension. When both certificate -and the private key are provided in the same file or string, both the -certifcate and the key options must be utilized, as follows: - -.. code-block:: ruby - - client = Mongo::Client.new(["localhost:27017"], - ssl: true, - ssl_cert: 'path/to/client.pem', - ssl_key: 'path/to/client.pem', - ssl_ca_cert: 'path/to/ca.crt', - ) - -When using the URI option, the certificate and the key must be stored in a -file and both must be stored in the same file. Example usage: - -.. code-block:: ruby - - client = Mongo::Client.new( - "mongodb://localhost:27017/?tls=true&tlsCertificateKeyFile=path%2fto%2fclient.pem&tlsCertificateKeyFile=path%2fto%2fca.crt") - -.. note:: - - URI option values must be properly URI escaped. This applies, for example, to - slashes in the paths. - - -.. _modifying-tls-context: - -Modifying ``SSLContext`` ------------------------- -It may be desirable to further configure TLS options in the driver, for example -by enabling or disabling certain ciphers. Currently, the Ruby driver does not -provide a way to do this when initializing a ``Mongo::Client``. - -However, the Ruby driver provides a way to set global "TLS context hooks" -- -these are user-provided ``Proc``s that will be invoked before any TLS socket -connection and can be used to modify the underlying ``OpenSSL::SSL::SSLContext`` -object used by the socket. - -To set the TLS context hooks, add ``Proc``s to the ``Mongo.tls_context_hooks`` -array. This should be done before creating any Mongo::Client instances. -For example, in a Rails application this code could be placed in an initializer. - -.. code-block:: ruby - - Mongo.tls_context_hooks.push( - Proc.new { |context| - context.ciphers = ["AES256-SHA"] - } - ) - - # Only the AES256-SHA cipher will be enabled from this point forward - -Every ``Proc`` in ``Mongo.tls_context_hooks`` will be passed an -``OpenSSL::SSL::SSLContext`` object as its sole argument. These ``Proc``s will -be executed sequentially during the creation of every ``Mongo::Socket::SSL`` object. - -It is possible to assign the entire array of hooks calling ``Mongo.tls_context_hooks=``, -but doing so will remove any previously assigned hooks. It is recommended to use -the ``Array#push`` or ``Array#unshift`` methods to add new hooks. - -It is also possible to remove hooks from ``Mongo.tls_context_hooks`` by storing -a reference to the Procs somewhere else in the application, and then using -``Array#delete_if`` to remove the desired hooks. - -.. warning:: - - TLS context hooks are global and will affect every instance of ``Mongo::Client``. - Any library that allows applications to enable these hooks should expose methods to - modify the hooks (which can be called by the application) rather than - automatically enabling the hooks when the library is loaded. - -Further information on configuring MongoDB server for TLS is available in the -:manual:`MongoDB manual `. - -Using Intermediate Certificates -``````````````````````````````` - -It is possible to use certificate chains for both the client and the server -certificates. When using chains, the certificate authority parameter should -be configured to contain the trusted root certificates only; the intermediate -certificates, if any, should be provided in the server or client certificates -by concatenating them after the leaf server and client certificates, respectively. - -``:ssl_cert`` and ``:ssl_cert_string`` Ruby options, as well as -``tlsCertificateKeyFile`` URI option, support certificate chains. -``:ssl_cert_object`` Ruby option, which takes an instance of -``OpenSSL::X509::Certificate``, does not support certificate chains. - -The Ruby driver performs strict X.509 certificate verification, which requires -that both of the following fields are set in the intermediate certificate(s): - -- X509v3 Basic Constraints: CA: TRUE -- Can sign certificates -- X509v3 Key Usage: Key Cert Sign -- Can sign certificates - -More information about these flags can be found `in this Stack Overflow question -`_. - -It is a common pitfall to concatenate intermediate certificates to the root -CA certificates passed in ``tlsCAFile`` / ``ssl_ca_cert`` options. By doing -so, the intermediate certificates are elevated to trusted status and are -themselves not verified against the actual CA root. More information on this -issue is available `in this mailing list post -`_. - -Specify CA Certificate ----------------------- - -The driver will attempt to verify the server's TLS certificate by default, and -will abort the connection if this verification fails. By default, the driver -will use the default system root certificate store as the trust anchor. -To specify the CA certificate that the server's certificate is signed with, -use: - -- The ``:ssl_ca_cert``/``:ssl_ca_cert_string``/``:ssl_ca_cert_object`` - Ruby options -- The ``tlsCAFile`` URI option. - -If any of these options are given, the server's certificate will be verified -only against the specified CA certificate and the default system root -certificate store will not be used. - -To not perform server TLS certificate verification, which is not -recommended, specify the ``ssl_verify: false`` Ruby option or the -``tlsInsecure=true`` URI option. - -Specifying Multiple CA Certificates -``````````````````````````````````` - -The ``:ssl_ca_cert`` Ruby option and ``tlsCAFile`` URI option can be used with -a file containing multiple certificates. All certificates thus referenced -will become trust anchors. - -The ``:ssl_ca_cert_object`` option takes an array of certificates, and thus -can also be used to add multiple certificates as certificate authorities. - -The ``:ssl_ca_cert_string`` option supports specifying only one CA certificate. - -.. warning:: - - Intermediate certificates must not be provided in files specified by the - CA certificate options. Doing so would elevate the intermediate certificates - to the status of root certificates, rather than verifying intermediate - certificates against the root certificates. - - If intermediate certificates need to be used, specify them as part of the - client or server TLS certificate files. - - -.. _ocsp-verification: - -OCSP Verification ------------------ - -If the certificate provided by the server contains an OCSP endpoint URI, -the driver will issue an OCSP request to the specified endpoint to verify the -validity of the certificate. - -The OCSP endpoint check may be disabled by setting the -``:ssl_verify_ocsp_endpoint`` Ruby option to ``false`` or by setting the -``tlsDisableOCSPEndpointCheck`` URI option to ``true`` when creating a client. - -.. note:: - - OCSP endpoint checking is not currently performed when running on JRuby, - since JRuby does not correctly expose the OCSP endpoint URI. - - -IPv4/IPv6 Connections -===================== - -When a client is constructed with ``localhost`` as the host name, it will -attempt an IPv4 connection only (i.e. if ``localhost`` resolves to -``127.0.0.1`` and ``::1``, the driver will only try to connect to -``127.0.0.1``). - -When a client is constructed with hostnames other than ``localhost``, it will -attempt both IPv4 and IPv6 connections depending on the addresses that the -hostnames resolve to. The driver respects the order in which ``getaddrinfo`` -returns the addresses, and will attempt to connect to them sequentially. -The first successful connection will be used. - -The driver does not currently implement the Happy Eyeballs algorithm. - - -TCP Keepalive Configuration -=========================== - -Where allowed by system configuration and the Ruby language runtime, -the driver enables TCP keepalive and, for each of the keepalive parameters -listed below, sets the value of the respective parameter to the specified -value if the system value can be determined and is higher than the -listed driver value: - -- ``tcp_keepalive_time``: 120 seconds -- ``tcp_keepalive_intvl``: 10 seconds -- ``tcp_keepalive_cnt``: 9 probes - -.. note:: - - As of JRuby 9.2.14.0, JRuby does not implement the APIs required to - set the keepalive parameters. When using JRuby, the driver will not be - able to set the keepalive parameters and the system configuration will - be in effect. - -To use lower values, or to change the parameters in environments like JRuby -that do not expose the required APIs, please adjust the parameters at the -system level as described in the `MongoDB Diagnostics FAQ keepalive section -`_. - - -Connection Pooling -================== - -``Mongo::Client`` instances have a connection pool per server that the client -is connected to. The pool creates connections on demand to support concurrent -MongoDB operations issued by the application. There is no thread-affinity -for connections. - -The client instance opens one additional connection per known server -for monitoring the server's state. - -The size of each connection pool is capped at ``max_pool_size``, which defaults -to 5. When a thread in the application begins an operation on MongoDB, it tries -to retrieve a connection from the pool to send that operation on. If there -are some connections available in the pool, it checks out a connection from -the pool and uses it for the operation. If there are no connections available -and the size of the pool is less than the ``max_pool_size``, a new connection -will be created. If all connections are in use and the pool has reached its -maximum size, the thread waits for a connection to be returned to the pool by -another thread. If ``max_pool_size`` is set to zero, there is no limit for the -maximum number of connections in the pool. - -Each pool has a limit on the number of connections that can be concurrently -connecting to a server. This limit is called ``max_connecting`` and defaults to -2. If the number of connections that are currently connecting to a server -reaches this limit, the pool will wait for a connection attempt to succeed or -fail before attempting to create a new connection. If your application -has a large number of threads, you may want to increase ``max_connecting`` to avoid -having threads wait for a connection to be established. - -The number of seconds the thread will wait for a connection to become available -is configurable. This setting, called ``wait_queue_timeout``, is defined in -seconds. If this timeout is reached, a ``Timeout::Error`` is raised. The -default is 1 second. - -As of driver version 2.11, the driver eagerly creates connections up to -``min_pool_size`` setting. Prior to driver version 2.11, the driver always -created connections on demand. In all versions of the driver, once a connection -is established, it will be kept in the pool by the driver as long as the pool -size does not exceed ``min_pool_size``. - -Note that, if ``min_pool_size`` is set to a value greater than zero, the -driver will establish that many connections to secondaries in replica set -deployments even if the application does not perform secondary reads. The -purpose of these connections is to provide faster failover when the primary -changes. - -Here is an example of estimating the number of connections a multi-threaded -application will open: A client connected to a 3-node replica set opens 3 -monitoring sockets. It also opens as many sockets as needed to support a -multi-threaded application's concurrent operations on each server, up to -``max_pool_size``. If the application only uses the primary (the default), -then only the primary connection pool grows and the total connections is at -most 8 (5 connections for the primary pool + 3 monitoring connections). -If the application uses a read preference to query the secondaries, their -pools also grow and the total connections can reach 18 (5 + 5 + 5 + 3). - -The default configuration for a ``Mongo::Client`` works for most applications: - -.. code-block:: ruby - - client = Mongo::Client.new(["localhost:27017"]) - -Create this client **once** for each process, and reuse it for all operations. -It is a common mistake to create a new client for each request, which is very -inefficient and not what the client was designed for. - -To support extremely high numbers of concurrent MongoDB operations within one -process, increase ``max_pool_size``: - -.. code-block:: ruby - - client = Mongo::Client.new(["localhost:27017"], max_pool_size: 200) - -To support extremely high numbers of threads that share the same client -within one process, increase ``max_connecting``: - -.. code-block:: ruby - - client = Mongo::Client.new(["localhost:27017"], max_pool_size: 200, max_connecting: 10) - - -Any number of threads are allowed to wait for connections to become available, -and they can wait the default (1 second) or the ``wait_queue_timeout`` setting: - -.. code-block:: ruby - - client = Mongo::Client.new(["localhost:27017"], wait_queue_timeout: 0.5) - -When ``#close`` is called on a client by any thread, all connections are closed: - -.. code-block:: ruby - - client.close - -Note that when creating a client using the `block syntax <#block-syntax>`_ described above, the client is automatically closed after the block finishes executing. - -.. _forking: - -Usage with Forking Servers -========================== - -.. note:: - - Applications using Mongoid should follow `Mongoid's "Usage with Forking Servers" documentation - `_. - The guidance below is provided for applications using the Ruby driver directly. - -When using the Mongo Ruby driver in a Web application with a forking web server -such as Puma, or when the application otherwise forks, each process (parent and child) -must have its own client connections. This is because: - -1. Background Ruby threads, such as those used by the Ruby MongoDB driver to - monitor connection state, are **not** transferred to the child process. -2. File descriptors like network sockets **are** shared between parent and - child processes, which can cause I/O conflicts. - -Regarding (1), if you do not restart the driver's monitoring threads -on the child process after forking, although your child may initially -appear to function correctly, you will eventually see -``Mongo::Error::NoServerAvailable`` exceptions if/when your MongoDB cluster -state changes, for example due to network errors or a maintenance event. - -Regarding (2), if a child process reuses the parent's file descriptors, you -will see ``Mongo::Error::SocketError`` errors with messages such as -``Errno::EPIPE: Broken pipe`` and ``EOFError: end of file reached``. - -When the Ruby driver is used in a web application, if possible, -we recommend to not create any ``Mongo::Client`` instances in the parent -process (prior to the workers being forked), and instead only create client -instances in the workers. - -Manually Handling Process Forks -------------------------------- - -Certain advanced use cases, such as `Puma's fork_worker option `_, -require ``Mongo::Client`` instances to be open in both the parent -and child processes. In this case, you must handle client -reconnection manually. - -To do this, immediately before forking, close any existing client connections -on your parent process. This will prevent the parent process from experiencing -network and monitoring errors due to the child's reuse of the parent's -file descriptors. - -.. code-block:: ruby - - # Immediately before fork - client.close - -.. note:: - - Calling ``Client#close`` does not disrupt database operations currently in-flight. - Clients will automatically reconnect when you perform new operations. - -Then, immediately after forking, reconnect your clients in the newly -forked child process, which will respawn the driver's monitoring threads. - -.. code-block:: ruby - - # Immediately after fork - client.reconnect - -Most web servers provide hooks that can be used by applications to -perform actions when the worker processes are forked. The recommended -hooks are: - -- For `Puma `_, - use ``before_fork`` and ``on_refork`` to close clients in - the parent process and ``on_worker_boot`` to reconnect in the - child processes. -- For `Unicorn `_, - ``before_fork`` to close clients in the parent process and - ``after_fork`` to reconnect clients in the child processes. -- For `Passenger `_, - ``starting_worker_process`` to reconnect clients in the child processes - (Passenger does not appear to have a pre-fork hook). - -Refer to `Mongoid's "Usage with Forking Servers" documentation -`_ -for further examples. - -Troubleshooting ---------------- - -The client's ``summary`` method returns the current state of the client, -including servers that the client is monitoring and their state. If any of -the servers are not being monitored, this is indicated by the ``NO-MONITORING`` -flag. - -A normally operating client will produce a summary similar to the following: - -.. code-block:: ruby - - client.summary - => "#>, - #>, - #>, - #]>>" - -A client that is missing background threads will produce a summary similar to -the following: - -.. code-block:: ruby - - client.summary - => "#>, - #>, - #>, - #]>>" - - -Retryable Reads -=============== - -The driver implements two mechanisms for retrying reads: modern and legacy. -As of driver version 2.9.0, the modern mechanism is used by default, and the -legacy mechanism is deprecated. - -Modern Retryable Reads ----------------------- - -When the modern mechanism is used, read operations are retried once in the -event of a network error, a "not master" error, or a "node is recovering" error. -The following operations are covered: - -- `Collection#find `_ - and related methods -- `Collection#aggregate `_ -- `Collection#count `_, - `Collection#count_documents `_ -- Change stream helpers: `Collection#watch `_, - `Database#watch `_, - `Client#watch `_ -- Enumeration commands: `Client#list_mongo_databases `_, - `Client#list_databases `_, - `Client#database_names `_, - `Database#collection_names `_, - `Database#collections `_, - `Database#list_collections `_, - `Collection#indexes `_ - -When an operation returns a cursor, only the initial read command can be retried. -``getMore`` operations on cursors are not retried by driver version 2.9.0 or -newer. Additionally, when a read operation is retried, a new server for the -operation is selected; this may result in the retry being sent to a different -server from the one which received the first read. - -The behavior of modern retryable reads is covered in detail by the -`retryable reads specification -`_. - -Note that the modern retryable reads can only be used with MongoDB 3.6 and -higher servers. When used with MongoDB 3.4 and lower servers, Ruby driver -version 2.9.0 and higher will not retry reads by default - the application -must explicitly request legacy retryable reads by setting the -``retry_reads: false`` client option or using ``retryReads=false`` URI option. - -Legacy Retryable Reads ----------------------- - -The legacy read retry behavior of the Ruby driver is available by setting the -``retry_reads: false`` client option or passing the ``retryReads=false`` URI -option to the client. - -When using legacy read retry behavior, the number of retries can be set -by specifying the ``max_read_retries`` client option. When using driver version -2.9.0 or higher, the set of operations which would be retried with legacy -retryable reads is identical to the one described above for modern retryable -reads. In older driver versions the behavior of legacy retryable writes was -different in that some of the operations were not retried. - -As of driver version 2.9.0, legacy read retries perform server selection prior -to retrying the operation, as modern retriable writes do. In older driver -versions read retries would be sent to the same server which the initial read -was sent to. - -Disabling Retryable Reads -------------------------- - -To disable all read retries, set the following client options: -``retry_reads: false, max_read_retries: 0``. - - -Retryable Writes -================ - -The driver implements two mechanisms for retrying writes: modern and legacy. -As of driver version 2.9.0, the modern mechanism is used by default on servers -that support it, and the legacy mechanism is deprecated and disabled by default -on all server versions. - -The following write methods used in day-to-day operations on collections -are subject to write retries: - -- ``collection#insert_one`` -- ``collection#update_one`` -- ``collection#delete_one`` -- ``collection#replace_one`` -- ``collection#find_one_and_update`` -- ``collection#find_one_and_replace`` -- ``collection#find_one_and_delete`` -- ``collection#bulk_write`` (for all single statement ops, i.e. not for ``update_many`` or ``delete_many``) - -Modern Retryable Writes ------------------------ - -The modern mechanism will retry failing writes once when the driver is -connected to a MongoDB 3.6 or higher replica set or a sharded cluster, -because they require an oplog on the serer. Modern mechanism will not retry -writes when the driver is connected to a standalone MongoDB server or -server versions 3.4 or older. - -The following errors will cause writes to be retried: - -- Network errors including timeouts -- "not master" errors -- "node is recovering" errors - -Prior to retrying the write the driver will perform server selection, -since the server that the original write was sent to is likely no longer -usable. - -Legacy Retryable Writes ------------------------ - -If modern retryable writes mechanism is disabled by setting the client -option ``retry_writes: false`` or by using the ``retryWrites=false`` -URI option, the driver will utilize the legacy retryable writes mechanism. -The legacy mechanism retries writes on the same operations as the modern -mechanism. By default the legacy mechanism retries once, like the modern -mechanism does; to change the number of retries, set ``:max_write_retries`` -client option. - -The difference between legacy and modern retry mechanisms is that the -legacy mechanism retries writes for a different set -of errors compared to the modern mechanism, and specifically does not -retry writes when a network timeout is encountered. - -Disabling Retryable Writes --------------------------- - -To disable all write retries, set the following client options: -``retry_writes: false, max_write_retries: 0``. - -Logging -======= - -You can either use the default global driver logger or set your own. To set your own: - -.. code-block:: ruby - - Mongo::Logger.logger = other_logger - -See the `Ruby Logger documentation `_ -for more information on the default logger API and available levels. - -Changing the Logger Level -------------------------- - -To change the logger level: - -.. code-block:: ruby - - Mongo::Logger.logger.level = Logger::WARN - -For more control, a logger can be passed to a client for per-client control over logging. - -.. code-block:: ruby - - my_logger = Logger.new(STDOUT) - Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test', :logger => my_logger ) - -Truncation ----------- - -The default logging truncates logs at 250 characters by default. To turn this off pass an -option to the client instance. - -.. code-block:: ruby - - Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test', :truncate_logs => false ) - - -.. _compression: - -Compression -=========== - -To use wire protocol compression, at least one compressor must be explicitly -requested using either the ``:compressors`` Ruby option or the ``compressors`` -URI option. If no compressors are explicitly requested, the driver will not -use compression, even if the required dependencies for one or more compressors -are present on the system. - -The driver chooses the first compressor of the ones requested that is also -supported by the server. The driver currently supports ``zstd``, ``snappy`` and -``zlib`` compressors. ``zstd`` compressor is recommended as it produces -the highest compression at the same CPU consumption compared to the other -compressors. For maximum server compatibility all three compressors can be -specified, e.g. as ``compressors: ["zstd", "snappy", "zlib"]``. - -``zstd`` compressor requires the -`zstd-ruby `_ library to be installed. -``snappy`` compressor requires the -`snappy `_ library to be installed. -If ``zstd`` or ``snappy`` compression is requested, and the respective -library is not loadable, the driver will raise an error during -``Mongo::Client`` creation. ``zlib`` compression requires the ``zlib`` -standard library extension to be present. - -The server support for various compressors is as follows: - -- ``zstd`` requires and is enabled by default in MongoDB 4.2 or higher. -- ``snappy`` requires MongoDB 3.4 or higher and is enabled by default in - MongoDB 3.6 or higher. -- ``zlib`` requires MongoDB 3.6 or higher and is enabled by default in - MongoDB 4.2 and higher. - - -.. _server-api-parameters: - -Server API Parameters -===================== - -Starting with MongoDB 5.0, applications can request that the server behaves -in accordance with a particular server API version. - -Server API parameters can be specified via the ``:server_api`` option to -``Client``. These parameters cannot be provided via a URI. - -Currently the only defined API version is ``"1"``. It can be requested -as follows: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost'], server_api: {version: "1"}) - -MongoDB server defines API versions as string values. For convenience, if the -API version is provided as an integer, the Ruby driver will stringify it and -send it to the server as a string: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost'], server_api: {version: 1}) - -Note that the server may define API versions that are not stringified integers. -Applications must not assume that all legal API versions can be expressed -as integers. - -When a particular API version is requested, operations which are part of that -API version behave as specified in that API version. Operations which are not -part of the specified API version behave as they would had the API version -not been specified at all. Operations whose behavior is subject to the -configured API version are commands including command arguments, queries, -aggregation pipeline stages and arguments. - -Applications may request that the server rejects all operations which are not -part of the specified API version by setting the ``:strict`` option: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost'], server_api: {version: "1", strict: true}) - -For example, since the ``:tailable`` option is not part of the server API -version 1, the following query would fail: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost'], server_api: {version: "1", strict: true}) - client['collection'].find({}, tailable: true) - # => Mongo::Error::OperationFailure (BSON field 'FindCommand.tailable' is not allowed with apiStrict:true. (323) (on localhost:27017, modern retry, attempt 1)) - -Applications may request that the server rejects all operations which are -deprecated in the specified API version by setting the ``:deprecation_errors`` -option: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost'], server_api: {version: "1", deprecation_errors: true}) - -Note that, as of this writing, there are no deprecated operations in API -version ``"1"``. - -If the server API parameters have been defined on a ``Client`` object, -they will be sent by the client as part of each [*]_ executed operation. - -.. [*] ``getMore`` commands and commands in transactions do not accept - API parameters, thus the driver will not send them in these cases. - -MongoDB servers prior to 5.0 do not recognize the API parameters, and will -produce a variety of errors should the application configure them. -The Ruby driver will send the API parameters to all MongoDB 3.6 and newer -servers, but the API parameters should only be configured when the application -is communicating with MongoDB 5.0 or newer servers. The API parameters -cannot be sent to MongoDB 3.4 and older servers that use the legacy wire -protocol; if an application configures the API parameters and connects to -MongoDB 3.4 or older servers, the driver will produce an error on every -operation. - -The :ref:`command helper ` permits the application to -send manually constructed commands to the server. If the client is not -configured with server API parameters, the command helper may be used to -issue commands with API parameters: - -.. code-block:: ruby - - client.database.command( - ping: 1, - apiVersion: "1", - apiStrict: false, - apiDeprecationErrors: false, - ) - -If the client is configured with server API parameters, the command helper -may not be used to issue commands with server API parameters. This includes the -case when the server API parameters provided to the client and to the -command helper are identical. If a client is constructed with server API -parameters, to send different API parameters (or none at all) a new client -must be constructed, either from scratch or using the ``with`` method. - -The server API parameters may only be specified on the client level. -They may not be specified on the database, collection, session, transaction -or individual operation level. - - -Development Configuration -========================= - -Driver's default configuration is suitable for production deployment. -In development, some settings can be adjusted to provide a better developer -experience. - -- ``:server_selection_timeout``: set this to a low value (e.g., ``1``) - if your MongoDB server is running locally and you start it manually. A low - server selection timeout will cause the driver to fail quickly when there is - no server running. - - -Production Configuration -======================== - -Please consider the following when deploying an application using the Ruby -driver in production: - -- As of driver version 2.11, the ``:min_pool_size`` client option is completely - respected - the driver will create that many connections to each server - identified as a standalone, primary or secondary. In previous driver versions - the driver created connections on demand. Applications using ``:min_pool_size`` - will see an increase in the number of idle connections to all servers as of - driver version 2.11, and especially to secondaries in replica set deployments - and to nodes in sharded clusters. -- If the application is reverse proxied to by another web server or a load - balancer, ``server_selection_timeout`` should generally be set to a lower - value than the reverse proxy's read timeout. For exampe, `Heroku request timeout - `_ is 30 seconds and - is not configurable; if deploying a Ruby application using MongoDB to Heroku, - consider lowering server selection timeout to 20 or 15 seconds. - - -.. _feature-flags: - -Feature Flags -============= - -The following is a list of feature flags that the Mongo Ruby Driver provides: - -.. list-table:: - :header-rows: 1 - :widths: 30 60 - - * - Flag - - Description - * - ``broken_view_aggregate`` - - When this flag is off, an aggregation done on a view will be executed over - the documents included in that view, instead of all documents in the - collection. When this flag is on, the view fiter is ignored and the - aggregation is applied over all of the documents in the view's - collection. (default: true) - * - ``broken_view_options`` - - When this flag is turned off, the view options will be correctly - propagated to the ``aggregate``, ``count``, ``count_documents``, - ``distinct``, and ``estimated_document_count`` mehods. When this flag is - switched on, the view options will be ignored in those methods. - (default: true) - * - ``validate_update_replace`` - - Validates that there are no atomic operators (those that start with $) - in the root of a replacement document, and that there are only atomic - operators at the root of an update document. If this feature flag is on, - an error will be raised on an invalid update or replacement document, - if not, a warning will be output to the logs. (default: false) - -These feature flags can be set directly on the ``Mongo`` module or using -the ``options`` method: - -.. code:: - - Mongo.validate_update_replace = true - Mongo.options = { validate_update_replace: true } diff --git a/source/reference/crud-operations.txt b/source/reference/crud-operations.txt deleted file mode 100644 index 86e11ddbf..000000000 --- a/source/reference/crud-operations.txt +++ /dev/null @@ -1,1006 +0,0 @@ -*************** -CRUD Operations -*************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -CRUD operations are those which deal with creating, reading, updating, -and deleting documents. - -Key-value Pair Notation -======================= - -Key-value pairs appear in many different contexts in the MongoDB Ruby -driver, and there are some quirks of syntax with regard to how they can -be notated which depend on which version of Ruby you're using. - -When constructing a document, the following syntax is acceptable and -correct for Ruby version 1.9 and later: - -.. code-block:: javascript - - document = { name: "Harriet", age: 36 } - -If you're using Ruby version 2.2 or greater, you can optionally enclose -your keys in quotes. - -.. code-block:: javascript - - document = { "name": "Harriet", "age": 36 } - -If you need to use any MongoDB operator which begins with ``$``, -such as ``$set``, ``$gte``, or ``$near``, you must enclose it in -quotes. If you're using Ruby version 2.2 or greater, you can notate -it as follows: - -.. code-block:: ruby - - collection.update_one({ name: "Harriet" }, { "$set": { age: 42 } }) - -If you're using an earlier version of Ruby, use the hashrocket symbol: - -.. code-block:: ruby - - collection.update_one({ name: "Harriet" }, { "$set" => { age: 42 } }) - -Quoted strings and hashrockets for key-value pairs will work with any -version of Ruby: - -.. code-block:: ruby - - collection.update_one({ "name" => "Harriet" }, { "$set" => { age: 42 } }) - - -Creating Documents -================== - -To insert documents into a collection, select a -collection on the client and call ``insert_one`` or ``insert_many``. - -Insert operations return a ``Mongo::Operation::Result`` object which -gives you information about the insert itself. - -On MongoDB 2.6 and later, if the insert fails, an exception is -raised, because write commands are used. - -On MongoDB 2.4, an exception is only raised if the insert fails and the -:manual:`write concern` is 1 or higher. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - result = client[:artists].insert_one( { :name => 'FKA Twigs' } ) - result.n # returns 1, because 1 document was inserted. - - result = client[:artists].insert_many([ - { :name => 'Flying Lotus' }, - { :name => 'Aphex Twin' } - ]) - result.inserted_count # returns 2, because 2 documents were inserted. - -.. _specify-decimal128: - -Specify a ``Decimal128`` number -------------------------------- - -.. versionadded:: 3.4 - -:manual:`Decimal128` is a -:doc:`BSON datatype ` -that employs 128-bit decimal-based floating-point values capable -of emulating decimal rounding with exact precision. This -functionality is intended for applications that handle -:manual:`monetary data `, -such as financial and tax computations. - -The following example inserts a value of type ``Decimal128`` into -the ``price`` field of a collection named ``inventory``: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - - price = BSON::Decimal128.new("428.79") - client[:inventory].insert_one({ "_id" => 1, - "item" => "26 inch monitor", - "price" => price }) - -The above operation produces the following document: - -.. code-block:: javascript - - { "_id" : 1, "item" : "26 inch monitor", "price" : NumberDecimal("428.79") } - -You can also create a ``Decimal128`` object from a Ruby ``BigDecimal`` -object, or with ``Decimal128.from_string()``. - -.. code-block:: ruby - - big_decimal = BigDecimal.new(428.79, 5) - price = BSON::Decimal128.new(big_decimal) - # => BSON::Decimal128('428.79') - - price = BSON::Decimal128.from_string("428.79") - # => BSON::Decimal128('428.79') - -Query Cache -=========== - -The Ruby driver provides a query cache. When enabled, the query cache will -save the results of find and aggregation queries and return those saved results -when the same queries are performed again. - -To read more about the query cache, visit the -:ref:`query cache tutorial `. - -Reading -======= - -The Ruby driver provides a fluent interface for queries using the ``find`` -method on the collection. Various options are available -to the ``find`` method. - -The query is lazily executed against the server only when iterating the -results - at that point the query is dispatched and a ``Mongo::Cursor`` is -returned. - -To find all documents for a given filter, call ``find`` with the -query: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - client[:artists].find(:name => 'Flying Lotus').each do |document| - #=> Yields a BSON::Document. - end - -To query nested documents, specify the keys in nested order using dot -notation. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - client[:artists].find("records.releaseYear": 2008).each do |document| - #=> Yields a BSON::Document. - end - - -Legacy ``$query`` Syntax ------------------------- - -*This usage is deprecated.* - -The ``find`` method allows providing the query and the options using the -legacy ``$query`` syntax in the first parameter: - -.. code-block:: ruby - - collection.find(:'$query' => {name: 'Mr. Smith'}) - # Equivalent to: - collection.find(name: 'Mr. Smith') - - collection.find(:'$query' => {name: 'Mr. Smith'}, :'$sort' => {age: 1}) - # Equivalent to: - collection.find(name: 'Mr. Smith').sort(age: 1) - -When the query is executed against MongoDB 3.2 or newer, the driver will -use the protocol appropriate for the server version in question, automatically -converting the query as needed to either a find command or an OP_MSG payload. - - -.. _query-options: - -Query Options -------------- - -To add options to a query, chain the appropriate methods after the -``find`` method. Note that the underlying object, the ``Mongo::Collection::View``, -is immutable and a new object will be returned after each method call. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - documents = client[:artists].find(:name => 'Flying Lotus').skip(10).limit(10) - documents.each do |document| - #=> Yields a BSON::Document. - end - -The following is a full list of the available options that can be added -when querying and their corresponding methods as examples. - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``allow_disk_use`` - - When set to true, the server can write temporary data to disk while - executing the find operation. This option is only available on MongoDB - server versions 4.4 and newer. - * - ``allow_partial_results`` - - For use with sharded clusters. If a shard is down, allows the query - to return results from the shards that are up, potentially only getting - a portion of the results. - * - ``batch_size(Integer)`` - - Specifies the size of each batch of documents the cursor will return on - each ``GETMORE`` operation. - * - ``comment(String)`` - - Adds a comment to the query. - - * - ``explain(**opts)`` - - Returns the query plan for the query. Pass the :manual:`explain options - ` via the keyword arguments using symbol - keys. - - .. code-block:: ruby - - # All server versions - default explain behavior - client[:artists].find.explain - - # MongoDB 3.0 and newer - client[:artists].find.explain(verbosity: :query_planner) - client[:artists].find.explain(verbosity: :execution_stats) - client[:artists].find.explain(verbosity: :all_plans_execution) - - # Alternative syntax using camel case - client[:artists].find.explain(verbosity: "queryPlanner") - client[:artists].find.explain(verbosity: "executionStats") - client[:artists].find.explain(verbosity: "allPlansExecution") - - # MongoDB 2.6 - client[:artists].find.explain(verbose: true) - - The explain operation supports ``:session`` and ``:read`` - (for read preference) options. To specify these options for a single - explain operation, they must be given to the ``find`` method as - follows: - - .. code-block:: ruby - - client[:artists].find({}, session: session).explain - - client[:artists].find({}, read: {mode: :secondary_preferred}).explain - - If the read preference option is specified on the client or on the - collection, it will be passed to the explain operation: - - .. code-block:: ruby - - client[:artists, read: {mode: :secondary_preferred}].find.explain - - Note that the session option is not accepted when creating a collection - object. - - The explain command does not support passing the read concern option. - If the read concern is specifed on the client or collection level, or - if the read concern is specified as a find option, it will NOT be passed - by the driver to the explain command. - - The information returned by the server for the ``explain`` command - varies with server version and deployment topology. The driver's - ``explain`` method returns whatever the server provided. - - **The return value of the ``explain`` method is not part of the driver's - public API and depends on the server version and deployment topology.** - - * - ``hint(Hash)`` - - Provides the query with an - :manual:`index hint` to use. - * - ``let(Hash)`` - - Mapping of :manual:`variables` - to use in the query. - * - ``limit(Integer)`` - - Limits the number of returned documents to the provided value. - * - ``max_scan(Integer)`` - - Sets the maximum number of documents to scan if a full collection scan - would be performed. Deprecated as of MongoDB server version 4.0. - * - ``max_time_ms(Integer)`` - - The maximum amount of time to allow the query to run, in milliseconds. - * - ``no_cursor_timeout`` - - MongoDB automatically closes inactive cursors after a period of 10 - minutes. Call this for cursors to remain open indefinitely on the server. - * - ``projection(Hash)`` - - Specifies the fields to include or exclude from the results. - - .. code-block:: ruby - - client[:artists].find.projection(:name => 1) - - * - ``read(Hash)`` - - Changes the read preference for this query only. - - .. code-block:: ruby - - client[:artists].find.read(:mode => :secondary_preferred) - - * - ``session(Session)`` - - The session to use. - * - ``show_disk_loc(Boolean)`` - - Tells the results to also include the location of the documents on disk. - * - ``skip(Integer)`` - - Skip the provided number of documents in the results. - * - ``snapshot`` - - Execute the query in snapshot mode. Deprecated as of MongoDB server version 4.0. - * - ``sort(Hash)`` - - Specifies sort criteria for the query. - - .. code-block:: ruby - - client[:artists].find.sort(:name => -1) - - -Additional Query Operations ---------------------------- - -``count_documents`` - Get the total number of documents matching a filter, or the total number - of documents in a collection. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - client[:artists].find(:name => 'Flying Lotus').count_documents - -``estimated_document_count`` - Get an approximate number of documents in the collection. - - Note that unlike ``count_documents``, ``estimated_document_count`` does not - accept a filter. - - The ``count`` server command is used to implement ``estimated_document_count``. - More information can be found via `Count: Behavior `_. - - Due to an oversight in MongoDB versions 5.0.0-5.0.7, the ``count`` command, - which ``estimated_document_count`` uses in its implementation, was not - included in v1 of the Stable API. Therefore, users of the Stable API with - ``estimated_document_count`` are recommended to upgrade their server version to - 5.0.8+ or set ``api_strict: false`` to avoid encountering errors. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - client[:artists].estimated_document_count - -``count`` - Get an approximate number of documents matching a filter, or an approximate - number of documents in the collection. - - *Deprecated:* The ``count`` method is deprecated and does not work in - transactions. Please use ``count_documents`` to obtain an exact count of - documents potentially matching a filter or ``estimated_document_count`` - to obtain an approximate number of documents in the collection. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - client[:artists].find(:name => 'Flying Lotus').count - -``distinct`` - Filters out documents with duplicate values. Equivalent to the SQL - ``distinct`` clause. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - - client[:artists].find.distinct(:name ) - -Tailable Cursors ----------------- - -For capped collections you may use a :manual:`tailable cursor -` that remains open -after the client exhausts the results in the initial cursor. The -following code example shows how a tailable cursor might be used: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - client[:artists].drop - client[:artists, capped: true, size: 512].create - - result = client[:artists].insert_many([ - { :name => 'Flying Lotus' }, - { :name => 'Aphex Twin' } - ]) - - enum = client[:artists].find({}, cursor_type: :tailable_await).to_enum - - while true - doc = enum.next - # do something - sleep(1) - end - - -Read Concern ------------- - -Read concern can be :ref:`set on the client ` -or on the collection: - -.. code-block:: ruby - - client = Mongo::Client.new(['localhost:14420'], database: 'music', - read_concern: {level: :local}) - - client['collection'].find.to_a - - collection = client['collection', read_concern: {level: :majority}] - - collection.find.to_a - -The driver does not currently support setting read concern on an individual -query. - -Read concern can be specified when :ref:`starting a transaction -`. When a transaction is active, :manual:`any read concern -specified on the client or on the collection is ignored -`. - -When using the generic command helper, the read concern can be specified as -part of the command: - -.. code-block:: ruby - - client.database.command(dbStats: 1, readConcern: {level: :majority}) - - -.. _read-preference: - -Read Preference ---------------- - -Read preference determines the candidate :manual:`replica set` -members to which a query or command can be sent. They consist of a **mode** -specified as a symbol, an array of hashes known as **tag_sets**, -the ``hedge`` option, which is a Hash specifying hedged read behavior, and two -timing options: **local_threshold** and **server_selection_timeout**. - -``local_threshold`` - Defines the upper limit in seconds of the latency window - between the nearest server and suitable servers to which an operation may be sent. - The default is 15 milliseconds, or 0.015 seconds. - -``server_selection_timeout`` - Defines how long to block for server selection - before throwing an exception. The default is 30,000 milliseconds, or 30 seconds. - -.. note:: - - Read preference does not apply to Standalone deployments. When a client - is connected to a Standalone deployment, any application-specified read - preference is ignored. - -For more information on the algorithm used to select a server, please -refer to the `Server Selection documentation, available on GitHub -`_. - -Read preference can be set as an option on the client or passed an -option when a command is run on a database: - -.. code-block:: ruby - - # Set read preference on a client, used for all operations - client = Mongo::Client.new([ '127.0.0.1:27017' ], - read: { mode: :secondary, - tag_sets: [ { 'dc' => 'nyc' } ] - } ) - - # Set read preference for a given command - client.database.command( { dbStats: 1 }, read: { mode: secondary, - tag_sets: [ { 'dc' => 'nyc' } ] } ) - -Read preference can also be set for specific operations on a collection -using the ``with`` method: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - artists.with(:read => { :mode => :primary_preferred }).find.to_a - -Mode ----- - -There are five possible read preference modes: ``:primary``, ``:secondary``, -``:primary_preferred``, ``:secondary_preferred`` and``:nearest``. -Please see the :manual:`read preference documentation in the MongoDB Manual -` for an explanation of the modes. - -.. note:: - - When a client is directly connected to a server using the ``:direct_connection`` - Ruby option or the ``directConnection`` URI option, read preference mode - is automatically set to ``:primary_preferred`` to permit read operations - against secondaries. If the application specified a ``:primary`` read - preference mode, the mode is automatically converted to ``:primary_preferred``. - If another read preference mode is specified, it is passed to the server - unchanged. - -Tag sets --------- - -The ``tag_sets`` parameter is an ordered list of tag sets used to -restrict the eligibility of servers for selection, such as for data -center awareness. Please see the :manual:`read preference documentation in -the MongoDB Manual ` for an explanation of tag sets. - - -A read preference tag set (T) matches a server tag set (S) – or -equivalently a server tag set (S) matches a read preference tag set -(T) — if T is a subset of S. - -For example, the read preference tag set ``{ dc: 'ny', rack: 2 }`` -matches a secondary server with tag set ``{ dc: 'ny', rack: 2, size: 'large' }``. - -A tag set that is an empty document matches any server, because -the empty tag set is a subset of any tag set. This means the default -``tag_sets`` parameter ``[{}]`` matches all servers. - -Hedge ------ - -The ``hedge`` parameter is a Hash that specifies whether the server should use -hedged reads. With hedged reads, sharded clusters can route read operations to -two replica set members and return results from the first respondent. - -The ``hedge`` option may only be specified on non-primary read preferences. It -must be provided as Hash with the key ``enabled`` set to ``true`` or ``false``. - -.. code-block:: ruby - - client = Mongo::Client.new( - [ '127.0.0.1:27017' ], - read: { mode: :secondary, hedge: { enabled: true } }, - ) - -See the :manual:`MongoDB Manual ` for -more information about hedged reads. - -.. note:: - - The ``hedge`` option is only available on MongoDB server versions 4.4 and newer. - Attempting to use this option on older server versions will result in an error. - -.. _updating: - -Updating -======== - -Updating documents is possible by executing a single or -multiple update, or by using the ``$findAndModify`` command. - -``update_one`` - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - - result = artists.find(:name => 'Goldie').update_one("$inc" => { :plays => 1 } ) - result.n # Returns 1. - - result = artists.update_one( { :name => 'Goldie' }, { "$inc" => { :plays => 1 } } ) - result.n # Returns 1. - -``update_many`` - -.. code-block:: ruby - - result = artists.find(:label => 'Hospital').update_many( "$inc" => { :plays => 1 } ) - result.modified_count # Returns the number of documents that were updated. - - result = artists.update_many( { :label => 'Hospital' }, { "$inc" => { :plays => 1 } } ) - result.modified_count # Returns the number of documents that were updated. - -``replace_one`` - -.. code-block:: ruby - - result = artists.find(:name => 'Aphex Twin').replace_one(:name => 'Richard James') - result.modified_count # Returns 1. - - result = artists.replace_one( { :name => 'Aphex Twin' }, { :name => 'Richard James' } ) - result.modified_count # Returns 1. - -To update documents and return a document via ``$findAndModify``, use one of -the three provided helpers: ``find_one_and_delete``, ``find_one_and_replace``, -or ``find_one_and_update``. You can opt to return the document before or after -the modification occurs. - -``find_one_and_delete`` - -.. code-block:: ruby - - client = Mongo::Client.new( [ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - - artists.find(:name => 'José James').find_one_and_delete # Returns the document. - -``find_one_and_replace`` - -.. code-block:: ruby - - doc = artists.find(:name => 'José James').find_one_and_replace(:name => 'José') - doc # Return the document before the update. - - doc = artists.find_one_and_replace({ :name => 'José James' }, { :name => 'José' }) - doc # Return the document before the update. - - doc = artists.find(:name => 'José James'). - find_one_and_replace( { :name => 'José' }, :return_document => :after ) - doc # Return the document after the update. - -``find_one_and_update`` - -.. code-block:: ruby - - doc = artists.find(:name => 'José James'). - find_one_and_update( '$set' => { :name => 'José' } ) - doc # Return the document before the update. - - doc = artists.find_one_and_update( { :name => 'José James' }, { '$set' => { :name => 'José' } } ) - doc # Return the document before the update. - -Update Options --------------- - -To add options to an update command, specify them as key-value pairs in the options -Hash argument. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - - artists.indexes.create_one(name: 1) - - # Force the server to use the name index to perform this operation - result = artists.update_one( - { :name => 'Goldie' }, - { "$inc" => { :plays => 1 } }, - { hint: { name: 1 } } - ) - result.n # Returns 1. - -The following is a list of the options that can be added to update operations, -including ``update_one``, ``update_many``, ``replace_one``, -``find_one_and_delete``, ``find_one_and_update``, and ``find_one_and_replace``. - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``array_filters`` - - An Array of filter documents that determine which array elements to modify - for an update operation on an array field. - * - ``bypass_document_validation`` - - Whether to skip document-level validation before writing the document. - * - ``collation`` - - Specifies a set of rules to use when comparing strings complying with the - conventions of a particular language. - * - ``hint`` - - The index to use for this operation. May be specified as a Hash - (e.g. { _id: 1 }) or as a String (e.g. "_id_"). Supported on MongoDB - server versions 4.2 and newer for ``update_one``, ``update_many``, and - ``replace_one`` commands, and on server versions 4.4 and newer for - ``find_one_and_delete``, ``find_one_and_update``, and ``find_one_and_replace`` - commands. - * - ``let(Hash)`` - - Mapping of :manual:`variables` - to use for this operation. - * - ``projection`` - - The fields to exclude or include in the operation result (only available - on ``find_one_and_delete``, ``find_one_and_replace``, and - ``find_one_and_update`` commands). - * - ``return_document`` - - A symbol specifying whether to return the updated document as it was before or - after the update. Potential values are ``:before`` or ``:after``. - (Only available on ``find_one_and_update`` and ``find_one_and_replace`` commands). - * - ``sort`` - - How to sort the results of a find and modify command. Specified as a Hash - key-value pair, where the key is the name of the field to sort by, and - the value is either 1 or -1, specifying a sort in ascending or descending - order (only available on ``find_one_and_delete``, ``find_one_and_replace``, - and ``find_one_and_update`` commands). - * - ``session`` - - The session to use for this operation. - * - ``upsert`` - - Whether to upsert if the document doesn't exist. Cannot be used on - ``find_one_and_delete`` operation. - -For more information about update options, see the MongoDB server documentation -on the following commands: - -- :manual:`update ` -- :manual:`findAndModify ` - -Deleting -======== - -``delete_one`` - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - - result = artists.find(:name => 'Björk').delete_one - result.deleted_count # Returns 1. - - result = artists.delete_one(:name => 'Björk') - result.deleted_count # Returns 1. - -``delete_many`` - -.. code-block:: ruby - - result = artists.find(:label => 'Mute').delete_many - result.deleted_count # Returns the number deleted. - - result = artists.delete_many(:label => 'Mute') - result.deleted_count # Returns the number deleted. - -Delete Options --------------- - -To add options to a delete command, specify them as key-value pairs in the -options Hash argument. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - artists = client[:artists] - - artists.indexes.create_one(name: 1) - - # Force the server to use the name index to perform this operation - result = artists.find(:name => 'Björk').delete_one(hint: { name: 1 }) - result.deleted_count # Returns 1. - -The following is a full list of the available options that can be added -to ``delete_one`` and ``delete_many`` operations. - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``collation`` - - Specifies a set of rules to use when comparing strings complying with the - conventions of a particular language. - * - ``hint`` - - The index to use for this operation. May be specified as a Hash - (e.g. { _id: 1 }) or as a String (e.g. "_id_"). Supported on MongoDB - server versions 4.4 and newer. - * - ``let(Hash)`` - - Mapping of :manual:`variables` - to use for this operation. - * - ``session`` - - The session to use for this operation. - -For more information about update options, see the MongoDB server documentation -on the :manual:`delete command. ` - -.. _write-concern: - -Write Concern -============= - -All write operations in MongoDB are executed with a write concern which is -the level of acknowledgment requested from MongoDB for the particular write. -More information about write concerns in general is available in the -`MongoDB manual `_. - -The Ruby driver supports specifying write concern on client, collection, -session (for transactions on that session), transaction, GridFS bucket -and write stream levels, as well as when manually issuing commands via -``Database#command``. - -As of driver version 2.10, all driver objects accepting write concerns do so -through the ``:write_concern`` option, which should be given a hash with -the write concern options. Usage of the ``:write`` option is deprecated. -In driver versions 2.9 and below, client, collection and GridFS objects -took write concern options in the ``:write`` option with session and -transaction objects employing the ``:write_concern`` option. - -Below are some examples of passing write concerns to client and collection -objects. The ``:write_concern`` option can be provided when constructing -new client and collection objects, or to the ``#with`` methods. - -GridFS examples are provided on the :ref:`GridFS ` page. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 2}) - alt_client = client.with(write_concern: {w: :majority}) - - collection = client[:artists, write_concern: {w: 3}] - alt_collection = collection.with(write_concern: {w: :majority}) - - # Uses w: 3 - collection.insert_one({name: 'SUN Project'}) - # Uses w: :majority - alt_collection.insert_one({name: 'SUN Project'}) - -Driver versions 2.9 and earlier accepted write concerns on client and collection -level via the ``:write`` option. This usage continues to be supported for -backwards compatibility, but is deprecated: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write: {w: 2}) - alt_client = client.with(write: {w: :majority}) - - collection = client[:artists, write: {w: 3}] - alt_collection = collection.with(write: {w: :majority}) - -If both ``:write`` and ``:write_concern`` options are provided, their -values must be identical or an exception will be raised: - -.. code-block:: ruby - - # OK - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 3}, write: {w: 3}) - - # Error - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 3}, write: {w: :majority}) - -When ``#with`` methods are used to alter the options on a client or collection, -the last provided option wins in case of naming differences: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 2}) - alt_client = client.with(write: {w: 3}) - - alt_client.options[:write] - # => {"w"=>3} - - alt_client.options[:write_concern] - # => nil - -When using transactions, write concern is only sent to the server in -``commit_transaction`` and ``abort_transaction`` operations -per the `transactions specification -`_. -Write concern may be set via the ``:write_concern`` option in a -``with_transaction`` or ``start_transaction`` call, or via -``default_transaction_options`` option on a session object. -If neither of these is set, write concern of the client is used; note -that transactions ignore write concerns of collections that are involved -in their operations. Note that when setting the write concern as a -transaction option, the ``:write`` option is not recognized by any -driver version. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 2}) - collection = client[:artists, write_concern: {w: :majority}] - - - session = client.start_session - session.with_transaction do - collection.insert_one({test: 1}, session: session) - - # Uses w: 2 when committing - end - - - session = client.start_session(default_transaction_options: - {write_concern: {w: 3}) - ) - session.with_transaction do - collection.insert_one({test: 1}, session: session) - - # Uses w: 3 when committing - end - - - session = client.start_session - session.with_transaction(write_concern: {w: 3}) do - collection.insert_one({test: 1}, session: session) - - # Uses w: 3 when committing - end - -When write concerns are inherited, inheritance applies to the entire -write concern hash rather than individual elements. For example, ``j: true`` -is not inherited in the following case: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 1, j: true}) - collection = client[:artists, write_concern: {w: 2}] - - collection.write_concern.options - # => #2}> - -Although CRUD operations accept an options hash, they currently do not -recognize the ``:write_concern`` option: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music', - write_concern: {w: 2}) - collection = client[:artists, write_concern: {w: :majority}] - - # Still uses w: :majority - collection.insert_one({name: 'SUN Project'}, write_concern: {w: 1}) - -The easiest workaround for this is to use ``#with`` to obtain a new collection -instance with the desired write concern: - -.. code-block:: ruby - - # Uses w: 1 - collection.with(write_concern: {w: 1}).insert_one(name: 'SUN Project') - -Write concern can also be manually specified in ``Database#command``: - -.. code-block:: ruby - - client.database.command(create: 'foo-collection', writeConcern: {w: :majority}) - -Note that writeConcern here is part of the operation rather than options, -and the syntax is the camel case one that MongoDB server recognizes, not the -underscore one that Ruby driver uses. - -.. _dots-dollars-in-field-names: - -Field Names with Dots/Periods (.) and Dollar Signs ($) -====================================================== - -Starting in Mongo Ruby Driver version 2.18.0, the ability to work with fields -that begin with dollar signs ($) and fields with dots/periods (.) in them is available. -In Driver version 2.17.0 and earlier, any attempt to work with dotted or dollared -fields would result in an ``IllegalKey`` error being raised. See the MongoDB docs -on `Field Names with Periods (.) and Dollar Signs ($) `_ -for more information on working with these types of fields. - -A Note about the BSON Symbol type -================================= - -Because the BSON specification deprecated the BSON symbol type, the ``bson`` gem -will serialize Ruby symbols into BSON strings when used on its own. However, in -order to maintain backwards compatibility with older datasets, the Ruby driver -overrides this behavior to serialize Ruby symbols as BSON symbols. This is -necessary to be able to specify queries for documents which contain BSON -symbols as fields. Despite this, new documents with symbol type fields should -*not* be stored in the database; instead, use string fields. - -To override default behavior and configure the driver to encode symbol values -as strings, include the following code snippet in your project: - -.. code-block:: ruby - - class Symbol - def bson_type - BSON::String::BSON_TYPE - end - end diff --git a/source/reference/database-tasks.txt b/source/reference/database-tasks.txt deleted file mode 100644 index 1806f2f9c..000000000 --- a/source/reference/database-tasks.txt +++ /dev/null @@ -1,63 +0,0 @@ -********* -Databases -********* - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -The driver provides various helpers on database objects for executing -commands, getting collection lists, and administrative tasks. - - -List Collections -================ - -To get a list of collections or collection names for a database, use -``collections`` and ``collection_names``, respectively. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') - database = client.database - - database.collections # Returns an array of Collection objects. - database.collection_names # Returns an array of collection names as strings. - - -.. _arbitrary-commands: - -Arbitrary Comands -================= - -To execute any command on the database, use the ``command`` method. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') - database = client.database - - result = database.command(:ping => 1) - result.first # Returns the BSON::Document returned from the server. - -.. note:: - - Specifying server API version as a client option and also specifying - any of the respective command parameters to the ``command`` method - (i.e. the ``apiVersion``, ``apiStrict`` and ``apiDeprecationErrors`` - command parameters) at the same time is not allowed and will produce an error. - - -Drop Database -============= - -To drop a database, use the ``drop`` method. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - client.database.drop diff --git a/source/reference/driver-compatibility.txt b/source/reference/driver-compatibility.txt deleted file mode 100644 index 0c43487bd..000000000 --- a/source/reference/driver-compatibility.txt +++ /dev/null @@ -1,730 +0,0 @@ -.. _compatibility: - -******************** -Driver Compatibility -******************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - - -.. _mongodb-compatibility: - -MongoDB Compatibility -===================== - -The following compatibility table specifies the recommended -version(s) of the MongoDB Ruby driver for use with a specific version of -MongoDB. Except when indicated, the specified driver versions expose or -take advantage of the features added in the corresponding server versions. - -MongoDB server releases are generally backwards compatible, meaning a -particular version of the driver will generally work with newer versions of -the server but may not take advantage of the functionality released in the -newer version of the server. - -.. important:: - - MongoDB ensures compatibility between the MongoDB Server and the drivers - for three years after the server version's end of life (EOL) date. To learn - more about the MongoDB release and EOL dates, see - `MongoDB Software Lifecycle Schedules `__. - -The first column lists the driver versions.“D” in other columns means support -for that MongoDB version is deprecated and will be removed in a future driver -version. - -.. list-table:: - :header-rows: 1 - :stub-columns: 1 - :class: compatibility-large no-padding - - * - Ruby Driver - - MongoDB 8.0 - - MongoDB 7.0 - - MongoDB 6.0 - - MongoDB 5.0 - - MongoDB 4.4 - - MongoDB 4.2 - - MongoDB 4.0 - - MongoDB 3.6 - - MongoDB 3.4 - - MongoDB 3.2 - - MongoDB 3.0 - - MongoDB 2.6 - - * - 2.21 - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - * - 2.20 - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - * - 2.19 - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - * - 2.18 - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - * - 2.17 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - * - 2.16 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - D - - D - - D - - D - - * - 2.15 - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.14 - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.13 - - - - - - - - - - |checkmark| [#ocsp]_ - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.12 - - - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.11 - - - - - - - - - - - - |checkmark| [#client-side-encryption]_ - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.10 - - - - - - - - - - - - |checkmark| [#srv-polling]_ [#client-side-encryption]_ - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.9 - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.8 - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.7 - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.6 - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - * - 2.5 - - - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - -.. [#ocsp] OCSP verification is implemented as of driver version 2.14. - -.. [#srv-polling] Polling of SRV records in sharded topologies is - implemented as of driver version 2.11. - -.. [#client-side-encryption] Client-side encryption is implemented as of - driver version 2.12. - -The driver does not support older versions of MongoDB. - - -.. _ruby-compatibility: - -Ruby Compatibility -================== - -The following compatibility table specifies the versions of Ruby supported -by the various versions of the MongoDB Ruby driver. - -The first column lists the driver versions. "D" in a column means support -for that Ruby version is deprecated. - -.. list-table:: - :header-rows: 1 - :stub-columns: 1 - :class: compatibility-large no-padding - - * - Ruby Driver - - Ruby 3.2 - - Ruby 3.1 - - Ruby 3.0 - - Ruby 2.7 - - Ruby 2.6 - - Ruby 2.5 - - Ruby 2.4 - - Ruby 2.3 - - Ruby 2.2 - - Ruby 2.1 - - Ruby 2.0 - - Ruby 1.9 - - JRuby 9.4 - - JRuby 9.3 - - JRuby 9.2 - - JRuby 9.1 - - * - 2.20 to 2.21 - - |checkmark| - - |checkmark| - - |checkmark| - - D - - - - - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - D - - - - * - 2.19 - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - D - - D - - - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - - - * - 2.18 - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - - - - - - - |checkmark| - - |checkmark| - - - - * - 2.17 - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - - - - - - - - - |checkmark| - - - - * - 2.16 - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - D - - - - - - - - - - - - - - - - |checkmark| - - - - * - 2.15 - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - D - - D - - - - - - - - - - - - - - |checkmark| - - - - * - 2.14 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - D - - D - - - - - - - - - - - - - - |checkmark| - - - - * - 2.13 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - - - - - |checkmark| - - - - * - 2.12 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - - - - - |checkmark| - - - - * - 2.11 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - - - - - - - - - |checkmark| - - - - * - 2.10 - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - D - - D - - D - - D - - - - - - |checkmark| - - |checkmark| - - * - 2.9 - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - D - - D - - D - - D - - - - - - |checkmark| - - |checkmark| - - * - 2.8 - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - |checkmark| - - |checkmark| - - * - 2.7 - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - |checkmark| - - |checkmark| - - * - 2.6 - - - - - - - - - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - |checkmark| - - - - - - |checkmark| - - |checkmark| - -The driver does not support older versions of Ruby. - - -Rails/ActiveSupport Compatibility -================================= - -The Ruby driver does not depend on ActiveSupport. However, when an -application uses ActiveSupport or Ruby on Rails, -it must load the driver's ActiveSupport -compatibility code for behavior like time serialization to be correct: - -.. code-block:: ruby - - require 'mongo' - require 'mongo/active_support' - -Applications using Mongoid 7.0.6 or newer do not need to explicitly load -the driver's ActiveSupport code, since Mongoid automatically does so. - - -.. _tls-compatibility: - -TLS/SSL Compatibility -===================== - -The driver will utilize the protocols supported by the underlying Ruby -``openssl`` extension. In turn, the ``openssl`` extension generally exposes -the functionality that exists in the operating system's OpenSSL library. - -Industry best practices, and some regulations, require the use of TLS 1.1 -or newer. Some operating systems or versions may not provide an OpenSSL version -new enough to support these TLS versions. - -Users of macOS older than 10.13 (High Sierra) will need to install Ruby from -`rvm`_, `homebrew`_, `macports`_, or another similar source. See -`installation information on ruby-lang.org`_ for more options. - -Users of Linux or other non-macOS Unix can check their OpenSSL version -as follows: - -.. code-block:: sh - - openssl version - -If the version number is less than 1.0.1 support for TLS 1.1 or newer is -not available. Contact your operating system vendor for a solution or upgrade -to a newer distribution. - -You can check your Ruby interpreter by executing the following command: - -.. code-block:: sh - - ruby -e "require 'net/http'; require 'json'; puts JSON.parse(Net::HTTP.get(URI('https://www.howsmyssl.com/a/check')))['tls_version']" - -You should see "TLS 1.X" where X is >= 1. - -You can read more about TLS versions and their security implications `here -`_. - -.. _rvm: https://rvm.io/ -.. _homebrew: https://brew.sh/ -.. _macports: https://www.macports.org/ -.. _installation information on ruby-lang.org: https://www.ruby-lang.org/en/documentation/installation - - -Atlas Compatibility -=================== - -`Driver version 2.6.1 `_ -or higher is recommended when using MongoDB Atlas, as this version has -significant performance improvements when TLS connections are used, and all -Atlas connections use TLS. - -When running on JRuby and connecting to Atlas Free Tier, -`driver version 2.6.4 `_ -or higher and Java 8 or higher are required. - - -``mongo_kerberos`` Compatibility -================================ - -The following compatibility table specifies the version(s) of the -:ref:`mongo_kerberos library ` to use with a specific version of -the driver. - -.. list-table:: - :header-rows: 1 - :stub-columns: 1 - :class: compatibility-large no-padding - - * - Ruby Driver - - mongo_kerberos |nbsp| 2.1 - - * - 2.7 - 2.19 - - |checkmark| - - -JRuby and Kerberos Authentication -================================= - -If the ``mongo_kerberos`` gem is used for Kerberos authentication with JRuby, the the JVM system -property "sun.security.jgss.native" to will be set to "true" in order to facilitate the use of -the system cache of TGTs (e.g. TGTs obtained with ``kinit``). Any other use of the JGSS library -will also be affected by this setting, meaning any TGTs in the system cache will be available for -obtaining Kerberos credentials as well. - -.. include:: /includes/unicode-checkmark.rst -.. include:: /includes/unicode-nbsp.rst - - -JRuby and TLS Connections -========================= - -Due to JRuby limitations: - -- ECDSA server certificates are not supported. -- OCSP endpoint checking is not performed. diff --git a/source/reference/gridfs.txt b/source/reference/gridfs.txt deleted file mode 100644 index 756750b18..000000000 --- a/source/reference/gridfs.txt +++ /dev/null @@ -1,325 +0,0 @@ -.. _gridfs: - -****** -GridFS -****** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -The driver provides a clean and simple interface to work with storage of -chunked files in the database, also known as the pattern "GridFS". The API allows you to either -work with Grid::File objects or with read and write streams. - -Creating a GridFS object ("Grid::FSBucket") -=========================================== - -You can create a GridFS object by calling ``fs`` on a database, with optional -arguments. ``fs`` returns a ``Grid::FSBucket`` object. - -The options that ``Grid::FSBucket`` supports are: - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``:bucket_name`` - - The name of the GridFS Bucket. Default is ``fs``. - * - ``:fs_name`` - - The name of the GridFS Bucket. Takes precedence over ``bucket_name``. - Default is ``fs``. - * - ``:chunk_size`` - - Specifies the size of each file chunk in the database. - * - ``:write_concern`` - - The write concern to use when uploading files. Please see the - :ref:`Write Concern ` section under CRUD operations - for how to work with write concerns. - * - ``:write`` - - Deprecated. Same as ``:write_concern``. - * - ``:read`` - - The read preference to use when downloading files. - - -For example, you can create a GridFS bucket object with a particular read preference: - -.. code-block:: ruby - - fs_bucket = database.fs( read: { mode: :secondary } ) - - -Working with write streams -========================== - -To upload a file to GridFS using a write stream, you can either open a stream -and write to it directly or write the entire contents of an ``IO`` object to -GridFS all at once. - -To open an upload stream and write to it: - -.. code-block:: ruby - - File.open('/path/to/my-file.txt', 'r') do |file| - fs_bucket.open_upload_stream('my-file.txt') do |stream| - stream.write(file) - end - end - -To upload the entire contents of an IO object in one call: - -.. code-block:: ruby - - File.open('/path/to/my-file.txt', 'r') do |file| - fs_bucket.upload_from_stream('my-file.txt', file) - end - -Write streams support the following options: - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``:chunk_size`` - - Specifies the size of each file chunk in the database. - * - ``:write_concern`` - - The write concern to use when uploading files. Please see the - :ref:`Write Concern ` section under CRUD operations - for how to work with write concerns. - * - ``:write`` - - Deprecated. Same as ``:write_concern``. - -The options can be provided as the last argument to the write stream methods: - -.. code-block:: ruby - - fs_bucket.open_upload_stream('my-file.txt', write_concern: {w: 2}) do |stream| - stream.write_concern - # => #2}> - - # ... - end - - fs_bucket.upload_from_stream('my-file.txt', file, write_concern: {w: 2}) - - -Working with read streams -========================= - -To download a file from GridFS using a read stream, you can either open a -read stream and read from it directly or download the entire file all at once. - -To open a download stream and read from it: - -.. code-block:: ruby - - File.open('/path/to/my-output-file.txt', 'w') do |file| - fs_bucket.open_download_stream(file_id) do |stream| - file.write(stream.read) - end - end - -To download the file all at once and write it to an IO object: - -.. code-block:: ruby - - File.open('/path/to/my-output-file.txt', 'w') do |file| - fs_bucket.download_from_stream(file_id, file) - end - -You can also download a file specified by a name and (optionally) -revision number. Revision numbers are used to distinguish between files -sharing the same name, ordered by date of upload. The revision number passed to -``open_download_stream_by_name`` can be positive or negative. - -.. code-block:: ruby - - File.open('/path/to/my-output-file.txt', 'w') do |file| - fs_bucket.open_download_stream_by_name('my-file.txt', revision: -2) do |stream| - file.write(stream.read) - end - end - -To download the entire contents of the file specified by name and (optionally) -revision number: - -.. code-block:: ruby - - File.open('/path/to/my-output-file.txt', 'w') do |file| - fs_bucket.download_to_stream_by_name('my-file.txt', file, revision: -2) - end - -Read streams support the following options: - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``:read`` - - The read preference to use when downloading files. - -Some, but not all, of the read methods listed above pass these options to -the underlying read streams. Please consult the API documentation for each -method to determine whether it supports a particular option. - -Finding file metadata -===================== - -You can retrieve documents containing metadata about files in the GridFS files collection. - -.. code-block:: ruby - - fs_bucket.find(filename: 'my-file.txt') - -Deleting files -============== - -You can delete a file by id. - -.. code-block:: ruby - - fs_bucket.delete(file_id) - - -Working with Grid::File objects -=============================== - -This object can be used to wrap a file to be inserted into the database using -GridFS and the object that is retrieved. - -To create a file with raw data: - -.. code-block:: ruby - - file = Mongo::Grid::File.new('I am a file', :filename => 'new-file.txt') - -To create a file from a Ruby ``File`` object: - -.. code-block:: ruby - - file = File.open('/path/to/my-file.txt') - grid_file = Mongo::Grid::File.new(file.read, :filename => File.basename(file.path)) - -To change file options such as chunk size, pass options to the constructor: - -.. code-block:: ruby - - file = File.open('/path/to/my-file.txt') - grid_file = Mongo::Grid::File.new( - file.read, - :filename => File.basename(file.path), - :chunk_size => 1024 - ) - -The following is a full list of the available options that files support. - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``:chunk_size`` - - Sets the size of each file chunk in the database. - * - ``:content_type`` - - Set a content type for the file. - * - ``:filename`` (Required) - - The file name. - * - ``:upload_date`` - - The date the file was uploaded (stored). - - -Inserting Files -=============== - -Files can be inserted into the database one at a time. File chunks are inserted -by default into the ``fs.chunks`` collection and file metadata is inserted into the -``fs.files`` collection. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - file = Mongo::Grid::File.new('I am a file', :filename => 'new-file.txt') - - client.database.fs.insert_one(file) - -To insert into collections with a name prefix other than ``fs``, access the -filesystem with a ``:fs_name`` option. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - file = Mongo::Grid::File.new('I am a file', :filename => 'new-file.txt') - - client.database.fs(:fs_name => 'grid').insert_one(file) - -When the driver is inserting the first file into a bucket, it will attempt to create the required -indexes on ``files`` and ``chunks`` collections. The required indexes are as follows: - -.. code-block:: ruby - - # files collection - { :filename => 1, :uploadDate => 1 } - - # chunks collection - { :files_id => 1, :n => 1 }, { :unique => true } - -.. note:: - - If the indexes cannot be created, such as due to the current user lacking the permissions to do so, - the file insert will be aborted. If the application does not have permissions to create indexes, - a database administrator must create the required indexes ahead of time. - - If the bucket already has files, the driver will not attempt to create indexes, even if they are - missing and the current user has permissions to create them. In this case a database administrator - should create the needed indexes as soon as possible to ensure data integrity. - -Files can also be streamed as an alternative to a direct insert. - -.. code-block:: ruby - - client.database.fs.open_upload_stream(filename) do |stream| - stream.write(file) - end - -Finding Files -============= - -To retrieve a file from the database, call ``find_one`` with the appropriate filter. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - client.database.fs.find_one(:filename => 'new-file.txt') # Returns a Mongo::Grid::File - -Files can also be streamed as an alternative to a direct find. - -.. code-block:: ruby - - client.database.fs.open_download_stream(file_id) do |stream| - io.write(stream.read) - end - - fs.download_to_stream(file_id, io) - - -Deleting Files -============== - -To delete a file, pass the file object to ``delete_one``. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music') - fs = client.database.fs - file = fs.find_one(:filename => 'new-file.txt') - fs.delete_one(file) diff --git a/source/reference/in-use-encryption.txt b/source/reference/in-use-encryption.txt deleted file mode 100644 index 82406b867..000000000 --- a/source/reference/in-use-encryption.txt +++ /dev/null @@ -1,17 +0,0 @@ -.. _in-use-encryption: - -***************** -In-Use Encryption -***************** - -.. default-domain:: mongodb - -.. toctree:: - :titlesonly: - - Queryable Encryption - Client-Side Encryption - -This section describes the different encryption methods in use by the Ruby -driver for MongoDB. - \ No newline at end of file diff --git a/source/reference/in-use-encryption/client-side-encryption.txt b/source/reference/in-use-encryption/client-side-encryption.txt deleted file mode 100644 index ff5852413..000000000 --- a/source/reference/in-use-encryption/client-side-encryption.txt +++ /dev/null @@ -1,900 +0,0 @@ -.. _client-side-encryption: - -********************** -Client-Side Encryption -********************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -New in MongoDB 4.2, client-side encryption allows administrators and developers -to encrypt specific fields in MongoDB documents before inserting them into the -database. - -With client-side encryption, developers can encrypt fields client-side without -any server-side configuration or directives. Client-side encryption supports -workloads where applications must guarantee that unauthorized parties, -including server administrators, cannot read the encrypted data. - -.. warning:: - - Enabling Client Side Encryption reduces the maximum write batch size and may - have a negative performance impact. - -Installation -============ - -Client-side encryption requires the installation of additional packages. - -libmongocrypt -~~~~~~~~~~~~~ - -Libmongocrypt is a C library used by the driver for client-side encryption. -To use client-side encryption, you must install the libmongocrypt library -on the machine running your Ruby program. - -The easiest way to install this library is to install `libmongocrypt-helper -`_ as follows: - -.. code-block:: bash - - gem install libmongocrypt-helper --pre - -The version number of libmongocrypt-helper is the version of included -libmongocrypt followed by the release number, e.g. 1.3.2.r1. -Because Ruby considers any letters in the version number to indicate a -pre-release version, the ``--pre`` flag is needed. - -The driver will automatically load libmongocrypt-helper - no further -configuration is needed. - -.. note:: - - libmongocrypt-helper currently only supports Linux operating systems. - -Alternatively you can download a pre-built binary distribution of libmongocrypt -and manually place the required shared object on your computer, as follows: - -- Download a tarball of all libmongocrypt variations `here `_. - -- Extract the file you downloaded. You will see a list of directories, each - corresponding to an operating system. Find the directory that matches your - operating system and open it. - -- Inside that folder, open the folder called "nocrypto." In either the - lib or lb64 folder, you will find the libmongocrypt.so or - libmongocrypt.dylib or libmongocrypt.dll file, depending on your OS. - -- Move that file to wherever you want to keep it on your machine. You may delete - the other files included in the tarball. - -To build the binary from source: - -- Follow the instructions in the README in the `libmongocrypt GitHub repo `_. - -Once you have the libmongocrypt binary on your machine, specify the path to the -binary using the LIBMONGOCRYPT_PATH environment variable. It is recommended that -you add this variable to your rc files. For example: - -.. code-block:: bash - - export LIBMONGOCRYPT_PATH=/path/to/your/libmongocrypt.so - -.. note:: - - The binary referenced in this section can be a pre-release version of - libmongocrypt which is not recommended for production environments. - -Automatic Encryption Shared Library -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The Automatic Encryption Shared Library is a dynamic library that enables your -client application to perform automatic encryption. It is only required for -automatic encryption, which is an enterprise-only feature. -If you only intend to use explicit encryption, you may skip this step. -The Automatic Encryption Shared Library provides the same functionality as -mongocryptd (see below), but does not require you to spawn another process -to perform automatic encryption. - -For installation instructions, see -`the MongoDB manual `_. - -When automatic encryption is enabled, libmongocrypt will look for the shared -library in the system library path, or try to load the library from a particular -place if ``:crypt_shared_lib_path`` option is provided when creating a client. -If the library can be loaded, then the driver will not try to spawn mongocryptd daemon. -The daemon will be still spawned if the shared library cannot be found. - -It is also possible to require using the shared library by passing -``crypt_shared_lib_required: true`` option when creating a client. In this case, -an error will be raised if the shared library cannot be loaded. - -.. note:: - All ``Mongo::Client`` objects in the same process should use the same setting - ``:crypt_shared_lib_path``, as it is an error to load more that one crypt_shared dynamic library simultaneously in a single operating system process. - -mongocryptd -~~~~~~~~~~~ - -Mongocryptd is an alternative to the Automatic Encryption Shared Library. -Mongocryptd is a daemon that tells the driver which fields to encrypt in a -given operation. It is only required for automatic encryption, which is an -enterprise-only feature. If you only intend to use explicit encryption, you may -skip this step. - -Mongocryptd comes pre-packaged with enterprise builds of the MongoDB server -(versions 4.2 and newer). For installation instructions, see the -`MongoDB manual `_. - -In order to configure mongocryptd (for example, which port it listens on or the -path used to spawn the daemon), it is necessary to pass different options to the -``Mongo::Client`` performing automatic encryption. See the :ref:`:extra_options ` -section of this tutorial for more information. - -Automatic Encryption -==================== - -Automatic encryption is a feature that allows users to configure a -``Mongo::Client`` instance to always encrypt specific document fields when -performing database operations. Once the ``Mongo::Client`` is configured, it -will automatically encrypt any field that requires encryption before writing -it to the database, and it will automatically decrypt those fields when reading -them. - -Client-side encryption implements envelope encryption, which is the practice of -encrypting data with a data key, which is in turn encrypted using a master key. -Thus, using client-side encryption with MongoDB involves three main steps: - -1. Create a master key -2. Create a data key (and encrypt it using the master key) -3. Encrypt data using the data key - -The example below demonstrates how to follow these steps with a local master key -in order to perform automatic encryption. - -.. note:: - - Automatic encryption is an enterprise only feature that only applies to - operations on a collection. Automatic encryption is not supported for operations - on a database or view, and operations that are not bypassed will result in - error (see `Auto Encryption Allow-List `_ - ). To bypass automatic encryption for all operations, set ``bypass_auto_encryption`` - to true in ``auto_encryption_options``. - -.. note:: - - Automatic encryption requires the authenticated user to have the listCollections privilege action. - -.. note:: - - When using Automatic Encryption, and a ``Mongo::Client`` instance that is configured - with ``:auto_encryption_options`` has a limited connection pool size - (i.e a non-zero ``:max_pool_size``, which is the default setting), a separate - internal ``Mongo::Client`` instance is created if any of the following are true: - - - ``auto_encryption_options[:key_vault_client]`` is not passed. - - ``auto_encryption_options[:bypass_automatic_encryption]`` is not passed or false. - - If an internal ``Mongo::Client`` instance is created, it is configured with - the same options as the parent client except ``:min_pool_size`` is set to 0 - and ``:auto_encryption_options`` is omitted. - -.. code-block:: ruby - - require 'mongo' - - ##################################### - # Step 1: Create a local master key # - ##################################### - - # A local master key is a 96-byte binary blob. - local_master_key = SecureRandom.random_bytes(96) - # => "\xB2\xBE\x8EN\xD4\x14\xC2\x13\xC3..." - - ############################# - # Step 2: Create a data key # - ############################# - - kms_providers = { - local: { - key: local_master_key - } - } - - # The key vault client is a Mongo::Client instance connected to the collection - # that will store your data keys. - key_vault_client = Mongo::Client.new(['localhost:27017']) - - # Use an instance of Mongo::ClientEncryption to create a new data key - client_encryption = Mongo::ClientEncryption.new( - key_vault_client, - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers - ) - - data_key_id = client_encryption.create_data_key('local') - # => - - ####################################################### - # Step 3: Configure Mongo::Client for auto-encryption # - ####################################################### - - # Create a schema map, which tells the Mongo::Client which fields to encrypt - schema_map = { - 'encryption_db.encryption_coll': { - properties: { - encrypted_field: { - encrypt: { - keyId: [data_key_id], - bsonType: "string", - algorithm: "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - } - }, - bsonType: "object" - } - } - - # Configure the client for automatic encryption - client = Mongo::Client.new( - ['localhost:27017'], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers, - schema_map: schema_map - }, - database: 'encryption_db', - ) - - collection = client['encryption_coll'] - collection.drop # Make sure there is no data in the collection - - # The string "sensitive data" will be encrypted and stored in the database - # as ciphertext - collection.insert_one(encrypted_field: 'sensitive data') - - # The data is decrypted before being returned to the user - collection.find(encrypted_field: 'sensitive data').first['encrypted_field'] - # => "sensitive data" - - # A client with no auto_encryption_options is unable to decrypt the data - client_no_encryption = Mongo::Client.new( - ['localhost:27017'], - database: 'encryption_db', - ) - client_no_encryption['encryption_coll'].find.first['encrypted_field'] - # => - -The example above demonstrates using automatic encryption with a local master key. -For more information about using other key management services to create a -master key and create data keys, see the following sections of this tutorial: - -- :ref:`Creating A Master Key ` -- :ref:`Creating A Data Key ` - -Explicit Encryption -=================== - -Explicit encryption is a feature that allows users to encrypt and decrypt -individual pieces of data such as strings, integers, or symbols. Explicit -encryption is a community feature and does not require an enterprise build -of the MongoDB server to use. To perform all explicit encryption and decryption -operations, use an instance of the ClientEncryption class. - -Client-side encryption implements envelope encryption, which is the practice of -encrypting data with a data key, which is in turn encrypted using a master key. -Thus, using client-side encryption with MongoDB involves three main steps: - -1. Create a master key -2. Create a data key (and encrypt it using the master key) -3. Encrypt data using the data key - -The example below demonstrates how to follow these steps with a local master key -in order to perform explicit encryption. - -.. code-block:: ruby - - require 'mongo' - - ##################################### - # Step 1: Create a local master key # - ##################################### - - # A local master key is a 96-byte binary blob. - local_master_key = SecureRandom.random_bytes(96) - # => "\xB2\xBE\x8EN\xD4\x14\xC2\x13\xC3..." - - ############################# - # Step 2: Create a data key # - ############################# - - kms_providers = { - local: { - key: local_master_key - } - } - - # The key vault client is a Mongo::Client instance connected to the collection - # that will store your data keys. - key_vault_client = Mongo::Client.new(['localhost:27017']) - - # Use an instance of Mongo::ClientEncryption to create a new data key - client_encryption = Mongo::ClientEncryption.new( - key_vault_client, - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers - ) - - data_key_id = client_encryption.create_data_key('local') - # => - - ##################################################### - # Step 3: Encrypt a string with explicit encryption # - ##################################################### - - # The value to encrypt - value = 'sensitive data' - - # Encrypt the value - encrypted_value = client_encryption.encrypt( - 'sensitive data', - { - key_id: data_key_id, - algorithm: "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - ) - - # Create the client you will use to read and write the data to MongoDB - client = Mongo::Client.new( - ['localhost:27017'], - database: 'encryption_db', - ) - collection = client['encryption_coll'] - collection.drop # Make sure there is no data in the collection - - # Insert the encrypted value into the collection - collection.insert_one(encrypted_field: encrypted_value) - - # Use the client to read the encrypted value from the database, then - # use the ClientEncryption object to decrypt it - find_result = collection.find(encrypted_field: encrypted_value).first['encrypted_field'] - # => (the find result is encrypted) - - unencrypted_result = client_encryption.decrypt(find_result) - # => "sensitive data" - -The example above demonstrates using explicit encryption with a local master key. -For more information about using other key management services to create a -master key and create data keys, see the following sections of this tutorial: - -- :ref:`Creating A Master Key ` -- :ref:`Creating A Data Key ` - -.. _creating-a-master-key: - -Creating a Master Key -===================== -Both automatic encryption and explicit encryption require an encryption master key. -This master key is used to encrypt data keys, which are in turn used to encrypt -user data. The master key can be generated in one of two ways: by creating a -local key, or by creating a key in a key management service. Currently -Ruby driver supports AWS Key Management Service (KMS), Azure Key Vault, and -Google Cloud Key Management (GCP KMS). - -.. _local-master-key: - -Local Master Key -~~~~~~~~~~~~~~~~ - -A local master key is a 96-byte binary string. It should be persisted -on your machine as an environment variable or in a text file. - -.. warning:: - - Using a local master key is insecure and not recommended if you plan - to use client-side encryption in production. - -Run the following code to generate a local master key using Ruby: - -.. code-block:: ruby - - local_master_key = SecureRandom.random_bytes(96) - # => "\xB2\xBE\x8EN\xD4\x14\xC2\x13\xC3..." (a binary blob) - -.. _remote-master-key: - -Remote Master Key -~~~~~~~~~~~~~~~~~ -It is recommended that you use a remote Key Management Service to create and -store your master key. To do so, follow steps of the -`"Set up a Remote Master Key" `_ -in the MongoDB Client-Side Encryption documentation. - -For more information about creating a master key, see the -`Create a Master Key `_ -section of the MongoDB manual. - -.. _creating-a-data-key: - -Creating a Data Key -=================== - -Once you have created a master key, create a data key by calling the -``#create_data_key`` method on an instance of the ``Mongo::ClientEncryption`` -class. This method generates a new data key and inserts it into the key vault -collection, which is the MongoDB collection in which you choose to store your -data keys. The ``#create_data_key`` method returns id of the newly-created -data key in the form of a BSON::Binary object. - -Create a Data Key Using a Local Master Key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you have created a local master key, you may use it to generate a new data -key with the following code snippet: - -.. warning:: - - Using a local master key is insecure and not recommended if you plan - to use client-side encryption in production. - -.. code-block:: ruby - - # A Mongo::Client instance that will be used to connect to the key vault - # collection. Replace the server address with the address of the MongoDB - # server where you would like to store your key vault collection. - key_vault_client = Mongo::Client.new(['localhost:27017']) - - client_encryption = Mongo::ClientEncryption.new( - key_vault_client, - # Replace with the database and collection names for your key vault collection - key_vault_namespace: 'encryption.__keyVault', - kms_providers: { - local: { - key: local_master_key - } - } - ) - - data_key_id = client_encryption.create_data_key('local') - # => - -See the :ref:`Local Master Key ` section for more information -about generating a new local master key. - -Create a Data Key Using a Remote Master Key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you have created an AWS KMS master key, note the access key ID and the secret access -key of the IAM user that has permissions to use the key. Additionally, note -the AWS region and the Amazon Resource Number (ARN) of your master key. You will -use that information to generate a data key. - -If you have created an Azure master key, note the tenant id, the client id, and -the client secret of the application that has permissions to use the key. -Additionally, note the key name, key version (if any), and key vault endpoint -for your master key. You will use that information to generate a data key. - -If you have created a GCP KMS master key, note the email and the private key, -and the client secret of the application that has permissions to use the key. -Additionally, note the project id, location, key ring, key name, and -key version (if any) for your master key. You will use that information to -generate a data key. - -Please note that GCP private key can be in different formats. Ruby driver -supports DER encoded RSA private key as base64 encoded string. For MRI Ruby -the driver additionally support PEM encoded RSA private key. - -If you have created a master key using a Key Management Interoperability -Protocol (KMIP) compatible key management server, note the server host and port, -and key id. You will use that information to generate a data key. You may also -need certificate authority certificate(s), as well as and your client -certificate and private key to authenticate to KMIP server. - -.. code-block:: ruby - - # A Mongo::Client instance that will be used to connect to the key vault - # collection. Replace the server address with the address of the MongoDB - # server where you would like to store your key vault collection. - key_vault_client = Mongo::Client.new(['localhost:27017']) - - client_encryption = Mongo::ClientEncryption.new( - key_vault_client, - # Replace with the database and collection names for your key vault collection - key_vault_namespace: 'encryption.__keyVault', - kms_providers: { - aws: { - access_key_id: 'IAM-ACCESS-KEY-ID', - secret_access_key: 'IAM-SECRET-ACCESS-KEY' - }, - azure: { - tenant_id: 'AZURE-TENANT-ID', - client_id: 'AZURE-CLIENT-ID', - client_secret: 'AZURE-CLIENT-SECRET' - }, - gcp: { - email: 'GCP-EMAIL', - # :private_key value should be GCP private key as base64 encoded - # DER RSA private key, or PEM RSA private key, if you are using MRI Ruby. - private_key: 'GCP-PRIVATE-KEY', - }, - kmip: { - # KMIP server endpoint may include port. - endpoint: 'KMIP-SERVER-HOST' - }, - # TLS options to connect to KMIP server. - kms_tls_options: { - kmip: { - ssl_ca_cert: 'PATH-TO-CA-FILE', - ssl_cert: 'PATH-TO-CLIENT-CERT-FILE', - ssl_key: 'PATH-TO-CLIENT-KEY-FILE' - } - } - } - ) - - aws_data_key_id = client_encryption.create_data_key( - 'aws', - { - master_key: { - region: 'REGION-OF-YOUR-MASTER-KEY', - key: 'ARN-OF-YOUR-MASTER-KEY' - } - } - ) - # => - - azure_data_key_id = client_encryption.create_data_key( - 'azure', - { - master_key: { - key_vault_endpoint: 'AZURE-KEY-VAULT-ENDPOINT', - key_name: 'AZURE-KEY-NAME' - } - } - ) - # => - - gcp_data_key_id = client_encryption.create_data_key( - 'gcp', - { - master_key: { - project_id: 'GCP-PROJECT-ID', - location: 'GCP-LOCATION', - key_ring: 'GCP-KEY-RING', - key_name: 'GCP-KEY-NAME', - } - } - ) - # => - -See the :ref:`Remote Master Key ` section of this tutorial -for more information about generating a new remote master key and finding the -information you need to create data keys. - -For more information about creating a data key, see the -`Create a Data Encryption Key `_ -section of the MongoDB manual. - -For a list of possible KMS TLS options -see :manual:`create client reference `. -``Mongo::ClientEncryption`` constructor accepts same ``ssl_`` options as -``Mongo::Client``. - -Auto-Encryption Options -======================= - -Automatic encryption can be configured on a ``Mongo::Client`` using the -``auto_encryption_options`` option ``Hash``. This section provides an overview -of the fields inside ``auto_encryption_options`` and explains how to choose their -values. - -``:key_vault_client`` -~~~~~~~~~~~~~~~~~~~~~ - -The key vault client is a ``Mongo::Client`` instance that will be used to connect -to the MongoDB collection containing your encryption data keys. For example, if -your key vault was hosted on a MongoDB instance at ``localhost:30000``: - -.. code-block:: ruby - - key_vault_client = Mongo::Client.new(['localhost:30000']) - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - key_vault_client: key_vault_client, - # ... (Fill in other options here) - } - ) - -If your data keys are stored in the same MongoDB instance that stores your encrypted -data, you may leave this option blank, and the top-level client will be used -to insert and fetch data keys. - -``:key_vault_namespace`` -~~~~~~~~~~~~~~~~~~~~~~~~ - -The key vault namespace is a ``String`` in the format ``"database_name.collection_name"``, -where ``database_name`` and ``collection_name`` are the name of the database and -collection in which you would like to store your data keys. For example, if your data -keys are stored in the ``encryption`` database in the ``__keyVault`` collection: - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - # ... (Fill in other options here) - } - ) - -There is no default key vault namespace, and this option must be provided. - -``:kms_providers`` -~~~~~~~~~~~~~~~~~~ - -A Hash that contains KMS provider names as keys, and provider options as values. - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: { - aws: { - access_key_id: 'IAM-ACCESS-KEY-ID', - secret_access_key: 'IAM-SECRET-ACCESS-KEY' - }, - azure: { - tenant_id: 'AZURE-TENANT-ID', - client_id: 'AZURE-CLIENT-ID', - client_secret: 'AZURE-CLIENT-SECRET' - }, - gcp: { - email: 'GCP-EMAIL', - # :private_key value should be GCP private key as base64 encoded - # DER RSA private key, or PEM RSA private key, if you are using MRI Ruby. - private_key: 'GCP-PRIVATE-KEY', - }, - kmip: { - # KMIP server endpoint may include port. - endpoint: 'KMIP-SERVER-HOST' - }, - # TLS options to connect to KMIP server. - kms_tls_options: { - kmip: { - ssl_ca_cert: 'PATH-TO-CA-FILE', - ssl_cert: 'PATH-TO-CLIENT-CERT-FILE', - ssl_key: 'PATH-TO-CLIENT-KEY-FILE' - } - } - } - } - ) - -The client can retrieve AWS credentials from the environment or from EC2 or ECS -metadata endpoints. To retrieve credentials automatically, specify an empty Hash -as KMS provider options for AWS: - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017'], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: { - aws: {} - } - } - ) - -See :ref:`"Automatically Retrieving Credentials" ` -for more detailed information about the credential retrieval. - -The client can retrieve GCP credentials from the Google Compute Engine -metadata endpoints. To retrieve credentials automatically, specify an empty Hash -as KMS provider options for GCP: - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017'], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: { - gcp: {} - } - } - ) - -``:kms_tls_options`` -~~~~~~~~~~~~~~~~~~~~ - -A Hash that contains KMP provider names as keys, and TLS options to connect to -corresponding providers. - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: { - kmip: { - endpoint: 'KMIP-SERVER-HOST' - } - }, - kms_tls_options: { - kmip: { - ssl_ca_cert: 'PATH-TO-CA-FILE', - ssl_cert: 'PATH-TO-CLIENT-CERT-FILE', - ssl_key: 'PATH-TO-CLIENT-KEY-FILE' - } - } - } - ) - - -``:schema_map`` -~~~~~~~~~~~~~~~ - -A schema map is a Hash with information about which fields to automatically -encrypt and decrypt. - -The code snippet at the top of this tutorial demonstrates creating a schema -map using a Ruby ``Hash``. While this will work, schema maps can grow quite -large and it could be unweildy to include them in your Ruby code. Instead, it is -recommended that you store them in a separate JSON (JavaScript Object Notation) -file. - -Before creating the JSON file, Base64-encode the UUID of the your data key. - -.. code-block:: ruby - - Base64.encode64(data_key_id.data) - # => "sr6OTtQUwhPD..." (a base64-encoded string) - -Then, create a new JSON file containing your schema map in the format defined by -the JSON Schema Draft 4 standard syntax. You can read more about formatting -your schema map in the :manual:`Automatic Encryption Rules` -section of the MongoDB manual. - -.. code-block:: json - - { - "encryption_db.encryption_coll": { - "properties": { - "encrypted_field": { - "encrypt": { - "keyId": [{ - "$binary": { - "base64": "YOUR-BASE64-ENCODED-DATA-KEY-ID", - "subType": "04" - } - }], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - } - }, - "bsonType": "object" - } - } - -When you intend to use your schema map, convert it to a Ruby ``Hash`` using the -``BSON::ExtJSON`` module in the ``bson`` Ruby gem. - -.. code-block:: ruby - - schema_map = BSON::ExtJSON.parse(File.read('/path/to/your/file.json')) - # => { 'encryption_db.encryption_coll' => { ... } } - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - schema_map: schema_map, - # ... (Fill in other options here) - } - ) - -.. note:: - - It is also possible to supply a schema map as a validator on a MongoDB collection. - This is referred to as a "remote schema map," while providing the schema map as - an option on the ``Mongo::Client`` is called a "local schema map." - - Supplying a local schema map provides more security than relying on JSON schemas - obtained from the server. It protects against a malicious server advertising - a false JSON schema, which could trick the client into sending unencrypted - data that should be encrypted. - - See :manual:`Server-Side Field Level Encryption Enforcement` - in the MongoDB manual for more information about using the schema map to - create a JSON schema validator on your collection. - -.. seealso:: - - `Specify Encrypted Fields Using JSON Schema `_, - :manual:`Automatic Encryption Rules` - -.. _schema-map-path: - -``:schema_map_path`` -~~~~~~~~~~~~~~~~~~~~ - -It is also possible to load schema map from a file. Prepare the schema map as -described above, save it to file, and then pass path to the file using -``:schema_map_path`` option. - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - schema_map_path: '/path/to/your/file.json', - # ... (Fill in other options here) - } - ) - -``:bypass_auto_encryption`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``:bypass_auto_encryption`` option is a ``Boolean`` that specifies whether the -``Mongo::Client`` should skip encryption when writing to the database. If -``:bypass_auto_encryption`` is ``true``, the client will still perform automatic -decryption of any previously-encrypted data. - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - bypass_auto_encryption: true, - # ... (Fill in other options here) - } - ) - -.. _cse-extra-options: - -``:extra_options`` -~~~~~~~~~~~~~~~~~~ - -``:extra_options`` is a ``Hash`` of options related to spawning mongocryptd. -Every option in this ``Hash`` has a default value, so it is only necessary to -provide the options whose defaults you want to override. - -- ``:mongocryptd_spawn_args`` - This is an ``Array`` containing arguments - for spawning mongocryptd. The Ruby driver will pass these arguments to - mongocryptd on spawning the daemon. Possible arguments are: - - - ``"--idleShutdownTimeoutSecs"`` - The number of seconds mongocryptd must remain - idle before it shuts itself down. The default value is 60. - - ``"--port"`` - The port at which mongocryptd will listen for connections. The - default is 27020. - -- ``:mongocryptd_uri`` - The URI that the driver will use to connect to mongocryptd. - By default, this is ``"mongodb://localhost:27020"``. - -- ``:mongocryptd_spawn_path`` - The path to the mongocryptd executable. The default - is ``"mongocryptd"``. - -- ``:mongocryptd_bypass_spawn`` - A ``Boolean`` indicating whether the driver should - skip spawning mongocryptd. - -For example, if you would like to run mongocryptd on port 30000, provide -``extra_options`` as follows: - -.. code-block:: ruby - - Mongo::Client.new(['localhost:27017], - auto_encryption_options: { - extra_options: { - mongocryptd_spawn_args: ['--port=30000'], - mongocryptd_uri: 'mongodb://localhost:30000', - } - # ... (Fill in other options here) - } - ) - -.. warning:: - - The contents of ``:extra_options`` is subject to change in future versions - of the client-side encryption API. diff --git a/source/reference/in-use-encryption/queryable-encryption.txt b/source/reference/in-use-encryption/queryable-encryption.txt deleted file mode 100644 index 2be80ed5f..000000000 --- a/source/reference/in-use-encryption/queryable-encryption.txt +++ /dev/null @@ -1,236 +0,0 @@ -.. _queryable-encryption: - -********************** -Queryable Encryption -********************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -Queryable encryption is a new feature in MongoDB 6.0. It also requires -libmongocrypt version 1.5.2 or above. - -You can find more information about queryable encryption in `MongoDB Manual -`_. - -.. note:: - - The queryable encryption feature is in public technical preview. - Therefore, the following options should be considered experimental - and are subject to change: - - - ``:encrypted_fields_map`` and ``:bypass_query_analysis`` in auto encryption options. - - ``:contention_factor`` and ``:query_type`` in client encryption options. - -The following examples assume you are familiar with the concepts and techniques -described in :ref:`Client-Side Encryption `. - -Below is an example of using automatic queryable encryption using the Ruby driver: - -.. code-block:: ruby - - require 'mongo' - - ##################################### - # Step 1: Create a local master key # - ##################################### - - # A local master key is a 96-byte binary blob. - local_master_key = SecureRandom.random_bytes(96) - # => "\xB2\xBE\x8EN\xD4\x14\xC2\x13\xC3..." - - ############################# - # Step 2: Create a data key # - ############################# - - kms_providers = { - local: { - key: local_master_key - } - } - - # The key vault client is a Mongo::Client instance - # that will be used to store your data keys. - key_vault_client = Mongo::Client.new('mongodb://localhost:27017,localhost:27018') - - # Use an instance of Mongo::ClientEncryption to create a new data key - client_encryption = Mongo::ClientEncryption.new( - key_vault_client, - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers - ) - - data_key_id = client_encryption.create_data_key('local') - # => - - ####################################################### - # Step 3: Configure Mongo::Client for auto-encryption # - ####################################################### - - # Create an encrypted fields map, which tells the Mongo::Client which fields to encrypt. - encrypted_fields_map = { - 'encryption_db.encryption_coll' => { - fields: [ - { - path: 'encrypted_field', - bsonType: 'string', - keyId: data_key_id, - queries: { - queryType: 'equality' - } - } - ] - } - } - - # Configure the client for automatic encryption - client = Mongo::Client.new( - 'mongodb://localhost:27017,localhost:27018', - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers, - encrypted_fields_map: encrypted_fields_map, - }, - database: 'encryption_db' - ) - - # Make sure there is no data in the collection. - client.database.drop - - # Create encrypted collection explicitly. - collection = client['encryption_coll'].create - - # The string "sensitive data" will be encrypted and stored in the database - # as ciphertext - collection.insert_one(encrypted_field: 'sensitive data') - - # The data is decrypted before being returned to the user - collection.find(encrypted_field: 'sensitive data').first['encrypted_field'] - # => "sensitive data" - - # A client with no auto_encryption_options is unable to decrypt the data - client_no_encryption = Mongo::Client.new(['localhost:27017'], database: 'encryption_db') - client_no_encryption['encryption_coll'].find.first['encrypted_field'] - # => - -The example above demonstrates using automatic encryption with a local master key. -For more information about using other key management services to create a -master key and create data keys, see the following sections of the :ref:`Client-Side Encryption ` tutorial: - -- :ref:`Creating A Master Key ` -- :ref:`Creating A Data Key ` - -Below is an example of explicit queryable encryption. - -.. code-block:: ruby - - require 'mongo' - - ##################################### - # Step 1: Create a local master key # - ##################################### - - # A local master key is a 96-byte binary blob. - local_master_key = SecureRandom.random_bytes(96) - # => "\xB2\xBE\x8EN\xD4\x14\xC2\x13\xC3..." - - ############################# - # Step 2: Create a data key # - ############################# - - kms_providers = { - local: { - key: local_master_key - } - } - - # The key vault client is a Mongo::Client instance - # that will be used to store your data keys. - key_vault_client = Mongo::Client.new('mongodb://localhost:27017,localhost:27018') - - # Use an instance of Mongo::ClientEncryption to create a new data key - client_encryption = Mongo::ClientEncryption.new( - key_vault_client, - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers - ) - - data_key_id = client_encryption.create_data_key('local') - # => - - ########################################## - # Step 3: Create an encrypted collection # - ########################################## - encrypted_fields = { - fields: [ - { - path: 'encrypted_field', - bsonType: 'string', - keyId: data_key_id, - queries: { - queryType: 'equality', - contention: 0 - } - } - ] - } - - # Create the client you will use to read and write the data to MongoDB - # Please note that to insert or query with an "Indexed" encrypted payload, - # you should use a ``Mongo::Client`` that is configured with ``:auto_encryption_options``. - # ``auto_encryption_options[:bypass_query_analysis]`` may be true. - # ``auto_encryption_options[:bypass_auto_encryption]`` must be not set or false. - client = Mongo::Client.new( - ['localhost:27017'], - auto_encryption_options: { - key_vault_namespace: 'encryption.__keyVault', - kms_providers: kms_providers, - bypass_query_analysis: true, - }, - database: 'encryption_db', - ) - - # Make sure there is no data in the collection. - client['encryption_coll'].drop(encrypted_fields: encrypted_fields) - # Create encrypted collection explicitly. - client['encryption_coll'].create(encrypted_fields: encrypted_fields) - - ##################################################### - # Step 4: Encrypt a string with explicit encryption # - ##################################################### - - # The value to encrypt - value = 'sensitive data' - - # Encrypt the value - insert_payload = client_encryption.encrypt( - 'sensitive data', - { - key_id: data_key_id, - algorithm: "Indexed", - contention_factor: 0 - } - ) - - # Insert the encrypted value into the collection - client['encryption_coll'].insert_one(encrypted_field: insert_payload) - - # Use the client to read the encrypted value from the database, then - # use the ClientEncryption object to decrypt it. - find_payload = client_encryption.encrypt( - 'sensitive data', - { - key_id: data_key_id, - algorithm: "Indexed", - contention_factor: 0, - query_type: "equality" - } - ) - - find_result = client['encryption_coll'].find(encrypted_field: find_payload).first['encrypted_field'] - # => 'sensitive data' diff --git a/source/reference/indexing.txt b/source/reference/indexing.txt deleted file mode 100644 index a536c8870..000000000 --- a/source/reference/indexing.txt +++ /dev/null @@ -1,172 +0,0 @@ -******** -Indexing -******** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -The driver provides the ability to create, drop and view -:manual:`indexes` on a collection through the ``indexes`` attribute: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') - client[:bands].indexes - # => #, @batch_size=nil, @options={}> - - -Creating Indexes -================ - -Indexes can be created one at a time, or several can be created in a single -operation. When creating multiple indexes on MongoDB 3.0 and later, the indexes -are created in parallel; on earlier versions they are created sequentially. - -To create a single index, use ``indexes#create_one``, passing the key -specification as the first argument and options as the second argument: - -.. code-block:: ruby - - client[:bands].indexes.create_one(genre: 1) - - client[:bands].indexes.create_one( - { name: 1 }, - unique: true, expire_after: 120, - ) - -To create multiple indexes, use ``indexes#create_many`` which accepts an array -of index specifications. Unlike ``create_one``, each index specification -is a hash with the ``key`` key mapped to the key specification and the -options being specified on the top level. - -.. code-block:: ruby - - client[:bands].indexes.create_many([ - { key: { genre: 1 } }, - { key: { name: 1 }, unique: true, expire_after: 120 }, - ]) - -.. _index-options: - -The following is a full list of the available options that can be added -when creating indexes. These options mirror the options supported by the -:manual:`createIndex command`. - -.. list-table:: - :header-rows: 1 - :widths: 40 80 - - * - Option - - Description - * - ``:background`` - - Either ``true`` or ``false``. Tells the index to be created in the background. - * - ``:expire_after`` - - Number of seconds to expire documents in the collection after. - * - ``:name`` - - The name of the index. - * - ``:sparse`` - - Whether the index should be sparse or not, either ``true`` or ``false``. - * - ``:storage_engine`` - - The name of the storage engine for this particular index. - * - ``:version`` - - The index format version to use. - * - ``:default_language`` - - The default language of text indexes. - * - ``:language_override`` - - The field name to use when overriding the default language. - * - ``:text_version`` - - The version format for text index storage. - * - ``:weights`` - - A document specifying fields and weights in text search. - * - ``:sphere_version`` - - The 2d sphere index version. - * - ``:bits`` - - Sets the maximum boundary for latitude and longitude in the 2d index. - * - ``:max`` - - Maximum boundary for latitude and longitude in the 2d index. - * - ``:min`` - - Minimum boundary for latitude and longitude in the 2d index. - * - ``:bucket_size`` - - The number of units within which to group the location values in a geo haystack index. - * - ``:partial_filter_expression`` - - A filter for a partial index. - * - ``:hidden`` - - A Boolean specifying whether the index should be hidden; a hidden index - is one that exists on the collection but will not be used by the query planner. - -The :commit_quorum option -------------------------- -On MongoDB server versions 4.4 and newer, the ``:commit_quorum`` option may be -specified on index creation. This option differs from other index options in that -it determines server behavior during index creation, rather than determining -the behavior of an individual index. - -The ``:commit_quorum`` option specifies how many voting, data-bearing members -of a replica set must complete the index build before the index is ready. -Possible values are integers (0 to the number of voting, data-bearing members -of the replica set), "majority", or "votingMembers". - -To specify ``:commit_quorum`` when creating one index, add another option -to the second argument of the ``indexes#create_one`` method: - -.. code-block:: ruby - - client[:bands].indexes.create_one( - { name: 1 }, - unique: true, expire_after: 120, commit_quorum: 'majority' - ) - -To specify create options when creating multiple indexes, add a Hash specifying -``:commit_quorum`` as a final element to the Array of indexes passed to -``indexes#create_many``. Note that this Hash MUST be the final element in the -Array. - -.. code-block:: ruby - - client[:bands].indexes.create_many([ - { key: { genre: 1 } }, - { key: { name: 1 }, unique: true, expire_after: 120 }, - { commit_quorum: 'majority' }, - ]) - -Dropping Indexes -================ - -To drop an index, call ``indexes#drop_one`` or ``indexes#drop_all``. - -.. code-block:: ruby - - # Drops the name_1 index. - client[:bands].indexes.drop_one( 'name_1' ) - - # Drops all indexes in the collection. - client[:bands].indexes.drop_all - - -Listing Indexes -=============== - -To list the indexes, iterate the ``indexes`` object: - -.. code-block:: ruby - - client[:bands].indexes.each do |index_spec| - p index_spec - # {"v"=>2, "key"=>{"_id"=>1}, "name"=>"_id_"} - # {"v"=>2, "key"=>{"genre"=>1}, "name"=>"genre_1"} - # {"v"=>2, "unique"=>true, "key"=>{"name"=>1}, "name"=>"name_1", - # "expireAfterSeconds"=>120} - end - -Each iteration returns an index specification as returned by the -:manual:`listIndexes` command. - -.. note:: - - The shape and contents of the index specifications returned by this method - may change from one version of MongoDB to another. diff --git a/source/reference/map-reduce.txt b/source/reference/map-reduce.txt deleted file mode 100644 index f01b64b55..000000000 --- a/source/reference/map-reduce.txt +++ /dev/null @@ -1,132 +0,0 @@ -********** -Map-Reduce -********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 2 - :class: singlecol - -:manual:`Map-Reduce ` is a data processing paradigm for -condensing large volumes of data into aggregated results. - -.. note:: - - The map-reduce operation is deprecated. - The :ref:`aggregation framework ` provides better performance - and usability than map-reduce operations, and should be preferred for - new development. - -A map-reduce operation is issued on a collection view, as obtained from -``Collection#find`` method, by calling the ``map_reduce`` method on the -view. The ``map_reduce`` method takes three arguments: the mapper, the -reducer and map-reduce options. The mapper and the reducer must be provided -as strings containing JavaScript functions. - -For example, given the following collection with values 1 through 10: - -.. code-block:: ruby - - coll = client['foo'] - 10.times do |i| - coll.insert_one(v: i) - end - -The following invocation will sum up the values less than 6: - -.. code-block:: ruby - - coll.find(v: {'$lt' => 6}).map_reduce( - 'function() { emit(null, this.v) }', - 'function(key, values) { return Array.sum(values) }', - ).first['value'] - # => 15.0 - -The ``map_reduce`` method returns an instance of -``Mongo::Collection::View::MapReduce`` - a map-reduce view which holds -the parameters to be used for the operation. To execute the operation, either -iterate the results (by using e.g. ``each``, ``first`` or ``to_a`` on the -view object) or invoke the ``execute`` method. The ``execute`` method issues -the map-reduce operation but does not return the result set from the server, -and is primarily useful for when the output of the operation is directed to -a collection as follows: - -.. code-block:: ruby - - coll.find(...).map_reduce(...).out('destination_collection').execute - -Note that: - -- If the results of map-reduce are not directed to a collection, they are - said to be retrieved inline. In this case the entire result set must fit in - the 16 MiB BSON document size limit. -- If the results of map-reduce are directed to a collection, and the - map-reduce view is iterated, the driver automatically retrieves the - entire collection and returns its contents as the result set. The - collection is retrieved without sorting. If map-reduce is performed into - a collection that is not empty, the driver will return the documents - as they exist in the collection after the map-reduce operation completes, - which may include the documents that were in the collection prior to the - map-reduce operation. - -.. code-block:: ruby - - coll.find(...).map_reduce(...).out('destination_collection').each do |doc| - # ... - end - - coll.find(...).map_reduce(...).out(replace: 'destination_collection', db: 'db_name').each do |doc| - # ... - end - -Given a map-reduce view, it can be configured using the following methods: - -.. list-table:: - :header-rows: 1 - :widths: 20 80 - - * - Method - - Description - - * - ``js_mode`` - - Sets the ``jsMode`` flag for the operation. - - * - ``out`` - - Directs the output to the specified collection, instead of returning - the result set. - - * - ``scope`` - - Sets the scope for the operation. - - * - ``verbose`` - - Sets whether to include the timing information in the result. - -The following accessor methods are defined on the view object: - -.. list-table:: - :header-rows: 1 - :widths: 20 80 - - * - Method - - Description - - * - ``js_mode`` - - Returns the current ``jsMode`` flag value. - - * - ``map_function`` - - Returns the map function as a string. - - * - ``out`` - - Returns the current output location for the operation. - - * - ``reduce_function`` - - Returns the reduce function as a string. - - * - ``scope`` - - Returns the current scope for the operation. - - * - ``verbose`` - - Returns whether to include the timing information in the result. diff --git a/source/reference/monitoring.txt b/source/reference/monitoring.txt deleted file mode 100644 index 7fbe8c369..000000000 --- a/source/reference/monitoring.txt +++ /dev/null @@ -1,469 +0,0 @@ -********** -Monitoring -********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -The driver allows the application to be notified when certain events happen. -These events are organized into the following categories: - -- Command monitoring -- Topology lifecycle -- Server lifecycle -- Server heartbeats -- Connection pools and connections - -Topology and server events are part of Server Discovery and Monitoring (SDAM). - - -.. _command-monitoring: - -Command Monitoring -================== - -All user-initiated commands that are sent to the server publish events that -can be subscribed to for fine grained information. The monitoring API -publishes a guaranteed start event for each command, then either a succeeded -or a failed event. A subscriber must implement 3 methods: ``started``, -``succeeded``, and ``failed``, each which takes a single parameter for -the event. The following is an example logging subscriber based on a -logging subscriber used internally by the driver: - -.. code-block:: ruby - - class CommandLogSubscriber - include Mongo::Loggable - - def started(event) - # The default inspection of a command which is a BSON document gets - # truncated in the middle. To get the full rendering of the command, the - # ``to_json`` method can be called on the document. - log_debug("#{prefix(event)} | STARTED | #{format_command(event.command.to_json)}") - end - - def succeeded(event) - log_debug("#{prefix(event)} | SUCCEEDED | #{event.duration}s") - end - - def failed(event) - log_debug("#{prefix(event)} | FAILED | #{event.message} | #{event.duration}s") - end - - private - - def logger - Mongo::Logger.logger - end - - def format_command(args) - begin - args.inspect - rescue Exception - '' - end - end - - def format_message(message) - format("COMMAND | %s".freeze, message) - end - - def prefix(event) - "#{event.address.to_s} | #{event.database_name}.#{event.command_name}" - end - end - -To register a custom subscriber, you can do so globally for -all clients or on a per-client basis: - -.. code-block:: ruby - - subscriber = CommandLogSubscriber.new - - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::COMMAND, subscriber) - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test' ) - client.subscribe( Mongo::Monitoring::COMMAND, subscriber ) - -Sample output: - -.. code-block:: none - - D, [2018-09-23T13:47:31.258020 #4692] DEBUG -- : COMMAND | 127.0.0.1:27027 | test.hello | STARTED | {"hello"=>1, "$readPreference"=>{"mode"=>"primary"}, "lsid"=>{"id"=>}} - D, [2018-09-23T13:47:31.259145 #4692] DEBUG -- : COMMAND | 127.0.0.1:27027 | test.hello | SUCCEEDED | 0.000791175s - - -.. _sdam: - -Server Discovery And Monitoring -=============================== - -The Ruby driver implements `Server Discovery And Monitoring (SDAM) specification -`_. -and makes the following events available to the application: - -- Topology opening -- Server opening -- Server description changed -- Topology changed -- Server closed -- Topology closed -- Heartbeat events (covered below in a separate section) - -For all events other than the heartbeat events, the ``succeeded`` method -will be called on each event subscriber with the event as the sole argument. -Available data for events varies, therefore to log the events a separate -class is needed for each event type. A simple SDAM logging subscriber -can look like the following: - -.. code-block:: ruby - - class SDAMLogSubscriber - include Mongo::Loggable - - def succeeded(event) - log_debug(format_event(event)) - end - - private - - def logger - Mongo::Logger.logger - end - - def format_message(message) - format("SDAM | %s".freeze, message) - end - end - - class TopologyOpeningLogSubscriber < SDAMLogSubscriber - private - - def format_event(event) - "Topology type '#{event.topology.display_name}' initializing." - end - end - - class ServerOpeningLogSubscriber < SDAMLogSubscriber - private - - def format_event(event) - "Server #{event.address} initializing." - end - end - - class ServerDescriptionChangedLogSubscriber < SDAMLogSubscriber - private - - def format_event(event) - "Server description for #{event.address} changed from " + - "'#{event.previous_description.server_type}' to '#{event.new_description.server_type}'." - end - end - - class TopologyChangedLogSubscriber < SDAMLogSubscriber - private - - def format_event(event) - if event.previous_topology != event.new_topology - "Topology type '#{event.previous_topology.display_name}' changed to " + - "type '#{event.new_topology.display_name}'." - else - "There was a change in the members of the '#{event.new_topology.display_name}' " + - "topology." - end - end - end - - class ServerClosedLogSubscriber < SDAMLogSubscriber - private - - def format_event(event) - "Server #{event.address} connection closed." - end - end - - class TopologyClosedLogSubscriber < SDAMLogSubscriber - private - - def format_event(event) - "Topology type '#{event.topology.display_name}' closed." - end - end - -To subscribe to SDAM events globally: - -.. code-block:: ruby - - topology_opening_subscriber = TopologyOpeningLogSubscriber.new - server_opening_subscriber = ServerOpeningLogSubscriber.new - server_description_changed_subscriber = ServerDescriptionChangedLogSubscriber.new - topology_changed_subscriber = TopologyChangedLogSubscriber.new - server_closed_subscriber = ServerClosedLogSubscriber.new - topology_closed_subscriber = TopologyClosedLogSubscriber.new - - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::TOPOLOGY_OPENING, - topology_opening_subscriber) - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_OPENING, - server_opening_subscriber) - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_DESCRIPTION_CHANGED, - server_description_changed_subscriber) - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::TOPOLOGY_CHANGED, - topology_changed_subscriber) - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_CLOSED, - server_closed_subscriber) - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::TOPOLOGY_CLOSED, - topology_closed_subscriber) - -Subscribing to SDAM events for a single client is a little more involved -since the events may be published during the client's construction: - -.. code-block:: ruby - - topology_opening_subscriber = TopologyOpeningLogSubscriber.new - server_opening_subscriber = ServerOpeningLogSubscriber.new - server_description_changed_subscriber = ServerDescriptionChangedLogSubscriber.new - topology_changed_subscriber = TopologyChangedLogSubscriber.new - server_closed_subscriber = ServerClosedLogSubscriber.new - topology_closed_subscriber = TopologyClosedLogSubscriber.new - - sdam_proc = Proc.new do |client| - client.subscribe(Mongo::Monitoring::TOPOLOGY_OPENING, - topology_opening_subscriber) - client.subscribe(Mongo::Monitoring::SERVER_OPENING, - server_opening_subscriber) - client.subscribe(Mongo::Monitoring::SERVER_DESCRIPTION_CHANGED, - server_description_changed_subscriber) - client.subscribe(Mongo::Monitoring::TOPOLOGY_CHANGED, - topology_changed_subscriber) - client.subscribe(Mongo::Monitoring::SERVER_CLOSED, - server_closed_subscriber) - client.subscribe(Mongo::Monitoring::TOPOLOGY_CLOSED, - topology_closed_subscriber) - end - - client = Mongo::Client.new(['127.0.0.1:27017'], database: 'test', - sdam_proc: sdam_proc) - -Sample output: - -.. code-block:: none - - D, [2018-10-09T13:58:03.489461 #22079] DEBUG -- : SDAM | Topology type 'Unknown' initializing. - D, [2018-10-09T13:58:03.489699 #22079] DEBUG -- : SDAM | Server 127.0.0.1:27100 initializing. - D, [2018-10-09T13:58:03.491384 #22079] DEBUG -- : SDAM | Server description for 127.0.0.1:27100 changed from 'unknown' to 'unknown'. - D, [2018-10-09T13:58:03.491642 #22079] DEBUG -- : SDAM | Server localhost:27100 initializing. - D, [2018-10-09T13:58:03.493199 #22079] DEBUG -- : SDAM | Server description for localhost:27100 changed from 'unknown' to 'primary'. - D, [2018-10-09T13:58:03.493473 #22079] DEBUG -- : SDAM | Server localhost:27101 initializing. - D, [2018-10-09T13:58:03.494874 #22079] DEBUG -- : SDAM | Server description for localhost:27101 changed from 'unknown' to 'secondary'. - D, [2018-10-09T13:58:03.495139 #22079] DEBUG -- : SDAM | Server localhost:27102 initializing. - D, [2018-10-09T13:58:03.496504 #22079] DEBUG -- : SDAM | Server description for localhost:27102 changed from 'unknown' to 'secondary'. - D, [2018-10-09T13:58:03.496777 #22079] DEBUG -- : SDAM | Topology type 'Unknown' changed to type 'ReplicaSetNoPrimary'. - D, [2018-10-09T13:58:03.497306 #22079] DEBUG -- : SDAM | Server 127.0.0.1:27100 connection closed. - D, [2018-10-09T13:58:03.497606 #22079] DEBUG -- : SDAM | Topology type 'ReplicaSetNoPrimary' changed to type 'ReplicaSetWithPrimary'. - - # client.close - - D, [2018-10-09T13:58:05.342057 #22079] DEBUG -- : SDAM | Server localhost:27100 connection closed. - D, [2018-10-09T13:58:05.342299 #22079] DEBUG -- : SDAM | Server localhost:27101 connection closed. - D, [2018-10-09T13:58:05.342565 #22079] DEBUG -- : SDAM | Server localhost:27102 connection closed. - D, [2018-10-09T13:58:05.342693 #22079] DEBUG -- : SDAM | Topology type 'ReplicaSetWithPrimary' closed. - -.. note:: - - ``:sdam_proc`` client option applies only to the client during whose - construction it is given. When certain client options are changed via the - ``Client#with`` call, a new cluster may be created by the driver with - a default set of event subscribers. If this happens, the provided - ``:sdam_proc`` is not called and the application may miss events. - - -.. _server-heartbeats: - -Server Heartbeats -================= - -The application can be notified of each server heartbeat by subscribing -to SERVER_HEARTBEAT topic. A server heartbeat listener must implement -three methods: ``started``, ``succeeded`` and ``failed``. Each heartbeat -invokes the ``started`` method on the listener, and then either ``succeeded`` -or ``failed`` method depending on the outcome of the heartbeat. - -All heartbeat events contain the address of the server that the heartbeat -was sent to. Succeeded and failed events contain the round trip time for -the hello or legacy hello command. Failed event also contains the exception -instance that was raised during hello or legacy hello command execution. -Please review the API documentation for ServerHeartbeatStarted, -ServerHeartbeatSucceeded and ServerHeartbeatFailed for event attribute details. - -The following is an example logging heartbeat event subscriber: - -.. code-block:: ruby - - class HeartbeatLogSubscriber - include Mongo::Loggable - - def started(event) - log_debug("#{event.address} | STARTED") - end - - def succeeded(event) - log_debug("#{event.address} | SUCCEEDED | #{event.duration}s") - end - - def failed(event) - log_debug("#{event.address} | FAILED | #{event.error.class}: #{event.error.message} | #{event.duration}s") - end - - private - - def logger - Mongo::Logger.logger - end - - def format_message(message) - format("HEARTBEAT | %s".freeze, message) - end - end - -Similarly to command events, the application can subscribe to heartbeat -events globally or for a specific client: - -.. code-block:: ruby - - subscriber = HeartbeatLogSubscriber.new - - Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::SERVER_HEARTBEAT, subscriber) - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test' ) - client.subscribe( Mongo::Monitoring::SERVER_HEARTBEAT, subscriber ) - -Sample output: - -.. code-block:: none - - D, [2018-09-23T13:44:10.707018 #1739] DEBUG -- : HEARTBEAT | 127.0.0.1:27027 | STARTED - D, [2018-09-23T13:44:10.707778 #1739] DEBUG -- : HEARTBEAT | 127.0.0.1:27027 | SUCCEEDED | 0.000772381s - -Heartbeat Event Intervals -------------------------- - -When connected to MongoDB 4.2 and earlier servers, Ruby driver by default -issues heartbeats every ``:heartbeat_frequency`` (Ruby client option) seconds, -and heartbeats are non-overlapping (the succeeded event for a heartbeat is -guaranteed to be published before the started event for the next heartbeat is -published). When connected to MongoDB 4.4 and later servers, the driver uses -multiple monitoring threads and a more complex heartbeat protocol designed -to detect changes in server state quicker; as a result, heartbeat event -intervals can be more irregular and heartbeat events can overlap. Specifically, -an *awaited heartbeat* can start or finish while a *non-awaited heartbeat* -is in progress, and vice versa. Use the ``ServerHeartbeatStarted#awaited?``, -``ServerHeartbeatSucceeded#awaited?`` and ``ServerHeartbeatFailed#awaited?`` -methods to distinguish between non-awaited and awaited heartbeats. - -When a client is attempting to perform an operation and it does not have a -suitable server, the deployment is scanned more frequently - each server can -be polled up to every 500 milliseconds. It is also possible for the application -to request a manual scan of a particular server; the driver enforces the -500 millisecond minimum interval between scans. - -Connection Pool And Connection Monitoring -========================================= - -Each client maintains a connection pool for each server in the deployment that -it is aware of, and publishes events for both connection pools and individual -connections. To subscribe to these events, define a subscriber class implementing -the method ``pubished`` which takes a single parameter for the event that -is being published. Note that future versions of the driver may introduce -additional events published through this mechanism. - -The following events are currently implemented by the driver, following -the `CMAP specification `_: - -- PoolCreated -- PoolCleared -- PoolClosed -- ConnectionCreated -- ConnectionReady -- ConnectionClosed -- ConnectionCheckOutStarted -- ConnectionCheckOutFailed -- ConnectionCheckOutSucceeded -- ConnectionCheckedIn - -The driver provides a logging subscriber which may be used to log all -connection pool and connection-related events. This subscriber is not enabled -by default because it will create log entries for each operation performed -by the application. To enable this subscriber globally or per client: - -.. code-block:: ruby - - Mongo::Monitoring::Global.subscribe( - Mongo::Monitoring::CONNECTION_POOL, - Mongo::Monitoring::CmapLogSubscriber.new) - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test' ) - subscriber = Mongo::Monitoring::CmapLogSubscriber.new - client.subscribe( Mongo::Monitoring::CONNECTION_POOL, subscriber ) - -Sample output: - -.. code-block:: none - - D, [2019-05-06T17:23:21.595412 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.595584 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.603549 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.603616 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.603684 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.604079 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.605759 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.605784 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.605817 #8576] DEBUG -- : MONGODB | EVENT: # - D, [2019-05-06T17:23:21.605852 #8576] DEBUG -- : MONGODB | EVENT: # - - -Disabling Monitoring -==================== - -To turn off monitoring, set the client monitoring option to ``false``: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test', :monitoring => false ) - - -Excluded and Redacted Events -============================ - -The Ruby driver does not pubish, and occasionaly redacts, some events via the -command monitoring mechanism: - -1. If the command belongs to a particular subset of redacted commands, or - contains keys that trigger payload redaction, an empty payload will be - provided for security reasons. The full payload can be accessed by setting - the ``MONGO_RUBY_DRIVER_UNREDACT_EVENTS`` environment variable to ``1``, ``true`` or ``yes``. The - following commands are redacted: - - - ``authenticate`` - - ``saslStart`` - - ``saslContinue`` - - ``getnonce`` - - ``createUser`` - - ``updateUser`` - - ``copydbgetnonce`` - - ``copydbsaslstart`` - - ``copydb`` -2. If the command is a handshake command, either ``ismaster`` or ``hello``, on - a non-monitoring connection, no event is published at all. -3. Commands sent over monitoring connections (such as ismaster and hello) do - not publish command monitoring events. Instead, every time a server is - checked a server heartbeat event is published. The server heartbeat events - do not include command or reply payloads. -4. If the command is a handshake command, and the ``speculativeAuthenticate`` - options is ``true``, the command will be redacted, and an empty payload will - be provided. diff --git a/source/reference/projection.txt b/source/reference/projection.txt deleted file mode 100644 index bc3881690..000000000 --- a/source/reference/projection.txt +++ /dev/null @@ -1,68 +0,0 @@ -********** -Projection -********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -By default, queries in MongoDB return all fields in matching -documents. To limit the amount of data that MongoDB sends to -applications, you can include a -:manual:`projection` -document in the query operation. - -Projection Document -=================== - -The projection document limits the fields to return for all -matching documents. The projection document can specify the -inclusion of fields or the exclusion of field and has the -following form: - -.. code-block:: javascript - - { 'projection': { field1: , field2: ... } } - -```` may be ``0`` (or ``false``) to exclude the field, or -``1`` (or ``true``) to include it. With the exception of the ``_id`` -field, you may not have both inclusions and exclusions in the same -projection document. - -Examples -======== - -The following code example uses the ``restaurants`` sample dataset. - -To return only the ``name``, ``cuisine`` and ``_id`` fields for -documents that match the query filter, explicitly include the ``name`` -and ``cuisine`` fields in the projection document. The ``_id`` field is -included automatically unless specifically excluded. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - collection = client[:restaurants] - - collection.find({}, { 'projection' => - { 'name' => 1, 'cuisine' => 1 } }).limit(5).each do |doc| - p doc - end - -To return ``name`` and ``cuisine`` but exclude all other fields, -including ``_id``, use the following projection document: - -.. code-block:: javascript - - { 'projection' => { 'name' => 1, 'cuisine' => 1, '_id' => 0 } } - - -To return all fields *except* the address field, use the following: - -.. code-block:: javascript - - { 'projection' => { 'address' => 0 } } diff --git a/source/reference/query-cache.txt b/source/reference/query-cache.txt deleted file mode 100644 index 772d24ad2..000000000 --- a/source/reference/query-cache.txt +++ /dev/null @@ -1,313 +0,0 @@ -*********** -Query Cache -*********** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 2 - :class: singlecol - -.. _query-cache: - -The MongoDB Ruby driver provides a built-in query cache. When enabled, the -query cache saves the results of previously-executed find and aggregation -queries. When those same queries are performed again, the driver returns -the cached results to prevent unnecessary roundtrips to the database. - -Usage -===== - -The query cache is disabled by default. It can be enabled on the global -scope as well as within the context of a specific block. The driver also -provides a :ref:`Rack middleware ` to enable the -query cache automatically for each web request. - -To enable the query cache globally: - -.. code-block:: ruby - - Mongo::QueryCache.enabled = true - -Similarly, to disable it globally: - -.. code-block:: ruby - - Mongo::QueryCache.enabled = false - -To enable the query cache within the context of a block: - -.. code-block:: ruby - - Mongo::QueryCache.cache do - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') do |client| - client['artists'].find(name: 'Flying Lotus').first - #=> Queries the database and caches the result - - client['artists'].find(name: 'Flying Lotus').first - #=> Returns the previously cached result - end - end - -And to disable the query cache in the context of a block: - -.. code-block:: ruby - - Mongo::QueryCache.uncached do - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') do |client| - client['artists'].find(name: 'Flying Lotus').first - #=> Sends the query to the database; does NOT cache the result - - client['artists'].find(name: 'Flying Lotus').first - #=> Queries the database again - end - end - -You may check whether the query cache is enabled at any time by calling -``Mongo::QueryCache.enabled?``, which will return ``true`` or ``false``. - - -Interactions With Fibers -======================== - -The Query cache enablement flag is stored in fiber-local storage (using -`Thread.current `_. -This, in principle, permits query cache state to be per fiber, although -this is not currently tested. - -There are methods in the Ruby standard library, like ``Enumerable#next``, -that `utilize fibers `_ -in their implementation. These methods would not see the query cache -enablement flag when it is set by the applications, and subsequently would -not use the query cache. For example, the following code does not utilize -the query cache despite requesting it: - -.. code-block:: ruby - - Mongo::QueryCache.enabled = true - - client['artists'].find({}, limit: 1).to_enum.next - # Issues the query again. - client['artists'].find({}, limit: 1).to_enum.next - -Rewriting this code to use ``first`` instead of ``next`` would make it use -the query cache: - -.. code-block:: ruby - - Mongo::QueryCache.enabled = true - - client['artists'].find({}, limit: 1).first - # Utilizes the cached result from the first query. - client['artists'].find({}, limit: 1).first - - -.. _query-cache-matching: - -Query Matching -============== - -A query is eligible to use cached results if it matches the original query -that produced the cached results. Two queries are considered matching if they -are identical in the following values: - -* Namespace (the database and collection on which the query was performed) -* Selector (for aggregations, the aggregation pipeline stages) -* Skip -* Sort -* Projection -* Collation -* Read Concern -* Read Preference - -For example, if you perform one query, and then perform a mostly identical query -with a different sort order, those queries will not be considered matching, -and the second query will not use the cached results of the first. - -Limits -====== - -When performing a query with a limit, the query cache will reuse an existing -cached query with a larger limit if one exists. For example: - -.. code-block:: ruby - - Mongo::QueryCache.cache do - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') do |client| - client['artists'].find(genre: 'Rock', limit: 10) - #=> Queries the database and caches the result - - client['artists'].find(genre: 'Rock', limit: 5) - #=> Returns the first 5 results from the cached query - - client['artists'].find(genre: 'Rock', limit: 20) - #=> Queries the database again and replaces the previously cached query results - end - end - -Cache Invalidation -================== - -The query cache is cleared in part or in full on every write operation. Most -write operations will clear the results of any queries were performed on the same -collection that is being written to. Some operations will clear the entire -query cache. - -The following operations will clear cached query results on the same database and -collection (including during bulk writes): - -* ``insert_one`` -* ``update_one`` -* ``replace_one`` -* ``update_many`` -* ``delete_one`` -* ``delete_many`` -* ``find_one_and_delete`` -* ``find_one_and_update`` -* ``find_one_and_replace`` - -The following operations will clear the entire query cache: - -* aggregation with ``$merge`` or ``$out`` pipeline stages -* ``commit_transaction`` -* ``abort_transaction`` - -Manual Cache Invalidation -========================= - -You may clear the query cache at any time with the following method: - -.. code-block:: ruby - - Mongo::QueryCache.clear - -This will remove all cached query results. - -Transactions -============ - -Queries are cached within the context of a transaction, but the entire -cache will be cleared when the transaction is committed or aborted. - -.. code-block:: ruby - - Mongo::QueryCache.cache do - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') do |client| - session = client.start_session - - session.with_transaction do - client['artists'].insert_one({ name: 'Fleet Foxes' }, session: session) - - client['artists'].find({}, session: session).first - #=> { name: 'Fleet Foxes' } - #=> Queries the database and caches the result - - client['artists'].find({}, session: session).first - #=> { name: 'Fleet Foxes' } - #=> Returns the previously cached result - - session.abort_transaction - end - - client['artists'].find.first - #=> nil - # The query cache was cleared on abort_transaction - end - end - -.. note:: - - Transactions are often performed with a "snapshot" read concern level. Keep - in mind that a query with a "snapshot" read concern cannot return cached - results from a query without the "snapshot" read concern, so it is possible - that a transaction may not use previously cached queries. - - To understand when a query will use a cached result, see the - :ref:`Query Matching ` section. - -Aggregations -============ - -The query cache also caches the results of aggregation pipelines. For example: - -.. code-block:: ruby - - Mongo::QueryCache.cache do - Mongo::Client.new([ '127.0.0.1:27017' ], database: 'music') do |client| - client['artists'].aggregate([ { '$match' => { name: 'Fleet Foxes' } } ]).first - #=> Queries the database and caches the result - - client['artists'].aggregate([ { '$match' => { name: 'Fleet Foxes' } } ]).first - #=> Returns the previously cached result - end - end - -.. note:: - - Aggregation results are cleared from the cache during every write operation, - with no exceptions. - -System Collections -================== - -MongoDB stores system information in collections that use the ``database.system.*`` -namespace pattern. These are called system collections. - -Data in system collections can change due to activity not triggered by the -application (such as internal server processes) and as a result of a variety of -database commands issued by the application. Because of the difficulty of -determining when the cached results for system collections should be expired, -queries on system collections bypass the query cache. - -You may read more about system collections in the -:manual:`MongoDB documentation `. - -.. note :: - - Even when the query cache is enabled, query results from system collections - will not be cached. - - -.. _query-cache-middleware: - -Query Cache Middleware -====================== - -Rack Middleware ---------------- - -The driver provides a Rack middleware which enables the query cache for the -duration of each web request. Below is an example of how to enable the -query cache middleware in a Ruby on Rails application: - -.. code-block:: ruby - - # config/application.rb - - # Add Mongo::QueryCache::Middleware at the bottom of the middleware stack - # or before other middleware that queries MongoDB. - config.middleware.use Mongo::QueryCache::Middleware - -Please refer to the `Rails on Rack guide -`_ -for more information about using Rack middleware in Rails applications. - - -.. _query-cache-active-job-middleware: - -Active Job Middleware ---------------------- - -The driver provides an Active Job middleware which enables the query cache for -each job. Below is an example of how to enable the query cache Active Job -middleware in a Ruby on Rails application: - -.. code-block:: ruby - - # config/application.rb - - ActiveSupport.on_load(:active_job) do - include Mongo::QueryCache::Middleware::ActiveJob - end diff --git a/source/reference/schema-operations.txt b/source/reference/schema-operations.txt deleted file mode 100644 index 6acbf66b3..000000000 --- a/source/reference/schema-operations.txt +++ /dev/null @@ -1,19 +0,0 @@ -.. _schema-operations: - -***************** -Schema Operations -***************** - -.. default-domain:: mongodb - -This section describes schema-related operations that the driver provides, -including managing databases, collections, indexes and users. - -.. toctree:: - :titlesonly: - - Databases - Collections - Indexes - Atlas Search Indexes - Collations diff --git a/source/reference/search-indexes.txt b/source/reference/search-indexes.txt deleted file mode 100644 index 91f99670f..000000000 --- a/source/reference/search-indexes.txt +++ /dev/null @@ -1,129 +0,0 @@ -******************** -Atlas Search Indexes -******************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -If you are using a database hosted by MongoDB Atlas, the driver provides the -ability to create, drop and view `Atlas search indexes `_ -on a collection through the ``search_indexes`` attribute: - -.. code-block:: ruby - - client = Mongo::Client.new(your_atlas_uri, database: 'music') - client[:bands].search_indexes - # => # ...> - - -Creating Search Indexes -======================= - -Search indexes can be created one at a time, or several can be created in -parallel in a single operation. - -To create a single index, use ``search_indexes#create_one``, passing the index -definition as the first argument, and an optional name for the index as the -second argument. - -.. code-block:: ruby - - client[:bands].search_indexes.create_one({ dynamic: true }) - - client[:bands].search_indexes.create_one( - { - dynamic: false, - fields: { - name: { type: 'string', analyzer: 'lucene.simple' } - } - }, - 'band-name-index' - ) - -To create multiple indexes, use ``search_indexes#create_many`` which accepts -an array of index specifications. Unlike ``create_one``, each index -specification is a hash with at least a ``definition`` key, which -defines the index. Each has may also specify a ``name`` key, to name -the index. - -.. code-block:: ruby - - client[:bands].search_indexes.create_many([ - { definition: { dynamic: true } }, - { name: 'band-name-index, - definition: { - dynamic: false, - fields: { - name: { type: 'string', analyzer: 'lucene.simple' } - } - } - }, - ]) - -Note that whether you call ``create_one`` or ``create_many``, the -method will return immediately, before the indexes are created. The -indexes are then created in the background, asynchronously. - - -Update Search Indexes -===================== - -You can programmatically update an Atlas search index. For example, you -might do this to change the analyzer used, or to provide an explicit field -mapping, instead of a dynamic one. To do this, use the ``search_indexes#update_one`` -method: - -.. code-block:: ruby - - client[:bands].search_indexes.update_one(new_definition, id: index_id) - - client[:bands].search_indexes.update_one(new_definition, name: index_name) - -Indexes may be identified by either id, or name, but you must specify one -or the other. The new index definition must be a complete definition--it will -take precedence as specified over the existing definition. - -To get the id or name of an index that you wish to update, you can -`list the search indexes <#listing-search-indexes>`_. - - -Dropping Search Indexes -======================= - -To drop Atlas search indexes, call ``search_indexes#drop_one`` and -provide either the ``id`` or the ``name`` of the index you wish to -drop. - -.. code-block:: ruby - - client[:bands].search_indexes.drop_one(id: index_id) - - client[:bands].search_indexes.drop_one(name: index_name) - -In either case, the method will return immediately and the index will -be dropped in the background, asynchronously. - -To get the id or name of an index that you wish to drop, you can -`list the search indexes <#listing-search-indexes>`_. - - -Listing Search Indexes -====================== - -To list the available search indexes, iterate over the -``search_indexes`` object: - -.. code-block:: ruby - - client[:bands].search_indexes.each do |index_spec| - p index_spec['id'] - p index_spec['name'] - p index_spec['status'] - p index_spec['queryable'] - p index_spec['latestDefinition'] - end diff --git a/source/reference/sessions.txt b/source/reference/sessions.txt deleted file mode 100644 index 64e5db692..000000000 --- a/source/reference/sessions.txt +++ /dev/null @@ -1,149 +0,0 @@ -.. _sessions: - -******** -Sessions -******** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - - -Version 3.6 of the MongoDB server introduces the concept of logical sessions for clients. -A session is an abstract concept that represents a set of sequential operations executed -by an application that are related in some way. A session object can be created via a ``Mongo::Client`` -and passed to operation methods that should be executed in the context of that session. - -Please note that session objects are not thread safe. They must only be used by one thread at a time. - -.. _create-session: - -Creating a session from a ``Mongo::Client`` -=========================================== - -A session can be created by calling the ``start_session`` method on a client and passing it a block: - -.. code-block:: ruby - - client.start_session do |session| - # work with the session - end - -When using the block form, the session will be automatically ended by the driver after the block finishes executing. - -It is valid to call ``start_session`` with no options set. This will result in a -session that has no effect on the operations performed in the context of that session, -other than to include a session ID in commands sent to the server. Please see the API docs for all supported -session options. - -An error will be thrown if the driver is connected to a deployment that does not support sessions and the -``start_session`` method is called. - -Note that server sessions are discarded server-side if not used for a certain period of time. -Be aware that if the application calls ``#start_session`` on a client and waits more than 1 minute to use -the session, it risks getting errors due to the session going stale before it is used. - - - -Using a session -=============== -A session object can be passed to most driver methods so that the operation can be executed in the -context of that session. Please see the API docs for which methods support a session argument. - -Create a session and execute an insert, then a find using that session: - -.. code-block:: ruby - - client.start_session do |session| - client[:artists].insert_one({ :name => 'FKA Twigs' }, session: session) - client[:artists].find({ :name => 'FKA Twigs' }, limit: 1, session: session).first - end - -If you like to call methods on a ``Mongo::Collection::View`` in the context of a particular session, you can create the -``Mongo::Collection::View`` with the session and then call methods on it: - -.. code-block:: ruby - - client.start_session(causal_consistency: true) do |session| - view = client[:artists].find({ :name => 'FKA Twigs' }, session: session) - view.count # will use the session - end - -You can also pass the session option to the methods directly. This session will override any session associated with -the ``Mongo::Collection::View``: - -.. code-block:: ruby - - client.start_session do |session| - client.start_session do |second_session| - view = client[:artists].find({ :name => 'FKA Twigs' }, session: session) - view.count(session: second_session) # will use the second_session - end - end - -Alternative way to create a session -=================================== - -A session can be created by calling the ``start_session`` method on a client: - -.. code-block:: ruby - - session = client.start_session - -When ``start_session`` is used without passing a block to it, the driver does not automatically clean up the session which can result in an accumulation of sessions on the server. Use `end_session <#end-a-session>`_ to manually end the session created. The server will automatically clean up old sessions after a timeout but the application should end sessions when the sessions are no longer needed. - -Unacknowledged Writes -===================== - -Unacknowledged writes are only allowed outside the session mechanism; if an explicit session is supplied for an -unacknowledged write, the driver will not send the session id with the operation. Similarly, the driver will not use -an implicit session for an unacknowledged write. - -Causal Consistency -================== -A causally consistent session will let you read your writes and guarantee monotonically increasing -reads from secondaries. -To create a causally consistent session, set the ``causal_consistency`` option to true: - -.. code-block:: ruby - - session = client.start_session(causal_consistency: true) - - # The update message goes to the primary. - collection = client[:artists] - collection.update_one({ '_id' => 1 }, { '$set' => { 'x' => 0 } }, session: session) - - # Read your write, even when reading from a secondary! - collection.find({ '_id' => 1 }, session: session).first - - # This query returns data at least as new as the previous query, - # even if it chooses a different secondary. - collection.find({ '_id' => 2 }, session: session).first - -Since unacknowledged writes don't receive a response from the server (or don't wait for a response), the driver -has no way of keeping track of where the unacknowledged write is in logical time. Therefore, causally -consistent reads are not causally consistent with unacknowledged writes. - -Note that if you set the causal_consistency option to nil as in ``(causal_consistency: nil)``, it will be interpreted -as false. - -.. _end-session: - -End a session -============= -To end a session, call the ``end_session`` method: - -.. code-block:: ruby - - session.end_session - -The Ruby driver will then add the id for the corresponding server session to a pool for reuse. -When a client is closed, the driver will send a command to the server to end all sessions it has cached -in its server session pool. You may see this command in your logs when a client is closed. - -Note that when using the `block syntax <#creating-a-session-from-a-mongo-client>`_ for ``start_session`` the session is automatically ended after -the block finishes executing. diff --git a/source/reference/transactions.txt b/source/reference/transactions.txt deleted file mode 100644 index 943c25626..000000000 --- a/source/reference/transactions.txt +++ /dev/null @@ -1,207 +0,0 @@ -************ -Transactions -************ - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - - -Version 4.0 of the MongoDB server introduces -`multi-document transactions `_. -(Updates to multiple fields within a single document are atomic in all -versions of MongoDB.) Ruby driver version 2.6.0 adds support for transactions. - -.. sharedinclude:: dbx/transactions-parallelism.rst - -.. _using-transactions: - -Using Transactions -================== - -In order to start a transaction, the application must have a :ref:`session `. - -The recommended way to use transactions is to utilize the ``with_transaction`` -helper method: - -.. code-block:: ruby - - session = client.start_session - session.with_transaction do - collection.insert_one({hello: 'world'}, session: session) - end - -The ``with_transaction`` helper does the following: - -- It starts a transaction prior to calling the supplied block, and commits - the transaction when the block finishes. -- If any of the operations in the block, or the commit operation, result in - a transient transaction error, the block and/or the commit will be executed - again. - -The block should be idempotent, because it may be called multiple times. - -The block may explicitly commit or abort the transaction, by calling -``commit_transaction`` or ``abort_transaction``; in this case ``with_transaction`` -will not attempt to commit or abort (but may still retry the block on -transient transaction errors propagated out of the block). - -The block will also be retried if the transaction's commit result is unknown. -This may happen, for example, if the cluster undergoes an election during the -commit. In this case when the block is retried, the primary server of the -topology would likely have changed. - -Currently ``with_transaction`` will stop retrying the block and the commit once -120 seconds pass since the beginning of its execution. This time is not -configurable and may change in a future driver version. Note that this -does not guarantee the overall runtime of ``with_transactions`` will be 120 -seconds or less - just that once 120 seconds of wall clock time have elapsed, -further retry attempts will not be initiated. - -A low level API is also available if more control over transactions is desired. - -``with_transaction`` takes the same options as ``start_transaction`` does, -which are read concern, write concern and read preference: - -.. code-block:: ruby - - session = client.start_session - session.with_transaction( - read_concern: {level: :majority}, - write_concern: {w: 3}, - read: {mode: :primary} - ) do - collection.insert_one({hello: 'world'}, session: session) - end - -Handling Errors Within the ``with_transaction`` Block ------------------------------------------------------ - -If a command inside the ``with_transaction`` block fails, it may cause -the transaction on the server to be aborted. This situation is normally handled -transparently by the driver. However, if the application catches such an error -and does not re-raise it, the driver will not be able to determine whether -the transaction was aborted or not. The driver will then retry the block -indefinitely. - -To avoid this situation, the application must not silently handle errors within -``with_transaction`` block. If the application needs to handle errors within -the block, it must re-raise the errors. - -.. code-block:: ruby - - session.with_transaction do - collection.insert_one({hello: 'world'}, session: session) - rescue Mongo::Error::OperationFailure => e - # Do something in response to the error - raise e - end - -If the applications needs to handle errors in a custom way, it should use -the low level API instead. - -Low Level API -============= - -A transaction can be started by calling the ``start_transaction`` method on a session: - -.. code-block:: ruby - - session = client.start_session - session.start_transaction - -It is also possible to specify read concern, write concern and read preference -when starting a transaction: - -.. code-block:: ruby - - session = client.start_session - session.start_transaction( - read_concern: {level: :majority}, - write_concern: {w: 3}, - read: {mode: :primary}) - -To persist changes made in a transaction to the database, the transaction -must be explicitly committed. If a session ends with an open transaction, -`the transaction is aborted `_. -A transaction may also be aborted explicitly. - -To commit or abort a transaction, call ``commit_transaction`` or -``abort_transaction`` on the session instance: - -.. code-block:: ruby - - session.commit_transaction - - session.abort_transaction - -Note: an outstanding transaction can hold locks to various objects in the -server, such as the database. For example, the drop call in the following -snippet will hang for `transactionLifetimeLimitSeconds -`_ -seconds (default 60) until the server expires and aborts the transaction: - -.. code-block:: ruby - - c1 = Mongo::Client.new(['127.0.0.1:27017']).use(:test_db) - session = c1.start_session - c1['foo'].insert_one(test: 1) - session.start_transaction - c1['foo'].insert_one({test: 2}, session: session) - - c2 = Mongo::Client.new(['127.0.0.1:27017']).use(:test_db) - # hangs - c2.database.drop - -Since transactions are associated with server-side sessions, closing the client -does not abort a transaction that this client initiated - the application must -either call ``abort_transaction`` or wait for the transaction to time out on -the server side. In addition to committing or aborting the transaction, an -application can also end the session which will abort a transaction on this -session if one is in progress: - -.. code-block:: ruby - - session.end_session - - c2 = Mongo::Client.new(['127.0.0.1:27017']).use(:test_db) - # ok - c2.database.drop - -Handling Errors ---------------- - -If a command inside the transaction fails, the transaction may be aborted -on the server. Errors that abort transactions do not have -``TransientTransactionError`` in their error labels. An attempt to commit such a -transaction will be rejected with ``NoSuchTransaction`` error. - - -Retrying Commits -================ - -The transaction commit `can be retried -`_ -if it fails. Here is the Ruby code to do so: - -.. code-block:: ruby - - begin - session.commit_transaction - rescue Mongo::Error => e - if e.label?('UnknownTransactionCommitResult') - retry - else - raise - end - end - - -Transaction Nesting -=================== - -MongoDB does not support nesting transactions. Attempting to call -``start_transaction`` or ``with_transaction`` when a transaction is already -in progress will result in an error. diff --git a/source/reference/user-management.txt b/source/reference/user-management.txt deleted file mode 100644 index 5363b9a2f..000000000 --- a/source/reference/user-management.txt +++ /dev/null @@ -1,224 +0,0 @@ -.. _user-management: - -*************** -User Management -*************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -The Mongo Ruby Driver provides a set of methods for managing users in a -MongoDB deployment. All of these methods are defined on the -``Mongo::Auth::User::View`` class, which defines the behavior for -performing user-related operations on a database. You can access a database's -user view by calling the ``users`` method on the correpsonding -``Mongo::Database`` object: - -.. code-block:: ruby - - client.database.users - -Note that this will open a view on the database to which the client is already -connected. To interact with the users defined on a different database, call -the client's ``use`` method and pass in the name of the database with which -you want to connect: - -.. code-block:: ruby - - client.use(:users).database.users - -In this example, all operations would be performed on the ``users`` database. - -For more information about users and user management, see MongoDB's -:manual:`online documentation `. - - -Users and Databases -=================== - -When a client connects to the server, MongoDB distinguishes the database -that the client will perform operations on from the :ref:`auth source ` -which is the database storing the user that the client is authenticating as. - -In many cases, the auth source is the same as the database. When they differ, -user management operations must be done on the auth source database. For -example, to create a user authenticating with X.509 certifcate, which must be -defined on the ``$external`` database: - -.. code-block:: ruby - - client.use('$external').database.users.create( - 'C=US,ST=New York,L=New York City,O=MongoDB,OU=x509,CN=localhost', - roles: [{role: 'read', db: 'admin'}], - ) - -Note that the auth source is not specified for creating the user - auth source -is only used during the authentication process. If ``#create`` is invoked with -a ``User`` object with ``auth_source`` set, the auth source is ignored for -the purposes of user management. - - -Creating Users -============== - -There are two ways to create a new database user with the Ruby Driver. - -The simplest way to create a new user is to use the ``create`` method, -passing in a username, password, and roles: - -.. code-block:: ruby - - client.database.users.create( - 'alanturing', - password: 'enigma', - roles: [ Mongo::Auth::Roles::READWRITE ] - ) - -Another way to create a user is to first create a ``Mongo::Auth::User`` object -with all the user information and then pass that object into the ``create`` -method instead. - -.. code-block:: ruby - - user = Mongo::User.new( - user: 'alanturing', - password: 'enigma', - roles: [ Mongo::Auth::Roles::READWRITE ] - ) - - client.database.users.create(user) - -Note that your new user's credentials will be stored in whatever database your -``client`` object is currently connected to. This will be your user's -``auth_source``, and you must be connected to that same database in order to -update, remove, or get information about the user you just created in the future. - -The ``create`` method takes a ``Hash`` of options as an optional second argument. -The ``:roles`` option allows you to grant permissions to the new user. -For example, the ``Mongo::Auth::Roles::READ_WRITE`` role grants the user the -ability to both read from and write to the database in which they were created. -Each role can be specified as a ``String`` or as a ``Hash``. If you would like -to grant permissions to a user on a database other than the one on which they -were created, you can pass that database name in the role ``Hash``. To create -a user ``alanturing`` with permission to read and write on the ``machines`` -database, you could execute the following code: - -.. code-block:: ruby - - client.database.users.create( - 'alanturing', - password: 'enigma', - roles: [{ role: Mongo::Auth::Roles::READWRITE, db: 'machines' }] - ) - -For more information about roles in MongoDB, see the -:manual:`Built-in roles` documentation. - -In addition to the ``:roles`` option, the ``create`` method supports a -``:session`` option, which allows you to specify a ``Mongo::Session`` object -to use for this operation, as well as a ``:write_concern`` option, -which specifies the write concern of this operation when performed on a -replica set. - -.. seealso:: - :manual:`Built-in roles` - :manual:`Write Concerns`, - :ref:`Sessions`, - - -User Information -================ - -To view information about a user that already exists in the database, use the -``info`` method: - -.. code-block:: ruby - - client.database.users.info('alanturing') - -If the user exists, this method will return an ``Array`` object containing a -``Hash`` with information about the user, such as their id, username, the -database they were created on, and their roles. If the user doesn't exist, -this method will return an empty Array. - -The ``info`` method also takes an optional ``Hash`` of options as a second -argument. Currently, the only supported option is ``:session``, which allows -you to specify a ``Mongo::Session`` object to use for this operation. - -The Ruby Driver does not have a method that lists all of the users that -currently exist in a database. - -.. seealso:: - :ref:`Sessions ` - - -Updating Users -============== - -To update a user that already exists in the database, you can use the -``update`` method in one of two ways. The first way is to specify the name of -the user you wish to update, along with a new set of options. - -.. warning:: - - You must include all user options in the options ``Hash``, even those options - whose values will remain the same. Omitting an option is the same as setting - it to an empty value. - -.. code-block:: ruby - - client.database.users.update( - 'alanturing', - roles: [ Mongo::Auth::Roles::READ_WRITE ] - password: 'turing-test' - ) - -The second way to update a user is to pass an updated ``Mongo::Auth::User`` -object to the ``update`` method in lieu of a username. - -.. code-block:: ruby - - user = Mongo::Auth::User.new({ - user: 'alanturing', - roles: [ Mongo::Auth::Roles::READ_WRITE ], - password: 'turing-test' - }) - - client.database.users.update(user) - -Optionally, the ``update`` method takes a ``Hash`` of options as a second -argument. The two possible options for this method are ``:session``, which -allows you to specify a ``Mongo::Session`` object on which to perform this -operation, and ``:write_concern``, which sets a write concern if this operation -is performed on a replica set. - -.. seealso:: - :ref:`Sessions` - :manual:`Write Concerns`, - -Removing Users -============== - -To remove a user from the database, use the ``remove`` method: - -.. code-block:: ruby - - client.database.users.remove('alanturing') - -You may pass a ``Hash`` of options as a second argument. The two supported -options for the ``remove`` method are ``:session`` and ``:write_concern``. -``:session`` allows you to specify a ``Mongo::Session`` object to use for -this operation. ``:write_concern`` specifies the write concern -of the operation if you are running this command against a replica set. - -The Ruby Driver does not provide a method for removing all users -from a database. - -.. seealso:: - :ref:`Sessions` - :manual:`Write Concerns`, diff --git a/source/reference/working-with-data.txt b/source/reference/working-with-data.txt deleted file mode 100644 index e6a5469b5..000000000 --- a/source/reference/working-with-data.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. _working-with-data: - -***************** -Working With Data -***************** - -.. default-domain:: mongodb - -This section describes in detail the functionality that the Ruby driver -implements for inserting, updating and retrieving data from MongoDB. - -.. toctree:: - :titlesonly: - - CRUD - Bulk Writes - Projection - Aggregation - MapReduce - Text Search - Geospatial Search - Query Cache - GridFS - Change Streams - Sessions - Transactions - In-Use Encryption diff --git a/source/release-notes.txt b/source/release-notes.txt deleted file mode 100644 index 85cd63fa9..000000000 --- a/source/release-notes.txt +++ /dev/null @@ -1,53 +0,0 @@ -.. _release-notes: - -************* -Release Notes -************* - -.. default-domain:: mongodb - -This page documents significant changes in driver releases. - -It is not an exhaustive list of changes and generally does not enumerate -bug fixes; please consult the `releases page on GitHub -`_ for a more -comprehensive list of changes in each version of the driver and the -`releases page in Jira -`_ -for the complete list of changes, including those internal to the driver and -its test suite. - -.. _release-notes-2.21: - -2.21 -==== - -This release includes the following new features: - -- Adds support for the Client-Side Operations Timeout (CSOT) feature, which unifies - most timeout-related options under a single ``timeout_ms`` option. -- Adds support for MongoDB Server version 8.0. -- Adds support for range v2 queries with Queryable Encryption, including a new ``trim_factor`` - parameter. For more information about Queryable Encryption, see :manual:`Queryable Encryption ` - in the MongoDB Server manual. - -.. _release-notes-2.20: - -2.20 -==== - -This release includes the following new features: - -- Support for Ruby 2.5 and 2.6 has been discontinued. Support for Ruby 2.7 and - JRuby 9.2 has been deprecated, and will be discontinued in the next minor - driver version. Support for JRuby 9.4 has been added. -- Support for the newly-released Ruby-BSON version 5.0. -- Connection strings no longer require a slash between the hosts and the - options. E.g., "mongodb://example.com?w=1" and "mongodb://example.com/?w=1" - are both valid connection strings now. -- Container runtime and orchestration metadata for the client environment are - now sent to the server for analytics purposes. -- A warning message is now written to the log when the host is detected to be - a CosmosDB (Azure) or DocumentDB (Amazon) instance. -- When attempting a retry of a read or write operation in a sharded topology, - the retry will be attempted on a different mongos instance, if possible. \ No newline at end of file diff --git a/source/security.txt b/source/security.txt new file mode 100644 index 000000000..d1d745f6f --- /dev/null +++ b/source/security.txt @@ -0,0 +1,24 @@ +.. _ruby-security: + +======== +Security +======== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: community, security + +.. toctree:: + :titlesonly: + + Authentication + In-Use Encryption \ No newline at end of file diff --git a/source/security/auth-mechanisms/aws-iam.txt b/source/security/auth-mechanisms/aws-iam.txt new file mode 100644 index 000000000..2492e92f2 --- /dev/null +++ b/source/security/auth-mechanisms/aws-iam.txt @@ -0,0 +1,236 @@ +.. _ruby-authentication-aws: + +================================== +AWS Identity and Access Management +================================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 3 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: amazon web services, code example + +Overview +-------- + +.. note:: + + AWS authentication is available only in the MongoDB Enterprise Edition for MongoDB 4.4 + and later. + +The AWS authentication mechanism uses AWS `Identity and Access Management (IAM) +`_ +and AWS `Security Token Service (STS) +`_ +to prove the client's identity to a MongoDB deployment. The following steps describe the +AWS authentication process: + +1. The client uses AWS IAM credentials to create a signature that is sent to + the MongoDB deployment. +2. The deployment uses the client's signature to send a request to AWS STS. +3. If the request succeeds, STS returns the Amazon Resource Name (ARN) of + the IAM user or role that corresponds to the client's credentials. +4. The deployment uses the returned ARN to look up the user. The + client is authenticated as this user. + +.. note:: + + The client and server use different usernames. The client uses the AWS access key ID, + but the server uses the ARN of the IAM user or role corresponding to the access key ID. + +AWS credentials include the following components: + +- Access key ID +- Secret access key +- Optional session token + +Authentication with `AWS IAM credentials +`__ +uses the access key ID and the secret access key. Authentication with +`temporary AWS IAM credentials +`__ +uses all three components. + +.. note:: + + The driver never sends the secret access key or the session token over + the network. + +Temporary credentials are used with: + +- STS `Assume Role `__ + requests. +- `EC2 instance roles `__. +- `ECS task roles `__. +- `AWS Lambda environment `__. +- `IAM roles for service accounts `__. + +Code Placeholders +~~~~~~~~~~~~~~~~~ + +The code examples on this page use the following placeholders: + +- ````: The network address of your MongoDB deployment +- ````: The AWS access key ID +- ````: The AWS secret access key +- ````: The AWS session token + +Using AWS IAM Authentication in Your Application +------------------------------------------------ + +The following sections describe how to use the AWS IAM authentication mechanism in your +application. + +Providing Credentials Explicitly +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can provide regular (non-temporary) IAM credentials as client options or by using a URI. +Select the :guilabel:`Connection String` or :guilabel:`Client Options` tab to +see the corresponding syntax: + +.. tabs:: + + .. tab:: Connection String + :tabid: default-connection-string + + .. literalinclude:: /includes/authentication/aws-iam.rb + :start-after: start-aws-connection-string + :end-before: end-aws-connection-string + :language: ruby + :copyable: + :dedent: + + .. tab:: Client Options + :tabid: default-mongo-credential + + .. literalinclude:: /includes/authentication/aws-iam.rb + :start-after: start-aws + :end-before: end-aws + :language: ruby + :copyable: + :dedent: + +.. note:: + + If you provide credentials in a URI, you must percent-encode them. + +Providing Temporary Credentials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To provide temporary credentials, specify the session token in the +client options or by using a URI. Select the :guilabel:`Connection String` +or :guilabel:`Client Options` tab to see the corresponding syntax: + +.. tabs:: + + .. tab:: Connection String + :tabid: default-connection-string + + .. literalinclude:: /includes/authentication/aws-iam.rb + :start-after: start-aws-temp-connection-string + :end-before: end-aws-temp-connection-string + :language: ruby + :copyable: + :dedent: + + .. tab:: Client Options + :tabid: default-mongo-credential + + .. literalinclude:: /includes/authentication/aws-iam.rb + :start-after: start-aws-temp + :end-before: end-aws-temp + :language: ruby + :copyable: + :dedent: + +Automatically Retrieving Credentials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The client can retrieve credentials from the environment or from EC2 or ECS +metadata endpoints. To retrieve credentials automatically, specify the +AWS authentication mechanism but do not specify a username or a password. Select the +:guilabel:`Connection String` or :guilabel:`Client Options` tab to see the corresponding syntax: + +.. tabs:: + + .. tab:: Connection String + :tabid: default-connection-string + + .. literalinclude:: /includes/authentication/aws-iam.rb + :start-after: start-aws-automatic-retrieval-connection-string + :end-before: end-aws-automatic-retrieval-connection-string + :language: ruby + :copyable: + :dedent: + + .. tab:: Client Options + :tabid: default-mongo-credential + + .. literalinclude:: /includes/authentication/aws-iam.rb + :start-after: start-aws-automatic-retrieval + :end-before: end-aws-automatic-retrieval + :language: ruby + :copyable: + :dedent: + +The driver tries to obtain credentials from the following sources, in +the specified order: + +- ``AWS_ACCESS_KEY_ID``, ``AWS_SECRET_ACCESS_KEY`` and ``AWS_SESSION_TOKEN`` + environment variables. These environment variables are recognized by + a variety of AWS-related libraries and tools, such as the official + AWS Ruby SDK and the AWS CLI. They are also defined when running in an + AWS Lambda environment. +- AWS STS `AssumeRoleWithWebIdentity action + `__. + This mechanism returns credentials associated with the service account token, and + requires the following environment variables to be set: + + - ``AWS_WEB_IDENTITY_TOKEN_FILE``: Path to a file containing the service + account token. + - ``AWS_ROLE_ARN``: The Amazon Resource Name (ARN) of the role that the + caller is assuming. + - ``AWS_ROLE_SESSION_NAME`` (optional): Identifier for the assumed role + session. If this variable is empty, the driver generates a random identifier. + +- The AWS `ECS task metadata + `__ endpoint. + This endpoint returns credentials associated with the ECS task role assigned to + the container. +- The AWS `EC2 instance metadata + `__ endpoint. + This endpoint returns credentials associated with the EC2 instance role assigned to + the instance. + +.. important:: + + A credentials source must provide a complete + set of credentials. For example, if your application uses the ``AWS_ACCESS_KEY_ID`` + and ``AWS_SECRET_ACCESS_KEY`` environment variables, the driver raises an error if only + one of these variables has a value. + +.. note:: + + If an application runs in an ECS container on an EC2 instance and + the container is allowed access to the instance metadata, + the driver attempts to retrieve AWS credentials from the EC2 instance metadata endpoint. + If the driver retrieves credentials in this way, your application can authenticate as the IAM + role assigned to the EC2 instance. + + To learn how to prevent containers from accessing EC2 instance metadata, + see the `AWS documentation `__. + +API Documentation +----------------- + +To learn more about any of the methods or types discussed on this +page, see the following API documentation: + +- :ruby-api:`Mongo::Client ` diff --git a/source/security/auth-mechanisms/kerberos.txt b/source/security/auth-mechanisms/kerberos.txt new file mode 100644 index 000000000..050890a2e --- /dev/null +++ b/source/security/auth-mechanisms/kerberos.txt @@ -0,0 +1,136 @@ +.. _ruby-authentication-kerberos: + +================= +Kerberos (GSSAPI) +================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code example + +Overview +-------- + +The Generic Security Services API (GSSAPI) authentication mechanism allows you to +use your principal name to authenticate to a Kerberos service. +You can use this mechanism only when authenticating to MongoDB Enterprise Advanced. + +Code Placeholders +~~~~~~~~~~~~~~~~~ + +The code examples on this page use the following placeholders: + +- ````: LDAP username. +- ````: Network address of your MongoDB deployment. +- ````: Port number of your MongoDB deployment. If you omit this parameter, + the driver uses the default port number (``27017``). Specifying a port number is optional + when connecting to a MongoDB Atlas cluster. +- ````: MongoDB database that contains the user's LDAP credentials. + If you omit this parameter, the driver uses the default database (``admin``). + +To use the code examples on this page, replace these placeholders with your own values. + +Using GSSAPI Authentication in Your Application +----------------------------------------------- + +To configure {+mdb-server+} to use Kerberos, see the +:manual:`{+mdb-server+} Kerberos documentation +`. + +To use the Kerberos authentication mechanism with the {+driver-short+}, +you must install and load the `mongo_kerberos `__ +library. To do so, add the following lines to your ``Gemfile``: + +.. code-block:: ruby + + gem 'mongo', '~> 2' + gem 'mongo_kerberos', '~> 2' + +Then, add the following lines to your application code: + +.. code-block:: ruby + + require 'mongo' + require 'mongo_kerberos' + +.. note:: + + When using Kerberos authentication, you must specify the fully qualified domain name + (FQDN) of the host. + +The following sections describe how to use Kerberos authentication with Ruby MRI and +JRuby. + +Using Kerberos Authentication with Ruby MRI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you're using Kerberos authentication with **Ruby MRI**, you must perform the following +steps: + +- Establish a Kerberos session on the driver. The driver uses this session to prove the user's identity to + the server. + +- You must ensure that the host system is + configured for Kerberos authentication. To learn more about configuring the host system + to use Kerberos, see the `Kerberos documentation `__ + or your operating system documentation for details. + +Use the `kinit utility `__ +to establish a Kerberos session. + +Using Kerberos Authentication with JRuby +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you're using Kerberos authentication with **JRuby**, you can externally establish the Kerberos +session to the driver by using the process described above for MRI. You can also provide the +path to a keytab file by storing the configuration in the ``java.security.auth.login.config`` system property. +You must also configure the Java Runtime Environment to use Kerberos. To learn more, see the +:driver:`MongoDB Java Driver Kerberos documentation ` +for more information. + +Kerberos Authentication Example +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Select the :guilabel:`Connection String` or :guilabel:`Client Options` tab to +see the corresponding syntax for connecting to MongoDB with Kerberos authentication: + +.. tabs:: + + .. tab:: Connection String + :tabid: connection-string + + .. code-block:: ruby + + client = Mongo::Client.new("mongodb://@[:]/?authMechanism=GSSAPI") + + + .. tab:: Client Options + :tabid: mongo-credential + + .. code-block:: ruby + + client = Mongo::Client.new(['[:]'], + auth_mech: :gssapi, + user: '') + +.. note:: + + If you use a connection string to connect to MongoDB, ensure that you percent-encode any + special characters that appear in the username. + +API Documentation +----------------- + +To learn more about any of the methods or types discussed on this +page, see the following API documentation: + +- :ruby-api:`Mongo::Client ` diff --git a/source/security/auth-mechanisms/ldap.txt b/source/security/auth-mechanisms/ldap.txt new file mode 100644 index 000000000..51373baed --- /dev/null +++ b/source/security/auth-mechanisms/ldap.txt @@ -0,0 +1,83 @@ +.. _ruby-authentication-ldap: + +==== +LDAP +==== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code example + +Overview +-------- + +The PLAIN authentication mechanism allows you to use your Lightweight Directory Access +Protocol (LDAP) username and password to authenticate to MongoDB. +You can use this mechanism only when authenticating to MongoDB Enterprise Advanced. + +.. tip:: PLAIN Authentication + + LDAP authentication uses the PLAIN Simple Authentication and Security Layer + (SASL) defined in `RFC-4616 `__. + +Code Placeholders +~~~~~~~~~~~~~~~~~ + +The code examples on this page use the following placeholders: + +- ````: Your LDAP username. +- ````: Your LDAP password. +- ````: The network address of your MongoDB deployment. +- ````: The port number of your MongoDB deployment. If you omit this parameter, + the driver uses the default port number (``27017``). You don't need to specify a port + when connecting to a MongoDB Atlas cluster. +- ````: The MongoDB database that contains the user's LDAP credentials. + If you omit this parameter, the driver uses the default database (``admin``). + +To use the code examples on this page, replace these placeholders with your own values. + +Using PLAIN Authentication in Your Application +---------------------------------------------- + +You can specify the ``PLAIN`` authentication mechanism and supply your LDAP credentials +either as a client option or as part of the connection string. +Select the :guilabel:`Connection String` or :guilabel:`Client Options` tab to +see the corresponding syntax: + +.. tabs:: + + .. tab:: Connection String + :tabid: connection-string + + .. code-block:: ruby + + client = Mongo::Client.new('mongodb://:@[:]/?authSource=&authMechanism=PLAIN') + + .. tab:: Client Options + :tabid: mongo-credential + + .. code-block:: ruby + + client = Mongo::Client.new([ '' ], + auth_mech: :plain, + ssl: true, + ssl_verify: true, + ssl_cert: '/path/to/client.pem', + ssl_ca_cert: '/path/to/ca.pem' ) + +API Documentation +----------------- + +To learn more about any of the methods or types discussed on this +page, see the following API documentation: + +- :ruby-api:`Mongo::Client ` diff --git a/source/security/auth-mechanisms/scram.txt b/source/security/auth-mechanisms/scram.txt new file mode 100644 index 000000000..48d6262a1 --- /dev/null +++ b/source/security/auth-mechanisms/scram.txt @@ -0,0 +1,98 @@ +.. _ruby-authentication-scram: + +===== +SCRAM +===== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: salt, default, code example + +Overview +-------- + +**Salted Challenge Response Authentication Mechanism (SCRAM)** is a family of +authentication mechanisms that use a challenge-response mechanism to authenticate +the user. SCRAM-SHA-256, which uses the SHA-256 algorithm to hash your password, is the +default authentication mechanism in {+mdb-server+} version 4.0 +and later. SCRAM-SHA-1, which uses the SHA-1 algorithm instead, is the default +authentication mechanism in {+mdb-server+} versions earlier than 4.0. + +You can use SCRAM to authenticate to MongoDB Atlas, MongoDB +Enterprise Advanced, and MongoDB Community Edition. + +.. tip:: SCRAM Mechanisms + + To learn more about the SCRAM family of authentication mechanisms, see + `RFC 5802 `__ and + :wikipedia:`Salted Challenge Response Authentication Mechanism ` + on Wikipedia. + + For more information about the MongoDB implementation of SCRAM, see + :manual:`SCRAM ` in the {+mdb-server+} manual. + +Code Placeholders +~~~~~~~~~~~~~~~~~ + +The code examples on this page use the following placeholders: + +- ``+srv``: Include this option in your connection string prefix only if you are connecting + to a MongoDB Atlas cluster. To learn more about the ``+srv`` option, see + :manual:`Connection String Formats ` + in the {+mdb-server+} manual. +- ````: The MongoDB username of the user to authenticate. +- ````: The MongoDB password of the user to authenticate. +- ````: The network address of your MongoDB deployment. +- ````: The port number of your MongoDB deployment. If you omit this parameter, + the driver uses the default port number (``27017``). You don't need a port number + when connecting to a MongoDB Atlas cluster. +- ````: The MongoDB database that contains the user's authentication + data. If you omit this parameter, the driver uses the default value, ``admin``. + +To use the code examples on this page, replace these placeholders with your own values. + +Using SCRAM Authentication in Your Application +---------------------------------------------- + +To use SCRAM to authenticate your MongoDB user, specify your +MongoDB credentials, but don't specify an authentication mechanism. +You can specify your MongoDB +credentials either in your connection string or by passing your username and password to the +``user`` and ``password`` options when creating a client. +Select the :guilabel:`Connection String` or :guilabel:`Client Options` tab to +see the corresponding syntax: + +.. tabs:: + + .. tab:: Connection String + :tabid: default-connection-string + + .. code-block:: ruby + + client = Mongo::Client.new('mongodb[+srv]://:@[:]/?authSource=') + + .. tab:: Client Options + :tabid: default-mongo-credential + + .. code-block:: ruby + + client = Mongo::Client.new('', + user: '', + password: '') + +API Documentation +----------------- + +To learn more about any of the methods or types discussed on this +page, see the following API documentation: + +- :ruby-api:`Mongo::Client ` diff --git a/source/security/auth-mechanisms/x509.txt b/source/security/auth-mechanisms/x509.txt new file mode 100644 index 000000000..34d25ae40 --- /dev/null +++ b/source/security/auth-mechanisms/x509.txt @@ -0,0 +1,101 @@ +.. _ruby-authentication-x509: + +===== +X.509 +===== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: certificate, code example + +Overview +-------- + +In the **X.509** authentication mechanism, the server and client use the +:wikipedia:`TLS ` protocol to exchange X.509 public-key +certificates. You can use this mechanism to authenticate to MongoDB Atlas, MongoDB +Enterprise Advanced, and MongoDB Community Edition. + +.. tip:: X.509 Mechanism + + To learn how to use TLS/SSL with the {+driver-short+}, + see :ref:`TLS/SSL `. + + For more information about X.509 certificates, see + :ref:`X.509 ` in the {+mdb-server+} manual. + +Code Placeholders +~~~~~~~~~~~~~~~~~ + +The code examples on this page use the following placeholders: + +- ``+srv``: Include this option in your connection string prefix only if you are connecting + to a MongoDB Atlas cluster. To learn more about the ``+srv`` option, see + :manual:`Connection String Formats ` + in the {+mdb-server+} manual. +- ````: The network address of your MongoDB deployment. +- ````: The port number of the MongoDB deployment. If you omit this parameter, + the driver uses the default port number (``27017``). You don't need a port number + when connecting to a MongoDB Atlas cluster. +- ````: The username of the user associated with the X.509 + certificate. The username must match the distinguished subject name of the certificate. + If you omit this parameter, the MongoDB deployment infers the username + from the X.509 certificate. +- ````: The password for the X.509 certificate. + +To use the code examples on this page, replace these placeholders with your own values. + +Using X.509 Authentication in Your Application +---------------------------------------------- + +X.509 authentication requires the use of TLS encryption with +certificate validation. To authenticate the client, you will need a valid TLS certificate +and private encryption key. These can be stored in separate files, or together in one ``.pem`` file. + +.. note:: + + Even if the certificate and private key are stored in the same file, you must specify the + path to that file in both the ``ssl_cert`` and ``ssl_key`` options. + +Select the :guilabel:`Connection String` or :guilabel:`Client Options` tab to +see the corresponding syntax: + +.. tabs:: + + .. tab:: Connection String + :tabid: default-connection-string + + .. code-block:: ruby + + client = Mongo::Client.new("mongodb[+srv]://[:]/?authSource=$external&authMechanism=MONGODB-X509") + + + .. tab:: Client Options + :tabid: default-mongo-credential + + .. code-block:: ruby + + client = Mongo::Client.new('', + auth_mech: :mongodb_x509, + ssl: true, + ssl_cert: '/path/to/client.pem', + ssl_key: '/path/to/client.pem', + ssl_ca_cert: '/path/to/ca.pem') + + +API Documentation +----------------- + +To learn more about any of the MongoDB methods and types used on this +page, see the following API documentation: + +- :ruby-api:`Mongo::Client ` diff --git a/source/security/authentication.txt b/source/security/authentication.txt new file mode 100644 index 000000000..d5290fc35 --- /dev/null +++ b/source/security/authentication.txt @@ -0,0 +1,76 @@ +.. _ruby-authentication-mechanisms: + +========================= +Authentication Mechanisms +========================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: community, security + +.. toctree:: + :caption: Authentication + + SCRAM + X.509 + AWS IAM + LDAP (PLAIN) + Kerberos (GSSAPI) + +Overview +-------- + +In this guide, you can learn how to authenticate to MongoDB by using the +**authentication mechanisms** available in {+mdb-server+}. +Authentication mechanisms are processes by which the driver and server confirm +the identity of a client to ensure security before connecting. + +.. tip:: Connecting to MongoDB + + To learn how to establish a connection to your MongoDB deployment, see the + :ref:`ruby-get-started-connect-to-mongodb` guide. + +MongoDB Edition Compatibility +----------------------------- + +The following table lists the authentication mechanisms supported by MongoDB and +the {+mdb-server+} editions that each mechanism is compatible with. Click the name of +a mechanism to learn more about how to use it with your application. + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + + * - Authentication Mechanism + - Atlas + - Enterprise Advanced + - Community + * - :ref:`` + - Yes + - Yes + - Yes + * - :ref:`` + - Yes + - Yes + - Yes + * - :ref:`` + - Yes + - No + - No + * - :ref:`` + - Yes + - Yes + - No + * - :ref:`Kerberos (GSSAPI) ` + - No + - Yes + - No \ No newline at end of file diff --git a/source/security/in-use-encryption.txt b/source/security/in-use-encryption.txt new file mode 100644 index 000000000..5bc4e9877 --- /dev/null +++ b/source/security/in-use-encryption.txt @@ -0,0 +1,101 @@ +.. _ruby-in-use-encryption: + +================= +In-Use Encryption +================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: qe, csfle, field level encryption + +Overview +-------- + +You can use the {+driver-short+} to encrypt specific document fields by using a +set of features called **in-use encryption**. In-use encryption allows +your application to encrypt data *before* sending it to MongoDB +and query documents with encrypted fields. + +In-use encryption prevents unauthorized users from viewing plaintext +data as it is sent to MongoDB or while it is in an encrypted database. To +enable in-use encryption in an application and authorize it to decrypt +data, you must create encryption keys that only your application can +access. Only applications that have access to your encryption +keys can access the decrypted, plaintext data. If an attacker gains +access to the database, they can see only the encrypted ciphertext data +because they lack access to the encryption keys. + +You can use in-use encryption to encrypt fields in your MongoDB +documents that contain the following types of sensitive data: + +- Credit card numbers +- Addresses +- Health information +- Financial information +- Any other sensitive or personally identifiable information (PII) + +MongoDB offers the following features to enable in-use encryption: + +- :ref:`Queryable Encryption ` +- :ref:`Client-side Field Level Encryption ` + +.. _ruby-in-use-encryption-qe: + +Queryable Encryption +-------------------- + +Queryable Encryption is the next-generation in-use encryption feature, +first introduced as a preview feature in {+mdb-server+} version 6.0 and +as a generally available (GA) feature in MongoDB 7.0. Queryable +Encryption supports searching encrypted fields for equality and encrypts +each value uniquely. + +.. important:: Preview Feature Incompatible with MongoDB 7.0 + + The implementation of Queryable Encryption in MongoDB 6.0 is incompatible with + the GA version introduced in MongoDB 7.0. The Queryable Encryption preview + feature is no longer supported. + +To learn more about Queryable Encryption, see :manual:`Queryable +Encryption ` in the {+mdb-server+} manual. + +.. _ruby-in-use-encryption-csfle: + +Client-side Field Level Encryption +---------------------------------- + +Client-side Field Level Encryption (CSFLE) was introduced in {+mdb-server+} +version 4.2 and supports searching encrypted fields for equality. +CSFLE differs from Queryable Encryption in that you can select either a +deterministic or random encryption algorithm to encrypt fields. You can only +query encrypted fields that use a deterministic encryption algorithm when +using CSFLE. When you use a random encryption algorithm to encrypt +fields in CSFLE, they can be decrypted, but you cannot perform equality +queries on those fields. When you use Queryable Encryption, you cannot +specify the encryption algorithm, but you can query all encrypted +fields. + +When you deterministically encrypt a value, the same input value +produces the same output value. While deterministic encryption allows +you to perform queries on those encrypted fields, encrypted data with +low cardinality is susceptible to code breaking by frequency analysis. + +.. tip:: + + To learn more about these concepts, see the following Wikipedia + entries: + + - :wikipedia:`Cardinality ` + - :wikipedia:`Frequency Analysis ` + +To learn more about CSFLE, see :manual:`CSFLE ` in the {+mdb-server+} +manual. \ No newline at end of file diff --git a/source/support.txt b/source/support.txt deleted file mode 100644 index b06675889..000000000 --- a/source/support.txt +++ /dev/null @@ -1,15 +0,0 @@ -******* -Support -******* - -.. default-domain:: mongodb - -Commercial support for the Ruby driver is available through the -`MongoDB Support Portal `_. - -For questions, discussions or general technical support, please visit the -`MongoDB Community Forum -`_. - -Please see :manual:`Technical Support ` page -in the documentation for other support resources. diff --git a/source/tutorials.txt b/source/tutorials.txt deleted file mode 100644 index bef34aeb1..000000000 --- a/source/tutorials.txt +++ /dev/null @@ -1,18 +0,0 @@ -.. _tutorials: - -********* -Tutorials -********* - -.. default-domain:: mongodb - -.. toctree:: - :titlesonly: - - Quick Start - Common Errors - BSON Tutorial - -The tutorials in this section provide examples of some frequently used -operations. This section is not meant to be an exhaustive list of all -operations available in the Ruby driver. diff --git a/source/tutorials/quick-start.txt b/source/tutorials/quick-start.txt deleted file mode 100644 index fbfafc3e6..000000000 --- a/source/tutorials/quick-start.txt +++ /dev/null @@ -1,272 +0,0 @@ -*********************** -Ruby Driver Quick Start -*********************** - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -Prerequisites -============= - -- A running MongoDB instance on localhost using the default port, 27017. -- The Ruby MongoDB driver. See :ref:`installation ` - for instructions on how to install the MongoDB driver. -- The following statement at the top of your code: - -.. code-block:: ruby - - require 'mongo' - - -Make a Connection -================= - -Use ``Mongo::Client`` to establish a connection to a running MongoDB -instance. - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - -You can also use a URI connection string: - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - -.. seealso:: - :ref:`Connect to a replica set `, - :ref:`Connect to a sharded cluster `, - :ref:`Client options ` - -Access a Database and a Collection -================================== - -The following examples demonstrate how to access a particular database -and show its collections: - -.. code-block:: ruby - - client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') - db = client.database - - db.collections # returns a list of collection objects - db.collection_names # returns a list of collection names - db.list_collections # returns a list of collection metadata hashes - -To access a collection, refer to it by name. - -.. code-block:: ruby - - collection = client[:restaurants] - -If the collection does not exist, the server will create it the first -time you put data into it. - -Insert a Document -================= - -To insert a single document into a collection, use the -``insert_one`` method. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - - collection = client[:people] - - doc = { - name: 'Steve', - hobbies: [ 'hiking', 'tennis', 'fly fishing' ], - siblings: { - brothers: 0, - sisters: 1 - } - } - - result = collection.insert_one(doc) - result.n # returns 1, because one document was inserted - -To insert multiple documents into a collection, use the -``insert_many`` method. - -.. code-block:: ruby - - docs = [ { _id: 1, name: 'Steve', - hobbies: [ 'hiking', 'tennis', 'fly fishing' ], - siblings: { brothers: 0, sisters: 1 } }, - { _id: 2, name: 'Sally', - hobbies: ['skiing', 'stamp collecting' ], - siblings: { brothers: 1, sisters: 0 } } ] - - result = collection.insert_many(docs) - result.inserted_count # returns 2 because two documents were inserted - -Query the Collection -==================== - -Use the ``find`` method to create collection queries. - -An empty query filter returns all documents in the collection. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - collection.find.each do |document| - #=> Yields a BSON::Document. - end - -Use a query filter to find only matching documents. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - puts collection.find( { name: 'Sally' } ).first - -The example should print the following: - -.. code-block:: javascript - - {"_id" => 2, "name" => "Sally", "hobbies" => ["skiing", "stamp collecting"], "siblings" => { "brothers": 1, "sisters": 0 } } - -Query nested documents by specifying the keys and values you want -to match. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - puts collection.find("siblings.sisters": 1 ).first - -The example should print the following: - -.. code-block:: javascript - - {"_id"=>1, "name"=>"Steve", "hobbies"=>["hiking", "tennis", "fly fishing"], "siblings"=>{"brothers"=>0, "sisters"=>1}} - -.. seealso:: - - :ref:`Query Options`, :ref:`Read Preference` - -Update Documents -================ - -There are several update methods, including ``update_one`` and -``update_many``. ``update_one`` updates a single document, while -``update_many`` updates multiple documents at once. - -Both methods take as arguments a query filter document and a second -document with the update data. Use ``$set`` to add or update a -particular field or fields. Without ``$set``, the entire existing -document is replaced with the update data. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - result = collection.update_one( { 'name' => 'Sally' }, { '$set' => { 'phone_number' => "555-555-5555" } } ) - - puts collection.find( { 'name' => 'Sally' } ).first - -The example should print the following: - -.. code-block:: javascript - - {"_id" => 2, "name" => "Sally", "hobbies" => ["skiing", "stamp collecting"], "phone_number" => "555-555-5555"} - -The following example uses ``update_many`` with a blank query filter -to update all the documents in the collection. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - result = collection.update_many( {}, { '$set' => { 'age' => 36 } } ) - - puts result.modified_count # returns 2 because 2 documents were updated - -.. seealso:: - - :ref:`Other update options` - -Delete Documents -================ - -Use the ``delete_one`` or ``delete_many`` methods to delete documents -from a collection (either singly or several at once). - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - result = collection.delete_one( { name: 'Steve' } ) - - puts result.deleted_count # returns 1 because one document was deleted - -The following example inserts two more records into the collection, -then deletes all the documents with a ``name`` field which -matches a regular expression to find a string which begins with "S". - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - collection.insert_many([ { _id: 3, name: "Arnold" }, { _id: 4, name: "Susan" } ]) - - puts collection.count # counts all documents in collection - - result = collection.delete_many({ name: /$S*/ }) - - puts result.deleted_count # returns the number of documents deleted - -Create Indexes -============== - -Use the ``create_one`` or ``create_many`` methods to create indexes -singly or several at once. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - collection.indexes.create_one({ name: 1 }, unique: true) - -Use the ``create_many`` method to create several indexes with one -statement. Note that when using ``create_many``, the syntax is -different from ``create_one``. - -.. code-block:: ruby - - client = Mongo::Client.new('mongodb://127.0.0.1:27017/test') - collection = client[:people] - - collection.indexes.create_many([ - { key: { name: 1 } , unique: true }, - { key: { hobbies: 1 } }, - ]) - -.. seealso:: - - :ref:`Index options ` - -Complete Sample App -=================== - -A sample app using the Ruby driver for several common use cases -is available for download from -`GitHub `_. diff --git a/source/upgrade.txt b/source/upgrade.txt new file mode 100644 index 000000000..1c20a0cfb --- /dev/null +++ b/source/upgrade.txt @@ -0,0 +1,81 @@ +.. _ruby-upgrade: + +======================= +Upgrade Driver Versions +======================= + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: backwards compatibility, update + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +Overview +-------- + +In this section, you can identify the changes you must make to your application +to upgrade your driver to a new version. + +Before you upgrade, perform the following actions: + +- Ensure the new driver version is compatible with the {+mdb-server+} versions + your application connects to and the Ruby versions your application runs on. + To view compatibility information, see the :ref:`Compatibility ` page. + +- Address any breaking changes between the current version of the driver your + application is using and your planned upgrade version in the :ref:`Breaking + Changes ` section. + +Starting with version 2.18.0, the driver uses feature flags to manage breaking +changes. This feature allows you to opt into breaking changes before the next +major version release. + +Versioning +---------- + +Each {+driver-short+} release has a version number in the format +``MAJOR.MINOR.PATCH``. The {+driver-short+} uses `Semantic Versioning (SemVer) +`_, which typically means: + +- Breaking changes, enablement of new functionality, and removal of deprecated + functionality will only be done in major version releases. + +- New functionality will be added using feature flags, which must be enabled via + an opt-in configuration change. These feature flags may be added in either + major or minor releases. + +- Functionality may be marked as deprecated in either major or minor releases, + but will not be removed until the next major release, at the earliest. + +- Patch version releases will contain only non-breaking fixes and security + updates. + +.. _ruby-breaking-changes: + +Breaking Changes +---------------- + +A breaking change is a modification in a convention or behavior in +a specific version of the driver that might prevent your application from +working properly if you don't address it before upgrading. + +The breaking changes in this section are categorized by the driver version that +introduced them. When upgrading driver versions, address all the breaking +changes between the current and upgrade versions. + +.. _ruby-breaking-changes-2.20: + +Version 2.20 Breaking Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This driver version introduces the following breaking change: + +- Discontinues support for Ruby 2.5 and 2.6. Deprecates support for Ruby 2.7 and + JRuby 9.2. diff --git a/source/whats-new.txt b/source/whats-new.txt new file mode 100644 index 000000000..caf13a4fc --- /dev/null +++ b/source/whats-new.txt @@ -0,0 +1,68 @@ +.. _ruby-whats-new: + +========== +What's New +========== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: update, new feature, deprecation, upgrade + +Learn what's new in: + +* :ref:`2.21 ` +* :ref:`2.20 ` + +.. _upcoming-breaking-changes: + +.. _version-2.21: + +What's New in 2.21 +------------------ + +The {+driver-short+} 2.21 release includes the following new features: + +- Supports the Client-Side Operations Timeout (CSOT) feature, which unifies + most timeout-related options under a single ``timeout_ms`` option. +- Supports {+mdb-server+} version 8.0. +- Support for range v2 queries with Queryable Encryption, including a new ``trim_factor`` + parameter. For more information about Queryable Encryption, see :manual:`Queryable Encryption ` + in the {+mdb-server+} manual. + +To learn more about this release, see the +:github:`v2.21 Release Notes ` on +GitHub. + +.. _version-2.20: + +What's New in 2.20 +------------------ + +The {+driver-short+} 2.20 release includes the following new features: + +- Discontinues support for Ruby 2.5 and 2.6. Deprecates support for Ruby 2.7 and + JRuby 9.2, which will be discontinued in the next minor driver version. Adds + support for JRuby 9.4. +- Supports the newly-released Ruby-BSON version 5.0. +- Allows connection strings without a slash between the hosts and the options. + For example, ``mongodb://example.com?w=1`` and ``mongodb://example.com/?w=1`` are + both valid connection strings now. +- Sends container runtime and orchestration metadata for the client environment + to the server for analytics purposes. +- Writes a warning message to the log when detecting the host as a CosmosDB + (Azure) or DocumentDB (Amazon) instance. +- Attempts retries of read or write operations on a different ``mongos`` + instance in a sharded topology, if possible. + +To learn more about this release, see the +:github:`v2.20 Release Notes ` on +GitHub. \ No newline at end of file diff --git a/source/write.txt b/source/write.txt new file mode 100644 index 000000000..d6717b549 --- /dev/null +++ b/source/write.txt @@ -0,0 +1,181 @@ +.. _ruby-write: + +===================== +Write Data to MongoDB +===================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :description: Learn how to use the Ruby driver to write data to MongoDB. + :keywords: usage examples, save, crud, create, code example + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + /write/insert + /write/replace + /write/update + /write/delete + /write/bulk-write + /write/transactions + /write/gridfs + +Overview +-------- + +On this page, you can see copyable code examples that show common methods you +can use to write data to MongoDB by using the {+driver-short+}. + +.. tip:: + + To learn more about any of the methods shown on this page, see the link + provided in each section. + +To use an example from this page, copy the code example into the :ref:`sample +application ` or your own application. Be sure to replace all +placeholders in the code examples, such as ````, with the +relevant values for your MongoDB deployment. + +.. _ruby-write-sample: + +.. include:: /includes/usage-examples/sample-app-intro.rst + +.. literalinclude:: /includes/usage-examples/sample-app.rb + :language: ruby + :copyable: + :linenos: + :emphasize-lines: 13-15 + +Insert One +---------- + +The following code shows how to insert a single document into a collection: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-insert-one + :end-before: end-insert-one + :language: ruby + :copyable: + :dedent: + +To learn more about the ``insert_one`` method, see the +:ref:`Insert Documents ` guide. + +Insert Multiple +--------------- + +The following code shows how to insert multiple documents into a collection: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-insert-many + :end-before: end-insert-many + :language: ruby + :copyable: + :dedent: + +To learn more about the ``insert_many`` method, see the +:ref:`Insert Documents ` guide. + +Update One +---------- + +The following code shows how to update a single document in a collection by +creating or editing a field: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-update-one + :end-before: end-update-one + :language: ruby + :copyable: + :dedent: + +To learn more about the ``update_one`` method, see the +:ref:`ruby-write-update` guide. + +Update Multiple +--------------- + +The following code shows how to update multiple documents in a collection by +creating or editing a field: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-update-many + :end-before: end-update-many + :language: ruby + :copyable: + :dedent: + +To learn more about the ``update_many`` method, see the +:ref:`ruby-write-update` guide. + +Replace One +----------- + +The following code shows how to replace a single document in a collection with a new +document: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-replace-one + :end-before: end-replace-one + :language: ruby + :copyable: + :dedent: + +To learn more about the ``replace_one`` method, see the +:ref:`Replace Documents ` guide. + +Delete One +---------- + +The following code shows how to delete a single document in a collection: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-delete-one + :end-before: end-delete-one + :language: ruby + :copyable: + :dedent: + +To learn more about the ``delete_one`` method, see the +:ref:`Delete Documents ` guide. + +Delete Multiple +--------------- + +The following code shows how to delete multiple documents in a collection: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-delete-many + :end-before: end-delete-many + :language: ruby + :copyable: + :dedent: + +To learn more about the ``delete_many`` method, see the +:ref:`Delete Documents ` guide. + +Bulk Write +---------- + +The following code shows how to perform multiple write operations in a single +bulk operation: + +.. literalinclude:: /includes/usage-examples/write-code-examples.rb + :start-after: start-bulk-write + :end-before: end-bulk-write + :language: ruby + :copyable: + :dedent: + +To learn more about the ``bulk_write`` +method, see the :ref:`Bulk Write Operations ` guide. diff --git a/source/write/bulk-write.txt b/source/write/bulk-write.txt new file mode 100644 index 000000000..f40a1267e --- /dev/null +++ b/source/write/bulk-write.txt @@ -0,0 +1,333 @@ +.. _ruby-bulk-write: + +===================== +Bulk Write Operations +===================== + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: insert, update, replace, code example, multiple changes + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to perform a bulk +write operation that makes multiple changes to your data in a single +database call. + +Consider a situation that requires you to insert documents, update +documents, and delete documents for the same task. If you use +the individual write methods, each write operation +accesses the database separately. Instead, you can use a bulk write operation to +optimize the number of calls your application makes to the server. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to an Atlas cluster +and assign the following values to your ``database`` and ``collection`` variables: + +.. literalinclude:: /includes/write/bulk-write.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Define the Write Operations +--------------------------- + +For each write operation you want to perform, create a hash that implements one +of the following operations: + +- ``insert_one`` +- ``update_one`` +- ``update_many`` +- ``replace_one`` +- ``delete_one`` +- ``delete_many`` + +Then, pass a list of these instances to the ``bulk_write`` method. + +The following sections show how to create and use instances of the +preceding operations. The :ref:`ruby-bulkwrite-method` section +demonstrates how to pass a list of hashes to the ``bulk_write`` method +to perform the bulk operation. + +Insert Operations +~~~~~~~~~~~~~~~~~ + +To perform an insert operation, create an ``insert_one`` hash and specify +the document you want to insert. + +The following example creates an ``insert_one`` hash: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-insert-one + :end-before: end-bulk-insert-one + :language: ruby + :copyable: + :dedent: + +To insert multiple documents, create a separate ``insert_one`` hash +for each document. + +.. important:: + + When performing a bulk operation, the ``insert_one`` operation cannot + insert a document with an ``_id`` that already exists in the + collection. In this situation, the driver throws a + ``MongoBulkWriteException``. + +Update Operations +~~~~~~~~~~~~~~~~~ + +To update a document, create an ``update_one`` hash and pass +the following arguments: + +- **Query filter** that specifies the criteria used to match documents in your collection. +- Update operation you want to perform. For more information about update + operations, see the :manual:`Field Update Operators + ` guide in the {+mdb-server+} manual. + +The ``update_one`` operation specifies an update for *the first* +document that matches your query filter. + +The following example creates an ``update_one`` hash: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-update-one + :end-before: end-bulk-update-one + :language: ruby + :copyable: + :dedent: + +To update multiple documents, create an ``update_many`` hash and pass +the same arguments as for an ``update_one`` operation. The ``update_many`` +operation specifies updates for *all* documents that match your query +filter. + +The following example creates an ``update_many`` hash: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-update-many + :end-before: end-bulk-update-many + :language: ruby + :copyable: + :dedent: + +Replace Operations +~~~~~~~~~~~~~~~~~~ + +A replace operation removes all fields and values of a specified document and +replaces them with new fields and values that you specify. To perform a +replace operation, create a ``replace_one`` hash and pass the following +arguments: + +- Query filter that specifies the criteria used to match documents in your collection +- Replacement document that specifies the new fields and values to insert + +The following example creates a ``replace_one`` hash: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-replace-one + :end-before: end-bulk-replace-one + :language: ruby + :copyable: + :dedent: + +To replace multiple documents, you must create a +``replace_one`` hash for each document. + +Delete Operations +~~~~~~~~~~~~~~~~~ + +To delete a document, create a ``delete_one`` hash and pass a +query filter specifying the document you want to delete. The +``delete_one`` operation deletes only *the first* document that matches your query filter. + +The following example creates a ``delete_one`` hash: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-delete-one + :end-before: end-bulk-delete-one + :language: ruby + :copyable: + :dedent: + +To delete multiple documents, create a ``delete_many`` hash and pass a +query filter specifying the document you want to delete. The +``delete_many`` operation deletes *all* documents that match your query filter. + +The following example creates a ``delete_many`` hash: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-delete-many + :end-before: end-bulk-delete-many + :language: ruby + :copyable: + :dedent: + +.. _ruby-bulkwrite-method: + +Perform the Bulk Operation +-------------------------- + +After you define a hash for each operation you want to perform, +pass a list of these objects to the ``bulk_write`` method. +By default, the method runs the operations in the order +specified by the list of hashes. + +The following example performs multiple write operations by using the +``bulk_write`` method: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-write-mixed + :end-before: end-bulk-write-mixed + :language: ruby + :copyable: + :dedent: + :emphasize-lines: 9-10 + +If any of the write operations fail, the {+driver-short+} raises a +``BulkWriteError`` and does not perform any further operations. +``BulkWriteError`` provides a ``details`` item that includes the +operation that failed and details about the exception. + +.. note:: + + When the driver runs a bulk operation, it uses the write concern of the + target collection. The driver reports all write concern errors after + attempting all operations, regardless of execution order. + +Customize Bulk Write Operation +------------------------------ + +The ``bulk_write`` method optionally accepts an ``options`` hash which +specifies options you can use to configure the bulk write +operation. If you don't specify any options, the driver performs the +bulk operation with default settings. + +The following table describes the options that you can use to +configure the ``bulk_write`` method: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``ordered`` + - | If ``true``, the driver performs the write operations in the order + provided. If an error occurs, the remaining operations are not + attempted. + | + | If ``false``, the driver performs the operations in an + arbitrary order and attempts to perform all operations. + | Defaults to ``true``. + + * - ``bypass_document_validation`` + - | Specifies whether the update operation bypasses document validation. This lets you + update documents that don't meet the schema validation requirements, if any + exist. For more information about schema validation, see :manual:`Schema + Validation ` in the MongoDB + Server manual. + | Defaults to ``false``. + + * - ``session`` + - | The session to use for the operation. + | **Type**: ``Session`` + + * - ``let`` + - | Provides a map of parameter names and values to set top-level + variables for the operation. Values must be constant or closed + expressions that don't reference document fields. + +The following code creates options and sets the ``ordered`` option to ``false`` to +specify an unordered bulk write. Then, the code uses the +``bulk_write`` method to perform the same bulk operations as the preceding example: + +.. literalinclude:: /includes/write/bulk-write.rb + :start-after: start-bulk-write-unordered + :end-before: end-bulk-write-unordered + :language: ruby + :copyable: + :dedent: + +If any of the write operations in an unordered bulk write fail, the {+driver-short+} +reports the errors only after attempting all operations. + +.. note:: + + Unordered bulk operations do not guarantee an order of execution. The + order can differ from the way you list them to optimize the runtime. + +Return Value +------------ + +The ``bulk_write`` method returns a ``BulkWrite::Result``. You can access information from +the ``Result`` instance by using the following instance methods: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Method + - Description + + * - ``acknowledged?`` + - | Indicates if the server acknowledged the write operation. + + * - ``deleted_count`` + - | Returns the number of documents deleted, if any. + + * - ``inserted_count`` + - | Returns the number of documents inserted, if any. + + * - ``inserted_ids`` + - | Returns the list of inserted document ids, if any. + + * - ``matched_count`` + - | Returns the number of documents matched for an update, if applicable. + + * - ``modified_count`` + - | Returns the number of documents modified, if any. + + * - ``upserted_count`` + - | Returns the number of upserted documents, if any. + + * - ``upserted_ids`` + - | Returns the list of upserted document ids, if any. + +Additional Information +---------------------- + +To learn how to perform individual write operations, see the following guides: + +- :ref:`ruby-write-insert` +- :ref:`ruby-write-update` +- :ref:`ruby-write-delete` +- :ref:`ruby-write-replace` + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`bulk_write ` +- :ruby-api:`BulkWrite::Result ` diff --git a/source/write/delete.txt b/source/write/delete.txt new file mode 100644 index 000000000..ef56b5e4a --- /dev/null +++ b/source/write/delete.txt @@ -0,0 +1,180 @@ +.. _ruby-write-delete: + +================ +Delete Documents +================ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: remove, drop, code example + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to remove +documents from a MongoDB collection by performing **delete operations**. + +A delete operation removes one or more documents from a MongoDB collection. +You can perform a delete operation by using the ``delete_one`` or +``delete_many`` methods. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to an Atlas cluster +and assign the following values to your ``database`` and ``collection`` variables: + +.. literalinclude:: /includes/write/delete.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Delete Operations +----------------- + +You can perform delete operations in MongoDB by using the following methods: + +- ``delete_one``, which deletes *the first document* that matches the search criteria +- ``delete_many``, which deletes *all documents* that match the search criteria + +Each delete method requires a **query filter** parameter, which specifies the +search criteria that determine which documents to select for removal. +To learn more about query filters, see the :ref:`ruby-specify-query` guide. + +Delete One Document +~~~~~~~~~~~~~~~~~~~ + +The following example uses the ``delete_one`` method to remove a +document in which the value of the ``name`` field is ``"Happy Garden"``: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/delete.rb + :start-after: start-delete-one + :end-before: end-delete-one + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + Deleted 1 document(s) + +Delete Multiple Documents +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following example uses the ``delete_many`` method to remove all documents +in which the value of the ``borough`` field is ``"Brooklyn"`` and the +value of the ``name`` field is ``"Starbucks"``: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/delete.rb + :start-after: start-delete-many + :end-before: end-delete-many + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + Deleted 3 document(s) + +Customize the Delete Operation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can pass a ``Hash`` object as a parameter to the ``delete_one`` and ``delete_many`` methods +to set options to configure the delete operation. If you don't specify any +options, the driver performs the delete operation with default settings. + +The following table describes the options that you can use to +configure the delete operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``collation`` + - | Specifies the kind of language collation to use when sorting + results. For more information, see :manual:`Collation ` + in the {+mdb-server+} manual. + + * - ``session`` + - | Specifies the session to use for the operation. To learn more about sessions, see + :manual:`Client Sessions and Causal Consistency Guarantees ` + in the {+mdb-server+} manual. + + * - ``hint`` + - | Specifies the index to use when matching documents. + For more information, see the :manual:`hint ` + option in the ``delete`` reference page of the {+mdb-server+} manual. + + * - ``let`` + - | Provides a map of parameter names and values to set top-level + variables for the operation. Values must be constant or closed + expressions that don't reference document fields. For more information, + see the :manual:`let + ` option in the ``delete`` + reference page of the {+mdb-server+} manual. + +Modify Delete Example +````````````````````` + +The following code specifies the ``hint`` option to +instruct the delete operation to use the ``"name_index"`` index. Then, the example uses the +``delete_many`` method to delete all documents in the ``restaurants`` +collection with a ``name`` field value that includes the string ``"Red"``. + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/delete.rb + :start-after: start-delete-options + :end-before: end-delete-options + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + Deleted 124 document(s) + +.. tip:: + + If you use the the ``delete_one`` method in the preceding example + instead of the ``delete_many`` method, the driver deletes only the + first document that matches the query filter. + +API Documentation +----------------- + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`delete_one ` +- :ruby-api:`delete_many ` +- :ruby-api:`Mongo::Operation::Delete::Result ` + diff --git a/source/write/gridfs.txt b/source/write/gridfs.txt new file mode 100644 index 000000000..1262b692f --- /dev/null +++ b/source/write/gridfs.txt @@ -0,0 +1,201 @@ +.. _ruby-gridfs: + +================================= +Store Large Files by Using GridFS +================================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: binary large object, blob, storage + +Overview +-------- + +In this guide, you can learn how to store and retrieve large files in +MongoDB by using **GridFS**. GridFS is a specification that describes how to split files +into chunks when storing them and reassemble those files when retrieving them. The {+driver-short+}'s +implementation of GridFS is an abstraction that manages the operations and organization of +the file storage. + +Use GridFS if the size of your files exceeds the BSON document +size limit of 16MB. For more detailed information on whether GridFS is +suitable for your use case, see :manual:`GridFS ` in the +{+mdb-server+} manual. + +The following sections describe GridFS operations and how to +perform them. + +How GridFS Works +---------------- + +GridFS organizes files in a **bucket**, a group of MongoDB collections +that contain the chunks of files and information describing them. The +bucket contains the following collections, named using the convention +defined in the GridFS specification: + +- The ``chunks`` collection stores the binary file chunks. +- The ``files`` collection stores the file metadata. + +When you create a new GridFS bucket, the driver creates the ``fs.chunks`` and ``fs.files`` +collections, unless you specify a different name in the ``Mongo::Database#fs`` method options. The +driver also creates an index on each collection to ensure efficient retrieval of the files and related +metadata. The driver creates the GridFS bucket, if it doesn't exist, only when the first write +operation is performed. The driver creates indexes only if they don't exist and when the +bucket is empty. For more information about +GridFS indexes, see :manual:`GridFS Indexes ` +in the {+mdb-server+} manual. + +When storing files with GridFS, the driver splits the files into smaller +chunks, each represented by a separate document in the ``chunks`` collection. +It also creates a document in the ``files`` collection that contains +a file ID, file name, and other file metadata. You can upload the file from +memory or from a stream. The following diagram shows how GridFS splits +the files when they're uploaded to a bucket. + +.. figure:: /includes/figures/GridFS-upload.png + :alt: A diagram that shows how GridFS uploads a file to a bucket + +When retrieving files, GridFS fetches the metadata from the ``files`` +collection in the specified bucket and uses the information to reconstruct +the file from documents in the ``chunks`` collection. You can read the file +into memory or output it to a stream. + +Create a GridFS Bucket +---------------------- + +To store or retrieve files from GridFS, create a GridFS bucket by calling the +``fs`` method on a ``Mongo::Database`` instance. +You can use the ``FSBucket`` instance to +perform read and write operations on the files in your bucket. + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-create-bucket + :end-before: end-create-bucket + +To create or reference a bucket with a name other than the default name +``fs``, pass the bucket name as an optional parameter to the ``fs`` +method, as shown in the following example: + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-create-custom-bucket + :end-before: end-create-custom-bucket + +Upload Files +------------ + +The ``upload_from_stream`` method reads the contents of an +upload stream and saves it to the ``GridFSBucket`` instance. + +You can pass a ``Hash`` as an optional parameter to configure the chunk size or include +additional metadata. + +The following example uploads a file into ``FSBucket`` and specifies metadata for the +uploaded file: + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-upload-files + :end-before: end-upload-files + +Retrieve File Information +------------------------- + +In this section, you can learn how to retrieve file metadata stored in the +``files`` collection of the GridFS bucket. The metadata contains information +about the file it refers to, including: + +- The ``_id`` of the file +- The name of the file +- The size of the file +- The upload date and time +- A ``metadata`` document in which you can store any other information + +To learn more about fields you can retrieve from the ``files`` collection, see the +:manual:`GridFS Files Collection ` documentation in the +{+mdb-server+} manual. + +To retrieve files from a GridFS bucket, call the ``find`` method on the ``FSBucket`` +instance. The following code example retrieves and prints file metadata from all files in +a GridFS bucket: + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-retrieve-file-info + :end-before: end-retrieve-file-info + +To learn more about querying MongoDB, see :ref:``. + +Download Files +-------------- + +The ``download_to_stream`` method downloads the contents of a file. + +To download a file by its file ``_id``, pass the ``_id`` to the method. The ``download_to_stream`` +method writes the contents of the file to the provided object. +The following example downloads a file by its file ``_id``: + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-download-files-id + :end-before: end-download-files-id + +If you a file's name but not its ``_id``, you can use the ``download_to_stream_by_name`` +method. The following example downloads a file named ``mongodb-tutorial``: + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-download-files-name + :end-before: end-download-files-name + +.. note:: + + If there are multiple documents with the same ``filename`` value, + GridFS fetches the most recent file with the given name (as + determined by the ``uploadDate`` field). + +Delete Files +------------ + +Use the ``delete`` method to remove a file's collection document and associated +chunks from your bucket. You must specify the file by its ``_id`` field rather than its +file name. + +The following example deletes a file by its ``_id``: + +.. literalinclude:: /includes/write/gridfs.rb + :language: ruby + :dedent: + :start-after: start-delete-files + :end-before: end-delete-files + +.. note:: + + The ``delete`` method supports deleting only one file at a time. To + delete multiple files, retrieve the files from the bucket, extract + the ``_id`` field from the files you want to delete, and pass each value + in separate calls to the ``delete`` method. + +API Documentation +----------------- + +To learn more about using GridFS to store and retrieve large files, +see the following API documentation: + +- :ruby-api:`Mongo::Grid::FSBucket ` \ No newline at end of file diff --git a/source/write/insert.txt b/source/write/insert.txt new file mode 100644 index 000000000..93044c3d3 --- /dev/null +++ b/source/write/insert.txt @@ -0,0 +1,167 @@ +.. _ruby-write-insert: + +================ +Insert Documents +================ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code example, write, save, create + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to add +documents to a MongoDB collection by performing **insert operations**. + +An insert operation inserts one or more documents into a MongoDB collection. +You can perform an insert operation by using the following methods: + +- ``insert_one`` to insert a single document +- ``insert_many`` to insert one or more documents + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to an Atlas cluster +and assign the following values to your ``database`` and ``collection`` variables: + +.. literalinclude:: /includes/write/insert.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +The _id Field +------------- + +In a MongoDB collection, each document *must* contain an ``_id`` field +with a unique field value. + +MongoDB allows you to manage this field in two ways: + +- Set the ``_id`` field for each document yourself, ensuring each + value is unique. +- Let the driver automatically generate unique ``BSON::ObjectId`` + values for each document ``_id`` field. + +Unless you can guarantee uniqueness, we recommend +letting the driver automatically generate ``_id`` values. + +.. note:: + + Duplicate ``_id`` values violate unique index constraints, which + causes the driver to return an error. + +To learn more about the ``_id`` field, see the +:manual:`Unique Indexes ` guide in the {+mdb-server+} manual. + +To learn more about document structure and rules, see the +:manual:`Documents ` guide in the {+mdb-server+} manual. + +Insert One Document +------------------- + +To add a single document to a MongoDB collection, call the ``insert_one`` +method and pass the document you want to insert. + +The following example inserts a document into the ``restaurants`` collection: + +.. literalinclude:: /includes/write/insert.rb + :language: ruby + :start-after: start-insert-one + :end-before: end-insert-one + :dedent: + :copyable: + +Insert Multiple Documents +------------------------- + +To add multiple documents to a MongoDB collection, call the ``insert_many`` +method and pass a list of documents you want to insert. + +The following example inserts two documents into the ``restaurants`` collection: + +.. literalinclude:: /includes/write/insert.rb + :language: ruby + :start-after: start-insert-many + :end-before: end-insert-many + :dedent: + :copyable: + +Modify Insert Behavior +---------------------- + +You can pass a ``Hash`` object as a parameter to the ``insert_one`` +method to set options to configure the insert operation. If you don't specify any options, +the driver performs the insert operation with default settings. + +The following table describes the options you can set to +configure the ``insert_one`` operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``bypass_document_validation`` + - | Instructs the driver whether to ignore document-level validation. For more information, + see :manual:`Schema Validation ` in the {+mdb-server+} manual. + | Defaults to ``false``. + + * - ``comment`` + - | Sets a comment to attach to the operation. For more information, see the :manual:`insert command + fields ` guide in the {+mdb-server+} manual. + + * - ``session`` + - | Sets the session to use for the operation. To learn more about sessions, see + :manual:`Client Sessions and Causal Consistency Guarantees ` + in the {+mdb-server+} manual. + + * - ``write_concern`` + - | Sets the write concern for the operation. For more information, see the + :manual:`Write Concern ` guide in the {+mdb-server+} manual. + +You can set the preceding settings on the ``insert_many`` method +by passing a ``Hash`` as a parameter to the method call. You can also use the +``ordered`` option to specify the order in which the driver +inserts documents into MongoDB. + +Example +~~~~~~~ + +The following code uses the ``insert_many`` method to insert +three new documents into a collection. Because the ``bypass_document_validation`` +option is enabled, this insert operation bypasses document-level validation. + +.. literalinclude:: /includes/write/insert.rb + :language: ruby + :start-after: start-insert-options + :end-before: end-insert-options + :dedent: + :copyable: + +API Documentation +----------------- + +To learn more about any of the methods discussed in this +guide, see the following API documentation: + +- :ruby-api:`insert_one ` +- :ruby-api:`insert_many ` \ No newline at end of file diff --git a/source/write/replace.txt b/source/write/replace.txt new file mode 100644 index 000000000..99891ba42 --- /dev/null +++ b/source/write/replace.txt @@ -0,0 +1,213 @@ +.. _ruby-write-replace: + +================= +Replace Documents +================= + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: modify, change, code example + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to perform a **replace +operation** on a document in a MongoDB collection. A replace operation +removes all fields and values from a specified document except the +``_id`` field, and adds new fields and values that you specify. This +operation differs from an update operation, which changes only +specified fields in one or more documents. + +To learn more about update operations, see the +:ref:`ruby-write-update` guide. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to an Atlas cluster +and assign the following values to your ``database`` and ``collection`` variables: + +.. literalinclude:: /includes/write/replace.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Replace Operation +----------------- + +You can perform a replace operation in MongoDB by using the +``replace_one`` method. This method removes all fields except the +``_id`` field from the first document that matches the specified query filter. It +then adds the fields and values you specify to the empty document. + +Required Parameters +~~~~~~~~~~~~~~~~~~~ + +You must pass the following parameters to the ``replace_one`` method: + +- **Query filter**: Specifies which documents to update. To learn + more about query filters, see the :ref:`ruby-specify-query` + guide. + +- **Replacement document**: Specifies the fields and values that + you want to replace the existing fields and values with. + +Replace Example +~~~~~~~~~~~~~~~ + +The following example uses the ``replace_one`` method to replace the +fields and values of a document in which the value of the ``name`` field +is ``"Primola Restaurant"``: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/replace.rb + :start-after: start-replace-one + :end-before: end-replace-one + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + Replaced 1 document(s) + +.. important:: + + The value of the ``_id`` field is immutable. If your replacement + document specifies a value for the ``_id`` field, it must be the same + as the ``_id`` value of the existing document or the driver raises a + ``WriteError``. + +Customize the Replace Operation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can pass a ``Hash`` object as a parameter to the ``replace_one`` method to set options to +configure the replace operation. If you don't specify any options, the driver performs the replace +operation with default settings. + +The following table describes the options that you can use to +configure the replace operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``upsert`` + - | Specifies whether the replace operation performs an upsert operation if no + documents match the query filter. For more information, see :manual:`upsert + behavior ` + in the {+mdb-server+} manual. + | Defaults to ``false``. + + * - ``bypass_document_validation`` + - | Specifies whether the update operation bypasses document validation. This lets you + update documents that don't meet the schema validation requirements, if any + exist. For more information about schema validation, see :manual:`Schema + Validation ` in the {+mdb-server+} manual. + | Defaults to ``false``. + + * - ``collation`` + - | Specifies the kind of language collation to use when sorting + results. For more information, see :manual:`Collation ` + in the {+mdb-server+} manual. + + * - ``session`` + - | Specifies the session to use for the operation. To learn more about sessions, see + :manual:`Client Sessions and Causal Consistency Guarantees ` + in the {+mdb-server+} manual. + + * - ``hint`` + - | Sets the index to use when matching documents. + For more information, see the :manual:`hint statement + ` + in the {+mdb-server+} manual. + + * - ``let`` + - | Provides a map of parameter names and values to set top-level + variables for the operation. Values must be constant or closed + expressions that don't reference document fields. + +The following code performs the same replace operation as the preceding example, but sets the ``upsert`` +option to ``true``. This instructs the driver to insert a new document that has the fields +and values specified in the replacement document if the query filter doesn't match any +existing documents: + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/replace.rb + :start-after: start-replace-options + :end-before: end-replace-options + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + Replaced 1 document(s) + +Return Value +~~~~~~~~~~~~ + +The ``replace_one`` method returns a ``Mongo::Operation::Update::Result`` +object. You can use the following methods to access information from +a ``Result`` instance: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Method + - Description + + * - ``matched_count`` + - | Returns the number of documents that matched the query filter. + + * - ``modified_count`` + - | Returns the number of documents modified by the update operation. If an updated + document is identical to the original, it is not included in this + count. + + * - ``upserted_count`` + - | Returns the number of documents upserted. + + * - ``upserted_id`` + - | Returns the ``_id`` value of the document that the driver upserted + into the database, if any. + +Additional Information +---------------------- + +To view a runnable code example that demonstrates how to replace a +document, see :ref:`ruby-write`. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`replace_one ` +- :ruby-api:`Mongo::Operation::Update::Result ` \ No newline at end of file diff --git a/source/write/transactions.txt b/source/write/transactions.txt new file mode 100644 index 000000000..fa815f634 --- /dev/null +++ b/source/write/transactions.txt @@ -0,0 +1,146 @@ +.. _ruby-transactions: + +============ +Transactions +============ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: code example, ACID compliance, multi-document + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to perform +**transactions**. Transactions allow you to perform a series of operations that +change data only if the entire transaction is committed. If any operation in the +transaction does not succeed, the driver stops the transaction and discards all +data changes before they ever become visible. This feature is called +**atomicity**. + +In MongoDB, transactions run within logical **sessions**. A session is a +grouping of related read or write operations that you want to run sequentially. +Sessions enable causal consistency for a group of operations and allow you to +run operations in an **ACID-compliant** transaction, which is a transaction that +meets an expectation of atomicity, consistency, isolation, and durability. +MongoDB guarantees that the data involved in your transaction operations remains +consistent, even if the operations encounter unexpected errors. + +When using the {+driver-short+}, you can start a session by calling the +``start_session`` method on your client. Then, you can perform transactions +within the session. + +.. warning:: + + Use a session only in operations running on the ``Mongo::Client`` that + created it. Using a session with a different ``Mongo::Client`` results in + operation errors. + +Methods +------- + +After calling the ``start_session`` method to start a session, you can use +methods from the ``Mongo::Session`` class to manage the session state. The +following table describes the methods you can use to manage a transaction: + +.. list-table:: + :widths: 25 75 + :stub-columns: 1 + :header-rows: 1 + + * - Method + - Description + + * - ``start_transaction`` + - | Starts a new transaction on this session. You cannot start a + transaction if there's already an active transaction running in + the session. + | + | You can set transaction options including read concern, write concern, + and read preference by passing a ``Hash`` as a parameter. + + * - ``commit_transaction`` + - | Commits the active transaction for this session. This method returns an + error if there is no active transaction for the session, the + transaction was previously ended, or if there is a write conflict. + + * - ``abort_transaction`` + - | Ends the active transaction for this session. This method returns an + error if there is no active transaction for the session or if the + transaction was committed or ended. + + * - ``with_transaction`` + - | Starts a transaction prior to calling the supplied block, and commits + the transaction when the block finishes. If any of the operations in + the block, or the commit operation, result in a transient transaction + error, the block and/or the commit will be executed again. + +.. _ruby-txn-example: + +Transaction Example +------------------- + +This example defines a ``run_transaction`` method that modifies data in the +collections of the ``sample_mflix`` database. The code performs the following +actions: + +- Creates ``Mongo::Collection`` instances to access the ``movies`` and ``users`` + collections. +- Specifies the read and write concerns for the transaction. +- Starts the transaction. +- Inserts a document into the ``movies`` collection and prints the results. +- Updates a document in the ``users`` collection and prints the results. + +.. literalinclude:: /includes/write/transaction.rb + :language: ruby + :start-after: start-txn + :end-before: end-txn + :dedent: + :copyable: + +.. sharedinclude:: dbx/transactions-parallelism.rst + + .. replacement:: driver-specific-content + + If you're using {+mdb-server+} v8.0 or later, you can perform + write operations on multiple namespaces within a single transaction by using + the ``bulk_write`` method. For more information, see the :ref:`` + guide. + +Additional Information +---------------------- + +To learn more about the concepts mentioned in this guide, see the +following pages in the {+mdb-server+} manual: + +- :manual:`Transactions ` +- :manual:`Server Sessions ` +- :manual:`Read Isolation, Consistency, and Recency + ` + +To learn more about ACID compliance, see the :website:`A Guide to ACID Properties in Database Management Systems +` article on the MongoDB website. + +To learn more about insert operations, see the +:ref:`ruby-write-insert` guide. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about the methods and types mentioned in this +guide, see the following API documentation: + +- :ruby-api:`Mongo::Session ` +- :ruby-api:`start_transaction ` +- :ruby-api:`commit_transaction ` +- :ruby-api:`abort_transaction ` +- :ruby-api:`with_transaction ` \ No newline at end of file diff --git a/source/write/update.txt b/source/write/update.txt new file mode 100644 index 000000000..e766bfa4d --- /dev/null +++ b/source/write/update.txt @@ -0,0 +1,247 @@ +.. _ruby-write-update: + +================ +Update Documents +================ + +.. contents:: On this page + :local: + :backlinks: none + :depth: 2 + :class: singlecol + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: modify, change, operator, code example + +Overview +-------- + +In this guide, you can learn how to use the {+driver-short+} to update +documents in a MongoDB collection by using the ``update_one`` and +``update_many`` methods. + +Sample Data +~~~~~~~~~~~ + +The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants`` +database from the :atlas:`Atlas sample datasets `. To access this collection +from your {+language+} application, create a ``Mongo::Client`` object that connects to an Atlas cluster +and assign the following values to your ``database`` and ``collection`` variables: + +.. literalinclude:: /includes/write/update.rb + :language: ruby + :dedent: + :start-after: start-db-coll + :end-before: end-db-coll + +To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the +:atlas:`Get Started with Atlas ` guide. + +Update Operations +----------------- + +You can update documents in MongoDB by using the following methods: + +- ``update_one``: Updates *the first document* that matches the search criteria +- ``update_many``: Updates *all documents* that match the search criteria + +Each update method requires the following parameters: + +- **Query filter**, which matches the documents you want to update. To learn + more about query filters, see the :ref:`ruby-specify-query` + guide. + +- **Update document**, which specifies the update operator and the fields and values to be + updated. The update operator specifies the type of update to perform. To view a list of + update operators and learn about their usages, see the + :manual:`Field Update Operators guide page` in the + {+mdb-server+} manual. + +Update One Document Example +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following example uses the ``update_one`` method to find the first document +where the value of the ``name`` field is ``"Happy Garden"``. It then uses the ``$set`` +operator to update the ``name`` field value to ``"Mountain House"``. + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/update.rb + :start-after: start-update-one + :end-before: end-update-one + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + 1 document(s) updated + +Update Many Documents Example +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following example uses the ``update_many`` method to update all documents +where the value of the ``name`` field is ``"Starbucks"``. The update document uses the +``$rename`` operator to change the name of the ``address`` field to ``location``. + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/update.rb + :start-after: start-update-many + :end-before: end-update-many + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + 11 document(s) updated + +Customize the Update Operation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``update_one`` and ``update_many`` methods accept options to configure the update +operation. You can pass these options individually as parameters, or you can create a +``Hash`` object that contains the options and pass the object as a parameter. +If you don't specify any options, the driver performs the update +operation with default settings. + +The following table describes the options that you can use to +configure the update operation: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Option + - Description + + * - ``upsert`` + - | Whether the update operation performs an upsert operation if no + documents match the query filter. For more information, see the :manual:`upsert + statement ` + in the {+mdb-server+} manual. + | Default: ``false`` + + * - ``bypass_document_validation`` + - | Whether the update operation bypasses document validation. This lets you + update documents that don't meet the schema validation requirements, if any + exist. For more information about schema validation, see :manual:`Schema + Validation ` in the MongoDB + Server manual. + | Default: ``false`` + + * - ``collation`` + - | Language collation to use when sorting + results. For more information, see :manual:`Collation ` + in the {+mdb-server+} manual. + + * - ``array_filters`` + - | List of filters that you specify to select which + array elements the update applies to. + + * - ``hint`` + - | Index to use when matching documents. + For more information, see the :manual:`hint statement ` + in the {+mdb-server+} manual. + + * - ``let`` + - | Map of parameter names and values to set top-level + variables for the operation. Values must be constant or closed + expressions that don't reference document fields. For more information, + see the :manual:`let statement + ` in the + {+mdb-server+} manual. + +Modify Update Example +````````````````````` + +The example uses the ``$equal`` operator to match documents +where the value of the ``name`` field is ``"Sunrise Pizzeria"``. It then uses the ``$set`` +operator to set the ``borough`` field value in the first matching document to +``"Queens"`` and the ``cuisine`` field value to ``"Italian"``. + +Because the ``upsert`` option is set to ``true``, if the query filter +doesn't match any existing documents, the driver inserts a new document that +contains the fields and values in the filter and update documents. + +.. io-code-block:: + :copyable: true + + .. input:: /includes/write/update.rb + :start-after: start-update-options + :end-before: end-update-options + :language: ruby + :dedent: + + .. output:: + :language: console + :visible: false + + 1 document(s) updated + +Return Value +~~~~~~~~~~~~ + +The ``update_one`` and ``update_many`` methods each return a ``Result`` +object. You can access the following methods from a ``Result`` instance: + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Method + - Description + + * - ``matched_count`` + - | Number of documents that matched the query filter, regardless of + how many updates were performed. + + * - ``modified_count`` + - | Number of documents modified by the update operation. If an updated + document is identical to the original, it is not included in this + count. + + * - ``acknowledged?`` + - | Returns ``true`` if the server acknowledged the result. + + * - ``upserted_count`` + - | Returns the number of documents that were upserted in the database, if the driver + performed an upsert. + + * - ``upserted_ids`` + - | Returns the ``_id`` value of the document that was upserted + in the database, if the driver performed an upsert. + +.. tip:: + + Check the value of the ``acknowledged?`` method before you try + to call any other ``Result`` methods. If the ``acknowledged?`` + method returns ``false``, the driver throws an ``InvalidOperation`` + exception if you try to call any other method on the ``Result`` object. + The driver cannot determine these values if the server does not acknowledge the write + operation. + +Additional Information +---------------------- + +To view runnable code examples that demonstrate how to update documents by +using the {+driver-short+}, see :ref:`ruby-write`. + +API Documentation +~~~~~~~~~~~~~~~~~ + +To learn more about any of the methods or types discussed in this +guide, see the following API documentation: + +- :ruby-api:`update_one ` +- :ruby-api:`update_many ` +- :ruby-api:`Result ` \ No newline at end of file diff --git a/track-upstream.sh b/track-upstream.sh deleted file mode 100644 index 4cf12b3ea..000000000 --- a/track-upstream.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -# version branch names in descending order -VERSIONS=(master v2.19 v2.18 v2.17 v2.14 v2.13 v2.12 v2.11 v2.10 v2.9 v2.8 v2.7 v2.6 v2.5 v2.4 v2.3 v2.2 v2.0 v1.x) - -# build each version in order -for i in "${VERSIONS[@]}"; do - echo "checking out" - git checkout $i -done \ No newline at end of file

q^~X+%wU=F&VYr(po&T;EfSok;nzNfE*n?j=@r|}r+(vsT(!CUJnK4Dam!h&2dx*S5Ss -ky6>ECS`2CcT5v@yl+x68Su48q*sNl-*ZJr2Jr(Q=RarokR<3D>*v3uWkbQ -@EAIpp$f-?WS<+0nlr;r0gLnvgm40M-@$)>=9S7r>o`TXVrk`YE_85`0GbI2(mEW)8B`fB`*v2XpVBH -BY&T%@bYM%e$3TQWk1D!EtxNKol&@lC{F#WI`?`voeqlZrr4u%YLigxGwTns{k~Fwa8F}?x<`K%!7@w -B%|5F2+S@0>U>`m#l#9DZ1%qf$kAmoC55b-u2Yb{dT+hQjJy}Fy9OV0E$|72p*&cOTr0L!<)HZ$(h2A -+mfMhSrtHB=pa1Va82Yc9EyJF2!JBMny}2t36N -^^XU7veAuDtZ9y5Q&~O(pFP&?JKCjY+wwZe{7Rh38*ASKG&4RG8b5+Bpcb=Z|;ssyW)zo%Np8t2$rVL -y|{oD{{A+DBiQ8SDyVIiYmYFAK()!S(p1LiakqV;_We3N%{bDlce?R-AC1IGXHK*f8Uz1XR*+!DSHgo -CibFatBVb?edhBaJ+Q5C#?=d{oss8_E3s`leX690<#6O@r|DSEYs}6d>?`2+m`u_Eac^v -^kDRV(lSEOS$2Jp_qm1hI2ZyylgQUe;QYB!-1Omy~~rqX~{20&DsEY;D#mgYnAvkm=uv9B|6G+O`tR{ -!1N;%Ku`{VbEHsA5bS@Ie7SSAdqP4)N92t>w7^eyV`XcT26!lTEB)OdCXtMX4-enkaWchlCC2WeaL3! -(bVnZNN12wH8oV|wry_2UA6w+d7TJ_mvQiXTSoOdDp=c%6$fy1(q_d3gH>)gMXms`W -NA-7$%e){`9WOF3$t%bCTL3Q&(4sc2wE)rHmFi9yEA7mpJ55yoep~+*G`gNROqR;78aiFoMGZ5w_to< -+c};Zxq5c7EzR~aTwCGRGFW`%4ZLpWs-wm#AyPhx_U;jR-f44NzI?^7JQi0IZH;ya92B?%EJgI;UwSJ -!?%vPbkyrl{2-*4*Qg2u?O{wX9_gKnds7EJx~hw7)H$gdimrHb;amo?0)Ex!^(0-KcU)Gxf7T0-jA`{ -q}J*Ru~}q<_iL*;F2LVl&f#UHmjCp>hqZqj3$~u2$Ap>4R5P%2xk4DSouE_l*6?#(rV!&jzbsBg$?73DK_>B6_AKZPh9D?~eq#Z(u(Gwh6t$Ps`du)jwZWKLtfl -X274S9|l`n9Bqmc{dibjlhx2OKrQ-(s-|oVQww|5!WvrL`!e=2HlZ!dwxKONyxXXWC27xEn4wi3U7+8 -XNrReB|9)HlZfW#Ub-GwoC#%iR_w`Rh5d`5)R5<}PNpNa@8=9!_SA|-!@|r~dysUn<6lJ#1YqDCsD)Z -3%{#5;LY3}nPT*u0UlzRX8Z40?*Aq`#S5?8MWRIOD%zpsB9ifkFy+Ft+pqr}_;V>Cqj2bjhBmz>2nQF -uE~t2*_c-=%kqsVi%dm-Vj(f9J21Q>Wkf(K~{)Qn0(1HSALhYiREswD((Rzoe-Sp>4csT=cJ#B>13y> -2svoWY_0m(#?5X9p6QI{K~94$^zi?$BW0N@T=OrbU8`Yf!Md6UzF9&?%vbp2u=I14e)u7J+T`7>$B&g -eCB6qY?p6<4=CR(*;KfKJfLK^*@w27uXGA5m#iQUC|SGMqG%0zNZHy6+pkr}}Zl=k4!K0R@vqzHQHHpPC{@D6X=4E|kd*g?^gk&wFvI4AH -Z1d)K-OoqWxwBl+5 -YMoaQ3*`)>MY@Tvd`4+O^)XS!<#St>vrY2knn)kKg`S(Su|~(~Ot6N|I*5Q(x&v_3w+SXHTC! -s}#j=-r;ogLXGr4_ueQG)^EHu!=dlaH&^FXb)j+y9<6E`8nLIf%vXa}`m3S&Yh?a9G=GiFUz5j=R3~( -%&@Kh24MDrxtB+#Zt=LVKuwCu6;Nm0yp^8zqt(nDWZvN7t-L|SK5@{S&9mH$*&pOy-+BaDqb=0@@2Lu -a+e&?aqKwrPx;O^a%%A`Jd-h0x9w4Ue^*^VMr^-rq3?vv-uk7`HU{<>Rl+CS?keEX{jwc=+TRK@S6o{ -H&ts#X}!xtc0#M*KXE)J|4AINFm_BGFdEPnESdhOiDB%0d-M02)0CR<-%s+kn6;gUSnM60a=MP3+x2e -qQhQ)uKrD_a+L$uPf2!D2XD0ex9{j>GS)<2XT9tC#hAh5~5L~xXhx!B3hSm5pAla^l=d7+PIM@TK$$~ ->f2%X8*Uw?*CTh%bB-SR^Clmz3Qt^wO;hj3ssT6NnWQl`d;%Av4^%_JaRSEt{ -%su$>H;!KIiM-9rt_czr+5?%U?|N@fKK`{Tci125Vs*KZF4rGSRrw1=_pbNp?a9SO@8az8^6X>p -Rqu!M%Qw9@@8AEmX>vF;O&&H)p7naC?>~RHtI6ZxsBg-R>vF?MPgVT!{O9-YE>A9cXBQXeA3mLbYTJR -BCJnt3*XhaY*JmGFlCdE$ArF3x`JoxFT`_U^ -K2=Mbz<>vl$pl@F@K+w%+6lo__sm;`%L3wF|P1^e>k!@2Hg)7qz6v@cISzJJ#?G&K!<*EBT6aGt%oJo -xbb{GF=nb?>BtIV3$A9fOCLH4o!qhllgmCzqc;p7q|JbrtS(o5GEb2dMk3uKVb8OaFeh`zP9XwXF@Nn -)Y|7{-l-FbkOLb8d@!+R$xvw92}Wq?Tk?({&@cS&F*qTqXW}XQ|@KcT%&OAVgpmGoh_$rb34nSckOIZ -?0)xIsava+1618ikb&at?48p5Pj6ZpGg+t23>hdk&fbFNXatp=Hgn@t^{lo6m**F!wSpWU9;2>$77R2 -?mmg0~&nnJ&8jMh9I}HX-`{I}cV@SH41h8q9|AFCjE*KfQ}$ -I;_IS(u`Kc~_dVX^D@l4xA<*%v@^jWjGST1&4%(R2OtpD-WoBH2Pnpc15l($*sb%!Y5c)BNNaa84G|8 -nO~TF<@$&N|SyA2jH{)9;xCcz*TJa8+y|p|cKno~eCJ4KDkGzS&Kk_)+FJ)Dk%BLhsuO4hMY$U1T-%v -)Y^wf^pw$%1)M~)z&GfVpn(p(vDp!xq{}n`HCRbE3&G{+*q}C>`2JOy -R4EN@mHi1A&^z0P+pz%7I?&t~vN)XjK;_ZWR6iVpvm%OvR!AcWopr!voqMlfhYXw9!0*&vF^|1`Wm+6 -efXi--=)xlc--bq}qdw?)*o|1e3#*3`O#P!VFjaxnCPENGOCYJF!b5o+s<+|;00rH6qT(eK -PK$fnEnCcHKbADW%@%Qw`+p%KW-_aA<$Hg%_Vji|R8SMWp^V>>iFmrZ -&0vBtsKOca68j-$;lLLD|@X+BUW*5vj#ixh%dHpO70dKXedaN-Ensbr -R_LaKg567z7T&*Ty0E-wy00Rzh8YPbBLUPQcJ7CY_em7>3i%k}?OXwN~CS!N~mdiG#E_(_b9Gs@?}m_ -kHVJTSz*0t2O2}Imxp0)^r1!UsGI!i^8JlcPT#V>=KLYuuFCshAw5S@ygnC8arAXyQ#Vj9xc2ssf%nX -$y}@t9VEp2&=%w8ja9+G#ybQ(mNegoS*4H4Pr^VFja_~^>fos8bkIfHTrNcI!rK{<-BLIs@$ahxa?=P -aWKE@{WYdH;jU*V%12+NpW;|hCklGord4MJ0^9o9*_E-%SpU -x6y*AK8qvmIqZ|Yf%8L2?C4vhD4Qwg1Qz;a<2pfTFVN#LvtC3n{h?iqV`*e#sdi-nn5XS}_$ptBCRK6 -=6`1&r9>4TgYkiu+Icy5J{eWHU3$eJ>VT;=Q5pobMleh^P!RN8_y5TvN -6OK{Eb&v^S=y0j5DU$8`>~qyZ0}z9!H(F+1psH!7yU`Y_#(o#a*Ubth9?JACl|k=Ss~t(> -&ku7|HAf#jFw}3Xcp9SUWx`rfzJP80-~xV?6uF|^ZYc^_M8{cKtg97Fs+lJ0M5ElV$Q4@=RCV$twQEILL#*)rIug;k;Z}q -D12?NVfCz5iyiev^Yw1I!{S8JRNFIae~9R1 -OJi>jM{WYKJDf7jt2jmZ5j>tPF_GzEhrr?y>zWlW8G0iNV{JYUEwsHk7Q9_%QFW8Z)IJ}&(A;sDC8m% -o?_4lZM?Gvl29m@vOnpgVhYJ=iv=}0xFLrUiixh>0AiOP+FO91{kL7KNd1>}<;2|Zj#!kIx;?pWX0#=F9IM@-}*m@q+yJ&Gu{`0hYbEK -w7=2w(;}%M2!}&SQ3%%&8!7*$MC{d=88fPF@FdXr*+avC3c2cEa@REsiy&ICyx=OM{s!Z`DFluEkEEk -8s=DFjfXzY=w;s-dg$uzo|M`6US%RV!rJN)y%B7VsDKSB^Fu3_B*kdo1VXut2GAfom@!~op>i#QXKfa -V{w@Y_AXp{`YN4EY}oO%RF|vBzj^>svX4ebI(F0LMHsj@zO>J*$!r5dn)5Ea#oo@`o_J@Ev{Aoz>36E -JE5i{i{JS)%P-?j+rtdr=piL%raPM$n;)Omz9cPw9M$6N@NkF(AVfYD=bs~*ZMoL@Ww^4QgPpd0ZMKq -NaK072_XT%m=q-5Y|(4}z2L^^D2)sbzKGDngU}s3@Km9?e3iQ~QlEBW`j!_g9Ud -piud!jIvN4nTCKHIG?+;M7r+`8E>Pl%U^XP0(7bu|=u_)}P9Gj-Af%xZ72xv#J|9$Tqsal<(4IP*Pe| -j+oHmZK%zAFzissDvm{4rSIzueP9O;tQ_vSgXMOX8PQ|h4dk&`(7~xcGuHI8Pm7(N{8N2 -#En8zN1XgINcZ@VjCkbwsBf#u7SnfGJ$-Asg+z362I6hRr%aWwuGH`#3(TFd4bPqo9MM*wF}43 -yuBY>C~Q8m?OWG&elHYr&1~HXNXL$53GM?R6p2iW>otF=OdbKeITIGRlQ51G{n2PnR)sp8ntN&H_GhM -Ar1Hy{us67O -c(;yiA)>jiM=wpV=ERa3iMz{V$jD(Twe{|R|^7{B4#e1jNIDb5Q-E5OW0?j%wxy!|b|0qJwbAUO8u+Q -Kk1{+3GKg!KAqHZ7MW_e5{=zIVTKyP8nws~c9o4}R%U=w}bILM~hK7Hh~HL$Qsp#^5b)zKPflzb{_WJ -G7!MT$82xQp*bj*x>`QFQ|4l7lUg@*|7L6)GPG9U?ncKHNeff~m4sRDdt&2l{;j$@; -qH+WFa35Wi52jc9dt&#aU9*yIN0?q5<6%eI`Kl(QZ?++>N~KaxD<%DB_HymFk(;={aUwmC_KgH^`k3P -ju8?eP6AVi6VtDZ!_zSK?s1i5x-eb;^hVybm;%9IW2rv9e|5-TM{$AbQ?#V?B%D%JDOdG12&}%4e8<^^h_5 -rc13+Mzy)}>sXC48`!M&Asq2&yp4s4pv_SsEfRWp=SpA*3+G`QmqKxYct!{NkKF>Ro*SyoSNgtcL%%B -;=!(cDJaJ8>KDasdOI$liSues#I>TnqjuEZswdmOt^O4Tjo#cN=9%;E3=-aHh`7H}5~bYc?UF0M0s4e -Ua8o6{Oi+3NwVRU5aUM2IJCeMz#P18*Lo;URvgd5W@T*5-yA$pthMYLb+^TNr0PuNI1@xIR?CQsxe;Z -|Kc3RaaLh0w$u=0&bopoBY|{8OvZx13YUQ6j!nV{W%^|caZLlb&XipMB@X0pw)>f5AfANIx?oQGSTHz -M>j)eTBfQUZk+~BRoHIiwMyj7F%rY0iSrwra=1xHc(V_C+L`At -G)2w>4ciWtCHpq)X003;$=Z6x60MDrM;7inlXZ~xp;It#&EJVT!d0+$1G1Pa>E2SWyP4nFaU+t*sz&~baFWA*zilK>~sa>TQIhRtl?_ -osZF8o`L~=NM%VyY=rm+GP6leIP2C3OH76WJ`TdBZ=EF--j8s+8+=(d@~E&i87CDtT{9OKQ`u5s2?w* -4a*Ut2`!Cfwfls39eNuJ@x5(;Ae7G3Gc)}A&PYQxH&Vu?p&x`#kHfMb^jq8zvSIuOn=#bXVa%xD4;{w -L*#BtPXLRL9s6Vm>f9y13EaZ=!M$B0L#E&%Kp5afN%Z&S;KZ(V{H2o8=eu0F}I$$Z*3E)(<>FQ6m5X} -7g$?h+X0)FcB*9_iIW~%DOjZ*&1jvVH}&vM&{bMT*~iw1|7uld5?`kB+F;DY}gW@+^X_qGI&pM@(1w) -j3g`oMd6oC*Eh5r(mg9*r9g)jS?I0$VSF7!@*Zf-(_!@83ToXmuDz1#k-&Ib9H^;<@`3U!6k=Cc=NlC9?OUh?P=SS70u@@Q6;KO8ag0U6ZxBzIhZY8mPnm@r$~VM*QX| -@n=ROVn@(XQfMmQhxbLv95|Y7;>tuo0|YVbb6yfNZk#&d -G*G@QX009B=+0@bA%^KLqWVW0;yoy8i=!`?XUb8qSPh?C8uEi5(uF*%H{evdHT9;K~y4)_&s!b=(r%L -mX!=GWraEbG1uTbzzQUccf9F<-#NPS7SHwJaNo8y8AjD1r~-xRZsp_D-?qnTNcwBH33DG{Ln1uk4<{aaCYiyQrG -tHVm=PMzmsXFQ;ZM&!eSJHUWoJ8Ua6YI1WV-3L;`RuMlZKT8SHs8ndBozJ~==qhxABpLxiysVxsz!Ze -D)yA#rsXjwEzPkNhdIzajd3e-KGb3aPS?IEFVoEt!exZSdCnO}Ld&7R_xnGOJ5#rhdLT70o#tXK=2X4sh-p~^^cJaH*faGf -6|i{OMn7jm(dL-!obEuOGii(n0J;irx&IpcsN7DKLUQp@EGt3!!y8% -&$~AO_Ze(5aK;m^=FMlorwk7OXLjC{fHV7_sapZVsaqbysarn7sawp?_W%zVjP6djn(x8Rgr)O6*qN| -+zFz@8XE@lzX@G_kn+t-^;n_@m=070$j2TYy;RXUU%o=(Zpy57u82tB{d_}{~&8}$JSv&C(*LWzZ$FP -rB9oF)#Hx|W4JoFY4M%eqI$NZKgCLV{9#KioTBqjlemnw42ICk)Ae^rqXfSp+o`BOfW+C9$4uo$#DtQD1+C>6|g7QutdCCeg&)BIs{@>FW@;|;=wZ -Ki}x@gJum~8g?VA9<+~4oslRQerjmfoT);339ItHpmKTnAioc>w35~A)=zy6TNQAB6`U`_j9CjEqg4o -E9k?p6TW@=2~$Mbkl-h>9z%oua!ejHZkQS3wx=AMH>xR8VST#~e_A!TJYh)>47go$WS?Y6#JXY2}j6E -mDz90lTJ0udU84c#4GBw{<>C)6784-dN~g~<8L8J@Ktmvf`v6L={Vyo?GL%DhPWtpE|ThZ1q^#I!GiJ -Qtw4#s5h#7&dI!Gu#;HlI4wN$X(C&YcDb5n-R -T)>CNrQ2R<55DM)3N{m9a>UxosS-dZd&kudAN5u9i -|0jwAx90q_ldefuQ5-ejTg6lR6ZOW!S0g%#llSU|ZR3p?+>q>vnXE4GNNc{}#7|{Y4$ -`Yd2dIQV#LIDnMno-2z5k0#b*xelvhPs7^Dg!lHa;zyHUUv(^COnU5rvlBoFn$3U(W=1qyTHmK%Ar+L -WIhJAH-#cA55|n%sL^m&K7J5+*xumAK(O^a;|3!a=?P0351U@=V7wIYGH%yN`NqM -HqdGXi4ye`-K8uq9w2OM+<`rPbuq_ETs5k0+cf36p^Wf&br{7UkyN_U1+^RJO=`Mk0Ij6A?1R20yyhJ -#b*#Owju9X@v%fv22L`zo*vo~S5^^k|vo07h1tk0^C~q~8l#O@%J-k8`>c@M -+44JM7W`qb@4X`N>V`_9vP|+wVkuNZ#8ofvwdEv;bf^!nSg}QMf^37mm)_xpuRft0%Lv+hTs1g{ZNZ^?D30#%po=(rosSvJC*l%wW8g3%;kAe<5U1B$r^+=)Q1Psyg6 -qp4%OZ2>WQ~mZ^$$`Wov>dc{zR~lVj(bB_Hmei&8%w}wITN!Mf@gy`CBciY|A41ltkQkJ- -J)W@5i_M|F555q1e$eVNW_>kY}N&4$O1q#|$X`2cLG4dH!HntJB -cV_a$`Z1dmb6SRf`qOa)TwENAFVEmR9Gjjk5iMLuTv~708+*GH$1J#ty -ySoZS`|;$o4H5vBt%V?^syscds>nSW7_L$m#mt_4l7XzRPKf%CgveXyA;cchnKKwL<-E%!q8wH5{kPf -qkS4lyx~gf(zcesAkK{}gXPlo+W%5*&*4hqk&dOou*OFrZFa63)IX=?zbs16DLjGr^>H*4 -(?fhp4#ugEOLb~qsV_ycWZ;T0|m;R1Td6;?i`JvtM{vFmnBh;0mH;dSi(lthISNH%{(7Q4R>p)gy9;3 -mupOC_wCcq7zQB3B{;Y&3i2MHz2VJRsslXT@H5>nKKi1!v1EFXM>oAyvbH;X?+CE2zhep?iR6nl6@6o -OdO^Okp%&6)GQv!jBe0ge(cCd@u+DH>y`*=F^S_@t&1!<51UC9*T&QK;23d8cIdP2Hi~81p-?`yvV*v -)2r@N%2)_A-tmeC5-3+4t3hSuZ9a6M;{srq#MfPUpsdey7=>Tmixd}J%3j@XR!HNeDbz)0_q>KYIpjm)-5Ko__~h3OdC`eZaC;^>Yqp|cLyL<#BR8vPNN|-^KS)Aa41skU7EONm2My!(;jg41F|1qxAN}UCNwI_37(L(b{a3)Y -Lr!cw>&;`gB}P#|`*^K>b)6)S9SCL_x;;PT{adNy=U&G0LMbC#cUa2YG}DmlS@ZyLeSxZfmL7% -T{K;=OH+$P@Ej#;dnMm+1moc@)Icwz-^m?=J^vTu%pqohO2eFS%wx8I_rQtW(mWQyN6YQv1HLn89kc -!duPav0{`9_7H}m$6$6L$ciCSf<}2~>7ie__rzoYd7gyG&Opbt{j-wvC2TJQ@Kw3fzL!D{2AH#(G}BV0yAUkUNriE|k#+oNlrm;l-19 -ZXRa&PXVim|3m@$@J@d*JD(I<#vze#BW?`(moQten=H|rVx<-kE8B#sq2L#6C&vznagG5Hw|4B1n$O)(j=~%hoMVSbHH -z)n;lRQmc7u1*6pFiMnE-|4*ddq7?KsVtks=;5VN7^U=ZHd>8plXp)fAG89f>MMKn6-|rDQ=j7hAsW7 -2Dng4CvC;^pfJ1khPArxMqxkm#&$j;V{~`*AuViG2JGFehJS7EYgQRP={CuY4%mwP{`4se5hD-V2S{6 -9CLOHzN8e(uR-BpFJ7l5f_$U7h4B1U=t6Rk3`#Fzxl;y9EhH2LM2`r1y#;*jY*xf_G4!eMbbNwyd$&9#=E7+@7I1Q!FizHo(7;O-gZMZ6oLRqlC -7lqM&odyQV$1SX`3Nre!15cYCN{uRT086$5UMK^hbB~n%rCMlHJF~SIAl1I4v}gZmsud)OOH@8^AK%! -4>yi2S3w+ZSjaUe8xFDg)N#iOdWSb`5Q`K*P8}H%7!RN$4PJvoJbEE8v@@F!l#FKwAzWabhSf-EH4i0 -{Tw@$z>Kkz|2xD9!Tl@SiWDnlQns*|`?yhC_KAH}_yv)MDdKJk`^0n>dU^rF~0zyjFhfV4MK@_$E&bm --~ZD~Z%&XYC@#&Zt=A%#$ruc`P*LT6nt=Sd?#QNi)t5$=0e2zqtwSRzUYA3}+Jy1X<87+2isBx;>(++ -RLirvar`4oQtV%On(HV}YW_f`#nT1zWPMRBalDp~n?H&5rY9lf8x)|8<9K9)opk*65Amf~%B|U=gOk+Xa(JDBw8Q=wh%*$9ZKk&o_<5?=x)H1@8JfU}9g -Ex6tC!-H5>A+n_`*zYRJ8LfiyB5^#AH)aHP1_hC5MyhHP)c?Z7~?15lH5orcXA)h5paRQ|g6d@G_+^_ -8>p-hCex@P6>qI01>X9ovVLT1p~^~ucDLy2&GNi(t6HDjw2k@#jcM7d%}22MCFOoFd>Rnrmu7ki -yT#>{yZ!TM#sJfkhq(SxJ%TL568Xn>P>lw-RhAkVTS2bhPFZ6qW^HfrQk7st~~o5Q~!%GXLV_!;+T_@ ->5;BGDD2y4B_>_#1SU-1k#nA5fa6ES)0y`A>PNeHgqlw(7VP3?AlbW}Up(o&w6ha$`aPClh -$9;h=wtgI91?EL73FE`xsetq8uO$YJmWRL&f*WsJ&GZ~5LMb%{wRzJPNp7KU00C5BpozVj^ --c$FIL#W5wYN*vNZy+!bgctkAWYz#FYEE#RmSiBU0aiweXNKaKzza;Ho1f4M1E3ddWE@}(ut&VQFOjr -ddmI$`sEsY9}=UGQ1yE>7(Hnr!K>o|hy7V|~INg^0ZdS3vMcm)*#WCR3ge+M<``227Oa{U>fEpxNN?b -02w1P>TYe$=6WUpo=o7}%oE`87WkL7%g&FyzFA)KU5%&ha6G;r9Br4G_&73;3=N+%|aXY^N+)cvrK&d --U~pa;|rbGrc8&NU8=?AMNEt2n+#m4d3;h+Xl~lw9AS<+RYZ6%#D)t@+>aKCj9a&gZW^Es&+i~$ZHhi -iGNzGoKHdWv=szg2PQCWnh97>n13cfh|5?5ycw?$oVbf6=0L(5RwfSM6cx4b%)T3=os00EcZgQ4KZc8 -9o~oa#&WIOafHDhI2V$h%588<)PAoYGkpvei=gX=@Cu__Q?+F;eT()+Bmb_NRDjC$*m21j61dAc7$d -5fR}{Hz7T`goM;oKHG@_Aa?^ADBnAR*l^6|;c!wx5uP951hRr7Ras&d&925{*vtW3*RZ*O&APy7$yw2 -mU`AOSV**>>SAYOB`n&>q&bN!GBlKPH#j%9Wx?o&J8{#Q~lpTPvgw7mbJ~%_PsYZBo5{$l@oZ5we%{s -svnxrE{)`U+wCaBj8!-Qco7f|}sTn8;b9!$5rM(q?<9%bBRxr-*H%$@KM}@!Iaus^R?Sh@yOYkx!U -3RGvbPXnC3@%lRB8|QISB8jBPrz-^C^~)$87@i;850;ck{r -CyXg>kxT|hX0z^AqgOZ)M*y20lTW3}Bxp?JNC0OYD5ZXR0Af=#CsGRYVM9*5%v{Eao7n7 -MDhKyprW;7TwDlfAIP&E80otg#=E>b6Ao1n^!Y&^1IHl0`ughEfZz{lT|iO)MhgSfV>t7-h&eG%-sGn -b4+uI0dD{lD(8Yo_>h=@nt7zimm+od%2*Q<}=PnJfP;K>QfU0+=QW{Fos#3CiUCi8L-Td -4Iw%k%>zY#i+Ze2p2-_a&$zb29?oZALdE -7|I*kA%iiYr$=K((3J@Zr<)PTv9W`&4Ckv9AtU%Ig~tfKO5rntu2LKduEbS}L&oq`3c(f!g#njJMqCv -UED8M53Z94)Zj_OCDbR?#O97^Em*T$!tS0`IV0@RtXSlda5lRg1Qs7cRCJ(}qS)5s4yFVfX-=&}eO{f -;U^BpX-DDG0A+8~x!BT%utWf2H?=0tEtBg7jbMPWeZLxIJ$);VM3wN_Dxh8#_YKE6TY5x9AQ6o-hJd4 -ZH*R`NQ^TgmHS(Oykp{X|AOf*6^|NQa}HSsCf*s>u&i>l;;*(#<}A9j7V7E>hk=83_W{6%>EqBB4Y(> -W3z9T|znRP;_sQ_=3iH5oIb!92ZQ;m}m;u4HIex57g1Eh)my4?L4&wG0FUXbSxIR#b_m_6k;fdm8d_E -2$`r4WFnrDhw94Q_<-P?8&C8iHy&m{=9NzfZh1i?LW#U`YQxGa$BNN5@{A!A^uvv$Y-696LZ4;&H#Ea -a!p69E+%oi=O%|lxW>5c05H^NW0nc0rD}5PSVJRiJ6z`c%8O$MghSNKz#|-CmgDLV-l%bI+$0%gBLj$ --9x#g4@>zB`kFia2V5Ed!cxldb~LqK^)b4*}f7O{PmC%LfD@*tO>Vi8>c!8gChR1I&uCIn_SsiSh^H3 -h=f+7VD3V%V$;Y(6A314O_50 -xlrN(0Y}5Fkw{Ugx?`M9e!eNE!2q5<=ftL)A{;l&?m_D%2)D}EK@=d7=r2K3XBA5M`$x&wV$5|2sG=! -q9r{Khctx>z5rq<5I0T)pW_i!WLSEHpp=CXgRk9idZRaFFnxxpPjGrhD_}6)0bCHA(ln7ds^D^gIwXv -I+zN8oa+f_{tD)MZm1{3w!BSu!mapwcX~D%7-B?H1c8(ZMx6nO;Qb^5bFkLqHbhL%W#BhFJ(WG! -M5@D}=}fS=cC=C$b#zCm5it6L|I&f*Z2RSPfA*e7cVo5$n665&>U>wC}ofg15vy@{S({W4YC?Z=DbNT -dz2^L!?c916F_+fJ2vx%&XE;?9U)~DEJsAU~IdUp*vJUV}=Cf^eF(#VO7K_XuHBvDgBG~^8bM!E3Pe-<-6WEz@APU -*zjHWo%*f8+M8H^)md1$A;e;o!;&5UjP+J^Qh1%kGmVgdOO|YGu(1KrX2DOUMrwp4pfbEONLx#;9z)= -GmF>K}lV)z-#NqPhpGbv<*7vM@?W6U -*4*KGaITFoh3v+!n#&?$asWq$?w(!Y;B9jK!}Ylf-}OuGb+Vbt@}9nDZ-eJU`IGlF6`Ztu@l8A%tG@; -h#|6CD#RkCZ{r9YKX`X6;Q2kWxq^W}-8d1Ee`Vj8I~G{?rbeN}cPOSnTyg3r)wQ*zG;7ZO5n!u;vksJ ->vK!*@$SM}p=**D-&YV!%`}ZY+E*8-!X%syrNM)RlTo!4FGXkV^6?DprTh|IopFkgB&#e&Ry77Pz*6v -`;D9SeR5R@&_oOr@$S%>RjEAs-JDqvgR<{%q?6``~i#j$VtqL3>=n%)H1k{?a8w;`aIvTx%=>NG|Fwq -;HW=4n=sL#{e>wS;})nuxOpG5yDzsjE0n)G(45iSqCgW?T2Ywid&d)1xxwV69(1#Xq_( -+{HzS4#AngaxO~6Kn9@?D1LM6XlV<4=sd*?FF!9JNjp?(Abe$H*!F)n$74W&<7&h9 --C1}`3x>3s!&O)y*=D|>T@}FI7cH0K4JK_w6+^zv$-lh#D^brqcfL9=zhp3N7O?GB$SYbi -z)eF55x4lUa@>ZpF3-U(ZN3`w_-gFE+rsb9_%p3Vu8QAL>Cy2_95?X3t2MarB8L@Dn!|j^*C0c&*%v_ -z~a@DOkv_-buZ5Z&j2dBL9BiBf#uHd8!Qy?PB)*s+;v|D?Sjh(&i3L*l;+Ovu#xs1KX!2hhxLx#EP5#Mj=rpDrq*37DmeyRRDwq7X(W1Q@ -lHIBVbu4IZ@+m^t-H=xO$o(29(=6sE)^RaTo<{^L>Ew#{PwF^IPN+_31N!^DGz5AcctX&5C}1B7*6pu -b#%h|+`Ey;J#R?@37t8>v_UYMbuXvo5#U5^#^&C9U4BfUSqEn8pOMKue|!XKk@uakHJW+fk-X8vd$H# -suyK+W44c`&FETX-mlnRrNF6pi{LNrwUw+}oTycNlOBfb7tQugE`yv8pMmAq;si6VhI767$r-}#oAjg --EJk1b(>BtlExHVr2>m%Xz%WXnn-MjyK^hh~#YX2Cn!=!krOo!*|ujcmt)cen>O#iN5(Z722>a?jwfr -7dN{XSsF{ifcNmw*i#I`asCf(;wG!3kiaM&jmZQo#;ex--DW4a`K56>QSN`hXp^FlzU>Ze#e8%1#@)5 -tTh@J${0H*V0V^d)d&9iRaU{za*ElR+|X+s-=5nVAFmBo1)$6pq0TfU`Br6WjbnMkp0xi5A9Bk{J`_H -m7mFsQm|Hj<|dYcwemZqHm2=_p!$sbAp5D2AI5xY8loYTQfqYOteR!re#`? -L>ql#Z|dC4pkKqj)zt;6{`JX7zvia+;&mKK`w8_FnbXN=O=G)#?Z;@ubtL -MF&UX=6_Zyn}ZDEW)12-o@3Xa8ji{O$3oC^p}I^Udw;?Tg#di!@t)Gnh_~zj>?Nrs_X$FCPD@s(q}## -PV1*<;Py0_fEaSyGZl=2ek!M`@g53^Dt}ve)erGq{ojxdQlz*z1vlo^wjRA=a*Tg1lcRHFziKnuhj1d -hN@pZWwNp`uW*VkN;YND3se)TlB%+eYSXm++s7*7Cp^3J!;QYA@YMX(v|W+^Urc!Jc4cm4Z*nhabZu-kY-wUIXmo9CHE>~ab7gWaaCz;0Ym?hHvgmjJ3Pw -|Vt=X02S9X)k@%SFwv9rD#KgyncRLybCawJH@9g5VF)W}LI|NWvH58_FJl;)8=QMo)42{eF4qtV@Hbk -B=?8J(TY*VVcpXJ=8eT;)X-#ph+7t}AlJevhJAa+Q=xo{ge)mQ3>*IZKm@6meSKn*)edvYMP-k!+S1l -QQ`t;B1oW;%rH(c$&s#If||lvbiMN^4>jOpxUko{e>_lqSjfGt=3gp6(nAoud4i#WXVsYFe}m0}|Wt3-@vGR?EHinFQ|Z-@6H`YBiOl)Su%i+DnvUp><<5ZQ7zLqSw$8_T+x -~OkSAGHH?WMWi)DI3zEs{a2qm8VYh6~a^MWLc?0Hoc$vLHil8)2&>TSGItG=ZTz5TI%J>t(l{p|gTV)Y7R6Zvr6US;4droU5hXS{JyBjn^CTtXG`S>Ee*P~qts;t|oR)wl?;)ro3Kps#Mb!nV;m}em -)U(%DKnkB -&74F&U%oTrMD4CtJ4-N7}G{ -+zeBE9px(JxE`Ul7W&x@f+n*HB7CgB>PWVKJ<%Y1qpJ{SCS->`%llGRdN*x%+O`zSUlgqfBDz9uil-U -z5e+82l%3`m2ba3fB4;9Tr0i>A-~xRi3%AP`Rr^)ra9f)@}ibHhVykcg>8i|2YeWP&kB;+5JV9E3O)e -r>?|Xjv$G+<7_kb__fZ5wM9H6gpG+&I9(?AMZep>?y~7&vCnepw-h>KI%W`N`hfgx6^O~USF(pG;d&D -HA$!k8A6TQ>wr*82$5<{;69p1Al$zGjmeg91B%LiH|K3UMCNjR$1d6w9xv&ZH`At1&pYUYItkF68d`5 -y=+ff%I{q*UNI>nTXEY>^=gqOxO@&!gcgFU#aS-BJlCrSr2SvqNlbQj`6?dft;Pspx1*lFk|9J${#Gb -Tq)zrq%IlD)5qK<~yT{W5Eh46C_rb#=DMq{{_opm;fR#@-zh=icF278AgI5tuA7as?#(&cg+czO(IyQ -z$mpv98D?nKc@_OO65i5R2N0QUR-D}By(z8{z!fI^Z_vp9YsZ)u&ss&agOoen6qLiQLQ^MXyORCh+GRgEJO7lfY5kx0I0i`o^_yoyBHC=1hVO^ckt*wq -aYKumiz{&|@h2gcbAxPS=VBs5FGM}ors7_+Q9?qGcBDEKkec@ABlzB#XzBMp>T-Y_MQx@*v-|M8fEC< -npXpkmLN^!GDd6ebimpT8-Ra|izQA?>S*Cr?jHsyOD6OFX!ST?{Jb)m(Ai?Wq!K(Qqwo!BV1iBUi@9y -2q{CwQqrAgQy>Vn2<>8_;;dT0K6F?ypjc9H?@?Z<7*&tI?9!U=Jb&DNgB1oNa*_!_e7NSLvW`xRDK?6 -_tc+LP1t5z%aghIyfhkxspHAt#|O*Q-$J>@{J10@X2zmU0jH7uq0jeK&vWqu+Uux9Vt? -lptRm)2)uoDK*c=S8Kts#ww3XwpGvyurC^~8CE{N{GOt?p%_&kmoV)2f1&R|Dq!# -bdsXBsiifRaV#3VzitgWF$u#*H6$U_QKtUDsd0`^O4S&XDSrA?0lCdKyeu1twWBNTBeC1}A*W1VuRR) -g!2_63@3IYIw(jEwKGeW^H0k6@P7-EU|POCssI)2b(_?~%R65xG9h2q)?;>mbs5j1pl0>cy-Ieqwf0$ -Y5|_>&SS!?d^ZUT|Sm=>hHRkUvF0u+|50MhAeE$5bdAQ2AjDi5U*BgGDW;FOW+>>JBLl{RgBic -)<{Dj^q|p}uFfwrcDtRY -g$RBEHzTdI3e1+^~2S)Z*3Sq;fLwz+3r6cktQnBZ2+p_Jigf~-!*k3LH=%X*88%N~jW{9VnB)W-^!q7 -A5>35Mzb=!aziLwkyXpwj`T2A3_46+Sj8#BF(F`?f4ORGI)uXYhGcw+dS75Fb;aprkDA=U)yFolsQ@a -bm|UvGD;6Q<4qc(|8C2d#LWVEqIrEOAU{5o_L*B_1gw$tQ(C?Q)%$fyX!DuLoqcv!)dI<&s0wbKr(~R -xR&VZofr8}Bm*ssZk3C4ySjiaW*Mi+B3s7ACEYj=n+C>dib5J1Tyx~)rH9SnhCZ~rw)Ex!TMH*pqRmoknq;**HKV6r$djDEc7C3%|b}n8>qqAcC -W5S}WVo0G_VM6sLlFf!S3(`qLZBH?u2ugnc+OV4>b6fjoS~K^1KP&fYA42P)EY=LK$o6lZYQ4h4Qr_({J`-6yn2j<(`BtqmTuB%OM&fh^ -Z$g{N-yM1c*r#y_qv-vUx&gBUVo~z|R5EpfWP%aS<1@6ecpC(?zt6Uc7$`!vk%+0L -x1nvptsXz3b@(IBq0xMhC~ZhB=TauoDxD!km8uIHtYIa`s4`!XeCg^#7=U`-!~);}1KfjPgu@=l7z3& -kY>BIZ8}+abJSZo?MtX!RuB#aRkJd3O~?cC)MV5w~8#cQDc)5B~9we~j0eILN>kR7n>03-ppvxWPe0%Om9{GZF(<==xa3m!t+se`Y -iA)Y?u|3%G#jKJJ%qkE5S|(NV&VLxq4dbldA!R6<05s6%CN^)M6*j4*z2w-$W?p{GM_5*ofbmB2nnzp -KI3sCD~B3qKV{%9qq$o5YeNHJHDLLG_iM!EO0J!oBSE5?@Q&^raq4NtI&oWP! -1cy-6|AKrr6d%wfI$Yej_LK|Kf{!MfD~PCOO!;J+aVC^GB2xi8_|c9rYY-AC(-Z?$n$h_&e@q)f-=7X -jx%p|jxni;56< -g3;1b)Ch@GT%skJlmNL^A_fOtW{=+Pjr;8$AuXv$6T`#jA@PXMNw4yXPkIo*IRL%%1XQzzsw -fk5Q~=JC)d!PEKqYbbQuChnPfgI{n63*(Py1EWwnhw6UK4tz+t5x2&*sgymV&Rc(o=Ues0$D+~OE~I8 -keAtfSWrP!6J(7i4;gn4vP*3|V=}ZKtP(uQGR;SGtk -FW_xx!T06h -fD_r3pSm+&S_vdn3V=-O}kL>|crPxFQ8-47osF8`P>7H|m!SVIBM=ChJJvaaC6$#tzRh+KLQFKYR$b0DDQH0Ns$H=2%!&y`Ga#H|5nsHk6tI&M%#el%Io_65u3?`$fN-#{lO&a*Rg#iyw632heu*8GQ81?)Obk-7dSFN3%V(O~1QldO(_cyUh -uHJ_#n`mMa3LnUMNhOqp42CeAcQCd-_b5Fx9AOmm%D^#wxus#Rr7wqx|GOD3|?Rlt;7kStSSeJI~6R;GDH$&oHO%0iITVUyx_2?z8&Ka+V$!S -Y80&#l;lL!F};_hcAAc3%1Sr5$O4KpzWvhZoUZySrIh}%GFq3FBMd{U!zo9N{#{uQ6#e&$tG?La=AkE -jtf102cJXd;KWIue{dSVRF2Ws8TmpLT8g^yjJsI5n^4YvTUt?u1^yyK&6~yz+&o>rh8Dyba?|`%T4Ju -PQ%aD0%4byFig30mbGl&SNfy1x*V*hXGOq6vD&kjDcojo&tOskK)-m801l;ZM3fwd)rt35==(9O3m{A -R)%CT+aMkACI&{{#4NExkH>@GkYmB}JQ^Mhg{VbF&!KWu4-vgq;Tn^E*+^6g>t!%IrCl%CZKwP3^Bg6 -dUN%!OCCRx>A7-66zi=uH-V*ghUn)(+tQnPmS2MA4y5FTqxu@e4{RLseC5AMjfme<548KppU&j4VhSe -&9-RAHy|4vcZX=(~(eS3P;mmvPt#9SZAFXSEgKi$=)qtpAmwtQTP-f>9}z3xUDe6OY!Q@bh1-YI2vFG -ItOZ#gh?n3{KT%N!cMXwus74aDW2ikz&eAYbQJ7L3l=+WmhNRn??57z?~KkJM!%09O&+-=!~rG$D4 -+taQIKU)!7ZVrG(h6iG5^NN1dgY~wgxxUuIO`LR}b|)OkZDFEj97NG -%P{vrFWBbU*>X(C(Kvqw~gh0_r{`#vTa*}Qncr$VnGnE*o#}-P?Vl&+lkh(+uTf)4!XAzbp(MM2~z;y -uv=eDoy7kYMxd&5)tV|S!(ByTyl&S|)d^NVgqv1hwWD>>uh!>uPT$PxLgI;eF>qVb?L#dno)`tWj#ii -B4@@Ur@NUHJeI@p2aHo*{QEqMcyr5;5)UrT{@&$m7>0+ynQnHAr+cCR;>pFq(D`>d-T-q5Qh1zA$C6g -M->h*sYC5S2Y_=8GFFfxZwqqHQxDmTiki(`%%$tyX7;(`r -yH=nxX#*5O;L-uz2(+di33Q-#mQu@X><@O@5?<@q-8P>?$tvIpvzwOab*|@{sP`8#1H&_8%h3Xh;SD` -N{x*UDHALfn=W5-3IRqs3YuGQMhF9`*_=1h?P01y3=3L`P|%M1XLOp6@YG6MtA6N-$ -Aw&cqy%?qjs07vLFj9`d+0)>7r0erp{*pt1F^vV84`lQ21X~l9HuORy1aybE6VKwPOSpNEaC4_;=?-w -Ki6%ph;Dv0OP1RQ_6ZW--haJQe48P%8e3$Gw){3R4F%-+A(F+~#nvY|>dhnQDzV#Z{qKTRGU9f6Ph!# -_QIbaYgUDPVxWw!iMul%s{Oc?;iAne5>XEv&W+P}mI7Kwu^Sz`u>EvX|YYvvQq9Y;mB%P-@hiSO1Ey; -y`i?fz*kua}hKBH=;Ur!HzoN$8HI*N3CK -A_4uJk{+F*KRx{BQRks+K&Za+_2U2;M1t5n2_~pqs}UyYZpe8>rWZmE$bX{DE$+Zy{q<>G|Bdcir3Mc -%SMT{^!a3C#Hj}8w_(|+>;LMBFaa*Q1l~{q!0Z!z*P%MkflYnu825e{E$W7)=JKo5a; -XxoH{_y9$Ypgvw{uqaq2=>_gjNT@W2Z1L=hYB=023kuQVa(oB$^Dab?6v-IA4I<4WHFf~6~g85}2R(9fd(lNWE--zj?VBOQ%&j?x>nbm*p$uX1{Z}1A1xPSw{i*AQtl5cPpIA)YTX7EDTA$) ->ZqWk}W48n1rWGt5nP@8xro-pL$8_4(_l+*Qy$r=c(t*BS>h)`b=Zc$8R(PUD*D@GJIA -b*K8M%uB5-{8r`f2-phI{QSNoMXU>Tuq}{&HJW$Q(4l>w6o5*6Zy?5GGuL5a(m@oKD}EcZ>P_?IzvH% -7z0c#A;{vv`qK1;i=Z3lup#8ayT-}FubYAtr7S6(ANubH4<|MD6~{}TXPf&?{xE4Gct+B*;lP;rKieF ->;67Hx%mOQH5CLs+0^?Vfo#5uP;7t=XTZIbf;-Gz9c!@K$+obl3X}A0?8t^yFfG#HQrwyI5!k`+md(>x!KrUlE6NP2m -mD>Om?DtR3WW+|YQoATs*88gW~+@!1w2nK^O5?-LunXb7f>HqbG60$+t!Qv0OT|Ew8Tc~{2F0nO*NDa -Hv-%5fR}_2l*VTjt=50d_9p=_RDzM8219!OfK4|F`l6)G&ch#^)5BlxIbMWm!yl$R*~<3?WG{XPg?OL -x;hGbV9@u795DBxQVM#L?BI;o-m6wl`3bY`Yz -PL_g_SGeA^BBaYZ&eV3kF%7icI(fFH>P%0uumw3aNjUX!6iC&R0;G_0=EYh(76p*Er_^>gOSC1t+H0h -PtJ0~0VLK$U6lTv)14TJK;}DZK$%|IRD!qC+*2InY;V3Oy)@Ql+m -~=KgegG2z!|sdZU|^7%N)P$3;lBHZyv%;-`32~DGB&e)?FvD~GY@8eV&B=9{Uq~UNT*rwe9GbYd-?i} -yiQW9>t=rZ0=8%=-^8?eVIhy8)OTqkL$x$z{^=&`LE`yp1wtOBsNPkBq(2y2;3Mg`uN+~q!JU;}O!w( -jg)-9b_AAbJ_6sR&-pqUT`KJj*X0CV%CV{v`2P5@5}mZ%PUr`s64So*)enlY^SYz!qVuK2WF!IC63`r -RHtOPs%#gr^*ujP>d2w%iZga;?i@WHC>;i^xI*F(Hv9>Vo<{Es4 -?9-$_G4M;~0)C9~|&_PGiVUOm!$2vI0=JuB6+s{^yDm+h|(EKW(EW<rY+Yk$bhT{`BzhHCVSnkeINUq_0`!3Hu6o#ORiB&Nq*lS3ZffNKUY7JJlORdvn~bz?L22&X^vr`Or~Y~~y7juN5BIMwJ4snu9=^vg8KT6RA -8xFsGsrO6eshS4VdfGfn?xVSX)O^c5mo1YC!9PKvIONME2?BwN5!xfSv6RBJ_Aqe1Q);f%y9!F2K(vU -#FS(4Jnlcv*RA0maYXF_B_a67`{qqI|BDV}&U`dP>z4raJZ&MLN7!vC0uq7wT@6{ -r>P56`$V!ptutk)#EqLDw#iUEr}hq}L+bbKidxLGAui&U->r<}t>6{=IjF#K&Ggl(|>=O2jA(IRp5<$ -XD;khDtciJ|drTD*PmnZD7b^ZRYdn>8c>lM$ywWDS-f=F(;*`a6%u`u04y+(|meKm&L{m;kb!2OmH`& -t<$9xqbF6yx}p0aapxhwPu#9MlrgjDD5T{x_@8XxzP{<_x)TvC5hMV@Rt2I6iI}6u0~J0p@Twa+-SoM -G)6kU?nxhQuL4e!(trnQRcpdp{kkFRc~WeebI)^J1WxuvwlcF4po}vzLI -V#!rv}VH}ST_fUr@vPE+uQgTR;hCbK{=8N5R6*Cz@B{RV7XBX+UnBxNY5nGi(0@C$Nh|{L=f%TQ0m*3zqVh8JI7dsByLJeyhk -dq8xYB3&^Z60|;7Py&};Div$kohs#B%`HZW1e)AYc0QF+{5Y1_ewErw1|cj^3mv*(kU_VO`&a8@JJpMYHBGPQdwrX&7Xh#3Fn^)6J~NHmM8;@oZK=CPA2+ -}VvUA)`h-qqw -{p-)?jNZ5x|pEpcJJSWdzISw)8ta#P>K|HWftU%ihcRW5p*)0GSe10Avkat{Wz_Vfsr2g&0KBJ|2pf* -v(E`F?!+OLxK@jFofcWc;pF45MBwzCm$hjz9IIgjX?h+3JbYcy1K?$*2fywzu=XNMZOW|sF3aJ2tLhn ->;a9X|3cJ$*lS`1``x?7B*FvWk=y&+%Rr3D4@RN`Y$a~D)dqd{-pzs=P$J)%Hpp%WliH3hHS9eQF+!@ndj5NDm -&_99e|KYdumDsRf)xlw}*>=*h=5N#}7Ge}docb)Hf6J5E&4?Yh6c48ZdYuS*1K~d!@S?$SH(>X{gM9} -+Fp3R^jIqv?yk-xr)G4d|xhaDf^CZU%+b+sKV96UXFZ?kp7R_=}X7{UzMJI_ogKb2*QpatLh-raO`MQ -{fo!j1#*ie6Nl9hi2){{H6_?GdaCB{t7{b(l>M{@X35fUQpz>~NPy=EeUkO(<3fu5odH`&zB7N+2+9a -e~wdTS1$qUvbh!#BD<>pj-kK@U*MEFaqwKlps;*~{OQZ?YNr(&PMiMpkr_!5J~nOA^{91?o6B4m_!G_ -~JnMGe8*F19^G=|LHIT(m#ZsQc@@%hA@Gi=zELNE?haJ|~S)yqQM) -V?K@3T5BMM5Qljs$md$H%yCE0HBVpdW -b_F_r#UbC9~neF4;?0Q1KQyNoz|3AZN28`s0_s&=${!oBaie7DPyNpWqO@1dcl4=3)oYZa1P#1X4X;B -M^Xx}w+=)-bB!r9}>s=rd^<2RBcYH7yB#1A#7etol7?*<~a3mvi3}JX;ND;{}I^iL$dJVRZ_d$4WI -P3#0E?*({?SA5HEm{ugnyg73kNZARUFpu)6T=ppu`rm82K)~itu%qVg&W4pn9bRaQ1W!W%zh~H^=d~* -I3{-4cPBU>^UbbfB56wZ&46X$HKQ>Sd?U?iDwK8~;t<$A8{Nm%$KD`>wCi(0AmN -PGlT#R1V&hFvC}=J-MsSs8=qjcXhS4fWX;tSmkPW^fnu%vMM;JB^#a -qEb-+g81~eA8v<+%B#h11awUV^foD1DIG}DWgaR$M$&Z=kN5eNvU7?uaNaLS2 -G<}l{g}9l%u8OxS0suxaI<7SCk1ntfyn~{34{*#uSj5i8^sVmevwh~(N7EpQ!X)J_|%mDS>V<`;@33f -7Z&tl;0VSeWW^DFlhw6*y1v`DIv{ovR|exU@z&qM%SV4bQD?44?$r7t?EQ^mfPTMom*WNF!i3xN)MpY -1oE%3W8w$7CmCe@`w{LNqFNH_+fisl8($A`!=+g@yYJAF2uEs9;)XvaNeGP%{AkLOcg{}1IyRj7{HNw -YX+OLB?w9Fee?lkDP-R6IMmLJg0{UGU$5gm -XbkYHQs8n1LPzlDwc?x*5_C1LE;A4?{3Rb}o>h_#xxYoL59UO5 -0JKG$>IJef9a8FXP9;-YblekE?p*I_v2Dqnt&1HVnCASRa#iYwf1XcG`>peYpMzq7EtxxVP!#ZEzpc>I2tUqGJ~9W)Lt-br -m-~Hqf8esajp)e|MzJoiislQ6Bj+P1iGW+`yYT0(NJr4FmTQpo`;r3kTmZyYn2k{o){qLl7M#=&oLq1 -Oz~u{Fb}%E%?}C*>XKPA3CWG|rfU8O4-{ -rrRh^7kQCX7faJHC*!4-SD6|wbwkcspwt}F|5aoHdfb5k`B8E8l$kr*90f;0X2tlgmam-9$? -&*3vGO5d~hr#c;}WC-;o1pDMD79%&ErH3jrzp08f!Yc9V$bXI$;J!JD~Rel@=8N2hGncUNu>RaMjVh1K;ksD!O1%orYBI5wZjL$B|@G(es=cL*Y!t@)^=O`!%79 -#h_o|Lf098i{c_eQ8lP;Z1+L9^{B;>w~74k$`Ez@SFGNg#5q%QYT)3+D|84pt)Qoh-y_Sszf?xkl%v9 -k=79V(02?-=>GaDD1X9R*Ior(rdEv$4h9GjjR@spB?(_FbB~aoGq5RHp`=u@{)+fSEY|B8#&JlB;XRJ -m#ln=Vu6H`jFyOJK%y{PGXe($;IhMMWEqVMRI`Qn+0D1(@Q)TqEjhXCdZ|)a>Wi9ih=9DA||`DrON4KUgS$<;klQNHCZ= -xXc4HGs85=9@jvKwW5J^8vTWdu#6oWx$WQz>u48sm~=cw^Gi_gfq=%2!KztXS0a&lBsHw=>h@Bq -D^G5wc_#oh=t3fj1+>>vP|JZtfP$90b@hoRg`r2DCBK)KLNPZS@<})#aB&XqFRC;262oh!Ab=iFUntk -Y?i;)1+0OJ#U&Q9SCy}pd0ENhBloPjS2W`ZbS^Q0yhbt3RT+!PFiCPG2rSOp2jwme07hcLwb!K0E>{omo!K4 -`Wk;wk!Br-#Y(rHbyaT5LYIR^N3K){rA5mgi+nmCpPk}T_e|2(fM`jrdUJ}R?!9SK0?L(zH#zB_IyBF -Vr=1@!47R~%0*q_~D-^Ic7XsWq9P$|YMObGXcxZbP;-;9J_nbK|y~PDCGjTMkIg8Lj2xC(Rw24HuC}K -fws8{Tu5A7ZHgAX*D4ESTG80iK@V|Abt0ze9`6VcvOcqYLtxIOKm1MpZo@;Qy -l=ay8R!?I{^1c=t&C{n?`Li1?KcTbKv~KaX;1hCO7vWlHqU10VN -yy;A+cu;h8nt&N(BSs?BJ&rJQ(|*F_WC1}Y$W}l`gV59?72i -ykhYwOKkji5mc9cFnbw!l%;*5yAowBnL2I(5_F{n)h*+lvr=)%n0p+8$PY=GrYdUegJ+esJ_3cZ2MBB$Zbh=ZQmlN1N}B<&&a5sQkdL_Io}ra5Quqdni1vAucQqg8Zp-)X!4v%gH< -p)OZ@@B!n^@5c{Jc5JUsaN^UHn}*F=vkN7Bth_wpQTWe|4u0M;nk}rZ5O{T1iahc56@IeCj_d2ie*OY)M2ygb#!BUjl0b}$+ -#Q={YQrADoFv{Gv*BDk0qQ`RbVp-$AF?P(GrCbi(0b}1eMO)1CXFxm(f31bx;^G7yRaTQz-OXVOp$;{ -0dQZ`z7*d=!3n{i|nqda_))dt;2f#B+bpYVYVUtWMzfv!F}N;>YZD|OzxIuDUJ)Ityy#4ZJ~7L-Dtt{ -l`Acn9BcUEX_3v+0gKyJfHTT*NG>r3*!9G$e@$m5t+dirS8PMZOk2xZitc!GjN^zNu#~5GI<`HxGB*s -_TINV$-&EYO#gGZXKujf_=OG?OVy~+`N;!KsW5=>eWTxu3CGE+xw$@ZSDNleP-F1Z@0B%1?|R!V{UQI -!ZuZrtwY^h9a}1HwVut@be8YD9eOQ4_6A(kgs<{_Wf^L#N?C-8n#z{oG^OfJ1dJR-_#ytUXsu^wWtvy -z*%^cZ1trE*e7j`QHnsBB#K$7$-22xEHPCP&6(mrD{MqaSEf`$0YEgf^wu_KtRt*=ch5ZEQMXSm08~c -OHv>79KYFi9NM=9~7NZ7#!M>_YR2e0?vq0hp{m)}1>dH#ThCBzHJgXni$<-89_xbM95{i!V`WY=3+yy -KcZWZ((`(;vCa_oE;szeE7}&~Zn?qoXvX$XU>|;8*C -W`7~0_d^bi}HPUdnqQWBz4%I;qkb9Zk{JEByBbu^+FQZZc4b8G-mgbm>b&|ru4x@dLo8j-6+suLS6*TD`C=&N2t4JSt?dG+fS70R}5>eU;{ -9finjyK2TV1N8T$JLC9)3i2g2IA~m-}y3C)#Sf52nbszmWHD8TtYxcmuCD?U6!*#{u>LMlmM< -AsIABz0vM+AB^ZwQ7C6v64hzkFSyYdPI|Dd&S7Is;CXjg>GdQ_;Ku@Ou^}kTJ$(yhx^BHA<+ji+qWAY -fDj5qnSm&@#7)1xrQL$JaBKDwBX%G_MY^tdo<)`Qk9X3J>%yFkG&&cpF>c?B729?HUewJ)&Zt!{P7)Q -`a=^*J6FE>;jUv;2@mZ{|FcTBC+E#^e2I3N@c9W&`&yMr4#!PGU@WS6v&>=96f3$dq1#=^xE4T3tnwI-7JQPS1Qnk7lLc9z!ef -qs6qqM47zX=GS0AVl)AEJEeqx@HUI-=DLz3HxFH+=W97xm&-h`#Yvp3m|;)KTFU#59u?gf -`|7(wM~|G&89)HlbkDGW;$l!kdiC&zjsd(imD`yT%z)f>`>@15F<@;$?U1L6~tQ2ut1F`$7wI{1@Pa@ -Iu{i%-Eerqn1pIqX=VmHJ4>>pIy>Vm?)P!ADCwWyUvA)=$?V -oty%?H38X-eCoJde65Sw|J#zHFs12Y`xU8m(v4K042uFDIzL|QO8uaPm-`|=1WvxT -J}Bk{gI&v1cW=Wtv-uh7u$9?db~>h}93HW@B5?e}n-Z??{@%IO%yqJlBxs0S8qdtGy -`k9wy!RpQ?MLOw~ER^8$3uF?9~b~5C*A`5d-XWhk>8~e{Z-pGv3S^~kFqBN%}NF?Hy%o7O8xvqE^I`j -a7P+^XQQ0g2DignHVj^<@C{cZ!Z+F&2Ma+_M%VNM$@%EVd0Qg -9B*Rf!tJnSsbmd4nb;F^wIKO1tMpF+Q4wNwStZYhwyP+x1zQf^M8TYlffc1!YIQJ%d%xbG*a<98P)H4 -R;+lv~CHzN!wQ2&5fq38J5{Xw^O)eh1<2`)I-&FJ+Bcg%-$1dBpuv7f~BE2G96IeN4X32#?|s-+ -wq;hv7mLVG-@0@3*zuE^A(`}TN82Kw4?Pp0dA7vng%lW{=*)bi$S+@0xemWf^FN6x --lAApv!sN-p@_}o}Wa|vn_-#kIN{}qKkY3X5x~P3eSR#zPyTJ{(sHYKlC5i2>xjv*SPXgH9+B#{IvE`v#Rpu -MriyiBD$77N(x7eBYeB_#rMd;}EYfLEeO+QOQGz1BFok7~3TGT~P0`8Qrmp|0juf?qC!1ic)D4I+KI~ -WQ8T|M^hJsS`-Osb|pu6*|K4nvgr9m9UJA>5=5Ayf@-T17W;J)d^b6$hhJ9EAQlc$@wG#5})HMLxITz ->wRRmJeEe%)NHOdzS^XNjLFUI`oNjk-E%gDf_qXY1cy+Y@7j)mmOd}R7&@ftWHk*SMYcg1Qo(v6UAE< -x*J#lABl)%r^a_ee^&0=T8K>F(Izex8lTa(An~`7E3$DVsKdmn|Y%Yfo&E!Gg&0w+-ovP?z8m^X#G -0$qF=)unpTm#*}}Xh!?0^U{qm+D+Fzwf_IB>qgeaiql)+pSpH@k=7?k!R8C&omV -#2rd5q~^=c2hrc_l-i)NY@??SSbn8v(C?@6duat}pLCr<7otPf?e7YnHAo>h+8Y8*)x7La{o#*k~0fMM^U%#t0aVrh)dcnw2}sIN{t&PWDZQ^WATdQ#p -D2w-^URiMSbdu@CRTE?CkqCHn70QX5x2VA}~6d&XShrb$J285HeHxxX}+f?AR5jq~h-@z}*?8%+zXSx -nwkQJj{!99BK(+v5EP(Tg?g)71qeMgc0iTV%xs=q9YzJ!o(2xsMrynOABH2uP;91-B8SPb2C~{OV%N? -laQszIpsjcxB22rMevMDrW{!6+E?n9#s)~RLQ0*bH^UGMI^QI!SeW~x2d$(=v4RSCS>Z{lOL5Tx7nwv --I(4iG^Jyw6Cl>^&71+5ZFM;X+KnkN7Xi-iU4o!;EwjUwFqLTqO6S+?Y-OT2^x$Qm=(RX-XXIX&_e-a -lYM!k9*BZOuk*Ured*SA<^MWLc44n+KJ_b}g?#kD~@B$%y=SBV#p|V -^xJk`=88_BLY4$i}4>&dj(b*g2a<5^98JqwrDd8THW_5I=z{{I;Ne-aMn;%lt&NBsX!_`kT3kG;hd(8 -)6VL=^H>kMykDJlpn?RG4>~C6o>Y$CGp8e+440Sf3;M8xm4`p;2mQ$-HHnY9)2``keh)g~O{C2G4dq! -tCJmf66p1%WpjU*Sf4e{p|-z(GVQ5d6&mb@`5sd9>i(2NVlsCP|@i3AMkr~M`az_xLWOd(w5;_)`Sq> -YE{TS-dZ658mbhktjuB%oc_5`)dFv@>vUvX_~AkPeeS!_Ybk-D9xx -dCzK4b8C02*7x=Zc2BL@dtVq7FdWfI5>_I^7zHLcrjUPsHOeNF|+T1p@vIsF_{m=@roj!Jd -VVW0uV4Yq|=O#Rc*U1oAz5_@j6j0Hu_xWf`vol=|V@xNT80C>51+urCq>Ji(5%*Po|(&S~H^er>O@&Z -aT1LBBo^t8re}co9}(QP=n(tVU7S_}E@!5wFXV%82LbnpgaRKY0O9TI))+)^ZA^L6Rh5Q_Pw>v3UZn$RERmw0%;IVf7fYT=nLu-e;U4`%2lp* -;S>EC*aIqEaulB=t@){-{JJ<_QBWz=(x=)>PsWS=pR*f9q2% -k=ufNwLa-)CnP*wcq1xQt-djA*CxdWs%fy@g{SxxZ0nXl68h-$Yil0&IQKX~##tN7}h+JPVYziTpNTW -Jsha~7FkT}v%;IPw}*VJhcT5A&S%fIg)mb8<GUQkae|ZF3)P2N-If{j -X6sgPnnvyhX5UBL3ZNMb|%JBZ+~^{Yrd||Ro{2AlJ5j9itHS+B^(dDp+luS2J>9N*3rbm$&+n@si+=gbk0kQK)_u!s~IkdAosTjQ?DYN^PxOxi0adZyZTY#~VWf^4z<} -WU`PB_9wt~;MM-aZE2*yLw#Rc%Rr)L7T$2;YzuNuPcVdTb*oxig0MR1J*7kt>Hz!nF*fZFgnADFg5fenfS54;6=ajzuVQY6h`aFm} -RrxA{fl%J5y;{-Md#1`eh)&olMn70Gi_Xb3UQ^1)bcf*gn$t%Si#@>{WnrN|1u^hh#N|K(BIa_UVh_q -Uv;z1}W4bm-5yUpGbQ=K)=}xrfb|rd`{T}(K@1bb~?xHjWuwl?v#xYDS3&zzq=!YY0Li;%?I9S}k?X_ -!hP*iZX=P0K8$2UJ5tFev2=-h5srnAsaj$}2G#t4vIrwEY0LlJ=uNY3Pr3%^H?rC-aW@9YSrxj@MxH* -$_F`%qKu;Z6s=+_bXaOY_2Dv#*qINWlv+WY@SOOqQ?3;w{3X|sfXcG?v`CPkna1D##COn$!K3go-UDhmUmC86bQwj+N<0tpa%g(`S*;)hKs-{ -?$>>c&T8ASw0R6mt7zag%&}x%F$NYt! -mb?;*v>^}!AfAZn~A?~bFNf6=(^0Qw=epA-7MJcTEp;rb)nm{@n2 -L-dgXOYfrQ>UgB~6o`chvLEW5^VOFrVF4IeHwS|Oz5rz620M#{tVmyB5tL8=KTt~p1QY-O00;mMXE#! -abJ^j#5C8y=JpceA0001RX>c!Jc4cm4Z*nhabZu-kY-wUIb7gXAVQgu7WpXZXdCfa(bK5qy-~B64dJ< -7vS&rSNo644VaufG%XVOilc5bs1duWJ+B-9ki5~OT(XaD;>2LMTcgecj&GrRIomdJzi#(4nHJWp372< -Bx`<}3&ZUu9`t5IPfSTox=)-$x|kYc6=2j7XXAFpXFc^Md6x76)@gk@0LCtXUGJ`B?DB3Qxfvi=fzK? -BGD($>F0Mfk;9@>e~x00AaxLJk3YsaTSM4n&)huvn-||QxAk5JPy-D6f`Mn1nZPXmoZy0xHlrRG>sWe --WEm9XCMdM5*c852RLa6bi_71c^J`xHkja@7aS1)OPBhK9$ZVAGxk8^dq6uPL0RxhD==g%=p$b8ZZ&| -3kfKh4-^;XMHJ4Wz3z0)Xro{8czok6!TWk->*TlQ=2GjG4JI^&9hUN^!T4g+DzW2q00b9ucu3K-|M)Q -F!Xt;SAq64z~<=s5KdIi@BT&Hk-1J}23y@u;Mxc&^+o15Y$@%F_wgDbqr;hn)Xzj-_X{3n3_1n{2#{u -97|@_Ju6N}0kBv; -X4EJ}!G3tF(BDbKIdcc8BfW_tkx>me)_tcxJcBNIq6f!u@29EwMUj=6}_2bTLo8`~ktAiRR!UdF{4N! -R%4!}XaIU+@)=X&!F~+T>?v^$ -ngG%_@7jsxs=E+RaVgVu5+4*7_=vEn+D1m#?CLdhQ+jITlb{{P00_Cz*v0~W#uChqB2=ht{}e^lAUon -`;CRg7yJlJ=EVd*LAJYX=@bM(%#+Tfanf_TRgEf%*dq+#5O-_3ZDQJ;xVSPM%4AuhnXDj_e9=6QH0rO -(>FuyBfTgoN{Ix^Lz`acg*Lh3SuBW%zK(7yNgpFm#G|NCPzrHiHEE;BL&j#G4#8AkN2agx5@WX7_*0+ -OAaJh;Bhy-1sjpwZU6ma6~WoQ`jz>B5top}zMv?-mnD7jT=@pkz5LY#Tz1@V{c5rzA5I=LMVjkyCgU_ -$(=@_@m^5z$Vgz-%gdz_wCN&TohTc4_B(op|7lw#JB|jv<2OoW}eQ=JO;gp&rGOYw9ul=V6fs_T$N7` -nNP;Bl4#|)$nkMS9N?A^;g(krD#YLOv8w-takRkx}3sNJJBwFVxtHgtQP8 -X~V7ojyN=QjSXQ-VM0}sD9Gwt7p^7X1fuqaz$Ylt1wv<3$p3()w$~)vOu`r*Ozu$MuVX$NH+aT>z5eM -#t)Bc2hSGw-JP;%Vxe69(^2+R@k)>fKB2*BHiU6h+_~j!cj~Kj0e!IB1AhI&98IT_`s3Accx;mEMwtz -SMR?v;Es}a%~fwsm}q4Njlh~wgXmPVV4^X%fU{Hych?Be`b-8hy{2g4dk<8das5lL6P2$Z5}929gRrZ -T9jkrkCCqY)yN|N2QDRIaH@o6ny=Psr6WE#rthFcQ)b)x6~5FA_jI&eUu=Fj`&1*I(sVAD<|8FzMN5^ -}BQ9z?jQooWo=XFojvowqY~Da6U>GYNJ&-V5rS}NNCj~5NsLHg|&0a=dz6m5GGjDxRgoTi)Gv4;piFq -R0tg@nQaKne+reJF%ZKIj2L(Wc@t(vFk_+!tfw-|Xl}qvL~N3RK3Z&aZE0pF$eBK22z2)JUx#;+f%#?^WP5j>68I)IH{_Sn{e!)0Q`(rZ}R_Ja6Jz21r!MBC|Yw!2C61OS60i91o^GJ@wx@uY*sYxkOE#T&KkTlw^0G*s4aAN(z$$2L4hpiAP -bP}VO8|%LdLVM>a9s`d7-9U>t8!y!m#d4!KdsxUqVA=0IdSBnWXuO#!#25<;v=|&IR>tQG))curP^Y6 -SL=t(hg6SH2NV)=nA;(uFXi{ESlJ#K*9#DFDshJ@EmU-ia}&WzZJF#8WdyVUn5hv+zKi -b=-V)pjPwbpY32R$j_nqYAmQWDG^eS}A7Ljyr^< -DUqt2eR^g@?FT(M(RCt+HZc%;6;|R0p>*}lLJjPf)t|;Z>ALN~9nWafDs)h9VJ?qOv**1d -zZFpdlHEo8W&|H@t`1E+%NcD>2eYO?RuCGU_dpg4di*B~MHZ1VsDf|eI0PFFH`AqKdp1|WrxTcRD3Ly -M_FQ-lprbxIxtX$?)Hx?ZrlW~b$Ey=ak(eVK$#IUfNIcy%(v -Z_X@7KMz)0VWK~L1)dvzXBOGyT-Qa6cg0~S*xB_%NG*C*q~d(Lx0mUx{?zA*GQ%e@EmcP -WiBO4v#QiuRW-yrB-sYya52&8by}q95tKWdqXhhwMMtwZ4ev$Ed8(z%X^pqhKoWEpFPv^?Dy_ySH>?o -S)nD4#Q*PT=vDvkPp%)cZu(s1%vuZol&wZD+hK8QrnsLzxoKWdOxrk*cMpRiK2~n=(?!j=L>o^r -+q(V(R6Y+BbFnYh5!dFe21iDr72b4=c$(>J)iR7cFv!GOVuXBVUy(!sc@xa!>^nJ+iI?+ab%f9Xjghv -8> -O$!Xr%oa}K^#FE`E7Vp;Xom`KdUCu32@v9VjdtojVNbOO5fXPqdjZH@NJGSdrze{wgs89eIhZe-vdcH -Pm$dC}#3!&w{|`Maun^sp8}<#ULR<2G`0Xbl&auk3Sdu03vZ?zO=&(N$%_R=2C`2sETtg`$iX)%Fiu~{dTy*CK1vcTHz9x8t}72{TQ;E*r)^8PL8xk -c<0I+ahUs*17fe2Cad$6(o(ntt1w!Nq;4xWrDEq8NiBQ7qwKP9xa4tN0Lg+%nY+5>FgxZRKTvH`AXT7 -0tF>)RNR~J1<7{sJ4$1Y$_a7(ZEtGeNOO*$r%w&qhy3sl89#m4(cS5Wy2+7rc4yVmKAOlDA=o@kGo*e -qTi-hmnUg-R+nzFZpz^#1(H494X~CQJB#x?Xa_ojrNwwR9nr -KcG?nr(Orfu`1ddYdxLtXAcJ%O0xWH8Jznukl|9BO9NGWLHh> -GHqAb#Q1vR8u!0dmXB6Ufw`C!(c=PXqbWA85}5$40=2aXZ(7sS3B@{8l(WZMY4xiI`++axo*)qm$c$y -2dPF^`xsVNNQRf-o!)_!IF9ACeu{c96m%FJ)-qE;X;y`c_3qIfzPD9&=1Wckq*D_`4*mtA+bU8+MiX8 -R*iEKo?SZuR;Wyv+nOljsYd&?cgEkPm+|=8Fep?(ii{K}XH_uxCy9w^r#a`?f#g+LZm}Xhbxs|moJFD -ubcVFn~S&$rWv0J|iw&HW4>*@+Rnyr;F`uSxNVJZB~N_cBcyR&e09|Hf+RIc0W`QsPjqN(V6)c7u4N# -u@Y5+$!y`?~aqPjrWNbky6SIW?deXnJ}?@&rl0Iy!nGj*c#j<(sNi>-8SoNqDaJ+%x=vl?45ocxTS_7 -KG7(zdmcRzg84~7F##$C2e4XzLI-Pt@TKV`~Oq^{H{akm)!(-a2PqkFrmZE5z=@!-`y@BMI>)oE6Wnr7u{oB!eU#%+ck39TIdu2wZh6kyajd(-P%kIj$EFAJ*90wCgSF04>i( -nPT@0ILp2ktGc;T}7S`ym|;hmOrhHT%@`!pS%FK7am9E` -Ryu<1gf=%d4xm|9eUPc6s^!^1Wy6Ln0I&65|o0*v^4xujoBf5oCo&DvLDVG$%HU{lw~bF)Cgdsxx-9T -?YlOES~G*@b+#0Ql7^G$7p_eA|I%YdTWAJmcw6c9Q;2}O9KQH0000801jt2QqtvJR9XN40BryO044wc -0B~t=FJE?LZe(wAFKBdaY&C3YVlQ8Ga%p8RUtei%X>?y-E^v7@j6n*3Fbu%%eMRvs{=i>&6DdyU~F|5V3Ri=-7+~t%amU?VSHrtt0DtpiZ5Z}j;uRoq#7=S3KKF1N~?ls -*4H&9Ch1QY-O00;mMXE#zA8s~wg0RRB?0{{Rc0001RX>c!Jc4cm4Z*nhabZu-kY-wUIUvzS5WiMZ1VR -L0JaCwDOOKaRP5WeeI44aEhorUyLSlB}k4TRE=LvA4m*&gkRY9%uxCu>UodnL=8^*%y%ljoc7F&b;~J -CIWMp(m6Q%&zkkK-KJRA5i9d1+95AY`m+Wcc$?zN^1g=vMfZPVI?3QoyZz*EjA%yd8z8=!1zmbopBq1 -`v$uJ598M#M4navH}Eust#|Ns`RyvxIg1dDRm|{A28-!qnN2Jfi|;iDQcZwbF+xUaPY@!SV_l5E7B&3 -FfeS{fE9eNd*{>hH!-*-K8|VgWTv)Y+Rc&#tXw&b|1-@;K)<_@7Li-V5OI>qqz+P1q`0fVqC2>TFK~C6Fc)7|x90V_) -P>xLouyPJuHR1_#x*~PeU?|o|7rJGXgft-=QlZ<)PecTR55ksMSPiVuci10P)h>@6aWAK2mlUeH&RPa -Zq6M7008d>001BW003}la4%nWWo~3|axZ9fZEQ7cX<{#5baH8BFK~G-aCyB|%Wm5+5WMRv7Cup^Ahg# -2I;2H=?8&zvAZTe7FG`aFNhQwTcd3U($xiw}QJyT$?r>%~gj;7%AZ6Q!-l3F0r_Qfo*J1IqEcfQF -vQlQjkOhHBfO)D+Mu?Xxygbkvpd8BJqd>FGT41Uv^BUOUXjvIBXn!;Fq!Qezt?yp#v!amM$K5R`}e&t -KxtEX!)GydU<(w3**!z^lQQZIGcLrSPa*maKxB(731tW7(P3f}I#2l&Mjii$!A&t#!cK&Cpx^z*jHwg -d#4dSTyXp{Ht@;iQT={5G&!-d$xq&gCq0gcX@VcjDkuTNue6JH^|UmfoId$i1hGHVXf*T@&R1D+ug!C -OD04v@v#7nW+2NaDdUi8Yl7kdTn5EQB_m#)>xF)?rUMewc0Ckzaq-dDW -zJ}~~c^beyP8#{+BovZKG;5r&30OTQJz&V(9syONR9mBKS)+Q9Qf*_WX;IU8$NztlIKb4Z(*BK5d_6@}@@S_uthZqyS1raAhK^=}gOM -@eEY^t*xi#{WEcbpyYOO!gB{O9KQH0000801jt2QUCw|00IC20000004M+e0B~t=FJE?LZe(wAFKBda -Y&C3YVlQTCY;MtBUtcb8c>@4YO9KQH0000801jt2Qh=}o5W)cf0G9&*05$*s0B~t=FJE? -LZe(wAFKBdaY&C3YVlQTCY;mkojAIOAw8#X4gFeKZ7Pvi%$ec)0-TG6J>5uDHf-_zS5Ihc)Mr;ZAj0~;tj|61-Oc4%;Z^6^y09qK5 -aQ&%)-;`?!bR&c?j2M+I-*XUhi&M($c_aDG_Prd;Gw?i8sznbxlhFKyBIiQ4E*w-o4I|IjX3*Q1xGC1 -N=YL!b$hPc0>}9CF&1PG}n)`WRKDzOYM`HU&48a#~)HiZ8i0rg>%~xXdZjG -rDx&B&4L-8D*$bFHlPZ1QY-O0 -0;mMXE#zJfcwOi0000U0RR9b0001RX>c!Jc4cm4Z*nhabZu-kY-wUIW@&76WpZ;bVqtS-E^v8ejzJ2; -Fbo9meua(+gg&6qYri2JM-D2ERV=yhuR}~RbZ^?#jueX=fEcUQLWsb}TZ(~SRZ=y=YhGaE4=YPvpk@x -T5hgY&KB;pqB(DljPR*HQeNnLa?x1O-*yx@6aWAK2mlUeH&XM!KNl7Q004mt001)p003}la4%nWWo~3|axZ9fZE -Q7cX<{#CX>4?5a&s?fZfa#?bYE>{bYWj(Xkl`5WpplZd8Jmta+@#^z4H|sIvK-^U@1NH -w6Q)v@sJJdbqVcyl38aR;kOHG9(2%E7rd3_VFl8VOPa#(>qKkS_0Y}h`J8oY4an7 -ribDlHI!0j2T2arsoaV&PMHz6AP&6Dw9Mu^u9+wME5m<9ElHS*iOzy_5*)GSV}Hyc_?rC~^IP_>|lO@xQPN%AA{ia(&L81!j!LSo3^a+9B7B ->nKAkBY3REQxq$S<^)78qgUn(!k{13DIk`*y73n#a50Aa5{TGFsa)Tp}G%t*6X)AN+8yh2B-GT{NoI1mPck&9KP7x3|HGp0JZoRdLU}IqTy?#7 -d?P-{KuQ*FtKj8pGzU0-7H7#v1fk3&<1p(#*hlXV{r^SUPjZVLB$XN#wkr*4Lu~w$rT>&`z$S0=~4RY -bxZ2^L}|=k7OZ}A<@Im$DPe~){KqzChSKp7TXiQ@4? -0&AtCnO9KQH0000801jt2Qj*bRplkyG06Pu<03-ka0B~t=FJE?LZe(wAFKBdaY&C3YVlQTCY;$TyfLbdO=#keM2n(5zsR1sx&DoqbKjt}TE)3E ->+~0pP2DK%Bt{me2J_=e%{y)Wxf+D1_aU2@VvpE=5=>+GX@nKx8$BI74=0xwg0bk -BNm0-9#pLbEg`3v8Q2hE$X+LH?)#{{J_F}w;#@yg(9J`#EvS=U -WH9lN9(=rED5%H2f)3BckZaLfcsVkX17cACGe -=r-nMm -311zYHfpz>%724e@Lc>t?T7z!1hr$$VL?-)#Hc%clTT8;G%vDO%eNxO*7hQwEB@$hC}1lvPwSh(A5cp -J1QY-O00;mMXE#z8b($*W1^@tDDF6U00001RX>c!Jc4cm4Z*nhabZu-kY-wUIW@&76WpZ;bZ*X*JZ*F -01bYW+6E^vA6Sxb-GHW0q=uV9^n)_~w5Ns~j66exn^*h7;;fHW{@kzNatM3jXW03& -=oiG=H@0VxH0TwUI5iCzFWBa`I{RC$80wHOP1(so? -x=IM;^#X1m1DNu>-_;E5FlZOm(FyeBF-diq1Gopo>LA4GktK<*cTFjY$-ksU*x3UrX>kOY}-$J80ns; -pW$#QK!^SfE!qCj?AGZEbK**B(ikEl7&2qaT(mJNuO2AMZJDqeyhsizX^GN1P+Zq3(soGg6lKU88+_N -YX%5}`aK#Z)28AOaor!MS~NpiC*o7YfibN6WT$BRQN`f^Hgjf+xDsghp{35gf_JmPOK)@EQA~V)!1Um -!+(1Vi*a816j%UY$cg0b8Dp_b`bXKTpRel$*a47S6&%_9ufIGn{eRFYRNj|QEOf`Pm5sCmoH!5um{N?Ju8} -u#IDf^BB7?NN|AFbi#^7D1`jYx!#)(tpR9w9hmA5Y19Ar2ZM -Xs3!8%%7Z!rv-V^KBe`;P$JW7s*eg0$cliX2lY^__7S0j&Y#J$i*fcmQPuPnvXzunRrW0TBq52v#VGhUIVy3SlawXIC7F*{BVys$i=IpscUtYXkqBx&T|0_Gz7BQpwt0~fl53Xr -yO5m=zCOrnSHQ;&xVASH!8ru~ba0Q&h?7AHX0jN54LBnl4{1H(pGK934c5A3S#8w{zDbNJmj)K%pkRk^zQq1RetzbYL^50%1VKyWQ1tb8@QX|ZF+k!bQZJ|tE1@HIij5`tFZN{NIB{vO;ev_la_FqAT?LlPuZ(wuHk@noPpA6 -%fkk0JCEtCMq)-+39W@Ns())c4n`>Tg|HpVoD5T9;Y#({+9Wmw4Ry#HUkwu)02VnNM~oa?~EI?v}}vy -xO+|EAr7sXi57CV^IA%IeTM4f5%YESmI%&(zr-emL{s)ngg+0*?18`-fR>dtxPjuxS~9zQaEK;Gk5ho -Q!_7fpH!(Oo$eohfw;DVMrQSaY*eFqd_oF$Y_vd831qsdqaQSaN>w3ZfgI*!CQcGA@Lc#y}aUZJrgd`f@BBLr<;>m3{ -wbrz{X)XY)?y0=w$GP_ -RRThiMc{v!zBLY&T?Psk3kS3grjy?BH`ZeFaRe0m*ZEN_~LV_D7V~9-v$FL6Y{^3>``9AHsX>A-X3YP -2mOJbOZ0{hsvkMr*uz#oWc=3PDR*ry1t<6OS=9>*H?6XJ%y*k35}yGVg-KzA5`fSQ9BV_nFH_1HAit=X@urLC_1?xj%q?&6kG9{Ny6Ek%^ca^ZtTK)VW}L@$SB}~ -he$o8s5TJ=Q1)1JPcPV;&)uGR-I&c`ss<)3<|2aj*FKqg}mF@8rxfEipr=KFXOly%IcS$o~IKfQa0|% -T2cEmqPYo7j>q8=#z;S5;oYl{8QsFgaF>UWW-<2SA=`HSz=Yc$ebL+Q{*8fcZ&J+{%iP@lTrD>>C}3% -iMt9dXbzJt2-yeYrT-FE2?Ye~Qy89qG1?P-%Dt4tP!1q=}dI4=UGY4qCBZ$P6a>TG~+ob6H;g>h)Bqm -HI7`E>86FJ@!wwdvwA^!u5YJ{YPMG(eWgOqjhO}6V2HZ681T*AsmI0ZXUI4^!SfhcYaPaE-e~cFFyjP -I+^BQP)h>@6aWAK2mlUeH&Ri)VND4b000qb001cf003}la4%nWWo~3|axZ9fZEQ7cX<{#CX>4?5a&s? -pVQy)3X?kUHE^v9RJ^gnZw~@c=uh`OYNm?T1q-pP+Y}wCols502+Rt*6_9TS{cR>=-ei^`$qEGj~-wg -H(yO<^9T=`OYcQ613gZTuo=x8+hp68N>O!FvM$t(#rI*I=ri)HZj{OkGA(Iw}>#|@V}c)rm(S7)cEYo -RyAavo;MX^q@G%<{e7Wa+6;s^IGM+i(B$;^QJ%W%5X*@Hb&vWNE;bS)l`=RS;FZ1N2$&@w=F_a6|T#W -S>PGv(u$Pfkuyn3ZQD1Bs`6Pc%}jdfIMa)2auiz?*LWtAm%zKRB)SSyFjFY-td3{DFz9;g{p?wBe4pq -{-Na}RfW(DdPCxaeOAaIv?#(X;)_^ -lE?KOOj;cD6*H1epQ<1J!+4@})&lS7F{}o!qs_uiUkmVd3ET4`_^jzfg#TIyx$+;4D^Ca8yrcNPan4C -q4Rqu?iGRg%+Q=M3zU5AU+EeNZlwnt}FZ=xeHht1$iq1O>>PbJZQd0N7JLDdSd4IFzFBNB ->27s{8FMqC16Xor~F$_`JX-IfA -N%i#wR?*iAT~!nirml5UEGyZux%AJ#urq^k{#~mOlNDIdtP|#={VgNF~f;H6cDId>CHgPl^~^vCoXB% -wuCxey4q=+1Cj~_g(?Wa{T~*l0CqBc$&z4mL-?j+8+viI$Z3jtytnAQ}NJ0R0Y9g=wYl%AoBE}WQ9-U -AL0ZIz$29a@Qq1JaqH_zLqzK_I;!vlh{`8yCjR%JEVF3uLGf@_gM#_vYAq5UDd-VBC>vinI6DuDXMVM -Z1dm-SJd(O)p8mIxS)qyvOycu!~7swss=NW8aa$b{%*)3H -Aq4Zt-jPK5ns`Y)gma`R@DeR22#}FUNH5Vt%j7!!J1*|15uScOdcH~hld$6XdW8`p*{Mk2Sel#5(41OUeiZ!e!%uI57N>0b?_e`edh5qEEDU -+BY3MB6;8p=ysuZN@Zb8Qo*3ek23833-p|dbc@|aup*(zIQVWFIYJK?~VEWE`G)5>(3l9;8T)B189c5 -HnEh6FL^QVZ_(kxARFb)a-(ZBYb<;6O33YvV9ynQ4fqF#Zx&I#d;gV5bihp;S>t8y5mn#?!UKAQS`&m -aSGUm;{o76mEEU%bi*3tZLV=m?>uxzyT6;QQQZhTRV$83fO>w&7n&xcqLqsk3=`ZvWg|y2~4a5?bvt= -wu&8QAUJ1huEb}jQ!KN6WDDkcUQ;}Y_9;OfPeZ-W9c1omYbU6 -vVeZ^^;;9-YnLGY9O1IqGih|VTY4a?GXCoXN^nL`@FLa_5hBVe~(fkLp-Oc -MAz0z?RJ!tMwV+Dz?CX9Bju(Q=6JHkm_MBAjV63jn#RR4F0YX-0`onyC$QCppb_(w$}GmkR?cQaHK=F -{8HQ<{C^)dY%c~Rw7JSo+(1(@=tCPlE)cyI0l|MapM+@F0=09a$N$toTag2=cFsdlINW188Ov$i91`> -@e>#PsSwgNnUZfE5E_*M-H{-R6pZj*vWVSaMTMEGz~zdvOB)CcflN#x)jgpyq{6}EJ5$tMPN{)K0(p} -&ZK}xg&dPlS2j48xh&wX}G_2kDLvx5WnHy|$L-!h(vGbO@X7{b-(xc!fNHPy(B_?U0cu0;u!~v!M_9Dz*sR$8@hQjB%&} -lJ(+{xh?L{B*xXBjXl`(Qj+Ty;a1QFdX)i3A6iRLCx{U`NI?WCTTrKFB-05#eo0Xk<)^8ZPJ!r)gM9h -VfWnB;9rS2aE0~`vqp40%v;TIws&WDLlUePD)y7&4+A1W#>t@maFM8-@0C{G)F{wu6WKQ(=M}>mRyG$ -M`US}&;fRA0u1=JI(%RSDKv`O3@qWdD7K||6kPuN*I~ngN2q4B%tB!SAr@i$(Z*}BC9F}tftXhd$HM{ -pmLi-{c?eS>cLlN``0s>{HH9AtlZeMO-$B|fTvc8!Gso>M`Pz+Dmd=cZU}kR5?B#CdWf)DhPtkuR!td3aFm&ztym)50M --;ycC0KYb$Fm`z#+^A?5HUl@)nt!gF9SbIn=Meb|Bw45M1Y;QF+h0T21~(Dzuw-LkvR5)j;;1N%48cq -V3Efx-5b}(3)FHWY-ag6olm)*HAdCevn(g!xYIO9ttjV(o;am2a&jND!(pw9A<=MRwao`epNz7?Pb~D -NDh`|8nvw3zlnjVidC*C3AlO}R24$yMYoLZ&7Wv*US#R-1l5)1fe0AZLvSV{(#YL64~2CQ4b+>ME$y#7wlSQ>8JY -0{2HXlGBpE}+tSM{f(qUzwu}2dzYlF*wWBM?(YP8PM!9qd?<3%hBRHgE5N+PA_1s6hYrs@ZEQAG>IQH -Ek#UB;BZRdbm_EuHxOdpIjp{;4_CLT0Sk38bhyL9lA+87wr0O5S$RM!56Nc+_lfD8hg@*Myx<^0Cp@4 -K$b8b7=)E&3dq@61XIb(pjoy_>tJ%ATlx6`ExDaYlNI`uMRR>$dIySMUNbL~Po6ker3H18&@RG#PRvW -p+MeiMS7RbL;=z8;vTvglkqT#GL9-tOb{{VLnCup;rPAtPhDq`1-&TR;$_RhULILDD@RW -|%WHZ9@|!p+6zFtb>!|JpfWQ^R{F$hzRyRBS+>6YCbbN5c-YpZ}N;{*a!5fm2Lvlu7O93>?_8Tr4F?n -o?lbLz{ywopUXrQj7Mu1u-vU_E{ta^jNlJ>1q{_)o^o?VpblQAd3JNGd$MjfE`ra&?F1Yb`4q5Mu-)> -Jf%>-bV|ypt==Lbs};HiP_8{xuRP{kW|yzxjOpeDzksry>*WF)WR?j!0J8*OL+aGuhE*wl1=@7pVvfQ -ys~0b8D8@EjM9hp=d5UFz`V@Z3T3wgT5|kgyMdWgS@ug62vr~{!i@>0s&`0(*lp)!R(<5vfu% -))A7*!fd6AlE!s0g+aMPu3dc^gWw!bp&H0!=LB;sKvJ1rS7ZdA3Lt|Pmph(rzBqB4M~>bAMfM96#7TW -#}HZ@Ufn$64voYmkZ1P8^lH<@+6;P$3nrfM~g@&ps8b5%d^TuYJkvm%`GjIBK6Qy)}y2yvc0WjI8?Pw -N;glnquz4n6MY|>80>3p4TX9~sqAgmEg5Sy7>BF7HO3Yut2l!&)&1Ddzp;z`K*5j{-KWJl<#M5H4*^~;{ -erNY`mgI@Hooi>rdN&DPneKyRja<)o@Zo2a}s|D7E)yb&~HA!g~-1cgd52WKM!`L01)XZfa`n>20P(mYOiGZ#C)4BL6TOY#N}z*gHU-bw`S8P^Ib8iAB*pEiVP)> -vhwT83J~lUg;;Y}L?h&ZzYaM!6=xz;uLUpum{qG;bY23HUANJ;++Dx&Rn`-i0g^i&1y_6kMU1V*+t%deyXQ8+FRo^6_W9N9 -zn{+jbAEGt+I^iqoVIiy;PFaGf4B@_F3j~8JOyV04*3COoxy+4ssozm@N5wRbYLO;5A%+{d^?@K^b-~ -Y_x(x-dw58jkAhc9frB%5xZs+gxi$o3z+3ZV{=|#(l@|lV>BNTw;`j5#`|sXfUZ8-Q4YHuT7G;8rn3v -DfGt42<5chF;YU0>zaKelNT$ob|feG5IO;5a)2HT7vomngdw7OVK6p -vQ~$>qnLL_z<~lJh>`K%JJ9a~E`=UN_`Fr@@~3b^LNp0T0yey0LQ_e4u{gN6sC{A&PASdQL*A+TG=o^ -WHl(&Ggd1`2c*VgBstdqV5UQs?%&u3QYm_iVOAmaJOCgZMuGac^O!N6E)Bt9beXEE%coZoACb -M+Fe&mnhw!a{q7M;j-Q|o_1Gv^JCkKe&<1pPebYbQ|EPv|WNVqzjP2mdrapc|2lMfxX>;Chw5x)od~K -KxHf+nWfuLM}pUujDJ8WnXS)jrVNMDd5uxctu$XlsIevvLKKjVA_C|cjl>2Xvk7SLx(b`#3i05>+ -_T{1fAwveYP7940fjrtO;xZzmE5lQA4WT8~#)Q!Zj&P%SnJfZaQyWp7Cwdw&w4;ysPO78lMw4dG$ebh -0a%6E|9L|EP>Gl!O(`P+?{#j32)Z3KUNysW7#EJ=M7)M2LyrH}D8h2xXbkD{N -00k*n}RtTtm_2$jnUoO61T)esX>EiDnE>AEXty(J`1=hrS9kI40`MvtDK74rp<9Gk~aB(>gE_*R-)f^ -fCb3I{XIx+V;Vi$N$9nA~qe9l9$67ag*H!XvwTfBS!_T9z%4?kX9TIAUX|8?=NU*5j|9?6GZYP(-;x6 -f_5k!GNE@$;)Uiyto+V7@K#fKzE&(}!Oa81r7*ZDo;X4ID`O@b>lFH<#Ez-Bj8CynL;IL31zS0w-oNe -qJ8vd=W(1B4rTxFO)7;tI0HYep(fcr%mPH{6+A`SU(%AgoSmz!7iDx$>*cr*p`*JVA+fC77Xw7+33Y< -$b4@Db1x{$_E%p&efs>A^~re7h7cQ#>B+T8SV~a^ZD=GJI2Gd6av6Tq7L?l?D%foVq`n2X3{#<80f@x -PxGNp+o9b5adHHfR!ne^)gHmfxi3QU(8C~M0)Caa6odlzcG^(GHT<`I@r>(e8*S3ytR_ir_S&Z#s8Bh --uh?%q-eT!WhW*CI>xro{2RE%IQ -!50)-=pBY35ZaKmgY;szSXRMrKeex@sp8btDo6WctT8R#N#gUS531w4szSayhNEa$U`HsEbUI{P0-Fc -n9?@^5h3HyuvULme -deIRs@;9{H!rZdHfrkf=?1zJ{B+wlOGcANWr=Rm-3h0@h6wR#MBbi8AG1^E%oI}$P{n!em*1$g;=R$v -|lk)EvFqanJyC)qe+)?T~&GWZwFSn#&I71@090HaRPt@X0(vJcagN!6k(Fsv|B`6S6Ce}X}NicB!=>; -z_YNRmq|PEtMEs9dsD#d0#b`gnc!^y%#S?whCAcmJ`12ln*(THPFj-F?8)Tm7q>E*0tu|K3cebCfM`U -c|7fVOW<(TN71IaZ7Gn;vHA#eO@&`8C`=LUPb6jMlLm4?p?t(qcRb1eR1==ewcJRaogi}c!xvqGpf@C -UR`ylb@UTtF&YDln+^_GLu>(qA^3M*#zAyXCFBi6~-CTKh*nbuv`_#zqxjqIT`%I!j|x|WqD!s@uyd^rYjzE)4JC-C -R$*GHi9SHDhgj$d9+AFlR6Fb=*1n>G_p9M%cwx?JgJhg5`h@Q7E#E2BBc49+A-n;iezFk=4XO9pl5SB -~=_K{r%z*UHP`x(@4_^H=5zlLLZLwcf?QaZ=w$MMyV>>betdPUu6H-bSWVpI|QYJj8V$k(Uq!Dl)IDAL4n}#d<5cWxP(N=l(cio)w`I6t -bzPI7V9R*H9wLXr$8_Fx<2@6aWAK2mlUeH&S47{}1&6006!O001fg0 -03}la4%nWWo~3|axZ9fZEQ7cX<{#CX>4?5a&s?tXlZn1b8ul}WiD`em6T0y+b|4<@A?&lilR2+8QXP0 -4@2PXS}Z*b$O1#L=~bO98Is(O{rXY1+(u42U^*C)NIrZ?iRrBAp{~2pj~441WIq_|K^&b?qsMyQ7tqQ -F>7>yGj9NCP#ac;^Rw&0jNyU$)h*{$72nevqR@O4kokVaE5D?y%u-x#m+8Ym{&fzDh+0SrA*!zw^%wXmQTBMkz5kbn -tjb^-c`Hrv?WPQo~@e0FO^zSQG^a-GXbZBqPSUh%vFI$Qz3e?E@}FlT_-?AJh(gw&z6S1@MK(53m6xo -zK!%~ITkPoO!Y$Nw=1_G}c34BqL>WH59CpTnH@{H_=_lou?@_|?&qJV0aeE$i{E#@vF8a^~?MS%4 -6~8$AOnjCV8kD_gTjcDy7Cm8ute~KLvso)$NtK&x_{0)3s#9H+ZYNbC{}S{M+=sVu+W1$WfO@SveOq& -)SX;O{emKu|0k`Np7@a!O=o!L$Go_Q-Thos8=%${8XNZ=p)Auoa$mV|E2s^U&q&FHlPZ1QY-O00;mMXE#!wIdNKN0RRA}0s -sIl0001RX>c!Jc4cm4Z*nhabZu-kY-wUIbaG{7VPs)&bY*gLFJE72ZfSI1UoLQYZBfl?0x=N2=P9P?! -4+&g^&;w_AXsRj2cd^jLUwo5V9caRR`l(gY}8utw3+$-W@k9(D~|}ORW70rU@*doI%voq&_`H%+5=gH -m}w#Uu8EybC4sUOx9AyL9M#?#oG>Ot61MnM8)|lw3Aj_-l4T5_7&+~PJfLmKgWfwz0o%AY&qmkxIN}0 -|oPM40tlXdtTiu(t)W8e|)6AbwYidvPrGA)>``2{bw+ES+edn-1hyU -c|>izAb?^c;MyYU=eG7`TCMgOVNfIXH|K9$+sjW57odKQ$QlxNRUiAb`%svB9R43mg+&iX}4x$g3iHtv=|W$&R42I$us2omQ+&V8ugRq(L1SlTsOz>}K%AQ-gmq7X4|G=Y;?CG9JJqSo%>6j -}5vAuRXZ%o_rBG6#_#Ou#{(ip`1(iuXu6cL-q?$O9KQH0000801jt2Qc{c&DO3Ug0J8=F04o3h0B~t= -FJE?LZe(wAFKBdaY&C3YVlQ-ZWo2PxVQ_S1a&s?dWo~n5X)bVi%~aoO+b|G*_g`^n1Z?oa`WgtMBp&o -3>9z#c5{yx8InioMMv}9IvHyKK*-q^^Eq$E8Skis>>$}tCN|ul$d2MRNk_32JNo9aOX<5{UCCxd6j32 -q?QiMWJwcRZ57u -(0Lk>`0C%fZN`QTKn*;+d&n=7C*=kcAXShCzc-j9H-FHBfiqIoyn@Jv5p#FbC#D%^5Xn?G*9iEX9kow -arayMls8j&@=R4^EXm~%sY3&5~IB?F84R=w}CnAVt2|VdV6L9xagvB0tY=+%tD=fNAN`AvykVF-0Jyc -aiEH(mVZq`Ae)M&talZ>nCv2$(yC%2^IO{)HI&4`8O91UZ*fD-6K6%%R)vu1PsxRks2~J?ErqS^#~b{ -Dk-sM6>%ngfRc1@~7`LV5L_s{yWhGCg6|N!oI0~)=lP`y=r%$Hvm -!WX^U{Z?eBco>V7W{1Yj2U-+hXKYug+KkTvJC5!}R<$|Egm7K~!(E$kY^w^*ccP{^r$ilz30i`<&>`R -xm9W5i^vQ@6aWAK2mlUeH&TFUsh30o008g?001Ze003}la4%nWWo~3|axZ9fZEQ7cX<{#Qa%E*p* -=y}dvE14VY$`%OVg?`KF>>|ofq1>NLu~soPRVHJ~t#HQZdFVtihXtdXu~ewMU!5PUuRZ -9Z5LnOQ963?|*($a*sfb@u>YN44#F<3XBGC5eEzyHr4|ygx!vY1^69K-nZ1S!XTvXFd9*vl87wf>mc*H*zyecL(}@#@P9hT5OlU2X*j%cZKrPtM#F=BrHZk4_?O(^ZG_EtDINpN^}C -dc39mHDe$1Oi=HyJrXH93z|Gne*sWS0|XQR000O84rez~W!q~^Qw0D32o3-MEdT%jaA|NaUv_0~WN&g -WXmo9CHEd~OFLZKcWny({Y-D9}b1z?CX>MtBUtcb8d7W0edkvU6aw1r|>b9}n1}EaA~L^edJS9h5H9^ -}!%xLBJz=Wgu3>BCN9Ps~oQB*T}hrQ6aQUkIHM;1i=-0m=MAW-n7J){E440;l|bSO9lY9DKLlo3Ijsj -ga|!>SRrT|(eG3tgg2Y53YZV73i+KYakF8txiYbG&Ay_h$`N4cS%69%xfgvKgWg*e8;`=CPSKuHY>2) -oqVvKmAkuN8laRmVE&a`A0r&V28)^{cM#inxBPbIbY_YEbONLVcly!8J7gCT~;rJW%hMv+CybPqzRH6 -!xe>U19Pxfo>|8S&k`v++U=7k~=mBja+9)6!5ZZ@!eWNJr(BA^8os;Ik`IOrIdl;~$tq%?R0!^6?s#Q -@)SY)ViudcAETvM>nif`B>|-mo_4{7adjD22ttduvx{!v%!=(we`5j&>qi5iF0XiXtF11y_G -pTJ<7!<&Rc_yok3R3q^F^!zt<1F?Ks*%K4_RZO2?3O{G-ytc`206kz*Y`orbSwf|;jSez_AL7*ho5$` -u_qlWCgmF|8I9Exgdv8s(XvXy>}&=!X?p&i#;=V2i$}}c5>MjZOR$sIsnSISswnUf1A7NERJNod6L$r -)Gh_~o!%LvFWy8Ab;z(yuR0KwAM;p~1Tr#Bd;%!s`v!}M!Bu?ruC0T~+YLb$&Y&M%^ndo)B-Zi|t>os -qR^Hk+FI73QYr|(PJ^rH?W`6VM1L}qPtWGf3TMxL*ms7>e)O5CZJZa$6o$7svsg)@b^DimQfhc7z -f)i=g@oEb)`?D;`D*_TuKpS+_M_lCaK0zj@lE0%e4V|n!CIQRe1XbfKdi`{v6kd7wlqx2=vuec4LH!iIr>%jq=CIo#!pr-ziB+*hlX -yg!@+0_-8y!y=6cf1Wih(LM4t=3jMDo`k1Smq2@msq{&Y{ya8&8jZ61r`Psdoe?1sbhb^z;S4n33lmlHZWEE4t3wZGic~<1SAS -+~5#NjoZZtff!8QUFfxeeQ-?UOr3rgW+C!ebJ!?oI_%#%)ZeKKea`=6k#_o78eclnPsT -L9RKIXolKlB`CEuWd-EtqkaAaXpkyo1D_CD}6c@6aWAK2mlUeH&Q-6X#DaH008AU001cf003}la4%nWWo~3|axZ9fZEQ7cX<{#Qa%E*=b -!lv5WpZ;bVqtS-E^v9>8*6VHx$(Py1*;%9sg*bJ9r}n+U2&I7S_4fGBu0CH&o$^3CGoOaDobt@-8KKc -GedHh9^g~erajac(UYs|_%SLV3?d`HPZ6j`PncQquV;H~Fs%nk6wcn>~A>T_aRXt^GElaf!x0N) -a;gvpHB8aWr7Ps$3y--b|^?J_j0`+t<9zy-Aud9laDD>r0z3e -s%qq*oc75>X{!uXB-={5mSFv|mge?$46H1zl{qjD)YC?ABLEIzI_q -A|c(bDAGcrcQ?KcKAsZw&XLTT27w2pRq^!Ryj;%2`dsVr#eoOUFDwqU4WnrcZq%eJAf2!V}NLpFqVOK -%sdY&ZV(B*x(2IGc=dyysOb@+kOrTS<@=8bA0xdaB9XOSQ398so9B257zmj|(1St*Qn3FXH$7TZeheC -Ad4}0=!Qn!BhcWwmg`X80I&h1Ieys}@-0RTY5pu8jdA*aH6qD6r;@ -toBR+yv7O$V*z-)h(JRAl5o%2^-Y$*jnwF%c`Z~6tXF&mGG227Ub<#?5D5eHdd)_EeyG_){Vmbm8PGJ|*~1jz-wwh_fJ{PxHsExI533-pyaH$0tq`BN|ty+u4v!+o^Pp#d41s3jzU2wyv?(z2m&RWdTqO|W -9Hn28t20z|=25|5O1F#5;%(5kq0F`C2|YFy+?6yS#BVaNBW+& -mSr#%y{{r1tKjaXmUaJ<)fc9>LSu1o}P~8CR4N|@mH5Q70={8~{wC4r{CmBE-c6zCW; -el2sX;hj+bZ1&t;6^D!PNEX2Aq6H5ECBav2a?1y-Q1Vn0?yh6$`~a-NIamR@bV_OPkOs -e6FIdxqhnPd2J4JWt^Ap4jMKEYTA&>OxcngF=c2wzu*;t{?5GdxP7j0Ji5;pmp$EBXdT_+*61@Y6Z-!F+wLm~0b(IFc0A^AO6Mhb -NBnZ;mi*xBW&&yzDUy`$WZC6cS&Ff#fTb<(6U0bD_kj_yAIa-JP&$b?hI$dkP@Xq@m9W2bkA}++bXcg -tgQwj!?=meHkWHY(na0Zi$_)FSRBdCmsVJ-N7FzA{m3ls?qg`eJM@C4l2sqyWO -tXeN(7r_2}ZslP8ZpP#^0^eR&9A)D>|K5Iby>FlnP6WE=)*sREzZH6^3Yf-S2L#4K2PFq}<#srmE=qA -7-c5W1#hYAyKUnGXxtA$DJ4xz -X4e6Vum&7mKOGm&;=WY8Y~uptTl#E@P7+cq*i#;-R9D}0SRA|Y9VKk9iuz3J+Q7619#S4uNCZ#ViJXQ -ei4v@7UfF%gS1S*pZ5tmJZbjca~|4qEpI}0-5y_FU>LTKe5o5+=1Hvop?k1{;!QYkT{T34vCmM{pGJe -e4+(rcG@A#uC$U4txDz(A;*mavZ%`f&D;E&X`LLiFR!@?hr3Yg -eIoO&>c=+M*5a#Z{=p_b~j+`>P79v$H(YDmB)+FbPQi3uWk!DU_TQRWzJI5t3{rbJ&AWyyPz_)!tYew -#5kvc|uTFw%`?Z1e_A>58vL_qm#-pbNW+etVm6-`x~MBM|iDUU0B$-GS(Z^Kp_D&&A{D>8Fkj56R_jS -!frjT?O5Rs32Qb%;|lEH)M#^(CKg+@9ZwRQIGzgk&gDS+ve^vRBb-QNE=+uey`A_y7(< -gYz&uVM9`Q`C(}aQznP2zp|u}4vuXF*5sJ;?HOE$N0?+m)y>%3++7hKlI$}eAP8k|*a~JXUCjMX^hAUH{1-V -&&Q}bFWf1zg7TTzD^9y>EC+WlQ4r5ucOoe3x@LvDm-e8i9mG?(c7O(4KeauTkn5>yX{Yy`pc$^$Ewvq4iqxW;s -~8*-dd0JNS&`lf7h!W}>;yzX;ARpK9cxGasDds_?@O>_Z*N_KyU2RK!!$Q+lN>$gI%r_fiUNZ9IEZ=E -e7|FINZG@_m^Fw7AgTmjTi7L8@`fdCl8QA)9`u~wlMKyqg6crvXXj(dhO9$Cpp&>rD& -UCYZT*d0yBbT^sd)5*|F{TGyXFgBG>B>IUQ8g9U)MRHZ~1&KxoX52NYQm+ar_&ECl4C(Yb^{{=M4&%5 -XrA^T2gh}2gzW;06$+Mj5bEk^OK@X=Y{wnN<)KY1@lX2SBSq-%(C8XT83F>^T8>RAK`~dRAHc#y$dk3 -1PEZFlNPDy8xqxw?=7_uCw=^>MXBpIhq`Vl<5m<~WSqJ(`om63UL -4~m*_OKkn2@#9FE5jf8z#o}4LxZ*3{brK(Fz&#B|F7Z9Vms|BPPGi-){l!rTF@Vn -Ze@HSOEf$dHjur-gR&vz;B}n-9B=9@^XzWijnoP0*iV*x}?m3)fije5E;(lSzS~t0c!Jc4cm4Z*nhabZu-kY-wUIbaG{7Vs&Y3WMy)5FJy0RE^v9x8eMPOHt^l -Qf>jViUKOFs%Ya}hkS6I?Y)OjN9X6zf!ANw%RhB%FO5$NZen*OwNQ#u5yles**W`Wi?s#AFvaVKWu~; -^|smWr2=xSZn9N}A56%8kg_IrYI`al`2$^VW$v6PB6yIi=~Ej|+bt -tQJ!i;-&BTg-@B>eez~$8pJ--sl!IM2S~~t#L*=kVV63(e1CQyeY_gobjsOs1MLqPL}A7@bhZ*uAxOv ->KOhDdML<>lpKq5PFr=tIyymv-HF`H3d|Tf<-GotG9KF+Q3S*z*ew>I48B;zj1Jnvy1KO$+P-r$m54dQE!-Oso_@OjJM&cHZH=r -E{P6~u6BVc~ssgLB+(=13*FfzmyGJ_JVb5xHdsn4sdk>9eKU`|f;*`zE}FP&5#1gOc+0Z2esH-g|Cu* -8z9u!5AMMu7d04IJeQy|Xb&!ns1`Y>{1i%45EmrotXN$(_eZ{v+>D=NPqIdl2^!IVt`xhX7H=PhiFw5 -kz&k645dh3onT>9dhaiPfOUl8r-FA!KsVIu(__QHL3X~F7WC$#}fA#-D4&WX!%`&q7L!Prw`E-;W8g6 -%6cq~naHTBK}#iZ{1)OdDf6>?P@OiptvM;Z(8n6r?coGi@bIZgP~vGlJNLR|po1BC;)-pKIZo8_JF={ -5aw5gGCEun|O9EGWc{MapSY*=#9ky -R;kCiQ%YO<;x$QD-t?V2nVJ;4;6*mm2ZAd_3Uqs+o#T$$TVNvBp>2LvaNALY6u{Ud-8TMoFF5?LGp!v -0X|OzgToxui8~neKi{Nobg&J6XNH<3W-PvQB0Y?PhLk1yWU47>p&tu6i?Nc0830XeG$V<^%8O_lBwjk -2Py6xCL!4_N4S7vZB9pZZdEL;LV#k;DSSO=|*9A@%+``f-Wh^MJ50R$C|=x6dgzKSAPF~KD4HO{2^kD -hawrovHZ%k%GKvqyrX$y6HUfbN#JSAUN7qSp@IU&qjH$Vb_dvdgqct+zfNq|blf&8z{oN~gx%jPDlFl -9bM+) -wksXNfrtm0-hv8y;^VJiFY^`@YZI&#WHH+j;O4I}yC1Fos~ZmBI-6~UPx?bDkSH`hIEDtg}QOS_egr> -dUNh|h=hZh-x`kJJ_2t%$tOX-G0IZwaf@UA`9!Re^fNaAca -+-j8B{GtOl&@M*P{OEI90Yj`Kv1ZT&Sv6_?Jd^AC7nE;)TIq)k8b=sm-khuDxFvtQIze930dN%knX?bs+O{3>O@mIy=Z0fbo2h3I!Z+)26cN|lH1~-Ecu* -JTCH3?$*Oy|nA%Hq*3xN9c8ABZ#&@Hac{_P+@Arz-poQP573zrY*yljz;hzbFr-J^iWD2#O>Ie>opR6 -3vsgSfK#|-=$a627@aozZv4$#s;mpjtfwPm>P!iaqlJK)2;NUE@Z)jIIdy9Y9kGT-IC?4h4e&we>ZxG -1W}w%aUa5sg_}=mQ~Cfm!cKmtZ8sfD&EWExnxe9xNo0g}_*dP{a-bmFXbWK`!AWR;L4% -`SeQEv~N5FJwJSdrwFQ0&J<*yf|R4en#en2p7I#9Cf8)`vgNu-Ye)_cDw&KE)TUbnRk4xK~?hYn@Z1p -9^T}BPE@ZXkdZCx2TwD`G&LRDyKbG9xwtcLh8e~jM$KgIJ!uVpetq`k^5SZ?nEmnbLh5g5UlSjW80@6 -F7GBpF(4BSVyGq|-?=dP9AE77;dq`iZxa_uI)(_f;qA2=jpZ)j>^dU5X_8E%yStS3wg-x`-L+=wGpab --sGDBi1&0EU6q$x5)b_9M4LXL^xVHailb>rkt{^oZzgYBLUm(h#pzyEal(=!Z0LU9M7&Vcj -F`Vcz7sW>+o>YSU~nS*}gtUjxGRh6XI(m{=JC5&s#vISSPL*jiJ56XJfJwNO&sR!eNlOsBoI@g(mb-W -J#Z(TlLYN?>fd9pWufzVo2wb*ybPpTO7E(hBtr#jGr~-+}bAeY*E7?HF2D-W8i -uF{f+Ok7t_7sv0WDI5?j*pWc-Zz?JveiO8J?y*J0LJEPa=XllO_clvS#c7l$qbs=6mI|sqK$yzrB^Sv -H$3MC1w%cP!ZxS)DtXiBv?(bqCc|Ey>k*AHq}zXcX%mczKo9-2YDk2Buj0<8!J7vz=bqYzfVqIflFe= ->0?zky+WKdy+apH)mJ{{m1;0|XQR000O84rez~O|8&}QVIY7Br*U1DgXcgaA|NaUv_0~WN&gWXmo9CH -Ed~OFLZKcWny({Y-D9}b1!9da%E*MaCz+;+iu)8_INK)jCG`OI%6IAbuyku{(oZ`oVEb69WBxNK!!)Zz=oz0eb*5e)fndQIFbZNxsHFa#Of3(yF8kmyGHc?E?)_;tioS29Y&LvSoSEzTZ^YwjftHWm -U6RKV~zAS4l%wbxLf@JD$6+n0xz^DkliavscQvsp%#XhqoNT|>y*ZC+%g2`>w>AtmFFt -~a&(1v6pk<+dpJ^TidInatnJ5L^a4@EgQ-VK1tUxCJ}gXt8<|2AF2SJO*`U0y!-(r5ZBirjBpG?@A1Q -adna;FLRb8Atl8!5+;l~LoRNr(!}5w2aFRA0)p@#18)TZ1tRV}a70SyXryJ9FxudEcohoqEIQA-TAAi -^i(0KuKt@IKOq-~yW4`xOcm*Uux6Vgc!&%`Soj1YVFE?RjDzIF;~F>8h+JHcmD4qZD)&7FnEM -A0#InFE_0o6cR)pi>kYCgQiYI~xL3vFvaiPR2t9kuq6U( -IWRuqXNb)7;D>I9{@fQ5gB -VrT_66eYO$jQ2D_@VH806{a9(nIX0&&`?x6f>^U<>pe=>B>kPIH{4(_EkNLsgL!x;TCk)c_=k7UbFBJ -s%c?=YlYNACxY$DFC=JP_bm6?Ofl?A08_@|sqzD>}7tsN5eyNNx%Lw4zzlN&KfBx_=_oDg>lS32;3?M -5{-E+VPfE1c`k<#hwMr;>5krPXvn7wFg{lS>+mW6)2I%Jez9BLUU>=3rn)t5JYLGv;r -Pe7>1DRcCW#k)}94TxilFPVn|QSyDJ77f`zp*z;d66>Im4X{b#iGI#w5R=KN>&zsD@6U -dCh&i1JO1H2R6z^dD%KKKBzMhZLGW>U1lQduEBom?2!)?owH_`g0P)VuLR3@7K7{gvF0_W(};9}i3wZ -u6?qZaR5(n0eZ|1g@*55v9~Qeq@QdLoP@$pEaD(JBRL0a?Mzk8ic=Hr9MHBO$_eml<^%PSyK5`uQ49& -z?-ZcK~_(RP{de5%KTORAM@XSeC&H6^gnVlh3!}xu?SES8-RF`$GGmL{=KR7a10PM@&do6&xLx2@x^? -><^KicLXRDNzT?^D93ml)^keiw$r8fpxeyhlpbBFfzSA8if4f1^b_=vsxr8RhEEa|W5H(2r+bK1AU@- -J5Zx2z&>&X*y~+vt-0&8t@vahM!z!(V5bu9In|TLJC+|&#XM3G~OTypdd%f>$UAXFQ*ZofPC7OZd^>< -ae)w9fLu9r2d-aZz2dYwV_+EdsPUT2Q1m%1L=*ujtAy?cLg_v`KDc`(+UDdh%cY>GM8Q{DD~v|PNiRJ -VPf-756Segm8^&`bl+C-4k(EUJE2Lgi4q>#<^C^QI1ONw;Hfn#FYgZR;yjIM06d7iFj8tf8$tWDSezH -@1es+qH(_f6E$LoX8T+n-o(LVq(}s(0}~-^5!o2@c#W>;N^DJ;MJeS_3Fb -aC!_}kS4O6dkR0kMyTBY^I)dEn^mHHyI(5-0MFF3l@&BE}8+1C@{>m#f3$3@D_qPIi?pLe1qHcw`E+!ZHqkvdGg3Vn?AI1cPoYOXxD87? -KemN1MYmFTm0@ZJ|;Y{({z&a7Q_v^st=dwF)4^HfC8$UderXCCgza0#fj6fJKH663#{Hm|#_*Y-t5D9 -Dv`AOFi?$+1%u}_~tZ~x$es#7f$OQC_SJ4#Rd@XO=es4)bv(`4@ut>MvFJG^7rp~g&vP<~{1tZDJJkrvAdh3e3V5EU(?dMzZ -b-Aoyw{s=lg!5@FeZP_KubGkWV`XuR=2^#_edeSsdhFth&Z)z9rzf>Hc7uO@NE?*^!2@qo!)w6k`AM`m4Kf}a)tu<*%7q}iXh)SM0N?An?|H7bFiLt2bLpgDD$9d@t*S-W%&4iT% -R)~}Tfp4hFM*)dvQrHd%h`qQ}Udi7iBl{vzEIA;zp-yPzF>PpE|YSQ6yG+oJod -a>9By#yMU>M?GAA#3y{>i)%;`FaM)Dj>D43&%66}ZwKka#~5x_#67gm-ZKM_e?D38{qbz3zoq?I{2>F -xo9{0gLgz0O=Cl6-P)h>@6aWAK2mlUeH&U?~w}2TA006Ez001ul003}la4%nWWo~3|axZ9fZEQ7cX<{ -#Qa%E*=b!lv5WpZ;bWpr|7WnXM~ZEP-ZdA%EJbK|!0yM6^ik4ID@GtT8hXVU0q?rdM<>D|S1=QO=>T@ -FM-7GsK33DQ0_&42GM9wY#Ql@L6{2;P-xlQXg^E5e)Ywyf%`xFhwNk^J)}k62wX_ -?ay$TJ0io4ezs*QL<(g{Nki8Ny8bToNSt8Jti -?m0}jXC!HOU2X`=*@hMMq@WuHbk?*c%Zkx^vSjrmV+E-If^x1j=aVC{-2vD24{63JNVfnXYnIe3J -)ud$IG;=u)<;R1>%S|efAJka)z$8Y34up2m4F@r3(({dT_&2dcTJ5%-qGzAgQo7T&=rT>%zX{D_xLmZz-Z?({eVt7G6ht+otD(zE5HZMKc#2Uet -I74ht|#&GrN`#D)=1-MRJgQZMBx+c%B5y667R}Gug^e(R09s9h6Hx&aJH(PL{F!(*Z`R5>%S^2NQ0eo1SvX9^$r_gSJ@^KP@tfO8i -x-RyR_hFhl?D_pg9flxBeyQ8=nixbVIZ8fpcr%ocvg(TN9dqBqJ#!1e6|$*(j*?yG%X+|g$h}Vb=C@!4gCJ7$lp&{E%7F;6WmUZkZG=E+f@EsO>yNC;XrBF>RiUk{>OpE3e`m$2rSR|K)Q~q@5!@fvl+(JdI?w)@;hP(4J_tis?ZRTdr0dSF0TuO~pEz9IL;z!nAf<9!H-{^|9p1+>FR(5Ey+gD;tPF -m|LM?Vd(U)k3(`8)d95kQ|mdqIbD0aP}6gm6|vNw$#QTlNTWoekgzTi-~wPS=o?$^ARKxlgvcOa51=9 -)7CE8|1W_L1>?lpJr04-Rin55&v~Ess$znlXj71zUsec6cpJ7%~UES8^ith7Ch;oYa!-L$37Sh0-4V;Obt0<#PS8QoQ7vkkxNn~PXI2h8K_5O!9OW --q!FKa#H)zbW|b9(Df+>#epiN8b|3c-*%iE8mH*82I}pe-C?3h?+Xc<$BC{I6IW1VRp;~oXsZtZ5jW} -mcC3#jzBHSyS&eQgwKnD;(_K3Gh9BBQ!x+T^b%nGbVk{;Ld5D1{fC-iM?@AquC@7gvUZMyAJ*|Od-y! -nX!V0S!-N1E7z@mXh)N!mwUS}7<9U~j_&H*AmY_{IG?1$GcdZQ{kBM-om{}TjCeqZXJSPKS -~ygNVoK&G`Q0AZ-&G+bR^CyM?0?L=iT+DfTu*F-7l$|Hn;9%X?zW+igw5rP`@dy{bope-uIVTbUJM_0 -U$Br8F9+wuHRDtvf*kO;$*g)m-VX5LIklLgFQ{U?)wAZ`QEOf -0=TwGZI~=SRh0C?TQq`3!k01Vb*rcbH<=9)l!Cx36j?ojbpwvWsfhxjBC-1bxBLj$W7H78#zIy$IKIldiO7t{T -p8ACl{VQ`#`21h3{T5(Z!N3nIFqO6*KbShNjQJ&4Zaj$P~Mp%~HQZ5vg2V(-1K_Po -Th%~qnL*yPuRh0(9<_nrBcChVu{cW;$uAT!fl^2HkpE@H%7RiN|>76>mFI76O-g<{meqknXU>NYAxkM -v7*FFWg0J@cN7s)^ov-`SyD{8w!{6xs(R&PL?XZGUI8*y=ZuCVh-a$*P3?mF*PHd$#l7vwJ82GbeQeb -}*FS%RD;x{h0ruQdyXD^Wt{yB%zXes{#S_-L0oFHoWP1b9N72Pwrsc7Xq@t*<6*#5tuBWVhJ`vks|ehRYPlmf=mpP~(OxXsER*l_{&!99{D&kR<+<@&X` -nC7ogvMLy$|*bIuZ_cCA)Rr_+D_OH8{YIy99eIx?4W~S~=*31D9n70=I#B7`Szv5s+q^LV6LZRDR-za -+TFFK6eE1C=Rv=n25&`N=hI|=j!!q201ocU}EQsod7vtq-Sed(FD)3LxkGziwCgb4PU?+9zzc;c$dN8 -o+qKgHs_i<>6iB?*7m5Oy3Qch3z2FOeTW9P)Lz0R!>Yc`q1C7U-XB)QDm-lo6{+#{Q&4U!m6N<~g;#R -^M@%`v50Baw0-HZxw45Be_aR0Hm1Na&zjI-^T2w;|0+~}wT{x`-0prwFO6V5mNJ6<)mR=HFZM|_17~R -s)w*mIb4dbE(-l(fxh4qjcP_|Ukmz6MGJ!QPS1a6=NcBhG#aeL>^I#CcHs(#faXv?s3CuOMUQENSLgQ -Y`Z%%JpdZwtuy&Fx!- -@WNU!CQpNGv0MOW?o9YR>~kH(NJ+z*q*hwYLa$$E)7RnMqS>s!qAsWM8xZx0RIX)wHeph6o7tX02x=> -6p(%s+*p~%7KoY|XLXez3w*AFP0KinLV*G%3xS2xKY=??GJgG4XLV_DrpI-k{GevB7WTz!oK7 -9M6`PgqTLmYD+WV1FRh8~PGL;+rN%9%;gnqc^7`%NnY;oyCC6SO>Inyf_f@mZ(g7hL76pNOMa84?miv -JVTRWbmP8e>dcxNDfoD{7xJd&9PGxBmlPDNMK7?=iAIWT;K!3hs~aV2#fD3Y>(v;i_LfXtbol8VMX`B -zgyTDWgl^$IK4gbFJ9m -Xjjf~}pyb{~7U`vI}cDpii`0neYSZJyJpupYU-BivhyUYqRwD8> -oxPJxCSucu#9~-o{c@tgt+hvlJ5X2AYwd@Tp0NZtVZV4!0j9-pO7ri{J`!9AA)U_QQ!)M7Mp -*;57%5PkT0^kb!~scGFl9@m9vIGqG8a!4pgTJ@&MZ8qKD};oUjIHk*M^|UO{=Bsjfeoob`Ru1U1jlS_ -0IMx9G%9!D%)`Lbv{1;G50|XQR000O84rez~+jeS&o(2E_R~7&OEC2ui -aA|NaUv_0~WN&gWXmo9CHEd~OFLZKcWp`n0Yh`kCFJE72ZfSI1UoLQY%~;=$+cpe-_g}%fIMnHqVAx} -@6ezB@VGnDIHS0QDgFt61i5gk*Ecw!`=>I-a@^3rW-1f2ncS$7jBSn6s=!9YT5@IbSkFC%O^cGT`6p| -a*>KugSIkQ6T!0vNh?Dmj|?Uv_USvUxl7*q&s&iNE}T-CDrz?A`!pqPl6#0AvXhC`Mkc+3;HJK+lVlH -zZk2j1#D2v!>6oHNUT0U^VY$pg=wI}8**f<0xN9QAfjy1-S0v^o%JCV5KEb#?XKCp;fS=!-k0Ec -hHYmt9x=(s|otVY=dGD=9%HSU=n?N1}Vo=Byik|cn_8xxT)+g14c`H&v%8luaY3=w#YFKOqFrO6L{S+ -R;ceoH4nlt41#U0Q`l^_1?ut52G9|mBi0>a7nX1Q_bKM!UKsRu3WXA}PWVPT1JaZj^LeF)k(&mN*5K{z_){I5df$PMI(;fQ50Ey9X>KAAf-dcE`TD0RRyU -f>C_EaM^V)>pF;f&42KLxalm?ESHm=BAHj~9jc?4DU_zxA`u`H{PbE%J5juW>pwvC9=7AXR~f?m{qwP -lyflHV<+0Qk02_Y<9Vc6-3L71$b`qv~jmQmb*57>6O-H_PD_8XPUd??$)x -18wgBSyE90GUO7w+rJ$yK>9kwa^xQ3LidvSitL>_cy;m?7Bbl7<)N=rn*EU2^w*%s)=ukJ72>cEKg}K -GRKSKhGOxnlZ(18wXTYOz)Fx_vpja^jID9y?%&8?!{t4cah2dvY8gZK;o5D -vc1*JFd`_ter!9+)mTyD)7Op#$MEj^0g$*=atnV`H&#k3NH$ww==Gd=rEh-Hq%(8GjY0<~@a*VbIAVU -_M1eXbX@s2N`=cKcOtKs~U7AhLxO}-8QABbburaMU0n;!7=KYQqT;0Kw=_uOXoc#BlBCvcnXo44%EzP -YZ-sjt<8g`2Qqe^X{H5aTL97d9&_O&kQ&zPj2Mi8rzsM{XKCy_bM>EO88{iE|0x4=MTpFsy2e=e!Ma-oV^f2oYFj -_rVeP*wOEqvyCwY4OE<%*Q`{BwP!kzHB@-1Xn8H|6!T||KTea&Vl3pu5zMFM#I)sVpxJ^N7e2#OzP5m -HF8TKY4hc?Hjq0~f^$tXi=r1506B_2Z^7x^>vsR4&Mr`LJr)SxxOIKf7V)5Pg9T=h`3?m%cjo-4Ebh; -JXmGYl$|)FaYUFkEhDv2;%{gC0>$K6QH;Nu{UajHuX~ooa2B40SKiyVfbq9zDfj**uxeFyJtoja5(gd -Y+uK^-9P7K6{`~KHTfF;!cYAmt;(8#P85~{_4&3>d&_~t-9AW@;2%&+0|XQR000O84rez~AuZZM7Y6_UG#vl{C;$KeaA -|NaUv_0~WN&gWXmo9CHEd~OFLZKcWp`n0Yh`kCFJfVHWiD`e)fwAv+cxxFU%{ylj#t;%9`+(E0gA+Jg -SAf4xa+zguxW|5*~pS1QAx8R|Gsm0kx1R_qy>iQ#k`#RjfeCqOSfb`UlpRr*nCd-c9&*?&}E*+gs1h!hDA(}>MuE?7q6-1AmQ3E>1tbn@nf^h~Rkk`TYckv&mm_Y4Ubrc26(fnIZg~&pzYmM7R> -JJ*sm7C9m1uINcC?nT<^TRnPoAClo>wz10{G)EDNl}SJ44U&!kFecsVs1mF2Ar)3PA -@`ic5l_}cq&F-9uOZM(jtR{e1WyRg7aIzJ6~|;lZyBI27UF)#77MaMbZ|Wj`RZPh*)W28BwgWHl9Qyz -p5ZTlBesIrNP}bLLjGdx@I-qfSgiIVK# -v>2C1Lq0l8!ur!oJBO)4JkHc%+!n~zTN1LC`=m`D*76n237gQeznC+=r-tu-ynfEtbn6(WNou%Y?shR -0FHlH*rUVOWnnCYoejT&a7>Kv|%i>bO!kFJ6Q|XUQNQA^Ra7TZmNn29+sK)?lRq3K)lcS)iCM3ZWQ_m -=ZN)OYMN%Z5ZHW1RRm10z*OUX~~Cjm#-Z2I9N&|nU^Y${6FDLDa{RdrPBVe3Pw1RGO;fhJ0p) -=YV`kk;8oe*p-+F_Yb3wn$NpeAG#cvRP*sv7>U3RSwUB84z00bMYZa*1<_hHpS==(IU|)qcC>p)XikG -!Ef+i8MrgjH_-x=G1ukcV$;lP3pU;tfUBF%zaMygJ&OY&e+zmvT|K3-BduXU?x^$c|a&&X>ycL^8rT*fk}+J`SiE=Zo@23L(QN -7WkmiXF5OR-1KoJ#4_mJQqg_cr2YX7z|ygtLp=h2x*{wD+cI-Lks`U7wJndLnCaDVoI}~)HG6pj9kZ3tuvbCMk|UYqmio^>=w$Z6D%3)P+ -|}I>gWRh@bKGrj*|jIdEiFi~Ul!3ak*FenWD6ssSXjRb0b#i$}l#^_7xS1>1T`Rney@w#8ltf!R{As2aWUidI?OYM1m$sV3I4cSJdkX++s_3G -Ea?OLoWBw)y=1-CDRvM(#f@iEaadO;(Ht?Q<#i9c(GLzfzhEqeIo*Ce(oA9J{lbJ${LmCUBvqIwM7TgN!03jYxi_Q1MnryzO)Mm>jdkdKPen26!*j5= -=7AiISslA%%iYHBZP(d@FlQ>aJuD4qiM6CXN02f+r=;r6fjSRsq&}GKxP3vw_^&@sjSY68AkO1LrDtj -ZaDZ7RK1Qoh#ZnnJa074&7zz0KC3Zo4bIC9gXCB}AwNB -xS@X`tK!aYO`XeeYV|!vwT~)UwM)Ws%_ -y7Ou!ccSdDzEAdSDLc4K^26m8b&I(v+xbej%WEv`pyxq`uW*unaG|v))O;4Nd$sOEj1J#8gGGpzZ5+17vZXofciScLp!TP~K;tt3Z*t0sw -gZde -{~D!Xf`>CSnc~5Aw_AT6obOMv-=8iUfoFMLc4aDhPri`kiQu^|Z+bD@F(H*L+WYr{qq79%fSpkgcvFu -|AMpD5V~%~WTlF=xNlvwQKDESW?MlE -9Jh0~T!R~mliCQ`1v}|@I1p;iGmf}S8R%btl9n2);P#79I&#UGOr~JZWkKxmsNBmLiecO{Vx38Gtu3PM80-x*54`Zb7S?5%8tr?m8#^o -I{BO&6;vbct{R$6S}VJ@};lQWWMm6Pn*jnASzDAv@Y|CFr{arN{UEPv~7Rvj$diWkgy_u68n0P$ -|%DG7*{zD|;`)r~@=5uV~t8jur!{TB7T{AC=4DMOEw7AX)DM+Nd0b(hPri6EV-^c7D)*nyr$deZ-Xsn~wT|XFpPlij$ -SIjqXZ~O>9xsX0XYh0BkK#_@*8>G^ZXc<%b3>D-Z8p(zzcIF2Ls0JwOVn-2@u-jbr5@*3A?5}3`?&|p -xF;9U2bf7^lBOArlZ~Gua?Cb(F$CLvyh?=!&YUv!?ORUz|eqbr6vNUal?BLJ?61R%P{#k*hHsFC7hP2 -b7V8O12d)(TmDIdE7#Piwj^N6zJ#;CwXB(QLRjD}%2y9!fc>+MTXlqOhnZLu3Ikl4x(2Z%Wo`iPMZ2@ -`|^fH-a1WKXY7e!ZAo&Xen_t2t%e4V+zn{6sH961eo6#&12My;vao(WX=8e|Uwq^FKb%e)ONlB)iD@< -BCLs!nJ8rzJXuWw^F3%xLHNLQN7g$avFV#;P9?EO4Twwxw^2)KQP@7GPLNpfdZZrdv#7cqMaiL6QR#; -_OPg4;|4=JpeD>Zhm5)%TZ0$atC=Xc+IHL0zHiP=y2grmIGAEP^hh{V%$khUG0#C)Jf)7c-DYj$l`88 ->2QTV~770OU4;wTxT}Ru)=|E)c8I1itx;dl;9VHrU|36g5NBN8UIbD%vI;zcw$q%mpJ%S*cb0p+Lv5spNhqwUA)O*!yY!mUof -2n4X>+p1ThBKg5(8Cc%Rgdwu#Ma?tH%$7Vbz`niC81$;-+~!*m<9S#5lPR3V)ayLOXU=&__?Kku(}c1 -4$z`Et_*2X#fWk^QyuNbZ7hw9*egq*4rMD!CoJ)52XYXo>Tb&c_Dg-o8qg^ZT$gH_O(FODWRAvE! -Qjr^R2eYuh&Nj|e28+%lv?VqZw25t*4NW}d=_xwEErO@6!`V|_dWnHvGA;~;>I&L(8WB(0parPzhdJw -Wqxugr5=e55=T-cv9=t?*6+eWbWTSe&o4Nyx11QY-O00;mMXE#zX14MLr1^@un7ytk+0001RX>c!Jc4 -cm4Z*nhabZu-kY-wUIbaG{7cVTR6WpZ;bWpr|7WnXM~ZEP-ZdF5DJZ`(E$e)q2+Ty(WCM`-q#Edz$c0 -Sc^X(RpZ!zz}GOwz<-hKvJ&#?{^NV3n@`{yY*$59}-zS=i}jbuJlG0dy*uZN>`F43E}&)kebl7DnzAO -V!zKx#t&TaBA=5g=V_6#L~zX{6>73Uh?19aa$tE@$XM}XgQM9|C;C*fi4{u=Ay}#bNHrqwWX2@R?s=+ -fA#vP`W|e8ln0+0`_`I&T00kABm3AMxO(fg0V_9Rw&B~gpX7jjxneZJ2)AnLAnPhB3Sg!E+O3RswZYB -gid_%xQMIMWs**Ex+40y`TOY@EikON|JrD>kBnVNS;js|L~)=@)56=w`-olU7qIiJqS6s!SGrV-ef3a -S+OP!xJrtp5T6YizVVNqEk6lFSqnn>i5X?2E5rCfJ_k+R$|i>;7uG13o3oVd;4_Y1gzobucv_OvhP~@ -_bXoJO}6JRNOD`eX#*AoNQ$*`pmO%(c*ik80vkzA_bmD@aAma?JWY7^ec;qdX|_))DWWK9 -0ogHSr6#|DGx!?PYawMJeF97H^cgqg5F^Hm@fH#Q1LB*|TlH>>FW@L<77((O?7)jk%_0o`ywJS_a6pD -C0nBlfV3eRrbZ)a8vI{oyV;EBoWZJCk7AP0Zf|D?S!_hlU&U|L4K(e~_J%h-qgJ=vvnW1KXJHhgLtD) -?5o83)3ooMi)GIgP5d*?XrtaI%`J@$+((I#DqYQpYzk=~3C~-!Rq*)#^u$)SceciuOChtVkk&Ute*7lwPq-l66st(F%%-EuTJwo0qkc>&8Dmqo5pGYo&T;<=t+ywWMvNxy{o?IRVRA>V -PPjlup8EUl#C2iC2P7Xh6AoV{L<@&sPhHyKxSE!Zv0;B3QlmR%jFBw7zfMIaY!BuEUvnke1yi=eN(+D0~Ohq6`%%z1u7sGYv7e$q4 -*11y)A5*-@m*2^X=ksIlqWh4^UyS25b50{lfAe+v&+ -XIwO?%9++Xmd-ghUL?{r4^KR3TtQhdVot`mlK%}vvs~N2U<~@Ls+gp1zj_-;+8ZeH1_wKFXZvbx_?j` -(14wd^f4iC_8mY+t@pRaGOu2&etc$qE94?j=NBsN6)j+;w2gm1NH8PNq`w<{EuVw?A=r-~z1RU9j4ll779jc@$rXuoT<>IX@s#5jp%sJJ=FmU8h6?6>|0#-Au${4H -fDv|%gN(kZ=ddt}SC1CIFKjwF0pc`;7=LMc+KWe6ouMnkzb2Ti=cdz}UO;{&ud)926SM9h4_qqS>cS1 -AF85e?MjDA<@^|!r*YozSGM)6HI?G(E00o;FRySYWab+tUF6vD|#D;XP%h&QK{`}g%dOw2hA9g1F@Ap -%%)$Dm&b21Fo7v$;b>4tn^B&9jJxKdCP$r_r{0&e`0|XQR000O8 -4rez~6JKo*$N~TW1qlEEDgXcgaA|NaUv_0~WN&gWXmo9CHEd~OFLZKcWp`n0Yh`kCFK1+s(IVyV$I6t{2NSgVohC{B`Yq!u4(Ve}HIvQ(;u!dS$s(PrRzEw0dtT@D6QFUnnkXyNi?ESq#p|o}31f_Y*&LvT- -J$hPG1${`SddLM86FaLXA)Cw5-aWB~JdE!J*a%XbX8wS{<~!VpMjp9JXEo!Lz4m`j@X3@U{-R;PK#%E -|nIg~cRlWBvKtt6Rq4KxJ!;`XzE?+?`MznHU3SULE)mA@qXY1zDRPgRG@Ay>|&6dMGH(fIdgCsjCjOf -qE%@uTFFCSl?Yf+FV}V19vT|itXt8cfdKv1M|Io4*4$d$k8wBr^yD{j0_SuX$@RN`rduKhl@E~b8h8L -K;-4{!%_M?qd&dkq?kLOAQt4huT3qWM -sa-k5gir0{%8vGqodwX!lPnXd1gTWAL)(iq!HQm$Xa -|_@&Gr(QNa$)y<0~e0Yb%1Egj@T#-C@mO@;~dR8cvuZZS -+6Wd6qx_oRqY?ii>+EummR7)EZc8{1*-&XfhkNcT!X}JSG+fS1_acHh-|*^+3MDzRuAr&95sYtn$7>+ -#-*-tJqI_6(u~!3(hAv9qCx|AXl2-1CKhCTbdvNl`&h%gfsi*{zdpGcnkRxLMREYCf%ZZS%s@j5*Zaf -hN9ZF!i(0PCVnnlP`g -(}XAeo`U{lM1uSE30{bdyj0$;_sBiKu25f2z}C0p<6(wmuHJb;4^^O5GH}KjH1~qWDOi+EGt6dY?`9Q -1X^Z)_B!?)0;m56h0{+iar#*#ZqHmlxsU}VyHo=3_NySuXqY>$=HXym^i5&u( -UV61DidBlAhjDceR(7a#`Pxm!2yoE9$HN#2X4YfNNmHxn;72*89H+ym2o5SCNZooQ$_MW0VJdaJneWU -?ANPGvEt^;?jcV)kkV~B7~D*GMtkSzKQP)h>@6aWAK2mlUeH&T3omT->%008I!000^Q003}la4%nWWo -~3|axZCQZecHDZ*6d4bS`jtU5q;p!Y~j8`-5FARjY}(!Lru<}iF<l*bkO-*5PkL{gF;z1_Q>fjAaL&U=P4Lq;rJqcNiEEM+;OVS+=PiZScGZL7mUCwM#calqcIs2-qn|4GC3q)iYfg2Qbf^&i0|3KwdePGG!it9?+D{GO%^nX(yPfe`e}}) -Cp`oo4IQBJoK+(?3sVoex0a! -J{N!CDn+9QUw-kT56H7mP)7<)_`^b}B^g$p&5_ms&xV%Ycrk$OIT&-Q=S@9mOQdl>#f(*zV)p?R|Z>t9K(GwS3=nesJ -4za;*YivUumd?Vy#}o7@Kp%$F|lAL1V7%Yc3`O$P)uf`vUQ4wT)ApNTSz}pex^qk$}m&t)SL?lR#6H$ -2-{m`FCUQf)-aW$dz#-M8pmV>W>E{!4&I)Qhg}H~WY{^y -u};egYh-^`N)EAkm9ocrXA`xZ*p*DSYq~9(mt-aKBuO>cbxpWV^Xu%%^EZ-w^O!+JvPf^6nW`k~@Z?A -l1=Z|Us%|hh>na6X`qz|&GD|oDdP|G+d>fVKe&mVmQ4Ng_%CW7u<#sEp#T-Kc4nAnFJ@+UJkRNB$%AI9^EJ@Ed*$U4z7J)0PSdpv;;0U0~DY1wy{5n$VG*0WPvvTY@>rAQ -h!dp`FpA`>V2iE{LFDaUXk3Oo?bhF4VbmzC}Db+p5J6bD1#FKWcn23SyzSsXL9}UAIjB{UwYf^F5&m!F5UW8`AElvW)Mk@ATq2weRi$BcT|~ -7mOoluqX~L0CH34evC%<8Xe}}-0nP%sP1rM@+B3dgW=#&JKOUdBdbX*T^jLkAgH~rWnpZaEkP`jO2)Q -+~$=zr>j;3N8Ym6Q>C~jEhCYnZyrZ)t9;(lMErjuxSVuhC=tIFPnqTwB^Dm>BNj+QOST$lShoj~smIL -`_v*z<)%+_!&+7XAHX8vGJ-S*YDNc7#VBZyDyL_e&~-FN<3Ny(~SP-l$N)*TcF++Sxf!E&q~zUlJ -x#Cc8yvu27q)arm*Rba%SDMxh@5jspTe@>J$Nnx$`HV?P%D3SLC&K*TMP)$%zzXqM+&m3fiL&WoNx{!y&bCE^L^Xx>0Qyf=SssPyU_dk#ktX0<}sx#v9;)Fg)#z6qtl=uZ3>Zi+(M> -BD6B_JHUV>K?XQmD&6k|43gm6w020XZoxatJ6QhUit6%ZN-*C3--Lo#`p&8W~tf7HZ$n2_LMpy+WdA> -AgT%QgUUi6NOd%^c)=?&!oDWO%Hh$YOMY(MB9H*0fewn0~wL72lvlHAnr=eUMCRZez}R)vwN-O>6OYSv#%Q)}|+iOok|zq`F-)!ziB -4rQYp?P-IjN7=cKDk|<0<-tEL{E4e!{s)b|;Xd^oY;Z3eI;3ok1ZNEE(3(12DSB)ss-cIjdyguy@H4( -m<8`Q8GyQZ6vS=99RO&9yEDYZ`3DnC)ln&|52bWOXsUnXXHyW~R|hk{&%uAy>_^1%ppdZablwbaXe%V -sV-m6s8^FN1i$+C3!=_FOX*bCWQeBwvR;Nx*o)fSPWfVm$(%7&VH<@<5^50eIB>&Q`J28-lSf}D -{iVSn^&hr(&Dc?>jp@B`LERGoImku7dAHG5O%)$t&ufZvZ$I!QAtbHZQ-`WaqAu|B<42ogiOac%V2{q -*>1{f1CQnjwsYyryq#mBS$cXtmp53)o^1RN)FeytZ8y<);}%*cg|DRi-6Em9kEeY}oAG|W^gs6-MaA9 -@qe6R!(`&-R)cnDC9i&SyHy)bGJ(3eUFQqTx3G22e`_1QY-O00;mMXE##UtV%R*BLD -zyr2qgN0001RX>c!Jc4cm4Z*nhbWNu+EX=H9;WMOn+E^v93eM`?JHe2u22j%n0(IeEP%x`26#y`}6nf(=P3Q|MKJiv -R^(A`~LesfBNJ4Vf|#ktof<``O_~y{`mdR|Kjuf!T$NQU+kN2zWeU~te<}V{NoSbefQ~Ke)=mH{^t6d ->#x4~dHnSGPrv-UN&oMgPy64u|L&)?{{Gv){q#>?)#u;!520MIf1$*GM&tx?WwL?1n0y~{y@*^R$cf1 -rBYq#{_X)pGRpecKllAL-M -cfsyChY!o?n97CCmA8FOA)0y`{m>U`{mXf(E^Z?5|Jp?Z3Al;kT`#zZ_%wPka9R``^N3z;yFma@_}$<9Q&!PzNt`KS5`^5}*&h6x&BKva5Zu@aW!+#g|xIuCh)R9;3p -T3u7)kMuo?y@E8?lurPy_-@(dbRC$alk5T0@sys%O$EflcRUV_t?_f2qcCHStPOdJl@;li09c(l2 -kY}-eIBgOgY|jv`#bpk9nA0G_jfSAgWuoD<2#w($?xxEekU_HCzf3Cz}3jr#DAN)TDV%d+PG@mbLZ;d>g4L;u9#o;>xy?=Wqv*L>zQAlxSF|IxXS$c#;wM!%&#B -Z%KWllSJ@gPh7)xP(*?}yD`DF*Pl*m=)w=lnj`7Nycg~yj2$ifa}VF -$9X16kOCEbKs*!95S|nN58e+%uc{GPq|p^@UA+nJmf4nlo8*CQEX%BqvL9vgSKW^M= -+}gQ1xH`GIxJqMG*?L#D-j%I)W$RrNz1@|qcTLQ1Vty07-Ia}M&9rk;*{D`Fs+EmuWusajqxyAM41h$wnCm -Xfvi+|7l>8?Aed#MMhN2w>NXQ>N5-hbTnCUui~m->+Ul=_nT&GjJs2jM>m|3UZaPW6#k>|ABF!Y{72zG3ja~~kHUWx{-f|8h5sb{C*eN{|4H~y -!haI}lklH}|0Mh;;XeugN%&8~e-i$a@SlYLEc|ETKMVg^_|L+B7XGvFpN0P{{Ab}m3;$X8&%%Ee{%ONLR12 -6y+4Gkk1hI(s=sLZ3sXYZKN(7xUvvKumiBQAVO~mbO7Kchc}$fD@2Ne6tb`&+d1vh*G$oi4x)O#Grb1 -u(i(3dw^<$|#WXZV+s$(napD5C$NY_+?B3&|ay$aG^o&Lh>FM|FeDj_K$Yac}kRS8Y|F#SbW!q7jN`i -rH%P<;ZVyM2>^?8ZOnU_~WP(oBfQbJZjQ9@NhQ-Ud>D`6;MDq$%>U -a{#eC8#`{%EPHVoXW$gJeK%+%EPHVoXW$gJec^JnBXbfPS-8_Hk;s-;FTc8 -;Fi6cO-M?}N+?RGN@z+jC3GbWB}^qOC5TM#sPc#^kErs9D$}U)h>73qJ87p$J5AbY5{r9xMcSP_rE8~ -MJMF*fG$|n~q3Ba|Y9;(Uepxr}9P93y+s65m`yVXIvhid -ZUpnYZN_gp~V2sU9bVYQ1#e-oS%yb^*Eq7sr4vJ#3CsuG$KObJ~HLkUv}O9{6SoXW$gJe -K%+%EPHVoXW$gJeK%+%EPHVyvoC?JiN-ot315Q!>c^J%EPNXyvoC?JiN-ot315Q!>c^J% -EPNXg32SPJc7z2s62woBd9!r$|I;eg32SPJc7z2s62woBd9!r$|I;eqRJzxJfg}Ysyv=Onr9F6FW-zG -=lau+pMUt}yYapK{PS0-0N?)C|Msu`^MCj^ns|iN6aU+JEtH&-Px8uDD05;W73t<=6r_PkR^8=5_Dl{ -Sa}L;r9JWhRu?onQ$qi)AD7rexoJV#|kU8z*I^1kSPhn^$N+JUaXa -9a^gyJkIM28}aC^q>f!i}~58R${d*Jqr+XFXejyVt9o^eCb94nebBHI=ukpplC#vK4KFhFFgy3m+xAa -h1$7$8q3FOWI)C?dlsa^g{pAal0i$&lLQ!eqP+kpV`CDzc~|L?s!W5u!>gssvFb7FEI!Cm!Mi2_}|cf -&?X5G+~G(S2O{)q>3Vq%}J(c0`APXVNIOm(PrSzj5`CjWMyXH&Wt+)cb4Qr;LeOY12?BAx(wW$u;mJH -7sg$Ho0Fv-lBHc?+y%HfhuR^B+OdUo1sYpeV+%C4u*M!;yIkeGu?m2d0agI43=kRDuCm4=tLc!4^PRnr -{v)&dG?e%JSESbl82|{*;DfHlstP%9-fkCPszhm^6V*jcuJlB4^PRnr{v)&dG?e%JSESbl82|{*;DfHlstP%9-fkCPszhm^6V*jcuJldhwRyd_wao@`#v6rVED*s@9=#*`#wH`%g9_ta2ffLaB@65IUY`qXD7$Q$=RYIGOVT_%;h;d;_{ -Qp3tTSdaxIWKWBWS)LgWN*Fdvxt01q!j?j)fTb`}Dhg}}~2fV1$clT`}HmB}4sUZde?h0tiwg5gjUo- -)Ej-;?{E4P-w4Vd9Z|_(qsWdS`1NVC@52`v7aN2d=F5IV{XPtbJf>A7JeRTl)ZOAK2OlSo^@%KET=sw -)O$mKJZZ@;RZlHawA|#8}7zrJdzK-h)}D@UT=ig8`y7O7MtHrEz1|3~H?r3o -;q^xLdLz8v$ch}H$dMH}LXjgYa)j3#+3Sta@5uTc3vd_44YiMjaTnm`w;|%3p~&Y9#R}Y&al;vom623 -DvhpJ<9?4#BtaxPON8*f+*!YnRk8CU|_{focCt}`-JnuxzJCWy|h{hn@>K9n2sV(M-gk1$ZL{#1NY6iu~dn?REe0pA}>`UmMW2#DiKSS#7mWgrAp$ZO2Sel@lqvWsgii -9lCV@syi`e8sw7^jBrH`DFI5tjDv6gW2}_m4OO=GBO5&wT!cryiQYB%jl6a|-uvAIBR7qH>Bwnf{EL9 -RORT7peiI*w~OO?b+m4u~A;-yN$QYG>N59TEz%27BBcBtpu -FP&?&c`C>LX$v-r)91VF@-d@JhkXPjc7OR2G+iw-yZMF(<2QNjPXojm`UvFOg@4&N1`&Ab@Rlf`6E~h{OjOB4ot=)`2&=lgZDPsm^?t9Og>y1?<^R$Rg -6Cp8TL<%H%bhjeT+Z*Si&O{KN1>iydX2Ij*KR?Xp#U@qJtn#nH2 -5&%5hUf`aql4XBsNfSd&g9eiWc8U)pUDa_p%9Z5VnQJ%@2$^t9Ky-gXTthS9(kO@eN7(uiBId3_Xj6t -z{v_Rp%9Y~uAL2?u-7}W)iilKXySdHyi~y#(`)ih&cqN;-m;kkT=K`;iI2CFM}Fet?c^Pii6Ndm#1p6 -IPTpBqn9~;fJ_~0*FAk?!@YWX(8g^B##f!ZKd9TWS!{=Xo9Q=aMzjzW@h(cJrCAqLAxp+%*VM}tckG$ -~Ne(~tw)6uo~yV%z6hyt}pVUM?OT#LsQtz%jXlOj?EW;jf!_7BH08%?tM%Uct={>y -3!1J5(k&kfoD@`(}srMhw)=-vMuY2fQPnLX9KBZ+2L3#3|iu?Qd9nIgK8N(O-8a!*OQ=nI8#{<1UQ50 -5>nLZ&-+%<7RI7CpW9+4b{9kQ+I3jnG)6pRl-g3X;aool-fyZ(4Zut%W_U}5{i7Y -B4d^RL|{tv{IU5?z5{;=MP$9$^$NQ5lhBU@pLqnicnM_k6~C8 -ArjMXT3G(r0-LgxGjqJeFIYP%HF2)b(XP}=U{S5RY(K!BCbQgGH-E|MTghJx_h>#@c5!W~biNeFm)rB -VXckHBuyu>p(xXiEGuH)Q(o?mwzzh@WR;f-~93H`?J`70}SS)X7$iGe$ghbxYQn+igqi! -9KSB7BvM{tL^$oCoYu`hh%47do!LD00n3InMhoB@*zs3A<$d{D}FJFel8byA(R)P>Tfez2p0M`Qq>e) -KwXG1RJ;}C-Z+q{z2}#aQNi8OQvI&(3yl&8}M6_s6*(3 -NzA34@667s^bfmXP3Xt_*d>oIzI^U-2_5~5-S~(-lvrV`E_TV!?dPk%>!P0>^6c#MIk-J;ut(sqQ@%? -R`mrZNu74TtI7W#<9483T4Vf=KA{j-0rpL885*R*12VH)D+zTgbhvzz;LzhU~dA8EsY`+uFC^3EWd?| -BF<~2CWyOfZ|^Yv?&64Q7l)LlwY9O+^`(*i(Og{_~m_E4)`U%VL9NJ1c&8;Uosq)2YyL$SRVK#$6(+ -vR~@@*EcQd5J!+0Q{2aumbQ0!5@HMQXp0UetCaa0RABO@g6OCk5&NwAov6DN5LO~KMMW`{88{n;FoKx -Rs{Yi_#^O({aF$C#U3u$r6vC4ioh?~6Dt9~q))5_{Ng991pJafu@dl02F1d4Te1$`b>NpAiUmJyi66U -g-PRKSZDrt>G>VmhU-Bqc27XDTSQ+>wlVWAymsE-cySgNoVrAf$`F+7ZT#`+(3h+xh#VWur^VcfCF9{ -W^0KeGz1v|fr;4i>m1b+d3nb#KP{U!b_HZ*oA_$%;By2Yx%FZmX$0)G|!75K&9SQYrI;IF_h>zY-8U; -O;lfWHa;2K-I%H{cgPXPrIuUCMJCo-0>9EyHsqtz#LUD|sE*+;OtGcHOxe+T|9_&e}R{>bXUFaG3$Ke^=k!8L$?2>t>5l8CYf@XNY&4d5Sw -e*nMu=W77}5c~u9hu|N;KL!5;{weq;@XI=DP2it`AM39r>#sF|U)B+80>4~KxNt4ulJ(k}z^|Dw3-~n -^W&ywE!Yts|WS9l~nhmpnU(;b0@M}KI0)9=1S->yXEiSCn*Dd&O;FtBqx`AKTmFounTkzk&FMjxX`{9 -yYv#{^9B)eweKEYf3YJA=J_4S({7s|=+v7VJ3Q+H#1^s8$*fA9KDtSfJsXA!oyOUXRKK7;IGI&5M(*~ -Hv+Tz6TD&~Z(u>;quebC+G{19V>he&jZZ-TS!SQ_|f&uJ@Gv#*btuStowE_EY48eUE#|?-%4C`v2wHP -kOF*XPvl9xeoMvf!HNqA~}#pGkAZ%kK=dkQZrH#=tbxi^d@uzy$gMS&N(cj;JHPfd;Fzc3jU)HyX5qn -QPEG8ek%H5zs2Jd=`OR-3+Pqo4RjNF2VL<@(3jBfLubEb*MYwY{s#O_@HgOZg1-TO6Z{SMaVJwUH|N>^* -<}^_1fBUp9I2mKet*`9ULprP(x-Q+^a?u9FGz&grTo6*_g#LElt+mw*meAV$nTMUDFFl?5d^!G-@kJw -B~2OoT3+_GzPg8+^Y*S2ITU_%;LM3r+a=%S{`*%5H_+u8-}lwRO_Dr+_u5}PSFZ8JhtD7flLUN72yO` -dcdiNkN8Xo>&lHzM4n;D=Tbrb0Amrh)d`ZA3B0DqhPZ|Qwcj<*5K#xLCpl6{M(5uiJ=qB_Iy5gCjFQM -Ou&ii${4*U}LniKFR!JmLX3H}89N$@A&Pl7)Ie-iu&_>Z{7vwm&=AW@`bP|Q=K0Rb`Tk;szmM#C06hvlfu4o_?xza9fo?+Ypbw!> -(3jAU{7Vr00XT!;48SQ7_ay*l5S#%xB^18|;0%H@0A~=K0XU<`6ZW%+{VcGbMeJvR{VZZX3+!hR`&nQ -=i`dTs`&q<(A`xeof*nacHKblLLZ<{p`(AX!v%J@h# -fAl!$s_HfgLVlhYRd*se-ctkN79$#7bKcyINpZi`dlyyIRD47TC`s_Orl#7O|fN_OponEDht*WLz5LW -`fgz(*&mhr-|GQax=kiz;A-zfZqha0Z$h^9sPIdzoY*y{de>)2{ffcK3(L~A)hYt>A*7t&ww0;$lQt+SjL#s0H)DuXzOV&383|r;zgNC>!tCBH-fxb -)bABj@CRC)uQ`RxwBck=sp`j}UG1zq~VxO9$(G-OEb^0yPt`jX$D{fAw$9FTXsOG!mL<2A)@Y%PBY?l -z9Y*>wlHgaV&9oLwfN--qs{ACG>#^yATwmwt}Fw@VKB?(X319Pf88L_^DZ|Hk+FTff&IF}wzUXu~`WU -L%oTL%B;ixAQuC1W&oN;XVyf8xkI#w4tIw!!r3L(zsKD|7l64u -2uBgqzS#gO0~Zz<$cE4M*%26)wcC@x7OUbJO?ynDp1ZPuc)fOBj3~Jlz#;hwgS&27E-lx_s@ukY#Xn3 -Dda{uBy3}n*g{&wd9?+G4&lpwTc -&$u~LYZLH($fsYN_VT2rL~VHG47%rFacOw1vYu-ox-`7AT=;Aa2M(W7PV;^rAnqg~!96J%uLe<3cg~o -8N;xkaA-GP@8g?g(;VFedB!xIP^x;Q$cR96Tod!AY)tw0GrUg+hrr@aZr<9?69|9l5^ld^y!_c -ayb9u)3tD{Pl?cKIe0H0ZWyjay1oWqruHbk*SA9zZ9$uIJ#eLq7CO*R^G&Gnt9JAE)Du#BPiCt<}?ufm -~?7RsD4NV))YtW)T17dF~_LDFElzQcZo!41T(Rm1Hkhs822xyQohvVf;t*GI3Hl05ZO8cu^rA?S<5KV -;d<4m&hkT&#`ziK#q4Ds8a1f$cSN{s;1T?(pEj)jvDpof44mF@|C*`)-decYWfRj=k*0_@VX;f(oIK4 -vg9bZr=DSlV!udg^!}G6?Aus*XK^eg?mCbxd9&8E+yynI -%4-h6wb$YGOxT*I6QYxI9_h!cwf7b#fQr{zq+!BFM@N5zbn-L4XOMVAG?v?1G -B^jRnF6BB4go9_z+spm+A!C=4$gm0XG{|d^7x>WBg!law`Hq@n`}#PvOG!4^1T>g-wa}HArFXU0L@LnUkq76c4T -tzQs5#azDrEuLzrlgO0z2{eqSgA@xh{*P~g6*YhkCj$?Lns(B5KD=j+D_S(`r|ue8$!@_bAb5cJ-_#6oY`!a{F -HxCfq+(82l@z7IXt1UIdq~%7Oy1FE{ratPx`KYq-hD2l9r*M{{fd#1w~`g=g@sb*(k;SC~vB9&j( -MxLY+tvC2>20Sf0gkNc^Pw9i#on=Kbqbw5H_1ZYtOS0gSq(+~I5$c4tIvU+o%#!j?l|3au58+-emOh9 -PNE0Q7q*5J_R{~oAN5|FDTdbB>&s7Ma;uP3+4t6*+WJtJ)E6*~XWf1U999;WOyR=1$W5fkw39B_tuRO -iv;K6FjLl%iAd-3uDl{)AeYqnseI<;d#qe@t<;Ois&WiFDawBx;Q=v%bKC7nQPDOaq0e6WtAn4@10sn -F79>&LC2rL&RLGiz9sevY+DE}-9>wy4q@+AJ2tCqf07mt^vO&$uOSyII`GEv(nmnR&Tglv5Bt)Z|X80 -j~>(!5C_Q$}58@$!KL>J~87J6-*bR?Pbi%kWIh0v;Wt&7ML+l3KU{okc8jj0C -Ur$f-<@7BVBZ|P=I%lEK5nkgB+}xoIJU=rc=hrXP=H-QA;U(W+EzVO&mC{U=$5_Vu^&K6WPAcSr?Rd` -)j`Rt#%%DLlynIGt7g3As!t1W!4rCr5K}E?-jfWGLA;n&E2Zq~UguklAql?MqktA$>fHP7f3~dd2Qr2 -}?OW}~No@h|iEJ*|a+{SysO4mRPmu*yhEjiuTmn`KOmSgL&4vI#e8ooex@q2k2!cbRax3_>%%p6V#@M -$~8lD(SP%@6c#`LDA*Hd582uaMr=R@5D?-K2`6gX$CYA820(?VoFo;~%26nEV4!O9KQH0000801jt2Q -XSN5_ZR>G02TlM03ZMW0B~t=FJE?LZe(wAFKJ|MVJ~oDV{2h&WnW}rbYU)Vd5e!POD!tS%+HIDSFlx3 -H_|gSQ0L+T08mQ<1QY-O00;mMXE#zlGf7tImH+@`6$1br0001RX>c!Jc4cm4Z*nhbWNu+Eb#!wyHe_L -RVJ>iae7#qb9oLoT`>s!cR?kdR)2=d)*Nmno^JHd3Kg@l(eQ$I`cV7)eFIv&a&7B)SS$OY(g7?0vV9S -6Jq5~KbK^Tez`GP{R9HoxXN4SZCSo`;1s}2+hF>3!Z^JK2I*V=2Z?f!DvKfUzw+sj^f`PJu_mH%D-?m -KV1w)~x!pI!dytG`zg+h7mtXtgvbUdqX -W{PWUw`(E=U#sO#UH)<&I^CrT=v87eee6<|NcK_|3|Xye=L9V%@Qp8r{zB>f8>R?-gs@<|MgG*XSM!! -L*vcbzHNwgxw(^LrJYp-4*vcce@` -$ZGVk?i>$|JV&h^;*0$MX2US&-WTE00Q-xuO!;g4h;RY(do))NDcB7Bp-@(-yRBft5$a%A;cCQL*)-V -(Ul6%A;!QNANYa&9Zm@YB`JJ#p0i^xUyLMEQ_m)#m}+0wpjc;i|dQUFR-|=So|W3n~TLSvADHZ -{4$G^#p0i`I9)7$g~jc~;#XOmEf&AV;(W3Abru(k#c$A)b}bga$>JdIpRqW|`z;m+dB4r#An$ir9OV5 -ji-Wv>&f*~NU$8jH`yuVq14>w(iz!-L2WWTeEeyZtHH{+H&36a$Ris-@X@G)TmR7TDR -6-x7J>_)?T;PUbog>x7J=yY(Z)Z+P1)Yzq<8)^}-Z1toLhJi8ZXm8rJ(YtUMZ49t|sxhLuOd%A;ZB(X -jGp*c#NZHK<{0P{Y=shOI%($MX1R7DTonwgnYiP_+d$TTr(J4O`H(1ua{U*n-p+v~59V3vydfn1Ys-N -6X5iW#!Sb@@QFkw5&W@Rvs-YkCv53%gUo=<q&waW+R?hpORRgl025tKeE93l%&8*^a7;Tx1?4|X=u}87Kb)XdInYe&`N^ -Ps(m`nax1{p3NWPrPY{I0EMjpGBU|#+iZKmgL-c56Z4M5-^s0a&aHROt#{6?ch0SI$*ml78`I?0E9W+* -$*m*Ftv}9fjF($~oLg5>Sa}py9)*=hVdYU+c@$P2g_TEPa439zDyx`HWwFd)FnEb0oz_`zxcR(MfYu)`153b0a)x`GLQuwH-_XVe -v}?}Lp3oLnQwb+Z5`*9damD!|D#f?T%?aB__x*PQ~KTqDSJw*V*C2y)#kz{xd&Tn7a>xkixd0Rc{~G3 -0tkfRk$sxgHVV>2al_2_;e<}cizAV5Ax&lF872pJ239a!5qXMiGjVhrb{$N~y^`=oJw80a3bUiKkOG^Tb>As!VgyouuV{eEa4~PuL}v)^Fwi`RcH3d5`HM|wCXA!QiLC -hJFU9Phy37&;!bO>?jbq&p}5nUGkatPKNNRbbF~p^!4Jiq)?95wPVhravAV9dZ?ST6c1-L$2aZU3M_4L$2aZU79eeL$2aZUA{1?L$2aZUE(mRL$2a1T? -R3#L$2a1T`DnZK(0dqoLn1_>xcj+*9PP&-qU3nqXy(E4#}k(qXzmo?+FP0;6rh%F8>%cf?NGi+-k$Q) -kbiuABtOTIJepeZk3&ysA;44s2SYsEiw9LknTqkv^Je|n?brCNzmGK(rpIm-r6Q0c-xP}+curIZ3gMy -+94oR-do~onnB1PtrOsc+zeIqWAPTvAktgnoLZsA-V#^T3ZngJivZVxwL%MaYcUbSn5Eh=W@!cC-xBZ -Aa>8#x_~HjzLHM^$3J5j)BmHRSIaFh64IC~_&)C=E6BlQjZ@Fh7y-1= --b)E(vfU7ZR%qSKn%}3H--7R|~LmjgbqyxmJLcYm8jr&Be|u1D -IN;048?X!Wh}Yn;Qi<$s=2MbF%;^d1MQ3ZWZ7pk8I)1?E;+SkuAKrQ-G5^vV}Ky3viN0w(#a&0Z#JB7 -Tz2b;N*&I;mrdAoLrGD{Aj-bCs$+(ZypigfRigyfj374IJs8BXFVDc!6IvSb6kLJX=7yVKH4K7$J37sao>lm-K}l`HeiX -7wfks=fKW?55f6pr-6!h=pkpKMuj(ob=K0;yhr7yx+}$m4e=c_yBX@Uey#QBPkh{Aj&dufS;xts2m!u -p*7JVRG|EZJ*QNJbS=sR8)5F~wTOaS^p($b|%PxFfrx&KPaowzejqv#jX0ulXY3CJ2DDac77Z4haKvk -XKup1B#o2sWkL9p^zguS$8)&D&BQbn{CohZRU0drtISg{W -#+m7H&J<^a&rbyrRJtgBlY*YApveOHBx`S8xi1URU`HHiM*ss{Z)|q``uLm;zk(O)H{VWm4=;cR%xKJ -s=ON3p;Z1n$?);D|3%6}-|@D5xSMlWX?B|FRB6^gj82iD`}C}UVBj)PQ)vbZ|MZ-I&>{Tvynx_XKfNH -p&bF&GgJZqDPJo?uS3&0P_Id%38N23{maBqD*?lTiuoWuYr^5n*-FzwvL0<0DO9EgumjyudR|Evne=4 -F!dhXL}0w8*+X)TC;R6qz6J{=PfG$8ZhD#+`7Iw2q^;?o-ff+9X;kE(+7-feMUNzlh_siujYFj`51B5 -wBx2#UDfD7rf+B9O5fBt{d#wN)u~inP<7G>Ha@%=9_QLb!Qm6-+d{y<31=`hq!TxAzKg{uk5BZVw8u0bKh>uCPOivM-9970$rTx@+tOIL3{?d -gs@u{^xC~XLKqVHhR&??o1;i_+<0h?DkmXWCC^|WEH;b);EZ1#)hFh>zv^u>Rq%0oVWw|OvaLvEdOM^ -^*C(gVG{^56Y=2fJ&?raheM0;nmfFRmCi#cn?OpQ)4Q?)C2kULxDnL!74wh0J2xU*eAsOfih2nedUvr -|B*@OO3z2pYMwTR_mrojn4A55KclK&bwA_6Z0YyE7;tXzb2@0YPJT=ys||iG6laK+xD{Ljr=vJ{uMg^ -zqqST!x`3dM&qf6VeS9`1An4<>aREUepNTynhxXYG -0YM+1F}SHBm3C)^09epU0kEKM0kDrA0kDr=0kDrg0kDsL0kDq&0kDr%0$?Aj1;9Sm2!MU86#)BKCjj= -bUI6T4g8(fxpP8*ZI-K;%X85cpBHCucAYLM_i2S&{xr+zazfI&E=_LF3 -%ltDsBy7wE?+`H*wwgY6Ef=H_~u&Z9uN#KN?Q1%^=si;y9X4uIOst6-#TncSTqGu9#TUy(_xfcg41v? -p-lE=B|VZE%&bIW8an5zvb!xI@fol*>{s(s_0eUmG-{n>Hxaaccr0svt6p_N8gnezUAbK4)k4V+FK%5 -Mo7($5fb{=ccs;DImx3_eOJ7in=@0zoSD1g)!dw!Dtgm*#jCkFGgWk>?}}G*OAxE*Ki?Iv=GGuq(Q&> -jUd=5-tYQ|;UGZve7EKkiXzq$vOPpMhmA@-q&8GvvDCEgXU=GG-vF~#Ptcr`c0ri#^wcg3r@wTRWW&0tos4Dp`CL2aA9u3`n^Jqdu?cJ@mZix2Nfn_B4=|?9IeaQRFSi}Cyv(TY^uoF+!IIZayC`uZ0?C0bvc_VayIwGjk=so6*-%G -;znK0riz@+J#nKhXH!Ma=AO7wm$RuNXLC>7sLR<@k+ZocZq(&$s>s>g6F2H|HdW+o?ui?9Ih!hSHuuD -hx`l;RBx~-88+FN=Dv~w##ErTsNmWcqx+iYbtvRe>F48@5qi!xz6NT)sUjO-zUIIzJ}b){Q&`1@--x7?ynYLC0|1}=Kfj%R` -NBZVeYRNU?pEe{^kBg0Z#HryxiX`z)2n%m-|}dSN!~_fDnFtE^^1R#m|om2vOMQBK}Gc_U9) -BgkbD*(E=t)eSTU%h{-+|WmJObKR+uVgl34d!oreo+AQF(d%`7#0A1j0k`}E(w -4>E(?G@t_XlWt_pxYt_grXt_y%ZMg>40V*;R$aRJcBgaGK{h5+b;jcN^RCV#&|K+wnUrESI1$=`Pi2> -SSakAR?$-}ed#`uM%HqgY7!`+fm-pQD;vFImIvjn9wiE4l?%H8%~T=2Ad4x2IFhC3I?SI|ZiZRyfph_ -ggMhtQB^vr+Sy$8!fW?GSwsLBFUy~9rrn{H-hxPJn?{rQb#iJ!777-biW=jDA>e9$08}N{Y8Q@_HbHFne7JwHFbed -?nE$muuJ!s2K<7&ASa?9@)=MuuL#P8&0^DeE_Jtwt!q*m(oopUv#mHJKMY~rTXcDvKHZLHX8yLWEe$g -kCQd+E7sN-J~Q+94D2@c5yJ$3;=tA?e}q!xp;D>oO?)_yu#h+a;-$JEgllj#`D^5YKIW*JYoRxPD~PW -lcSCow6jdN>5xDD~YWllGs+Bq~f0AcJxgU3_m;r5wpSazAlZvgHiJRx2 -RIJG*Zd;C|YRw>VGwGA6lbV|spHyviO5C;+NzFRZgkJIF4kHG7#gjWNgjYPd4^W!_j+?S3H7Bi_lNMd -%$usr^T-A2lxF!v!NH=bmINzB#-8OP$+Go!d*DXG@)DOPym%onuO?w#`hP(@CAvNuAS4ozqF(t~6=QwwWnorn840o|Qd788e+dY@z=>r -;oamk@E|wTQQI}ovfW-NS$9uUH2_*S_hxHm@0LfQlxG}-PDbPr*41TwB_{bcF0ZL&JStgY{Lybr-`c{ -ZjXgDaqr`{noXS#N>g`D+ctoy8y!qt{Fb`0zSQ}k)cK&)`JmLrc&Ur=Qs;wG*IR3M+23kA-_h=}-`;k -`rqg!KciVM++Rk*^&UD(&blT2z+HTCbojHBEgh -@NIAz9ls@om?{x1D*l3#TtPQrRx7+sK>=X3hjNXM&kC!7Q>m&756i&Mq=%7n!q*tY*I}tJygdnXAv4t -IwHRftIoLybbTwTrF?!1}Hs^%^n&Do>9zW(90VS#RY{YLdIt5b~z`Eq5M5-gKK -OyGST^8-C@9t&+K$$(AQJ63X2awj67$AC9emI4YvjU6G^#?YJ9h?kZ>QDrfGTZSI_H?kaHZrZ45r+2$ -@z$usNxbLN>w&paI6EihAfNTAzr+Eweqxy}OP_7BI`3UNC)VD%^$u1%{X&PO -P(!bX!JaQ0U>rW^=jQQ?tN9IS(gx*vs9v*X*xM?6sFWanzAhnOO1g#$|zS%j~*sqzX4@yJ%3tLk}m01 -v&|1Xl3E@O9GMkx-tCl#tMNAf#uDHBgKAW#KM+9f3y2`Y>DVEcU`gqD}W!~*kTmXa$<0YkQA<0RbXlD -!yEhTBV9$q^xcOy4w=hcKdMM5&g1rSSJ5zw_Th~)_HtLzQp$Uisc5O+o8473*BL9??ix4!vB<2ekGh= -yh`L-iGwQ+|&qtR|D6*<5i!xk&PLXw?QJ3G)tqYUBCVTcN^4oj6bYir`{<5))@}k&&JPlATfPmhVTgOH)R%%Tq>AHZd_*`EN{}>|@vdmPP&--R -$JD$p4~igQM6*e^KnW*{is|L0Qzff8KfH&`RW9suKC1bKTvt$W_!z!R -hWP|x$&Z+7SNEQ1ZY@M3N)e!7P|40q6|oPVJ}?$ta|@bcYUO?$nO{J5@u1|i>Y2XyJ`4eY`ETL)NtL+ -s1eyPGHS&BS#AU>YPfOys8O>4b=2@y-*5p&S>)fV;p%$B9VJ&5`Cs&vui^3=Ws%$Ovf&0mqlQZtltr# -0H{1a!Ws$q8={3~sa@D=*Pw;3ijCKB_7P(h#x~U*#k$(xV+GfL5rsfiRMZ4^3)byLlHog6}{Aaf!=U! -X>y;`yDEk-Rjy`(JiSNV$Bs=CV5@&^R8>Q1UHcfMg+5R4MvFel#gC*GwciIaWe<(2p*H}&-^tvX4hKHN$DH>O^XY2jQ)>dp{~+ -7%ZrwkvJ}(kF>&y-Fu%N%P%t+svqqRiLtJza&`be@O{e`s;?rO)M>6sRZk7yOm&h?HVOmM1Dj`Xvx3b -y;hO)L2axao$T49C<5B7CtJc^>s`U^>thk^>soK^>tDa^>s=S^>t -bi^>s!O^>tPe^>t1W^>tnm^(A{fw^Qotq9W>RND=j=t|z6wMifzB>XuUK>#`#1>xv@k>#8E^>zX3!>$ -)Q9YgCbIecLIOF`D*Dax>jWVr$ynRr}D_>P|_aB)C}oo$~}5 -GvC13a|-c=BE@e2i&4z&ggN^a>X23S#YYqJs<^QCS@jSf`}i%PU!VNr?JEAHF7TS@S`dQ?l -s4Se-P0wn#lF1mz&SyXhWQ&>@=RR=3d^n9=kqX&x>MMA@lTaT9a;y4*S3j)hdCNJ$!1SfoHr=og?8i+ -9qt!S9_t`!Y)J0~xx)njI-o*5-3R3fG|}LgUS%4-qQMtAoZ47B{xF9tOOdmrX*nGYmBXZRfm@)*epQ=QC+?x5!XXejh$+1 -vGV6I=P^~HCt3MkYF?pAh7@^uS19ihMPA+&%KNe+FYgNFeN~Z{cZKr4uE@)~LV1rV^75`w-V=(vyepL -Vdy2fg(G#7#t}edn<&9qGRP>f-&G&pG>!*VV=QW1sUH<*hE>pZuKHC~tM~{_y9#Mt -Q4?_vb(7>?B@S7w=~>y)?pZ+|*;-k`kIfBOTX^9JRu{@b4soi`|N_22%O=)6IBtN->VMduC5 -Tm8516Xy-eTm84&W40`!yw!iZZDz|N%3J-nAKlF{$T&Hw{@YJn$uYb*Ija8KpBkNGU~zJE(SJ*L)Nv! -!DEDVe=NONi990+JT;c>ysAN=KeABB08|hAts*879=|(yB(w!Vt7w@)GDT|995U=4}{J+rZ -}oD*PjWUb1ZRGU9MXnP!_Sismpb{+?GYGZ|ZX0Mz>`V>zle24{-WoEyopd -8E?3o -c)7#JSx$<*oiZ?>srIcz?imUQi|K;@uk8vWO~C7w`DLvzczqoT(5RRi-Y!wSs3n4FN{r|@&r3+AsT)b{H9B(*)}u_n~^>ijgdJ?66})b{H9M72HUwI -ikr-J-^i8$->(wSIddKC2>n(xF%N)FuPvjJe_9vL+n;2EpF{ov(?>+4^-Bb+=JsKUvEaQ ->$Nw-Z=dL_;1o^|%O9yS=(Y^xAR%8MuVe19o$$D;*6P#?4*%qXN@#FX{6anBh5}4Y5Gb|NCbZML>&hAmLZXEw{_NgW}C&gW`X4(I6WQmqoS3mw5K?-%wN -sdRI}>2Vxkt;yT3DG6TUo#*viv7Y1|bCVs&FN=bU__YETTSZt*a(lHBFBpuYng=_Ri! -gfnih>}k_m3$F9^oenLWWB%B3?qgp@xa8jj+3c*5Zl_K_bMkDs67}Wi#0xu0L -xQHID>}@EF1hy2$0;4Xa6`>V{p}xc(*5uBb!n)jPV31VB!yv7yhb{Tdy24`_3<0;x{bkt5`3GGN6*m39h^4^XLY;;y&qmu#~of -O#Uq`*ce1-i}k$|Aeje_7;XF!a~DoXd0j1(!uO^&CfTTf#U-Z18B+nev~~%usiM3lw4m3XfKuFaHUxb -Q$U{a1Gm&Et4x+w8T}pyUNWai7S|wHnn1vq6BEQB0D=WuEusN*tqKEQk6w^W2(3c{~9R>791-G23%1P -%(to_SZ_^1u->|YV7v_l!E~Dng59iel&b4065l2B>>M -FsR-a%Bb5OhYpgO@aIAk$h(te76gr*H#0G^<=Q9<9LSpopszD($`b^EBkQ#laZcxboJku~J4X9~Q$N) -XlG6*@KsLQY%%*vwxGXiOLff(uC$>BbTNdEU -301;pKXD3ljc`K@jk>20^~hDM}#T=M92%UoZ&5ebFGu_9cTL+LsN2WPfT91pA6Xkn5`k!6IHW2o~|WL -9mE741z_xX%O`FGlQV7w+w>5-ZlvOdPh+TeZ6ZC^!0Otps!yT1bzL|An5B?20>rHHYhYO%M~oW?_CK( -1M{qc(7-GPT@n{|-15J?H#9-d>qF70R}dPY7Zrr|=OqQ9`FUAEXnmwxUB!yGR}_S{=T!xv>3K~-Xn9^ -&&>_WAZHJiPO$9+^KT{A?_LhR6vbPlkmA#`N=;K`lOYeABf}oFICoDL@&7u -yKHS3Ufu41yva|)^*YGPLFP!q8_PHSS;=ui{04hf!W)*-=D%{rtPtC-`WH4!W2v?k*CE3JuGEvGdRC# -`Eu#ELnsiFwqaCSui`)rb6OMgrMDg|LA^sw%o`nQA|}~rO~e!%t%;amqj98LLl-AqwlC*9Y ->C@KD^3uR{_uxCQWX68j|{1U7~~S%3F^qBGlRdqrqI1o>dvz$i|j<1*dNbZ7P;SUV~@2*7cVNpoREt{ -iejK)MVN?jaYPYjVO+eVs0MUd5$0iByrKw`5-wg<)C9Vws0DOgQ35oo2*bM<#}q+-7snMLMR0LKQ4Vx -N5t0NK-xGuZt4BjC6hU7@D-}UsL*0s?uc01A(AQ9}BIs+VPZ9Jr)UOEo8X8apeGRQr1bq#yRs?+wtx* -Jh4XsrKeGRQs1bq#yR|I_xZBPV#4Q&(@Q(v1DQD2)CQD0jWQD0jXQD55>QD2K|tt2e$c$7qWH&wbrA5 -4|*R792TQbd*RRz#KVQACyQRYaBUQ$&>xDxymFD{}KJ+J4qq+Z~h=x9e2+Aw@1N*GBT{))^&OfpA$p2 -l7|93~@uP?K%~7Qjr^WZ`Y}q(~4XYwOyw|&MLA?v&tgu`l{6(8L3;^&>$mqORWbPsat9xZlkBNi1wt7 -lH2I1ETXY!i{snbHqzohRS>@S=L*8--c;|7y!b73?wD}(Xjq-Q+h{4~IWCWe)v3FUmSUdZ@@QC{x!Xl -4=BX}^hSiC?U6f*;=kjP+owwUXsVsu=53AF5yC{`KF#2J2)@~Q2xQ#VqkA~GryIquGo-FfdSZk}>MJe -WqGLMGUDZ5>iVxA=PXn4CKFYgxRtsZuXc&d3h(4x4 -KQYYg5bN|Bd$LV2sdce^&lJn7}p@Hs_Z-U;P>L6MhtN_nf#b --OmjJkjORu=-E8Yg5dVTpkT;Fz=}iHLSad8>2TSizsh(@orKP5kEC3PlmnNkuW -x6-5=G_Y?&e`;BY~U82x|`)0IHQ5|TVq6W}GMNOblMWM$$-D}=3xZdf$V~SFsGm3%>p6>5flmYEflmn -Ru28B-#=yxHTI6ZJ#QP9`)szp^wc+>H4g7WU5(&;sO^}#`<(`&CQ3M!pmw_Q;UXpf>g&^1LtrPJ$IDr -y4lQv{W+KcxsN-Jr@r!f|?o)?y?ar#G%r1eI<)q6jM8yHgQVx=*aKK*DkQh*kt79H)=!%Ol}9eRPc?= -8m#sL0{L06+vIu)mLF1!Sr?YRai+dJ$6YE^fhK)1Ns_Ys|fm%P4{AM2{%2 -V6#!epP0Qw7F}H-9p3oYFbp_M!^(YGZnpvf$hb`e|R;j^a(ZS4W{VuFJnAvtgQ3Rwi#K{#iI|dY0fYi -)!g2l{^ql#)k>P2yq#mr9i_gL#Nvs3FKRy)k>y{IVYYi6Iy5S!S|?9)~qo7l~qHLnr$HFHj_5}Vk~oH -O4AeVx||P-RS``oaQ?nG4$#L0=ctV6pgO#<&!$yqLLY9teHu0B38bDe_vEE{K) -tI6dkeWHxTFkE2dWe-4v#T|p!a9rD)kaW3U$bk@Dhm3V-O#J30FsnJf$@{st=cYQ3h?aKbdS$bQNj)z6W1r} -$_4w>(RN=M8`K&9iVQY_Axm3=eg0&6d3Z)m86#TTNr^vKVKYTcKSVj5N)y(E5m>rnwdR$r -x*zTd6e*%lqfL)o?N9G&i7;ESC7s4XB61*wfsAd5s#-xT2u1xmEhfSn5BwN-H?VqUKhqC&2QNxz%bh7 -?YY?t)Ui{{Lih{x`DB&x!vm(L0`MIDZm)j+#!vBv8&;y2UvvIhO;hfG1;Vy=AL)yK-Sk~N-iWfTq%;``R_b;5gtU(iY1(>_6P90-gb62z;V&}r -SQPmg5xaP*xmXT(eyP@?EV_kDM^fj(<-*ZhD=9y=Az4`_|T7})%P`K_ -R@`R%G@jD^kb(7J&g3g>retBx_T`911Iu{+`X9t{RDHa5Rkn{Mn(I6r7!J_p*br~uN|4`XHXgPIS(3A -6JD)QB)#X)yFk5{7toFk&kT!o-JvL^H&!5#c1p{jH=QP8FS>y8~`WhHmo4>9G -i<#r|rnij&w)s)>K0kOhXaOB%dGOpa}Xhoqo( -FpC8xmAO_;*$MusjqkMis9V`aq<|nj~%9ylPX<%S({)Rdt%q*Y3VcyUV*Hk*~%~k?CmQ@yoSN*#sL(` -5Yb(HtoA*Kp2CZ~45hFR!5;4))s|bmh^?i!$m_ntiYInLRi@X@z*ifa*%}J>|*}CV?f} -QH#t*lM9N0}WND~m#%o9bRQ)xAcj8||oc6}(|&s)xyr%9Cw*{#lFcU~VO<_^Xh}o9tbo2%9bTu2h5>f -c>WxVF%*gZbjICxc{so>^|IoP7!uh?Cnv6Jr#R<6=Cbk-abXxRI&e}BJ4TbKconIU-l0x!hXa3BZ{!w -aQ`Jm*lW1|vLGHk+q*{*_0_M4`WjFKef4V1;Zd}`hZI3yy{i>LU%hJ-QD18nQD5s6QD5s7L0`Qa6hU9 -T8x=ucy_*z4U%i_ZL0`RF6hU8oDkvUZ+jm$I^woDn5%kq}R1x$g!*dmGpfcHaToLrucR~^L)pt@6^wo -Dt5%krkX3o<$WR$SNO;aZO)XaGbN1vKGkGkzUuL%0;yPydA>Qh_hsT_T3%RKtFPi?tQeW@+;2;4rkWz -LB1Q(Lavq38s5ac7zSM?!ly0w@T!Vg4?TSb0_NwtT=m*t!c(iV>8c&0MP>qL2 -?DnehH0TG_40zOT?-fO~D~%X3Dodc{fc@t18bl8Bkm1i6#U35j@YNPpc}AD(Ty$h^|s -=F^?(f*LZ`6l=N%7!6Qog)jD}VNx!y4Jf5UqTOuA#(y#u5N0anx-RHq1{n~!HojWUj$CR>yH^qB!d%n%0$I6luBjOyEBDPc4Ly*Ro86|>1X($qty7{D4>YI^q|q_5a??lE@{ -yIB-ly#qdIUO=rxN+@K$QDtrEpip=m|bkhW9^E7!h_G7!&pwSRw2)uu9l(V2yCVz&hb-0~>^E4QvvwG -q6Rt!N7!Yqk$>mCIj1qn+?new-|_>BEG$7wSv7O{?NTkVFZ2tVeL@^q0c`IjvEMl{^7(b1EJ49T-;_L -^!dl`vj#$+f85?{AoTgi{YHG)sQsBgUOZ_a^!dl@mkfkH|GmeEFM>Y*eVwTZ5%l@*+pTP&&p#fq;)6c -_xa;U2586-7h5!3r%bkafW9YKgxtVpL4^941_*sj~SI!pwHvKE3Z9u8F%3?I`dn|!q1r_u7;~u7KF3WpsY0J~13}pm2zNY*q`bev`$x>fF;Q;& -Mn#CHu8%9i#4DNPRU*tHIByA4fbOt*lw+&1RKRxm4wfXYf7+1Y+XtC$he^ --#EfxMNeCI^mXZ)LR=SjgfU#m^fDK`d3_`eAF)|3zV#UZH1dA1w0dpIg(2bef(9~?q+=eDuW9BwAlN# -6AXYND$*E{A8W9B$CK^QZ~p$Wp6ISx$_#>{bOf-q)|LlcBCavWt;rzohajOhd+$5 -BRfih{n%curB!R~gMI3i|qkOad%X&{rABDGK^3<2Xe@Uu6`hDCnz<;S>dZl@XkxpszB1Qxx=7MsJFOz -RK85Q5&yu?c0%qN`uPExbBaG=H8&SKkm7x$gUx(#K>@%K5&fmh3NywP4=9%#v^@U`oJ;L7iFxb2%cW^ -sBx1$XSHOcFLY%`iO_StKB$NzaVr&Zimlc{q%U+*X^Ak!_M+Adq%U;NZiz5{JD@h%?6l;d5@Y_6&MGb -urq~`ltq4+=_sQyMQE8ftyhF8fUB=7!u%syU0x!z%*RwI$aIu3m?C64PH0_6rek*7RYjP>E{h -^cgz@&3rxYR6(Q9OgOvie)D=zaIQ7vQs(fmPeY%u?*jJOnG$wB{aMVJzO?ua60rq(FJDlN@1#R=_8n< -&gbn!b8m5%jfD#f$kz)9c0*VWj)~PDRkyIrCebVrxD*gA5mKS>n=;N3@i8V@lbGw&|FnR0h(5Fhyzl= -srb3r4^0WFhi-L@fs#5RWx41{G^J;YnYx?)p!lFld2l8VRBMc<2B4ps%pH3sYz9h*Dy1ws__~oCRL3L -f*z|z20@KgBZHu#s*yp^P)%ikIZ2UqQ-Nh?JuXgFDPmP4JpD-@ZIW5v7^9L_hm&XkhXo;SzxMLTW4&AIn}Ms89NM2bx$bbT%Gp>VW -)wq9*w53CFWF*hTzz7V5&zuTG$rTObUvzG3Hc{HgMP)bE-#MF>H=G)uVANw#S_6(Fg|{WKQ*H9}HV$P -W5OX44Y(5^=NMj+a^r)Y*z$*^=O2H?GvVYG@Q<%ub%yipsyYcAPeeC`xOQCrIA}feW_Iz)R$UiL4B!J -7SxwoWkG#ucvetfYOn?Mr3PD2U)oD7s4unUg8EWhE~qaJ1qNPdJX2f`gN*7(|@u}`p^*QI1) -(kDH*n(VDGf~}M)^q5IaoB1bHQbdKme5kf3bo`fw)_PPKc|X{Sf?&LmO%ITLd7wknd)Wd7G8e6Uc<^Y -v{1*j{zj}>BMZ`AqZj0QLHQGddI77|<;U;2@Xm5g+$Gm6*z^*%60?e3U8oz*J;ba+V@tS)xZ*BQHN|X -LRxBZtn9a+8iH|BVTbR}EOWDXc&BknJ)|k*h4)y8TutWvp(LOyJ7pg?BUchE&!P74-fwsNOK8Fp_riB -a6x-VsmwC%CKFCDG7ow(4;T-~U2=>;mW3d4%6?p{U~kDILT+^2f_N<}X_vP2tLVXfHl_#tHt>^|Xsu_ -lk|ag7h>{P*m7{Jq`pEzuHISWottkhxN63VrNrx99~e`IX0Js~W5%`UKZ-RZ_j6tSZ;^0#=gU3m3en7 -qF5He%DqTsj`ynTX;`%0jtMeE6i$_{KVtut7fZ_-tOdFjok(2Cs;T3f9Jl`(^jkY8v83Xx!`dP+^84S -^@1~|hgYdK^n#HE2YAB0Ei1->@7%t*rX|;yaHE~h|#K -ryFi~%V+}d}Br??tSVK-fajNbiv0igZDQn1?$3DtLBekktFuveG%uld}oV5*Kt*-R39Zhu)yKiA7St< -g-@NL(uF?b&B=~$=~v11s-bqq;4$8fBtV?pnA$AZcmmSH%z=~z&7%Q2jA<^+Qw-N;D>gSwFu4Tg0iCm -RgxMou^w+KrraFt{5z@$gtWFCXOSynv9S^AZZ0jJ_62f3_>?DNY-k087t|(~pI -YWXfm%pnd=!X@bOxa3<7i6-7a}FPm?}=*RVunN^#V -Vt{eiIh!76aCYtqGbmKSaPZ8o4KuPcZ%Hw7b@24`_{ML>_n2Y83WkV{7BNEnx*}xbK^KCx(4rH-vuBAZX5zptv`Gt|aK~bwld-A%mbdLttKpv^w4cFZc^3@PdZW3mO#E -^_n3tFGGq>_we+>+u9Am!0&4oJyy~`Yf(_nPkyEZR;AGbhI*gXiid&TXUlqJJh$5jxhz6>p=}q&cVGO -KlAxHE)Fd#n`_h|Af?{5NT}jZ(E3YW&==LzG`^q~)FsS>g-h(mSSM?1rr2Fa{DlrV{zWPfgK|3ZKz<} -;+FKb(Z0o~W$Feup0n=dJ`dwiEg@N#c1ex`(>9S?pg?}lM%bc>PRw+#vUdt1#Es%UWH{cufjr^S7D*dtFVw~iaW?-#U13y; -tuj~aSJg5969-53^;NE!YFX$B!qF`*hvT@!LgGN#)4xfA&dscPC^(Dj-7-sA{;vjVN5vo5<)J;ODO0w -_7XxL+)D`a;=P10HQq}o=<`MGl~lXzBFR><@H=!(Nte4SsW#nJRkubqsk+7~sk;65llsDFgj`ie-uK( -xD;3%8YRaM*SNABgoAQ)JRb1Vt$Zir-7S(a}fFiqvPg&H&)vFcR4Rp$)1Xr(BWVh}qi`uw)y&}7#PFa -NM_q#VLvJ<(JdX4hltjNo|MtN^lgmuPLY>4@=D+CQ4isc*(-}6! -9D6B+%bD)5hS=rJ%l@EuPlND_o#=^WA-GL>v-Z+c^8DdN1cc}iLWezkoTw)aVPPWMG*2Hbt3L0zOo3F -dXG90cM@MxZ&4-cMBGVyWf4`PPQ;zWR~Atv>O|a0d}R?;qE5t}#8(zk-s(i$u4iQt<*iP{o#9dz1$p0 -Dqa?KFch)JfCmSX8!uA)EhHsP`m>Tizz9Wj9NE?_2@$J52ikwIrnDy}Oz7vX^NE?{v@a?`+ikwIrnAY -&^zB7uPNE?{E@a?{Hid+?LV3xwS`z|PQRk%^11VMP7mxO7OZOFTn~WIHt%;ut -Et=DDo1lP=fC%@)Bg^Hn>uea{>)UZi79Fyu2B?4fZMW@@C{VIH1VOn~~e#YDHe&jNAs-D)RDX%hmp3D~!R?B?ycxL-?o{OE&B$$Vw<0fZMs9<96?u6xavK~}?5}ZBey~I$Ubs -waAEM^qDPkCsN;E6<=tK-jjp90_yl>CV1)JC!BIu_;Ow#}#nt1A>~V!<5tc(=R;S(ISF0Cw3u}`Gquc -%JMSXPJV061*y{M0F8;oxEs~7drZG+M6e)Xd65b3fA;@ZDXkrx*RF>h&gZ@Lhu!RT_oIyxU+HW*#*S4 -Zcg%Le1c{pz}Wyx3s8xL;kDj~5$^7x$~{^6_E=@#44p)pfaTbIT%Bs{QJ^+{w*JBcTM$Ao2ZynkKT|A8M^D+!5KtKq(}<=?B-wx|A%- -YcoO#y)A=lW~*89c!H=g?q2mZPQ;CEpe6eKxvngL>l>LMgCc_`^Ge0;wopVY3zT|SNfFQ6HTS0m^1tB -*{h1s-kebq#&^Cww?$Ch|2pQ6ezIPPv*NVwhGtUkLcHOiBJ8NN;gBNisI=j*BJ8NN;fNyasI=jzBJ8N -N;g}+L-VMhUVMnD6Dthihyy2uG?5MQilp^e?wBfWO?5MOsHO5_tH=I?3F2sg&im+wvhVzQB3-Jc&0;S -xAc*8|S)Yp(A>T6gL^);f1`nsfu`ns%$`nsZs`ciw~7Q-8^DWblvE26$e6;WSfim0z~Mby`XBI@ggBI --*5m=yh-$&D)%L0=nJDuTW?b}NFuHufljzBcwMg1$EPDT2N>_A7$EHV!C)zT{}-5RN%P7(CAQT-o!Q(qo4AxJ)g~^bO0|hgsZwp?QmRy&xVDdSau>O#ZbR_0$VI -Mg7b|B^avT3FMXA5a&2`D1^u_e5!Uj}D3mY`d4XsjyP1*KdQiMYx2CgW=VYxD8p+q<=_eP%}Y=tnl>pev{` -EmcKA}Hm^HAOh-tb3y(DCK0gA{-umX|E!jgxj-Q5q8QG$5n|&UzRvb4g1%OnPsT}|yUq#11_Sfg^pmlv!1U!!imW@^17i!p?^MR~2C!ytS$nEc&0>such${%6 -i?RfNN+SE(wo#D8}02}RJCoXA`voP@hezYD|lbGy~EVeS6h)eDMn^5Z`BqFAy&f6m+m`?{(w1TR1#?NM9c7?B`bAP -y~Ot`miGS!y{@$81|nVQTK&q^z(bQVq^G!`iR;x*3C~3nb*KV%#&KNu~vTO>K;W{f;qm}a4@{Ac05I> -yc6Bfo#4`>C)jDp#d<}Rr8idF>7ESTGIJW0-j`vqB}0rSG#FG-$#MgxT#E6~P -48X#;|p2(w4V6d_K$p`HLU5~goxsD<_J-(1t?6f+ZMMzjJTS2?p?<0;Hgn7yQShIQ`KlJF=ILXtz;B4 -LgD>^^NJFk@kEv${;IZ=XA@EiDqIGw0Q*BT=g7ikAo>$*=~wNR-a3)f$CF>D*e4(2*#e*`VGOiPG8a< -}T=K^t>X3Bz>x7Bub|TR8UBi&Ky?pB2hX!qIDjL(z(^@z8bVIH3uY0=Lgha8w^R*10Yd4y;*G;iBjDT -xGIt>)8C5e!qI7;tBR(Wbr`Kp0jzsCqUJaV -KnfWpZG`K*bboQ -!#7ZRm&E45-HQ93t%Tv5>1+*Y+pBueL3nD4^j;p@#C!XK{Ey1~uN*O&)FUt6>jiA3pakGd};O6QKKeI -Ze5y(l*`A5+OAQ9Ave+AC6tz{vc6 -mV^XYepB+$tj}`8-yUkt5YHih&0am)tuQUkyx}gytCe6(3Q7vQE%=|8u24>AnuTf8c74I{HYVMdlGjl -+j?l!X|8j@hq`^>1?8CJc|ZZfX{6Wp#!!MgX^Lz-!7vx}xp99F*1n{X9N-}TIs5}}D(r830Y_xasgv9 -b7ldWF6rR=-bQ((l6R_nE8exv~0vZrmV*kj7xK41T6h^8#4oK66kTD=c!i9U!c7pWmZaiDmB7tJE)Io -%{4A4I#10eR@cvW~_0a*`+;vEODP1RMW!>_nE^d6(NKiF~5b7WRrdumbcID)KCkn+h-@VMZ)6txg+|? -Sld2#M4cX%w$GdHI~KOj?=`Ohf4ELP8y2|eSTCEURcCFv)|kWe|S~Rpjsvu&z>=N1%1t))jl64@y!lvw+Rc^XV+>#jb-bz-Rc -3bXnpRS5ihdFW9EVAQm@ki8!T6!UL{INFjO|ZYCsYE;plNiu&=dS6(Qsw*`Wyj@O+;lj>_y;1b?{ak| -O%UF-5SiL+cbVWwl-rQdY;;DuR8DnNLQ%AqSS12==wpAUn~pNH9b;eQ1v&JI$^vf)aMCU?Mx?wk%>&P -$kT9uXU#t!6NpqQ3Q)Py5zRy)s9E~ly}2uj+xhi(HuLb2u5>!qarj)gIez}G&VbYLlKlsF>=6h6&7^#} -yBYBGiBURtrIIjpkr{{zsbX)t>Y%x+btz(1>@^h>hM{J! -o8N-ICbafq7;0{XRyGVn%?+GWgtV)iwOAsIU2K+!G{IQY+)>pR#+v4itG+PSG6;r`qcM^+-KVt-BT3W!<}NfrYc(*(NYeCL4d*$MWEw7xByHcW2u -+Ztz7lSPY`l1bBY*02xdrm!5k*J?9P3qtZptxjxHyt@N?(H`NoN<8B5`QP<8#WpnGDyEjwk1isZ=o7G -(B-j5mb6Z9R~)RW_q-WVz6nZPdzLKn`U~|Vlmic+iaek+jmeA49qm=9Bk4obi$K!H>%z+*fg_gpCUvR -n^n9VY}&3~kAqF7XCo))s)xm3)6BlTiV#(p&H)CSX3nV_#bA>eZcZ@RWD=bT2AgKa%xgejW7@sMV3Q3 -~FxWJ^LW67!HrWUUgH5yhHIi;|KA?Iy4mPdP&I1OUY%dXmO|zSa6d|hErr|OMn`XCZ8-T&4*wqFe6{fSw!KS^c6bv@a>Wtt7gH5x8=7ESR2Gw(8uxa*)rXF~5?r9?^=*xse9Bdjgf`Yy->vv(W$p -%swY?>X{U=)K*HYCDG(%gErWsD@vZPaRmk)*jnwJ(e$%^g!C!bsBGajiBONwU!rMv~@EYruh#B-)0B+Z@I%7&378?n>LIj&9BxdkRwUE -HGP1QBpU@{B*`Xb+6)l2_F^Q-#*P?Cnm?%e!bp-0D>0HZe^zTRMv}~o`vfCNe>!|fwSu9fl4+BOv7|p -8*{IPL&&EBk&JBY}->lFG0fR~3tk9Z+!K6POTdf@ -xYg879Plmr>Q@UoI1p%-3NQo+;AO;sRsR}j$K?K|`4weVvSZ3>WM`BGEqs3C^QFh|JD -!MAq{zaSk3Of5wk!F|qEOYp*!}xU%3Rht#TtMwhJP=Kl@uAzFAggS+WTUYlAygWwkipt{bHMvAlNVVD -hXo!VxN*A)Gr2=1bKaNQc0-RUz}F*xK>vd$X_c6p6H8HU#wJ?l65OxBL1kMkgVMHI2DNRo42s)s8C18!GH;SdtbVb}UfyD5Hw>!VV;NMp*D|PXpJjH3in0jW+HWt -n`xg``(y3n@G?ycv`o$s3?6C-C5p;9JUJl(HwXEhJ1(h7Pm&2Y;SO(pkw5%nSTp4t8+Om{Y=en{stMP -lvGV0W@oZ>KyCS|+~lBo}dlmw%BFs3BP^1%%y;j6z|p(MQD1LP6^&%gOX7HzFMUO@3u=xs6$_ER)V*dybiYm`09cZy -xWKpyn)sobiuz;ZKIq0mDVbBioe#ngO2al+RUJv`jys1bSl4=aG1-vzt;A9p>wFggFCCGND;(-rLhVE -&absjAg26U>k;N5eXaV%T%)fC9%z_@$wpsG7a_%jqObdu1Py<^S_vetu@0v3JTUhJ$$xqL%M;4lU|(- -nmV-UeFUI7W@;;RyrqGmZQHBy?c0BE*yuHfX&Ck}!Q~;R#QogQ=0P|SB7ISWQ@k72mt1Kcrr;H!@pif -z)}DwOvuc821EGrw0+MunR(BQ%)BQm+iClr1)07lCa -RQ7-xG_uzdU2!6H`{cJY#+j{jQRk->Z_D--G_nnr}zH>&vtD_n^OX_C2A$bM`*y@4US)Av5m+{hhbZg -#JeCGcz*t%$!Vhi*DVQBj)$et^4w_c_un`UtYHNL4Q}wd!ln!GV{zTnZ74Fcwb(zzX$zYwaiy$|{uwf6=6Jy>b)%gN056=W(i^z$C9G{1*_Udhys(9bKG+7bGB54z2}pr7} -k+x}jS%=})R%=})^--8})AlvBhl}u%Z4qwU4dnRN?W+~W%US(}E^L-ha`M#XYd>{1JYrX+pz>?`VpbJ -3gCtSTcQ2Osjd&XWz3$C6KA~WxqkeT;{{`&2Ew#m$UW@P3)p} -&6no&}k{Cp(4x<~=dR=D~n@Pj(px%3o~}UyMKdu_`;l>@8CuYW57)oRsc7f -52`az{c=cIjciyMLv*7sOx`J3zp^HoDzh%3y(+WLK-IoyN@m^@inf6INnCi}Rc85x!`Xg2TJAT#d?{n>yT6Mjl&-ZLRH@0pUB_k^Rh!9|0Cj=c -|#)&>cf_Tz#C%=>Xc0w(^r1|2yj*Pvrwk89A8fpQHxX7;$o7x^jI_+oC4YkZq*DDC%2Luq~wj<(;_m! ->q7T3?!MDD5-ZP@4MEl!nrLpEQ*EeVF9qoHu6qlns!61F~%;({I2$AJ;fxqEE^68(M5A%{R2zP}*;x| -1=G3i~iFzur2ye)4;Zv9kSn$k_{-M|FrKy|7qWa{?opT_)mQoWFt$a?~;iB)OShfKh3)&^q=Nk67iqr -UBrKyccK5Z_d$O)L4e6WE?lK`o7^v!+J(bs -Qiv!ie1(w2_C{vM_Uxz2o>9sO{hgvA|?3o37C6KOsLlZRa29J7a9-@MISfN9Fx%mvubL=$QI*qA}&`q --F4e$lVkVL6^J3ViWEvi1>`U5brex;(+GOVYpg$WrV92Os=KJ7cZF8M-EW_M~CF-te#c-2rT65`QnERxO -H21;9+Ga49Ceqvo7i*gd3~`mr+y@tX$=;WcnfsoSi_4#qi_69S40}p0CoekJT@0$ZI#EQO>jVbe9;|T -r0W4cDsZ9`Iw5_BzLx9EWUtTqVD#zlknm`rH*UN^>+}9*C_d$!J_P&J7+?TRunEN=QVeiXWGt7NCnYj -;Ecuw!jIHGt?@5?x%c-Gz*lbQQqh3D;kRWfrQ^mp0bS0^*~NuXoyYm%A!Xoc!2Gma=;Qcsz2MDdb(%8 -Vn5#Dk9c>_xVbIY -I;$|3hwEf`>gO0X8oMF(>_J^}dqqAHp&CYVEw4NfD`*$ZC -?GF&T`kCRvzs_Fe{=HdB$+BootTpIld}lEkpn0##YoG#_K{)vSv#`&z109Y#&2SU72D?#2GDG-}pm)^ -wtUxwjrE)!)V3&d1cqnWI6M%XcdEfx2_?Bkz`#O9jl|dh6eV@kku8}EOD&nimO)*Y3Qva8 -|o|Uy;Y_9MI3v%?kt6)FW3E(n@aVI8WKFadlRMRtx~1t$sB9(vXT)MCo36Kv2WGX=?9iZO7)#NveN7H -%dwT-(vGyY%Lt15A{{5OUnHX;&VD%_(&xV@RcgMdO=@kQqauB-<}@YgbKbs{q38gPeZbl2&(A$4)F|YS#U3yYjT}Z8NdpzPBx@A$PC#TX5J$4dM#ti2|gZ$+M>lrQ8w|51vfFlX&=6a; -Ng>4{Bw47MnU-AA1G)ng8!wUxd{HZf)>PJUO55Ut|$fCq^J$FSy2YGMo|v5R#5>Yi-vMcah_VSS`q8wI -z`wUVa0ky6`&1@sz4hR)m-JM21Wdff}n_hQxMjMFZ*quqO3y&sdci%T4zhFc}uKyGPqi(fNG+(P6k&C -->oK!q>D9;TB}1fuO%I-c`fZw%@-0dOI7n)*0Gw`@{ZLUvwQzi0H*E!Ck0{3?tfMgrtAK-f>7oDRzc9 -pe^n5)^4}B$t^8=IK(^NT#Id~YR>bG^P*wl+UzG%n{Rag>WB*Y>(Aa-h;7(S}8=MoZz5vOa2P-V&glM -(+hT94^Z&Y!$I)R2;xSluaxLW-JX3jnyqE*(!ZR#_S(s?{~t1Q87>Rpk|c|54Atc}~$^K#nk3d=aZeT -$-kw<$w@=gUJ%(6v3R1OeRcDnX|8gc8m}6oSOZm#3646Rm`^pOtXY$^yfxuqcJppXBmAcW{YQV?3#|E3`5Lqg~x4&l##R}l2ETtU#sPZR`wJiBB-*!fJa0+Sz}(}xC?J+C0B>;(luW -iKiSDtk#mP}$20LZ9@f3W7^|MM3C~zN#RY&}#~U3B9f$xZgJfVAjH$3WCahrXZ;7Ed@bkZz~A;ct=6d -$GZxGK7Ots=;Id(f6F7Lki+$t1QP9j(&zPb*(6AyTb-NEKLQ=Q;h$199yN@YCqO<#iA|yJyPbos8v&Z}vvQ0haw~%e>F -~5aGXODC}3M?_6>KRvrRA2XDMbKCGQAN;K_i;tgSNBOp&{y|qMbKCG8Aa6BIYrdh1x3`?kRs}9L=p9M -SrPQreN_?k)qPzN^wq6Z6xorfZaFfkKyqZN`#nX_SC5(lroBw{^eTeBdemI8oOnvl?k$?MuQiHjUuzX -XUp%RH?eL7WJhz-J-tKrd!n4Sw+;BntO}-Qgd%nUux4Wn&56lG(kBYq) -2>*0jami-W7^sAhk-&wwdf#0b#1mWN){k8tzg7VUo>czX}L5Y$kiP3BdH4$zF91NDof-YBP_CHIw}p6 -{SGxU@@g;vR@ltq!lOoRZo~qGpQ#t7f3ly_N!aQ9GS^pRbfhfsnbiTuK`8Sm!4%(q|}#MBNCjGy{i>L -U%l!@Q|e2-Xi9x)u#{3?>LM`VmsoPPwzI|?pcd} -2tC6?w+_Ng<-yqn4>Y4r~oC4F8IC9S?SqomadWR$czfsB$?Cy;qbXOy)1g^ZF`zmQSV>K8JXM=r1m_B -UG1kbwV<)-tSs{f$aK#~w+)Rfme@ufNechJ5~Sv|?iE>m$=s$lcg#fd#LRwrR_Ofq_T;YRp*f`lw%x8 -LM3%^{X*svFoG$t%^c*ezZd)7c6ysv{PMMZoNa))zxJu$UH8yW4n*bWY&=cl^sveDsPLe2p^X<{ZB5W -o&Nv6zN9;DB)xX;U*Vl#apS -iDlbiDGPUDRFetW#8~2O*&Z$}`Ze%htzWc>+Zy-SRz9>#yk54-7l<~`0`?7JQo{Ric7pYf7>UFk#Nu= -wNFV+UvRNgQqP&wPAZdrr}Sstku`Mp_b`z0$a|FTJ>eG|+3?8`VF)*Hj)%G+no+#xVQ@GgNVg7*l_5 -d4n7F@pCAbO=5m&?ESez#PFx1QrNBCa^^C34s-YPYJ9MTqkgX;4=an1fLVwBKU&94#Afpm;~{BMPLxm -*8~Rfd_!Om&$k2y@q9;M5YP7n2J!qrU=Yvm3B-6V?j;c8xwwx&jOXHh0x_P82MEM?E*>NhqCpW696rpnS<_~nxz(^NJILQYfJBnUZ8Ws@M}G?h()kkeE)2|`X&*(8W3O=V3GPnyb_ -Af7apH9^Y-sLZxIvrEF -54B;Fmb&|`@U=&!+K?6d0Hm+_m-KRLd!_Ml;-Y-zAUnJDQnA@vbOOkjk2{<#xM6tM%BpXM> -XOnDt5{&@2iphyHyhTz9jN}=B0)^Wu>hb;c1mw-d7Rnp^Ef#HMV@NB3sGIMe0TJw=zaYUp9%T} -pIP5aAWn7b`v}CTZhb$2IMuBmAP|=>>jw$MrOWyu0&(fGewaX9x~v}|5SK3N3k2fQW&J3DxO7=RMj$R --){hg2OPBQ%1meC;MOJTZL{Qm%h=}W1fu^k^-&fn&xQk4UUF7$6 -k>9&}UXtoX{_d_vOZ6hF?#`}el89H8M2w!DEuO7scWHf@S>^T13bXp?%lN{zzRbMavM;knO5f3DX|dD -Mwq9rYFNqjTNs{qHjyq-E)*G9+C5c_FCP{AlIkEgplGgTL^2NQSdYx@w8u=Y*c(FjRdXul++4&eh5!# -oT*C_X8k)Mzj_NS(WS*Z49He_jGhJwD#QZFqmrBbVz_GOWJHpP?Frcjc$X2X)C5lW>IN=3Z1zRYaA`Z -BZe>dS0uWFz}Kvc!0OeVL70mfC*KQrpj27Wux+rg&yO)xIq9JM7Thmzkk7$;^wecgl>A(3eGi$2j(Vm -Io0pvM-DLUMqC;Wj4h#XFSk;bcpnew?jteBk|26?K96=_oGdOS7T>}`o7GzZ|v<*I*#P;*qjsU%OXSW -xUundk?(W0+2HnNc06#6jax+EOMHYcJ`!JVr^>|Jr9oe2v1O_3$N?;K3YXk-%zfNEf@^3>hG89EL^}ft5B}%Iu_hm*4? -91%XR$7fYDXqrbm)RvknMD3>VyA}EYN>shovKUgh4f{1iBOIse>XCPl#wZj5TBB#(CA1VQy8{kN-la6P+}XsidAH1=3$UuMUHCc>*G5|1 -X5A5CP5wR=rA*R%P%dnGp4i~L@DTr+9xam}Q$UP!WggD=;M{M|^NH<7JlYgLt`jpR{8rAc<5;GlYuyz -DyrJ32d#r&(#*mqxY>>DZh8OUE{k`Z6;PrI9T|>c(cg&mt;PHcrjo9Y@+X_I7;sk)^D!?0D}h>-GD}1 -%EeKI>?tv^dGZS?#oOU_hm-7@|6|Bd}Vi0zG_WM`pT*deVIuiAF&;MZHH1{+tlsL?C+?Z8G?Lmca43S -Ng=;$MN+-o>}L8+ltzBH1aA?u6K#$-mfjNR}1QrP1A+SX7E`b$ --_Xw;J{Eom0g7*n*5PU#ji{L{7I|LtvpbO&pn7|;OPY4X+`INvQp6dh#@q9*L5YOiX2Jw7BU=Yuj1P1 -YZMPLxm*8~Rfd_!Om&$k2y@q9;M5YP7n2J!qrU=YvmLohN9wxwBe_=vILJNsmS-@ONe>J@hU=&Z`??Q -^SrnVo`tXP3~vi;Sz0sWp#GT}9rR_7#ySshHR&4T{K8v1sfPx{mzaI!VlwSw{?pzRWD~>%^PmQ+=8F9 -d%--{yOr6NFCV<)Vpt*r+Sg^+kG=R)w4^9dSYFHdSaJ$^~5f9>Ro@F>V4tM-%y!Zt~8OpZ$@^`Z6an- -lh~)P`ZBYPXcEl8Ylpt+|G!NYI;?QfR)A|s{-;9!|3j*j#40_aN@=XpW2%(JDm|e}<5;DqR4Lf~2P-i -7`hfmp_Rv#bW>zUpf@;jQ!>?_}p(1nb@S8}5#(abASyX5K@-2}{UF@5v`|-r~@J(FF7=KM-jm{=w{57 -dv2R4x>!J4$Qxe#%$nq6mv>e+dr-?7^E;geQBC1jxL-w`tK^Jjz%r2IJ{0~7zAkYNGv4}=V}|34BkO# -QzgWSIB=iI8E^|7Svm8UJ4h8MymPLI%?QijaY=|4PU}(O(lX@bWhy0#8o;mXIMnzawOb&+iEt;`0YWh -WPxEkRd+*M#vDKKM^v-=idn#;`1Mb4DtChA(i4NJQzhBg{Pv3qwq)+aTK11B96ktP{dJq5{ftqk3kVf -;Tb66C_Df~9EGQ!h@0vE#8J5CkT?n#9TG?3rbFT=ybOUj3hzQ7j>4 --Dh@5%=#8J2xkvIz1A`(a -8Rz%_`T#85>g*y?6qi`i6aTIPuB#y#`h{RF250N+u*C7%|;Wk9#C|rg}9EAs9h@`u@H -7i?6dq+Ej>2;+#8G&Ng*XaNun=}r@%qe!k5i?>}WrdJ2oE#(ez_Br651bhz_P~KLVow$6IXEOnynz#9#2YvsM!bQu -VZ<9a7)HE-Q(?p#I1)y@f%9O*8#oL`yn&NoG`7JRujoboUS8zC^WjnvtTq~RgV#gQz*if^yum9WXvhO -8k%m0b4~di@8WJhtjt3g@;DQGl^5Av{BCWkuslgi^h^}y*1JM=ka-hKuE^;8!!YvL&TDZc2NDKEj5NY -A^1|luo+(4v-Ya58PaAyONwvh^FBNfg@Dx8f}I2);OHd5hiq{7)qg|m?gXCoEPMk<_*R5%-{a5hrmY^ -1{3NQJYN3TG=7&Q>a%tyDN$sc^PZ;cTVC*-C}8l?rDo70y;FoUK$iTd8oiQsHc+!r4lNvy%#ECl$_4D -x95EI6J9uc2eQ&q{7)rg|m|iXD1cTPAZ(8R5&}SaCTDR?4-ikDTULGl)~voO5t=PrEt2DQaIg6DV%Pk -6i#O^Ug^t}w&_Mn+jJwPZMu=tHr>d$-+h_VF5O6Jmu{rAOP46^(j`i}bcxa~U81y0mniMhC06)yiBc_ -HqEt(lDAm#>O0{%}QY~GgR7;mA)zT%w@;O)_${YK4KBgp1mnccorApFtX++Ze3!?N&mnyx|rAn`KVA= -eF5T#nWRH>FORjQ>+m1^lyrCPdFsg^EPs-;VnYUxs?TDnxJmM&AOrOT9R=`y8Sx=g8-E>o(d%am&AGN -oF&OsSSGQ>vxQlxpeh1DbuA(kor2^h%d0z0ze$uXOfd;>L}YQt8G@sdQtdRJyTJD&1HqmCim|*q14d( -%DnWeVI}k-B>A&Zmg6>H&#lc8!M&Jjg`{qoKhN{eH6AYQyQalN@H|RX^hS(jnO%!F*>I-M(32q=$z6R -ol_d4b4p`$PHBwJDUH!Nr7=3EG)Cu@#^}7#7@b!dqw`8*bY5wU&MS@4d8IKruQW#ImB#42(iojr8l&? -{V{~3=j1D{$;;2_jqw`8>bl{;7N5MlOj^;{l~Ooer4&wADTUKjO5t>sQaD|u6i!zuh0|3^;dGT!I9;U_PFE>~ -(^X30bd^##U8NLGS1EwtnrJ6A( -N1cjozz4-sfl({6YZoX+DT2clbUEJHPKFLqMg)4JE@6wQWNc@CfZ3&v{Ra>A1O`LkCZ0rM@kd*Bc+M@ -kLjNhDP`1;lrri^N*VPdrHuNKI?3r1rH}eV>7zbT`lwHoKI#* -tkNQNN|fNulhvkt3FZss!x=@>Jz1}`b6ogK2`dvPt{3IpDLBrr%Gk@sZv ->es#I2=DwWlzN@ew_QdxbfR92rVmDQ(8W%a32S$(QhR-Y=B)u&2j^_fyxeWp}apDC5qXG&%DnNnGOrc -_p+DV5b{N@ew#QdxbbR92rUmDOiTW%Zd-S$(EdR-Y-A)n`g&^<$;7`ms`3{aC52eymhhKUONMA1jsBk -Cn>m$4X`OW2LhCu~J$6SgEXj98p<=rKElvL;qnV#QL!kV*OYNv3{(CSnre&>zxu}y;DN0cj{oNcS>dT -PN}TkDV5bbrLuabR95el%Icj`S-n##t9MFe^-ig*-YJ#UJEgLEuT)m=mCEY9QdzxMDy#QOW%XXEtlle -?)qAC~daqPg@0H5xy;51dS1PObN@ew4sjS{BmDPKtvie-9tUgyNtIw6n>T{*C`dq23K36KM&y~vRbEU -HST&b)+S1PN|mCEXKrLy{5sjNO%Dyz?x%Ib5avid@)tiDhxt1pzw>IPw}v`ckQ^zEmo!FO|ybOQo{MNzPdT^2c?-PQC0R6w01lg0M9(9~MFgET$ih5;Vl?zZU2l!DV8GgU!SY2cL-<4n`9*9GoU*I9N^0aPXR#;S(J&aGO59Ca9M51; -2^u3x*TZ7aS+1FIY}YU+|omzF;~reZh5N`hxAm90hlYISTd?a}@j~<|r6U%u#Tdn4@4ZF-O5;`mcrkg -z1qHY$j#^_)HvTFq-&>fz!nO+v=#aI*VGJMXk=FR%cPGv#8Zs)aop1br!Wci&~vUtCG#@{%R^aYcN=?g9s(-&+eqHhj96VW#ZqlxI -7gVRLx%||j|Ie1M(-yF;)qHhjv6VW#ZyNT$VgWp8-&B1UY`sUy`5q)#8oQS?Tcuqv$984$TXb#>IaWn -^Wi8z{ryF?t#!CoSc=HM?8M{_Wkh@&|;OgstXNo?2)maO_cApNIvNfI!kmO@O*qNO^~Qk`h2PP9}fTB;K*)rpqsL`!wNQk`h2TzTYRPjL>WItMeIgPG33O -y^*xb1>66m|+g`H+o55Fshio;8Zbv!Kz~Vf>*`#1+$9j3vLzDH`4(Fzl!M#h85En94n?TSXNA5@T{1= -U|KPK!L?%gf^Eh01>cJ43&s_56#OaXC>T`CQE;f3qu@U=N5Oz%j)DWl90d!?%o9!zd*DJb1HgvjFoO@ -pKMag0?q8>);&c`{okdP(k<(e^bQU?CMNVgt(^=$n7CD_oUT2ZlS>$yVd7VXGXOY+O@;ZyWURHoP#R= -whf_a@_UMHB>3FdWzd7WS$6O6tQTq>q7*i=kk@Tr)-U{o=E!Kq^Uf>p)z1+R+fo9lpqTgCJRyNc-xei -hRf46A{@!HQMCey0EQL^2#)EoL~_TFh|pwV2_B6g_fqwwT6XU@?us!D1SNg~c=m4~uCGCKl5eTr8$B* -jQ$sDD=n(P8O2{tSn|iAr;*m%q-KtIx3}3v{ENpsS~Z#iB{@FD|MokI?+mDnu7hN!-FS=kvUv$BUzUYDxebEI -Y`l1U)^sRNk(BdNcqQyn@MT?8*ixwBr7cDNLFIZemU$D5CzF=`NeQT{~pv6TTMIVbeiar)`w3Y&Vjy@ -JK3VbZ)DA-ucQLwShBrws#9{O0s0Q9ja%oC~T<`Zc=<`W$i@UeclMv%R7Fb6AYM99$PNr-?El@c;^ct -*(3-(y0C?skL>o$U!3`Z_0M=<0%yp{Gki3e^W-O>rMovJYz62NT%`jqHO~_Ccrm04yo$18}6M55SP3J -^(-JYaaxQ(*MsJd2(>9sGGpBqHY4ein8RRSG?YXo`(?+}2y792OkjuLlMqaTcs?aCi03+iK|G%k7{v2Afk8Z95E#VsC4oUaUlAC@^EH7%Jl_x)#PcnIK|J3P -7{v2Efk8Y!5E#Vsdjc_@xAzi=@w~k+1XGOX?fnE|JZ~Q$(7brQEyreNX-oT7&%Vr#P^GgYUg?7o3Kw& -^enU<>$;~9yPHH=dH6vRu@-F$dg+c7o8bL!BeY!)?K=@Dh2^#4B=@CKZlJdT6;P{UV1Pu)T^pv21-=7 -{3G_d>AOM(V&|9Fg`f!RMEAZXzAj|T}FSpDN6f(B0ic$lDp(Vx}{8umfl9ug3%p@%r?FpdntLUJ*3J>(d*8AYR;zAzuHWoUwYcTqsHGEWPHZkMy -zEgQbu3vDb9=dU4@3t9@+D3|4&lWjFn&?bf~ZdOY=-|6cRoYyRhYJk50)2?UqxgnE -A*^U=;SGM@)SCG3Y|QqPM%UHPpOlq)T{PV=TND0sMI-B>KrQds=d^yRO(bJbt;vSsi)E`uQbam&GIU; -H?1_iD^2f8)4S62t~9-?2)!#!?@H6V()6x0y(>-cTGPAM^sY6%YfbN3)4SI6t~I@DP48OMyVmrsHN9( -1Z~GFuw(YF2)ON-a=pt4`H%iU-bt5a`ccaoUz8h7MdX<@fx>0S^rEWAaYq-8FQm={BYa;bJ^JsUMe37 -KGFWor$-vp&!p@gCAE0i)c{t9Ibxv$WeA^#O}4CP-T&rtCd%D+OvGEl$LrvG&L_0t7^arG4{88Y5dmw -Zu@cB}9C=}!n7I(X0DF*fw@o}V!`bn%{_GdA?`p1)^o=;S^Bz}V2sd;XEJp_}*og0Z2W_xuxMLoe?6X -U2wZ-19Gt)dTiR#wG*yE5@1u`&Y)=0sA#$-GKduuoU9=TgD)MzheyI_j|@5et%#L;`c|!Ab$VG7{u>S -j6wYVoiT{te=r8|`!i$1@Vl}1-0wH`o+o@5gMUWIFlGLZkYUFB+0O}r`v(6^kZ~lt1Z1h75+d#i>Jf2 -IP>+avf_g;U6VxN(o}eBP_XPEbxF@Jb#63YhBJK(55phpYkBEDMdPLk4)Fa}ape}(&gMLkjxF@Jf;K8 -8Z5+d#i>Jf2IP>+avf_g;U6VxN(o}eBP_XPEbxF@Jb#63YhBJK(55_nSR7u^B2FOwt-6)+Mbun9-%+zisS$y -Rq*$!2|a;_OJK<5u5`2oG>G^bSaofv!nE3ix}s2pecWySPl)z@V*zHwYUjG`nz#uz^F_5;@P`%gbg8{9Xn6h5aQWM#)c4YzS> -Jz1=vx-h7f<=cZ@Iy@yk`h8u-o!gh7Z;Q`&-iH9J8m1M7tObLvl6Da?*85e6Y%-AC9E;;p-H2!r^YSs --kP-|P+bC#)G}SE)Z?)iArt-&p_^sb65_Fg^N|upxfa3oi(R_#L8jvi??=!d&046lYiO^I9>5Ilr&b6 -UNp^gBov6*cutum_Cer#~5pD?SE}+xS*v+muw9me8-hhl<$MI{nMiKm#^O5f`=N7vZ9@?FLpa}yE -vgzqZgjpdY^>$iMy%hkmh~Tk%tx;HS_eLP9*Bafu^Hyl-c5hD!>*bNZyZf9Y)hiRn!|d -LGmCv$q+SxKXT8_1h%BE9>jZX1BpyW(`MxqzFS7J0>PWrX@}P|T-ZHoSSAH>NsGfbaqA#;6xysqNRgv -FYdHXx6JW?+=9%5f+&i?jg#>nfc2w$qgoHgyLNIzGV?UyRj&s81yK6|#dFS85As)^LIXJNZK61Tdv-& -cPT9jV^L_Dc7iSM!2;pXOTyqd_42u^1j4H7>}$ecEqjQ12Dh7s=||vM>gD -st34{huXRzTUZo`Iidh -{@1AQ%KI`5i0+j6x5)$&GX834;h8KSG!X>?mOnz~dAo*iBB46YXI)IX!WRFbLoY{_POJ6GRx?O`ha-L -i|oH5(e=*d6_Us!ISGD2D{1WNg709H#t4|Jz?-%!txzrC~OP2_B|#H0&)5nVGxMZL^RkIZZAJrArK;Q -`a8lP5~rUK29Y>JQ373g%A+AD%hNM7y@0knU0fgxBC&WU#9+@kJxenW>^7%MF9?H7I(LRJ$fWa2guz& -Np86AZmD39c34D3E_L5wa^{6JcsUZpGpZFzc$G6}Th>7{ -2OhCA8?8ewopyFx1fIP*FE_7q_dqi^}|L5!AZPJ+9rrq^jog3G9;%QU*e3DM~?a=fM(IzUOA=;}GLp6k|AG8cM`F7{vG%o>yi1Hm;mB0;F)3u9)L6q;V5(b*i6=I|3efmxrWaoVvwZJ}^-v2-tEI4kg@dqJ1k7!W= -XHBP%_=iDw9#MzDY18Q=8b)%A&VBk)IB+_BM6(%ORyBQ095X7;P8meyG4Th^oNipF?FAec;XT!XU3+(%J@2rcPf`lEcx|DQ_&{Z0hv&UBW;my}|8-(evhE>TS5SYU2iX42+&{Xe|W?Ri -|$#7vQAo^bIW;;Hc{KEv>=etm^i?Q)fdEJkIG`8VTUI>h{eOG_k;`)cFD>1sqGAzN2n~!>1c7G~vSO) -9saGvc$E!ncz;U=?DIM5R30AMd4Pe>G!luforLz-_uqW?xmXT -ryhmFuN${$(*mboH*V3^8IHfs_S0S+?xxzld4)mnfeuiZ;3Vwq5KRzp6n1uqw!m-}c6Nx?OmG<1ey#$ -He>_;Vhxt1vfYA~L&c)7n8xIF#XNPG7f|IecBeaKrqp`Ci^!MOw?Cc07FC31YEzo)&PRGs`Xq5rSV`o -RN5eD%)MyU%2WM{`I?r=hOc9Poy8F=$P1qlwx&Q8z}3#Vjf$7wW#W3sc8G;G6rS!SnbgoO*OW~V8DaH -G}s%}4y}A%bUUsDMkYW~XWY54T#)PSHF8*II4d`8t0F3u5`Ao}G_FkQe!@A;^m~K*QZvv$I41xcq9iN -RkWOezkFzmbGyG)$BaUiE#hb>^y%CE(%!LOH&ZM%4PNq4YTkrm)R8>^WkMKvrD9%z!h2>_i5J(muSr{ -({2#1(c0j3Fy@%xM^#4gMt -KiZOv}-=fEXcS)|^E+q7mkX^w&Wv}VgBaKVjQvs*OI!kt(oW!Bt=TGN65OmcTce#U+^ -sdcN5d@KuC={#nZFcL@H?UmT(PzBm^No{$=2*X(Fv@+?UkFf9R#;;_JDc~{JxDR6bW$rW)Eog1x-|Qh#4Sc`ZL(;-KT&&)sH6WOO+c%z(mIMCZ_R4qsCn1RDC&K1$g7OvSkHx*Vp -PdFA3#Al&Whj$^(o_!z;V)*@|!KU#A@es_qt$oJ`gOg|b-V;^=MjXY%p)~gfmmV#jyG`H_!>vO^M7;Cp*3lILhZt@hzD -gKBj@6feOSiRfhcGx6y6~JZI5T+k3}G+{-nzIzAcXGNUcw-B$IcT5>38dD^o>Bdd?V1#=V6$=wS11g9 -O8TO4Pg-9Q+{l~zgw^ml3NLth8*gX~0>5r+kSm6j*)RxAz?+5SBF -Gzawmj;^tmT5Agc7uFymRUf=fZ12iLm+1G2V+8qYAtkTUNDJpjx2{r`gWtDxjaUVK-zJ -aj;P-8jcU6Mlx4DmI3-J3k_tVHe#z399Mj)iy4Vs?7@Y}i>>J%jyep@Sy!5O0iG(bCy)5TQ+Va~fvzr -tadE?*`P67KdD%5d=fwpLFQ2D9GUcZ9(s5eI4E0-oR2T^h#0^4q#gu?Nd<>n^tivhDV5N*aejythVRW -M%`mZgXKjVVFq|>1TskxAll<24>yXqoahuA+QB%pvU+;rTzl9Zfl*!JaFqak1Z1hIkrx7H@J3N>qJ3t -?Y5qATVOc6{egcytV*8qm%;-LCulhij^5Twn$p10+j>P|0!MG_HIW(|z0DIeP=cYiy~?W^aP+oUk5X& -kGMUYjG){uGx4n9tL5SgdT0wxfx4n9TW;`(Wwm#6B2h6>#@A*rIAkO!4-#`#omuRQ}b8ma~97Pe_z4< -<(8<>0Bs~5OeJNO{Y%?0icPSQjH_TJ`c`u$+<&G*xk2KL_k-~qxQif3pN0ef$LkYa)M-aT6I78u0ql- ->n;O4s?5xJ^H`L?FtYr)WtB4j+4CB{+QZ1zLQ7!#Dr%bV2Anz&e~CrzJf&hw~Hs10h#WQpSOE -I6p;OL~su0C-`#^<5T_d;;%qzC?Ti?{I#OR%YNGZm*fXff$~rZ4#J=+pF(r{|N5k=6NC%xQC -nPY0m=g;r8kW`iWp4Zm%7nwFdZyo9C(Dz(1T{qAe8ohx1DmV(<^=mxzksAI>k4N(cVo{4!$@!^^aP0{ -d`&m6r2hAI`7bBn;B<8tqBIKAc~rc@ONv`8Dn{NW<&2l&T{uR&WjH-%?b;HJmTgQ~<8w<~P)KumtBfX -hH`|aDIb^7qA4k*En$C3C>q&3;|DYzCs&D@B}w6(kuy{;CzMFI^YRzoPA3eCf`j`CczWjUb{_0J(z-< -muV#crr_okS|frfIKM|-3Z~%vI~vWw6r4Y#Q36cC`4bw>z!cnGdrJHRS8)E6_y?}we4RLhuHZ9LcEA; -!v+546;P%=(+7yB0KVY-1x>o(3(jBC$`XCSWo8@rg7dc|_<=7te@D6w_=4MazM( -M^jKLnH2!k{DnNG=+;0%5~K%+7kgP#x5q6&<`?K@YA-{1^>K1fjnXYlg^|HL7RpN~@lgERQ~_(j5o7= -AuVaRO)X^JyA|z#05}hUg8(;P#zIl=AqcH`{! -_QY}R|4kY^abr^z&!kXm4;$454Z2K8G!EL-38j}fqS@lm#72g;pSahdVzQN`CA&{&^x?)hK4cl4ma=d -PlPz%Jxfa{Fb_X3hjFgJApE?1moSLs-3u=WgmhfFN!Spm&HL+wK|0>zKL~+ZT_X&#acw_gkd12}2!k* -^Iz<=^sdw)`CJ^Fu|14pUj!*Uy2I;u|o-mjd*SRq;E3Q8vY{K@8t{`VW8n%`g9c&llv&z&hIVlP~}HU -%UTI!hfdWKeOc!Jc4cm4Z* -nhfb7yd2V{0#8UukY>bYEXCaCx1RQE$^Q5XayBDNfl-QUwq3gevs`K?Mi_)z&>s2sKV}>AX62_O5&JnswInz&8(QNg55ZAB=U7+!V#f1_$STn&Pul#7#@fN4Gu> -Si)NNNKW(vV<}{4vgk<6FL!>4qkfRqXud_4XP>X%uim`l$MGj57afsY|~X|1tO1)tBwSc@ -HuPHsvdXHoPe%x1fTuv;pkaF%7^JIa8m@3C=EnF@q%;b5ghkPe)ID(=x>yL;4T&r1BJe0!)0d_4!{q9Ph=$O{n2Mr -@rz?cO@htLFMP(ig&_^3J!OuPig)?(@seL&)}F53*)~PHqF2vN^8BizmwE{|7!E%yyi4d`IvWBlP~!K -gpz`SbYuEKI9W?2-Eo`~@?)v+o{YZig{3>8E(h7{6mq7FX#I&%ICyk&Yv0LzKX^X`N1KvUvma1P0|XQ -R000O84rez~Uo0!c6aWAK6aWAK9{>OVaA|NaUv_0~WN&gWZF6UEVPk7AUv_13b7^mGE^v7(OD!tS%+F -J>RnRchQ7`}^O)daXO9KQH0000801jt2Qad}H)2#sj067Ez03iSX0B~t=FJE?LZe(wAFKu&YaA9L>FJ -*XRWpH$9Z*FrgaCwbW%TB{E5WMFrR^^gPr5}LA1relPC=!KhW#TolaO}#Dmi|3!I}cMpA_vFu%+8K?H -?3mM!HYhy_M`c1@!+M=^|V{wR6x&SvAAOnp-pUIEI896;7D^|nRLkE)JcU9lAP4<>nepmZgAJcT9r|Z#jz*DfYtJ8ek*fYyzB^_TUY)%(opdr2wrpc9joO>=Xr3JCBU7$JTAa7YdXiZtfjntNv*U)Nfc;)->G%8Ep%SZshkQlZ$jIP3J`rD!Fx`LLekY_TLesmFK`+ap?`%xQ$beOF&l -O9KQH0000801jt2Qf{7W5A+5A0FoB~02%-Q0B~t=FJE?LZe(wAFKu&YaA9L>FJ*XiE^v9JSbJ~VHW2^ -cpW^0XgOoa&>;!3T#Knd_h7MbhV#(H_C=}YJZEdpTic}h>>puJLNQojX*>O7|51YLA{qBy`Bba8hI9- -gOkn`iGoq3+Ea4AXnRK{54j7cuzmH93&k73a1#B)HBQ3vpeQyIz4nhWIc@JkPpEM53&FDm2|moKuEcX%RrlLJ4iHJNYpro~oS8qlA6l -o8;%BI0*bzLxN#lzBWUB!8LbS^hA;=d8?lBAFNZJ~}*2m=N&tPF|s1UL7>ATds9`(8Y*z63V*1ua$MX -)js5WopZrcDbP9zE8iTb`;Bu&moFZ{xOQYX(D=*N8VFn{n`TzaGFVoMVt!B(kb^e8HUT -Eq9^4BH?pWx_{Wl`Fe&0h!pB%H;r -T``v$R)HK_L*@&tb)Jd4|F>P|GZxL6NGDH%8e_pv4uKlLf4coF88*aY|Duu?M4hkxoZ9GK*B?ZDd~_p#@7+^coprmc;iQn3XY|q7COSWS2i+1$8 ->@t<-9gzJmfZ-K9~=@Ps!9H}3;zIqNnvlRN!A3g~&*Kt}1NH|+p68yl?@GIL8s8haRGQQ>QwppI;vd< -!+q_UaH?M=CKLthqL!aQfH@v{U}gWIy@E?yNYO7d_xjLP2t;02$vBB71|p=IGkCJ_V|rRhqb0B^$QS- -u@2UqQ~45+aWYW+ -Fa+*58>zthOMfsM(OOT$h9g*HR-VlerX7TR8WUQ(}vX(bRCJcsZ@zUC3jrq&)v3FJO0>}O^7Hf+pXZ= -aAaerGl*e?S^~PM=D>zUIRxsqUBP1fDg5lVickH|em6jju9$QqW_#6ZIAKVA+X4Q;G^Pw8pSxZ>Uvli -Is0;Xq0{fBN=uv=DiMY|4wvbNv^0Zj0J!Mf8sZJb4TUgKmXhOhE)mU2@*qyqWt%|D6dlv|$+E)xuZSK -KkUs%xlV-*llPCr0eUJa@;sQ!)Ll3}WlG7gGLOSe@onOHUR -QiFwMSKjUDzI`&FOPZ6PUnZ&GY(nprm09G)KZ@1ea`+WNfCaF)VbTL~VjCxQ3ZJHy!tDesxemc4ea_S -4T&T8h|X#;4PZg+5}4oNw-Ao>fZ@ZF?58o)6rJ_nTDcn7=c#qb-(!qj|USUFBT5H+hIbp#}h}(Q&$U} -0MAZal)PzGQY$DKzk~2D)X&MQ^4Vin$@T0RoSg2mus;~>lF-`|mDeAX#g^3S>Qp@kOo%$;3LI1H|5=) --L&-GfOjfBs8T8=n6w5h>;o0#dmI_2AOvJ81QI=h!EjumQD&Okl+Ae%yGQinkXz(j~0@ZN6g=jX)mk2 -4V*R!CKS0iZ_?-qG57o@eD;sg5s$qa%Wk$e<3`$)F)hT^$X~tDQZ%9?ext)Wa6Z}S*ke~-=Pm#uV9{q_>%+_&36|8gRQMF5_>O0GRgpRqIZ4VbEd5+kZ -SOk0c44Y~jHW%Gkuxiw|_CtK#(va5p0^ffR{W>OY8zsV;@>?W?BXcbNKkY_^v)OHa!pjm}VQS~`!osv -u*f@^Y8M%2&owcQjjJ8AG=nP6wYjCRf8Fq7c+^lAd6(1f1mWbGN>{9X7fN}2gZI{$iK`Uw+F9YmQ>_0 -FxQhGFtZ&%r@a;Rre(9Em${NUsg3oY$&cUOM5SQFJ@tEY+_+!Yc6nk -2tfD3?@v{(1vuX|=NZ-AgEpPf5Y*&=| -Rp6;IRo}O2u(P*56)9ElA-IDntrR2jyev`x`n$4$lM&mrpBe+c_WR_je0jkkxY-~)@WJbnePV;C+5jI -J4bsuIVID(rCxY-advxiLn%+tjv-`Lpr@Oz&O@J;74O*5z_h~i1|NB0vM3`lNZU8|>wnPRKYKD@HS^56!wje+IqgJQ}k(;0HiSy -A}l0k9XAW=5wI(4E1s(a=Dc34&RePw+zcf<~y-pstCUo3&b%g*xGUPUA7a8DPrvYu6@RO~KL~T6@8d -%Zp|-poTL#OVWqW5xr}9YDE{*$&(>AYtyFF!G&O9nuZT0s5lyn-x84+99`4=b2wdarYz*b$_zB@ujNS -n$^!jMMwKx{iJ{40XQ5IcPLpmQfM6QVhU1WA(ZA>(`Qy`u=zls~&%v~nZ7e1enw~7C(>8g($lp((8w% -Ux_&!fV{_`YBXCXHVv~+N?!ig3r^8yzXx`0lhO|Tn-2AIvE;^W_fkAFY?07P~1_u>0@!0qMX1wq#d56 -+MGkAnU4^Znn0H}I43-LH}e*bVBoW6Z~d~~{hamDyEGs@DS+m_?3m=;)SpdI7j{=)ur(+XVVmd^X4#ELU6g#%OtVW5Tq1QKC@?GX%Fdon0q9*qb%Q5MDC6|~_4-q(V -vkncc%TCHJ}QS$Go;;hA+jZqlKNe(?dhBaI_XNzebZJ`Yj?#V>wBuGa5f>2&+*u?+oxJ@=UZ|_(y%4@ -_ZiCF|k9>xM6ujY!Ey6SLsKS$Csa&;y3^y-S--O!k9a==Y8N+1#gKLEZRK)986%)*K_r!)vSibn~CbU -C$(X$IjdhY|w65RHrY&nm7=sGR0JNx-C`QylZc@ADh*u$uKkOOPSuO*AIs1^NOZVfZDa^pR4s$GV%nD -=t==UXcmJLkUOIF(khbAfPP;bn_jA5a5o(d!bkX>d62*5>9hVYexe~X9A&00pxbrpdL_-1P=Hw;mk#E -EZtF+N(yzEgwd3a_q0ZXpYuhbjRK<;6@nMlj4WCjIw=Y?H)y;l%t|qKo#X-2Ks3>2%VtIDZxbZa*2__ -&oMBY(r#vq1x5>*kdC}4%LXMU>h$eKu!!}6kt$rF}psUDn4kiN&_^Hm83Qru@X=KeIN~IO7%f-oa_DcdVxc+Oh{pG9;V@pOh8G3X>_Z#`U -yPR!bgR>xd}fb!mAFT9yjCG6}V0q-w8v+>l6e(r=w^Rp&OG{gYXa-!>9&~|6gd8&~l;!&sns;hnV)Rm -}LN7;VTwdIGoasK`8d(h>w|@BK8uE9kljJGQz2ppslM8X+o2S;Fb5t6^N$Ud$HN;_IDg3Ze6vEDu+oj -1zHeomhb7zLc`F4&%&n>7EytpDn`FpN{NX1t2SUPL&G#6xi2DbRfbBP02mn-jFOP?PcAhT%@SWJ`;d^fx_tGnpn~PDt -}3P#J@AF=Ya#$nl5whi}Y?wGZ$}8EL)?<0Pw5VjD^nGY}m)6+xPp7l$nvzX?J03q8#ibByw^OLE$ZM? -}FaoCmk`!D%)nN$>*kl=%~qq`bXAl_&{E=%7Kn(dhshC;>`yi81 -k1~AlErk4y=75UX-MH&*sBbonI42}iUJ7ZUW9}b7}BclRcap)s&F;2yM@3#fv_99pg*%DZdH;#52G~u -LJXii;v5tRaEpyn2&?U>SiuGq6Fvd!D7CTZ1*jW)2EH^NPoX+&RB36VnC=0das7GL(r|#*@hC;(e}Vp -wDG-aB9+CyRYbu#w9{27h8r?`lGNg)P9+Yt#&)De6wQI{sDyGh&S(ImNM1^AIHHA^Gbw1+`+VhNtP+N -ali{2{1V;n<#E`s2nXN=ycze;(_}=mteLDtSC#;#rPMf_7r@}kpbCt -SOkw~SBW6Gj@!#lkllhR%zS+IQ_yD_YfOY4+hCuPH@zfl*K_L^_66yFP^fY61ISBkeH$=xmY-tF87?Z -wIv~0FiX=tIe12!txhF>E3A9U5jB9b4V_Gqx--GI$5sz)+b)r*?}orOe;yev|jz{Yyd=P2FhW+-93v} -Yfnn5c0tGB)VXOfujF};T&?DA{XL?;RF;EOu^1^;bFTB#&Nt -ShUy`PXf#C`v_T;G9R)xfknw;$M<;ThH(PBD8NL=|3un~;x0AtGWZWQy$D2O1nOCMF?!#G{@Kzfdd{0 -h!SKJms;u!P<7w+csX!-zM??nPS3)0VU5&KSfDs4f4gt^p>+E1)(tiYO<`&;x+S|5UJl|bK^{I8P!lpx#*# -~MExI&g$JqY0G)+nUe&&l5f)0|myJN5ga|LolC1=-vr+c*Qz(=lm23|F4FdM+OM+Qw?* -5k9XBk9@rhkMxmcm^6T8xP(_N!z5oj68q^V(zlTbS6qfnzIKSRTGwrz3NB<1>6d@Sxc -Y90jT@45sa>HLuERQ^f}wEjXnT#Z50kZPI%ox={yNhzmzJzte=D_FFSTC;-i;b{VI0GauN{B7{LW@zb -`eW|#at&}Q4T -5a$apzNW)9Cq~2hKKWdGCQWjaJ-w;7ofIcdp98Kr2WllZ?84R<(ubG%+q>^X^7)Bf-3SqQ^86Qcl%-q -8X@IZ{W(RHNd5nYq0gI*Yu_i5emF6DXPR8@~9-Xnh+-nZMev^D)@bhjx=8Yoe!iz8ZbPYF0$w|Z5Y^E -wqKFbDy(X$kP1MbY~%=!jjj0>7>xP?7PM-p!z`n?-A@mD1#C3%AeVS`bngVeF3#gl)8 -0rOQ%5q80;Q -4N_qZB|UYCN-K`=}A$mzQeXZwf8!T!+^`Eda8HqGK^7&cBL(1Zsz<;7N3)n*KgYX4*lE#6^EhvVlBq| -FqF;efsKsL^PUUud3@G#X -*(kz=s;@>+s1NZ~AX3EcC^G3Nhc$9E2lsCoA?ZP?Q9B@my|HXG9BG*1F$g*+l`TH~9xfud!p0RXY(tbs -Mr#CJ;==)H615<{JtbJ1yQn@(kMvHQg{_fzLioU_?I}ZC|PSU2N21nq -;}oO9vL*z<&^YaK}LJ>1dJDfxgL8^A*tf;Y_5le^b7UnTi#65W&GcMua84ucstBG<=`s*gsk2i=by<& -Z`W`zme{+*X0+^7+4C)2^wlssH#-2r%K5?U-2!R&uI?Hf0FL~$w{jQvaSyqii$(Ss~%pa?Itp60GI9DK)5nm_AF@^hx`eiiwB?b2zuz?Z@9F$=0aWnct>T~U39goaXQ{Tf3}jiK6y(c -#d@gI}NFcg1FGL2bN#(`Xx#Y#Rb={n4$KX8*4!%@ ->c9=FU=So~|d&oxh?qU+!Vhf*VP8%fx#8+eLjPJ!^X;doZk)>}pDSW{B0U{BW(?DM~(VE27Pn-bs2ky;{~JeBt}$U3MZYqthj -hISO%acV823g1JD$$d5!3J3;>nhPdzJwATbyrp*ldL5^Y8h32)jH~ -}t6Dc-LbZ#A1tB~j|&Fj_|hq!h4|$Z)Z*6?L2|-c2*VM^LoPDSx0!!{la^x3$ONotVDRbPa -wSARfYGep73_p5#B4m@OBNKS9{o1=JZ}Xh1Ywrs{DE{Yx=zx>qxNo(l5eSrE@FxB=}dF;QOYg+PTd3A -1O1dgKNg^*2-b}IDaxHXqFgexSZ8YQ8x-YXsVLp$oNr4nzrtD)7unIHMfSDz@2iQda=ibw -73qIxxz17*eG$$FvLu_$hMlR>H7z*P%-N)2vfaCi)9pR~RW}Mc6Fu{MkgesK|tdb@GTZtlQ@n!UUPcG -gcy)TZ_-%&J@SrmsrAMUA?S%dzjbHJ3QTuu&;m?+I998Y;gxKWhn(`?3`6L}hmY~L21s$vIHwS!Q&Bb -jKs+Pz4)#t4lQB)J&_#ZEix5h$FVhpuUvP#r!1i%hp?QKGcn*|Wt#y$1liRY=Q_MKJx6iB?DxGp*fVG -ATU7H)2Nwi&K310Rh~2epQ@OxgyE!-+bzXRZDW^@fP$UJS&b#g{44_QhyEgL2k1(6sJC|0(DJEj-L~}N_j-om|fXq3p3s3o?Hi(L?5yaa}aUUIP_ --lOY=YA<)_sez}EQXx-ROn_1*8|w5{n{jmw;hWtoVv9*%zx0i`2i_32Zya@c?VL -63pv$4o0!EQqtrhcf<%Q41RCG;PhzVor`Bhe~({M&_lu3nr!Whbb;dA{(aOdwAYFS!;!IX -eSj1zC{m>iyRZ@qJ-|7EGa)6Btnxb@lf5O4s^C=n`x+5r0!nqWgNRgS$Pcdl1n90U!CgSuBp!7t -;_!K3ALrWnVC9Lc=n%jb^jxcQ6B`R&4^(0b%471Aw>^n`w#&>+mL)(#Ga%@Ra?2Pjscb19Oj#0tNb*s -_b<7&?7bXs}V%Q(*_(}{lYClh6V-_k4#uPK5EI9}Z)KGo7V$s|q!neHN3r5&E{TqIRuY=^BnP{WqcNR -IhghAD@5a@2$$kjj!7#mM6>Nyjorp_S=WrW!2LYss1qllU|GFc^NMJUb=C_L!PHk799;88>+CMbbwt= -Y=OV;4{oEGGb(Sazo-cCyV0iDGgXYOGOGEpyY1|W)+Lrrw(||OGXHWcX}Sui~r=5=DJ9y4;qJpYxGqSVX)TO`y2=}lNdC6*8EN+hMf!spijBk|$@vBL- -yZ%0!aro~}Qzu0h(EK0%@*|2D+2osKu7bA#<;ZczU5tB!fey7XCXJte^&3W6=7?pzsx4TN#p3ICTxmm -?nfPDgF&k;)^a<%d=gxp0iZXAjOaeOE_#DlXin(mMznns`DA+t>Fm>AEVCX%T!Mb?n9v}RPk#wjI`uB -b=z+ceC15}rjYlb3RC5gs_c3)3;DNHDAiR)dG3wMBXAgU}j -|9sBXj=hngt1ODSCouyW+Q8+-p+&}(N;$K>M8>BsNBGZU4tr6)^c(PRpBc2 -dsBQX-p9ac{#d$)ke_e`MM?jfo=vZ0Q7oo&BQ7+FUl7t|h=Ia91RL6FdsQK|zjY4J-gEF$MhEhP=VVi -vdo+=L7GjI}{}Abq4BiuJuO$pvS=d#)qTNg64o_Rj`k!*;8d!_b4lcf=*2a6q{Hsti{NCHn$Wc`Pn}8s@mDiP*r@CiWl>IluF>nc^YqeLWbDQJ|KeOVdFpUM_m^k6B+;L3L1w;DS4f -hQvzl6Z8zNcg(XG$l_bh9r1|M&d8<%BAocrQkKn5b5Fblm_R=_Lu;o7g4AEBizOPrdR!zgInvf4!(SR -LtUXLy03y&;RbGQ3s+`VSUy>NefC6^~BP?N^wnryy4c*FTTTE=Hr<8*6nt$BTL!@2D(;nwB%33xu`JR -dLTx$E+6AC+FY_K0)dU&?tI_fI5+e{d{2=q{ox+CkytK1h#Hg>CgF0y#6&gk7JKT5*#l}eDg|? -+_P*>-M4Qg;@PIBVG2Z&AJliiIzbSJGa3YLZCu7|8xBUiVs6f}@>s4S4i~0GM9k?CgIb_r!z;c(vsG_ -_=1Yl@hxMi?E2Wl(cV9wkm0vd087G@eg2lJlo=OgHwbWy^W$}eHh>hy}@sTweT+_QvxS!oG^KP{fjX9 -zNA0o?NxF19Gc?`3V0`)U2zOTF0^ZQGl@(8siPXgc9G4U#2H51seJpNo(hm*1hFE<$y-wuFT&1wLbCQ -ZWYOjrlcfMmaA$Cb<1KTD$c@s3CH*?Q$!#mZ+Hvgeh^Jcoj+kiDox<~bx&h3sV|GT)hzDr~#u*eWCc< -pw5V{+DfX=CM<=j>p#`BJSO?TFNY>c3k_)kGanHiuI|riu&!qzi&!&GHSwL)d)uG5scMFPoGeC)0skv -RsIouYU@)HTcr002HBUxmdrRXCUDV`Z3OdgJ}TtUwm(?TADVPJ7_=R>f<$YM55s4TYWe;5(tyg^AR>2 -0c-zVfo?ZH6)a;u9Tqn-29pl$0QGe*nJRb6o(yA}-{E)IUY$(;1wz{wFp-$x2aq)5%_)Vp>*Yka_p4n -q|rY}iHxHnjzn3g=a(}tcUOa@KOJgVRTzeVP8!w?%XbJkfFW)_sP4%C!GVuYg#6ysN)U^G8e0P`gf_E{A6r -BGZ^H4~&`E&Rg;MG^Sj>%UyKs3gJF7ZJN#P|n3(5>hYWfCcx8dY*d}E7dCS2jL=DP}%gL%gRMD@MMk9 -urRq{e4X&UG;FUEu9t@Cb;9$~u)IzQd~B)tmAlic6bPeL=(gKFPV*a?6fO -h0|hpuGl7<;bux6ck=Do`Zr2^9BCs4SvB8e>#G_!i&-^y)cgnA$~U9=O)}OtZ>rCYt8H~`+fPTw?F}x ->v5KS*Xy)(B#lzNTl8HmCUK1$5<;T-^zXTsI&f(9&<>}ec@j34O`tZ9wh~rq*+7mzCD3%B+8{IE+L4R -xGe*jQR0|XQR000O84rez~)F6g3iU9xs)&c+kA^-pYaA|NaUv_0~WN&gWaA9L>VP|P>XD?r0VPbD}bY -EXCaCuEq!HV24487+oM3%i}GTWhtwovHq>>dhBDNO056yr&hiKt^6TVBZDS9WGv=U}53J?ZILckpAT2 -oo6uxyPgp7#h$<93j~e1MrN%7?ucbD#4@IgIup$S_eNdL~^#dgG2w&fwp5wdpbSea(Xx+7V!1!@#Wj; -<=W5|EI7woZBY==yGZQ9D)lB8U~r2!$Ot2{CKLN+3T^?Vro<_rQb3D$fkB_6Gl@}caR(#4Q5M#L4`f* -gcHk_uQA!&l%+K(v0r^^`nAk|Mwz~l_EsG9o4W&SJ__obmLpt&7LXF@eqHEylZVe62uYoQz7w~u1ca< -XwTXFl3zL34NO{FUTIl6$5m<%ytEN*>YMSz8kgE3Qz>YP3^`}k?UzYx#q+>5b$zk0o|8Z^~ZnR0mOKN -R#fSO%Y+)n`Uyf3lvdUB=kKRa@UtjzAPI~tuLf=sh*+D_Igm -#S>qw7q-3lj9@Y#}@A4zsTk@6aWAK2mlUeH&SIA5kwRL001%q001EX003}la4%nWWo~3|axZXU -V{2h&X>MmPUtei%X>?y-E^v8GkWFjDFbsz8`4ytQY!JfOeTRMYFetlp>@tRN6QvQ@R*>aF|NYz~jq8h -eAIYyiw(vbrgq|Eij$N`29JLrCc924c0y-clijTnkBwk0`=CGg3YWP8k#G%^4bMsV#4c%1scKEo}G;l -zi;QsS{_jTAU4a3BQS!eG&f#ArIl;x8BdKPHej}8@~L$%~$Q}x0gjOmjmL1TdY$f976kzGChx6W3Q$samrp`PoaX~x! -DChB{w`a?3;a&`&H8y$-@s~L(BxR;>RHfjtwNS93Rw3j=x+H8|EhmbO9KQH0000801jt2QW{DFdO`vK -0B8gN03ZMW0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rFV{dJ6VRSBVd394!Yuhjoe%G%!l9zaRrlc<;kU^J -*t*n$nN}+@xRQsHW$&xF{>CD)F-$}BwW^{Uybv}Lf-FKg+@Nke0YN-%tuR5VX$r8203OZe(1%E*BXd4 -Hnj)$vOl(gNZv>YDMI%zbU!o0Z1LFg)`ec4=(IR$JGWAOH7wZ7Y|hk`oBtT8@e69bE_anc*x6JBjBl% -{DFdV~tSkjfRTwx$8j>&|x;IS1La#(EIX&Zy2KPv;yed6a=z4y~2i(*<4nK$HzPT<=&yE4c4lsrMt+! -_)nmufDBU-*4`|Qht3NSpZB4RO}nE0Bwll5iJ8+5$zo7O7}Tj%aRy9bkquMeT$5-`=>c91Bv386y#FZ -W_z)NBwblV8qQP4`_L3R0-4b{&loC)@Be=m4pWTM7^|>`SLqMDA@xWHImi%iO(v7LuPh3hs(=6qu}G{*kyF*;?8Y>C)#6 -JhE%BzSG8zYewn}IbX1j=vB1l<+tWX3~djky#Mfp|NH2r{eDiU30G=jn-s(_cmQadlSml2m>g%9RbqN -LK&J5))dQ3@(6N*~_OKlBsYxsuu9uY7W^jm4N6R?wbvjjx=~O679Uq9MQk|u$r-F>VNeI=7k>jbc93~!v<%R8ej7)NvWjXx%ov}YqO9KQH0000801jt2 -QtDm&*Pa0Y0Okh(03-ka0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rFb98cbV{~>7kfODY`-0cu@XM<7?;>XK0G#t|fHqpHLrD4a6H3rtK^qCpUA= -{-zMs*IxTa$DfQuHG=Fa2x=)1XJFDb8$ipJnD2mU$s6E$B$tU!tfqEx#Js$oRNXvf!hljuw455D;Q_l -hE>Z3RU*5UVH2ro4~)R_MY?m`{jn3#; -opX87B%(~ZN>B^I9%eo(hK76r*efy=gxtz>E7@U$=9yV72Inh|JD -25FY5~KePVuFzDv?IWNWL$(w(&{3_bu*O9KQH0000801jt2QXqkG2xkKT03Zhd03ZMW0B~t=FJE?LZe -(wAFK}UFYhh<;Zf7rFba`-TZf7oVd39A?i`z&Le4k&@Xdj#dTP6wIgCP$`$QOYS!oD2GVUI^`YgkF6% -!eKQ`&7@^UMsN6ve?peb#+zsY*kesou`3y>?X4P*m2K8w8N1?)X^G>(* -wtRPzNe{Z4f(;a%>*&ms0^=C|hJ1Ec@OIR@CUv}|b8AhjM(<9x!5QN`(;*EeS_dc_C;8TBVWm5ul5}2 -#+nK`W6A$cl*GAZJ -JCa#N+=>6qxU6vy0Wl2^SNj-O35?Q2$*X=c|nUrKz{LWTvlp_3OK}S2*+me?0c^|iPqaOeL{$cz6^N0 -6ezkK^titSVKskkXWA6L2w5Mgyb}QfV{Fk_X)hX2tTuTcX#Yj0QXcE0YKOF#ro@ -$#Y*P2*>}!7l_h~Uxa@Fy7w_)LWE1A`d(n)C%eBQO&2Q|NtP+NI4n4eBi)7`)uY}unNhjSU{%ccO{?x -aH@GKW~d98i}P)h>@6aWAK2mlUeH&SRs)d+qI000vu001BW003}la4%nWWo~3|axZXUV{2h&X>MmPZD -De2WpZ;aaCx;FYjfMU@wm1s#y+MNM;(XLD9awjgz}V1iU@Mk*#YlJKQ^8JBbpKc^aOKyH|j883PV -t|o?Ip~eK~m8K062v%~LRa|U=-jWM4=bJKT6(b8)(JYrqZz=e -Or0KG*YQfT!WSf$UiqKoh^SWZGejkuUc9)@G15%2tr~sjuS14%DVDOR&3as3_v`=MDD`38{?{X`9ns1 -qvNqWbM1s6%VEh#L$SXmJ+;FV22&skY1zUuvw$vUs(fXE8OSY1^Vh0`ySV(|@R|HTA97w@*w*)qu#7&9h|&CSjqj?8tze6n8Yw7H$M~Vi{5yqEMxvs|_83aIpJ#07l@W$cOyL#dbj6(mbcPIjH96 -Yz~S&%_MxEs~w>EfLzxlPQEYH&LgFBv+ZQ$kf&2vt=g2?fZTGP&w9OHn!+sD*N99NUf+oSj*3rA^apz -IJsgr{RI$yw1TjKHNl=ynlQ)BwcI2nN2f -z@ez28~X&o&wdZZ{;P-M$LQh3Gw~R|?kDIYX{C9jsnSiF!V_*lnhu-*vBw)sFas<3H~Sx$(@Zi@S9OB -10Jj9p0e9YQ$PHL09^?pj#@mwbVHWBx_IQ92|2zhVeNbip(AQzZ>%9E`tmI~Vc`|-;IsqGt6x?al&#Y -3_k%iEq!g)Vd^Is6chQqYnR%-wWF?`4tEwqDxkj7uu;8>sHBUsL;WSw(Q;cXx@0bkKM2QeI+L5DOQ1O -Ya+i2gX2J4@m+(L=Zs;7OnV<*z>kgp!6(Cy1R+oE%Ssxivlwwr8ulk@mwv*x>V8A33nWsxB)CkCNnUM -d#aw1p8bG+K`8E(u;fJ)06SlTT%S10FZ>DzY~{y86wMzBF -&^rL-x?Vet_r)TczKMkA%1LFrC@5YzEO)k@O}!eZc41OK%Jg6GoqWm1pPhp`xt_cOFqNxE9_A5g)OOUMUdBG+*M -zPxp>;x^UW_j%XIki}A19bf2_|I}_b$DuIGnQlCjYp=^_XfRa&nBX&v60%a=w`57=})KMdFBPW^q9H) -hpuDJMs#d$S6A?ptEruOJ(bPOITLf1Vy(jniCw3stXH7xDCU~EF}v{R%kRuyfAg|8u`d9Ylv9U2D0u2H86sm|#m{WE|%TF7d2EnK46TBur -!E^AaFG{vl9K$0Yx*>cC0N>f$$xFkYRgH(iJUfw9cGLCXpXH~ko@@qw#>m86QzF}3ifkgYBku|+zko^ -N>J;%bG3;O9^heqSh@1ga&S=g%RHK= -${vfI8z-R$47#KGxKBO|a8o&}sBK%sLRSA(a&c!!kK)6SIc*3kA#7R=q*1HVbJ8EHz+5(vz@H -`pHM06_H}oAcd#FM~M1x`der?68Ft9>Ry#r)Q*N6q3I@Rvg@7I%;NoLR6}5|!1j`4lk8*|`;GU`*Wfe -6S`P6^oqrh6U?y1Z0oAh}_$z?4%#ysaqoZJ$nc-0|%zih+&w}B?Lcb1%S8g~M1&)u6o57xo?w#1K%FH -?}21O^RB~t6*rCL+lNf}J#K$Pb}AEZDkv2C=CO(oE)>l;OVyK}tsw@&exnIpkeA8x1T)KD$KyY1gv_Z9Ke$r -^J=#sC;Wx%`r3UG0R11q6TQE`x16Ll9q2S$I&LF(S3^OCaB+8;?8cDH9wXljI>K7TPwXj!si5$) -4as3Jeqd|Sl8kMGAoQP%bQAR#e@VC%IOF+(u5hTVNs0K&HJ+Q`B~78Wdk+6|*^rgc6j6K8YK@_*v0|;Mq!l(Jw{S4}?QWCb(L7m!4)CT2)ASF -h#}N91zPw;?%+x+1Z!%xA`6onL;Qa#k$ZfXeRyk#;IW$$s?~yc$lik*MyJ)T=oZG%ots3$&`4LNx!lN -eYg4}1-S_}95dAWW0;|H?L=_+Y_*qzD}x-4aPHMXDSMXwAM(45PTwkp=hyOh*S7nSg28S(nZ{jadVI} -gts9vpaQr+3&zWv~~gY2%?h9-QqBLf)wxhThyx6K_b`y*@|;JK$|k*@HJj-SDPg?1Af%Zs=w$?Ji{q- -_Zc~P{NLMH>Z7F#;3cOT~c^$)Wjszdn8G9($&{3fo3dUTnjxwrhH -aB#lq;+%7m3&_xlq=pHQLx1_)r9oEBpXeV{Kz}@%L`reMg?o@6aWAK2mlUeH&Ra)YBF;N -000FP001Qb003}la4%nWWo~3|axZXUV{2h&X>MmPa%FLKX>w(4Wo~qHE^v93S6g%2HWq&8uR!UCkYk1 -8?4~mvcO6%enN$ZH8kGY}kjyMavH%#zP4eIS0pJCcm~E;T5jY3mx!~MzMwa)nAiFqW1pnKDCM1 -bBEEQ}^ige33k@t*9#t(vIJH6=Vbc4Ttj^$`e9je_yRQtM?y;W2EG99z-8ly3KfyKjsvMrhC#lzK~Q2Gm9|Y_DII#eVo!{$v(6Vj1`6Z^C&L{x+NU$XL@#Mv=2kyo)W~5!=(vK&{efP>NCXbx9F_=n*-25bB~*prXi -ZvP`1)C`Qrmx{SjgtCly1xB;zq0-%pV!njIlp^ -OFal@3KM#Tp^Ux#eG&Jif5;iHY2leM!vuJA*jI|r$3tg+@IWz$(0T(&jf8i#U_p;B$-q==VdGhTZFL` -zT=Eu&ijKm;S$G2p1X4WKooh-nGl}u%v;2Dn>d>F=i$VVyrXj#$#0Ve)A6`(D7`ji5srt0>1bM>`>{> -!mrDH9-gaiUlfm+~zZ~jw+H&`46u7=Kya^}E;j5vF=*bO;wTC_vugOBsLh#|BipvJT;W8(^8syx{WUn -pDhhCHZIK;7r;JGP1Fz6Njww(7{B*(d(53!@u-{bD;cd|Zrea}Vg;=t{Eq_kf`B={Tyu!u&(h4P7kYi -VPAd~Qgkzy(;n`m)dKK=v#&Wqx(#kd6|^sel5`+i<>sdm@D0^XC_}rgfeN5my@#f~$uh4Z#0$icauZE -rzcr(|I`PFG9Zt8ilX>gLgI1Q8D>uxEgOdQO-V6^LNq~S96d1lXupY>Ljv}I-O}T_&xGIi_?Wpr7OfS -8sqjoMLU#NuPBO=1MfwgK18Z+!hunBcrgnHkX$?8^U5r0@U?Qd2fgpZW}Dz2VFiLo-GTbL`*{gH+-)f -lJ%XYnFNq9lHPE_HDJ-9rx*T;huZ0gg>eBD}&OZ{pdbWl%tEY4bv#6dAVWuHLl0`Tcq_68(n(0=aSi# -~-2;v9rn`kf8duXIks}`^b;phHxs+6k>P)Wqr3D>#ZBpYA$CpS@jsO4ZQ(+q>o=k@`W;2nIrhTKH+@R -!@+JRGB1fLGU*lk`=Y>mA`Xk<)Afv<+v?Ie<77c-{;@nAxoPL!?h6raI2(mI%7T2v=}TNMjkJq5Vmv9 -?wKZ9ze`UED57~#*;^EG6u9*h=P%`XBW?Hr2^fpO>TMa$JJWJY}s1vo|@ggXB*k{)0r6=>^>Senpjcx -F~+D?pEb5YXQ}iPYV42*DN$_hRfAUr8>@P-(P;3pnS)Jv49J|uf_1fhlBJM(N4Lr2Q%t)D)@t$^tn9{ -38&@A^m@IClmt;Uw~-1NW_JrAkPa>~0VzXBX%dsY~ja?-r+GBAa2RK%E9gp$|zS1 -+%PU$$(Ar-2HvDDnhLc0JqN$oR4h2qOj)90o)+3i;&e3o^+tR995V9~)Nn1D0w?Ux~yHN%d)_$N!_Jf -bs}ClAt1`Yd&mosoxV5vrLVQ1den+U3|yCxR>P9voB8q6->0_RB6SLo+}n4*#>3M{GXE_);)Y5#Qp@p -ciO9Zsk|NNo4HaF%xCRj$f-FoV=D$sE^XVjFSil)0a4B5LG|I4XW9w?t2q`3JWQ1WSHx8>O!x9ceem1 -JMQX4c44-^=)vey&UXfew>0+%biQ86|B@mzDwd49=lDpjtuQp&V0=a?a7ZC5j>TNbmf!lkR0on5*?LH?>v$aTZ6y -kzXRv(a+xNk&RIH_tH=;pK-2Sl1zdnKn=(t|##HWn0ez@qOPv6;S)}|Hy!9UYofKsjG5Wdj8Z3)#`+Q -QaG&pI!%f;Byl^`=sMay_T#B0=8$a_XR_cadb@F_M)2(b;4J?~5l{jC$IfNl9sC!KGNq@X$zM=Q0|XQ -R000O84rez~V>>}gWE%hg(0u>^BLDyZaA|NaUv_0~WN&gWaA9L>VP|P>XD@SbWn*b(X=QSAE^vA6J!^ -B@Mv~w4D`0A?Ov*G)_U)I`nesZ0Hm5qDor=A2ZOK|L1dd2V6u<>Q(Te5#_Up&Ypl2|kNXv1OO<0v!Bn -Lg+J^h-Vp5|`!W|mdac{W!O{5x4D^Jt!>DzDTeTILf~M)gcZwJI;Gs5qxL&lX7v|GeN~!{~ceR#}nn> -_(5{{b7{k6B_o_>#xn2IC`xVefZ+|`O(YQM|#4XJ}Zl&X4rs1sTM_*)kS#?@Xm`eN{h?IT-7R?s5;5! -RlIXv7MIa@e7>xgr5cZ;>~c|*b(EY{#e7+-F~1*1lk6%(#D>wL%<>u@$kQ4T-LX%k=1=;rDCU*Tcod -{k8-9__7RsmPP&QkdQ-*N(b3|vai=1Tts%QlQ&Es)8{d>B1X=5zk`%@WpdhX8+zm`pTc(TE|Pgz-M5C -;pZ%ws>ZU3&0PW`ClyrIQv1R^VMUmK!Lgthb(y3!K$sO1`h23!L4n}o@wi{9`MIVBUj|Bl5IsCZuGn -u3t@!#*f$rrMsV|H{tu0lh@;bq_x5{j30Go25G_o<791BV_vNbcO3rR%s1++v2DGrLlw61cJ*Dl6sjDRTR-%aK#}i$s2~E60c?op+|sx4)&I;`l|3~u)ugi0 -9L9<{R_Op)@0@CS56iV--xtDS%3kluPt#feW?JIN>%H{%9z3vwkzw%^XPyn9-29#1gT%mfO3@bEx>+cxuFEy_~lSiI6}-rqye; -{w_xi9^J|4sQI-Qu8Jnspn5~?q#8^sW0<@t4r&tF*{ZzUjV1nrys9LQLcpSX;w0{(?KsmSNoddzB;r85f*<>3~tIWm*sv>qR|2OS^h82({A+c;9ktpca$$# -J2hg9^ff4<8%8VW4wDQb7TQFl||$)z-KnYNKB7ZbIg$(`8bpGeCyC-MCa!^&V6q^Vlea&bJ`#5X{q94A&BUCuVK5`by(%M+0g`}fL^4c`$L@%6x -Y6c)OTEKrMNJEDUxHHW1aDk@g9Bxe)#p1_*-KRf~iK0N+7ICQZXk4c5bWB4miF2Rk{0xXPOFze -{`wf&*LNysDEtRegGV=xk62uHC51Yxe_u(PP#g8RVF|u<1S(CAFHu;HE0d)*){MuKUKAL)n)+}9X^&=@9+MbO@RIYR+&ct -HvxK50}CDGd6pjMcS`}f!Lhig(&wTHsXSl=I|p2v6xr -JJode8iUH;=?3GQ%(46M^flr^wR(05PXGOPhAdbQAf-X7tiNGIq0>A4n(3z_hcl@jywov3lAf%-;J1J -}LFl1k+aE`5$)Y&~5L1^aq=OiL8(S -TrJ!8=8mIx$LyGkfYsQ7s`>Mav3D&yp)8z$F;zmUX(UDKYiWfA${7`#szniMao8^tjikW^OQ;j0pwfO -gwudRx7~5l@h7DYPrA^F(zajPWjt60gRbE)SxB>86*wI0Rnr*9EX5UW>TXxE7N6G3t;nNnx(uAhv{ri -98(Qak6iobFd@z=p%Aor)u{{fbkMQ=HJMjR^5|Jw!=4j1xRZi%0_;1o3ebVIn@A24uB~i=fF*ap&Bn% -;&X7Cf^=!G!*u1-ogX(*n(-DAm0KcY`g@t^bsrdv{d!$#)d`|g!&k~-9=Pp*573hfpy#rUoTeiV$%6K -F8rd+Czj(~tEzl4Ykq=9%+s|XKWP{&DN$PQQLY|N%rP#|HhB)^V|bICBwtkCXy$VAd7u^_N)^r1=9c* -cvkHg0@+&>pxeEL6!g@-DDpw6}M$8nolh-RKzH|FZ1TRz64sy>LgRB`|c`ZW!}qNO9Qk^u_m?F0v0nmcSszx5>XUPuoh*zz3y_y8+;ojpO0lf^>ilXhU% -PtFS*$qM2qJK -$jG|3g(-i#gnpS@38e|@<=anuNl#bPMX!H=+Li`|}v7FL-94c8r!Z(SQ3s+^yp{+8I&M64=OeGV7Vik -Ce*QzaJD8cG4yUR;Y`)?T?V5v^0a!}F)6ruF0O{h}F67xc^bfrud_n&_I#JH2g{%CY_Z*=oybaM#*zd -029)_2vO^Nhyk&_VX(AH)BCR}D`0FdqmCt*jg;QEyK8_8P5i$`Y=;t&scL)%$UZHXyM1VOe3FK(WMSH -bS$~wn0czCpf+T#)VkTKn|-#lA>(`MZe4*rp3I->C4Ncyuhp_2SCG4cuADbi;6T20#}HLh;&UfJ%If>bLnAhof{Ad&8aZrM${t6;)JsI4_L`w^gxQl0}u)L^iRD -Z4*mY&8ZvHu^@P5ftEw7fIN2U>NCT -#&LjTY)=7|HtdD?$ifBEqXo*IDUfMR-z%CXrXZf1vXoJoZ@H+3yB{^8}WpCfT7b&0z{!5k(z1t1cjre -tNwAfj;tN$k0BN_7b~cw)kvT)oHhiysOsAs~c$uIPWQp~6&e89i}UaHmuW=7a+^AjDXQ#7&YW&I6s95 -@!@;>rE6yn9*THY)tM!1Q=ROK_u+ZB0I=Zbahfz6<9^=g_NUQ}7vRGCkuda~fo= -b3XtVqVlK~SfdaAFZCN84QFa?kh_^B#Q7Pt|?*p#tYEYsu?9KaC -zqQ_6}~BONhzg<4S_l=j|}o^ym^tvqysP6o=SdS7<8(g)pLdd(E*-SwQ^j&trNy#Lr -eep|06T-Y9fI2V68B5UJcu%`sRYU8R-3B+(BSTiWUI5i7~Ge2#8_BLa4pfn+ty@ -F$`}RI>LB{#ew^ZE2^lx2A-mD4T0ba!$KRBU0U6|z|Dq|*v~;F$xU^MBZ$KUmb>I=a9*TIND%G5g%j{ -*yEegEA+x2XwCOo+(Sh+5mG=c8H8|)E3obM~s&Y!7p*D0aGHB_*1?DX{5n9rZiVS7s(LL!@Zdwuu^VJLW7EgyZUF6@a-ctAT-r1MG66aJJD5am#g>@c^ -8`HsS-rx%8A*I+vH_fBG3DwdkaQ}G;!G~4`~k=f0lQ2t6n|Xk&0k1_!`ZWjWI)KJw2``9!uA#}zI$+z -Jp9p!A%n7?3=rIIhkoPhCiv;Q_}v~ELCd`AIJ$97T?mys7BE^5FMj|Zr2eqp{C;DNjA- -DlY$RGGl|_wO|hUMY*&7AjY`zvNCH^>VwUBBLtWH=Ym%DL19JbEri2AbqJXyiKJ1SF`a*Un0P}X`UZd -UHE6_6t?zr-(akLa@u*XlLYI#NnG$0=8DV?6evF~wMFV&lZInorG9gs@-{DXD8LonJeCyJo}Xa!*~5=Ne&T9)Jvt~UlZDf0U!! -i2R`@gG6UAI9VJ8INE39N;HP+BY6lrsRJ!X9OBsf}NCSSzRXOwR?W>m#$n=I}g?{W1E!Cx;%{-{k(}) ->;b1f^~6n4c9qN_9Kw+1EX(apz{3#*v!fC2-V<51lU1Ch_-XVwevIz~5HNa&`0;QA|KHOae_015;h54 -=eFT`h_m$ai*`vTp#4;fubmO(g(gfh(m8xQj9(h;I4g$|Dz`@|gw9vIXz_Mj3X$wspOJ=^+*1g&JQ?> -%1n`0o#g+aN@#|&vi;}#_Lbm@}~3UXU0Z)FQ9v@@wu2#qs*XsZ+|2@cNyiY<(TEwny^ep{P~3!(8N -9Pd!#JnY3mgRL#i)`t`u8kx6RyG$s>rF~TQm`~=G*Ct%EPhuSsJQ4%bwIl#%y|nRebj%7xt6NQfqZ-V -J_Joc|wco3WT`%|5mkjfsUhm^wH^$Ms8D8l1YN{D_(r?`CCwoI})vJSTGopef0ncVUQWP9*jCVT?f9= -tV7aF^ESMP15O9t>K9W0k7PJ4xrA3JE}R2_mNQDQ0~tD-%AVg(+sD`VOy%REgV>riKoMn!TR~D!39}K -`F6;Nl+7y6)pCh93cMvMs^0LK0CfeSGy#SO6ip -8~Ba4i14XBsB78$2LEB0b}s~W-kJl#z_cTYnSH2T^oGGz4%ji5NC)-7OqRzs27)bCIrv7uXk`PD)6LMCkVc@#(Fcy9Ib)thL6hOMrf0wF(vzAH=mK*F3H5JZhZT2j?bLGdBJq+zBE -*7nuD0Een7vw6P%^5e*XfaENZju{>x`WJ2r56afQfi(3hDZYW!nbc)afv;-jnT2tZV|0h=#~zJVRX_h -i#A~RN|Mx^E=&sadg?s{mLNg66~JB)z=l>Gv{xJW1bI0 -dk_)Z4*(K>uDN?e3E6WRnxG?l$u@;9ACwt~cDpY5ZZgoCVda`K_3)!(V~vDyn)z+a+Lxp4!HE2~cdt4 -jVJ(7_a>prwUuI$Nb$I^95h8vtP~EznlR(%Jtcv%W!?P>c&`JiJoPzv$!s!humk0^6e^}<@$_O>dBB# -8J$u%y4u)K&S;1Wj{hbGKWHwtvH3DM#(d6pHs7)8_5f&`9l%DLM?Yy5<5l;vPfJ4GeGs_$@Xjp{d{@H -R2b;)L?{yB(xhkh>+gj1Nz=;-Ez=EhhpMdyc`ITGNcUzmJppEV5zrb_7D2fZL4Z_R0CX?TsBk@6tn~b -}ry%d?(DswLC+e1uyiLe>&KRThSHVvbs)wP(muYlVtFZK$r;+^r}>vH}0YPg~Qq -7-&JKUr4FJ!jJkl-2FfUYm)m@}M+)(WjKM>tTy5w`t0{Kw5}uV>HBv!Z`j?JwtZJoO13s{O{`uhJOF) -fho!u=+FMtv-c(3B)jVrTD?ZF7x9U0^joTGIj`yJelyk`f|kV`sT%R&nR>Al9n*ZzA<4Agh&C>LuZged2c+5Vaw-7$HnVx{^w@#3-<<6dZ?U23`txmZTap$}&e#8s^it`dxa-}Z^*uEx05^V5?LcmWV?-;lNig6wW+pwD4KE-QfB!J-+q*lY#)&cYHxbdoEzzCBMkDLyypS{uQP*-PFc&I($38XP-B -xT@CclVyA3{=7dxxKx6CST2$j1o8V<;OA*+p4doX`$&X2IC_Fw9bZ?^0DpOT{gzbn|#n75>j8O);F?G -rflQTC9~9%3N43zZlg`IK*!bBHV~I}Yt?2A8e5>y-nrj`!6=0GXPB%N%2W64=Ep+XJCU(DUo1iB9D)jQRw;1lbKY|myP`!y#hPvARESlMB{3)e{-v6vkfd3 -u%b+4OWuvPd3S3-4V9i9X?47Y(aKS^{FVrQ!lYi4>Cy3>8WzOR1%x@oAUe>ftX7>zEAiH@_IoT$tPCR -Jt1=gML^H8*{PynW`R=&|nDiFb=^)3YXCwT=7a2n;w<2x}>>97=|{dEQ3uz$)5n?F{K6FIKj1rf5p%C -PyE3hMneMs9EC?2z@fU@-^GF{>nvT)lT!D9jqt$HIn%-YB;FIn+b`Z3nsiEZ&5PoK2gr0!%aYJ9F3zv{3KIT6j;4)&L5C_9a%6R5I|MlHa432T`v(_X(d -(QpXSRJM&?QlG>L5stUAKZgHf#Kq7MxI=xjy20qDRrn9^;?MU-d!zRN!wLx$?s=`Wdyuk%p0+rO~Wdk -%#~iE7NQmK$tOSFlKnTuWOim&2hSXwZ9N2 -(ybpo(&vqCD_@7@OFn*vfe>uatYQ%`lDJ&d*XBlc9Cqa8ofL=H_qX=}4Z8|V((-2{EU3lLxe?fOFw!nEAlWY$0I?j7x}2$=m~)4QlZZM} -@o<<{9=ACFzb9R7th?(l=jZ4!gp_OjA<91^~PmdvAPFTakG%OamTlQw9_-GNBcB(6Q-Z|9LM4S -en%Yn=!;Q%8C2OAQ-@tebf@5YUUO8XZhF_g-~S&-)EVN@jtn+K8B_S*`o$I&M*xs+CIrBqKbKCvtn!j -3z%7gzN`W(NyI?r0AB@&e8DWbg0leG~U2|@G6FS$8Qd+B@*U*I^3k4`Qep{p)ZXfvY`4y!vQ`kvu1(Z -UR$*87G0WGt987LH~qog&AwY;5J0H^(qCPHB9__eHhp$NS{v@+DyWwo2fdc{>)N@R7karYmjxLOl63CTz(Qo~1VO)CHWx*GrqkdzB}CH5!dZqhDws ->+IrM+EKKK%m=~Nyya+^`duwacES)popO!_Lao= -ZRzDToz1(Q6D%Yyszd2LO-k3?RS1vbUsYimWee7?ruhww>9qh -Als*Z6J77X>>afP*Ycv*(Phvqcun=D~B8q(JW%o)LP51^%qja~mBSv&-Adtt%SnE%F0^y%{h3yqr$OE -zjNF6}63cOo$ZDFpXm#7Qppfzlzh@Oe8b?m{wmb;-CQhbN!rg{V6Z9GAyd6Wo~>7(_|_tY&Suc0P5kS5Jpo`Ug+Wx$)}g)c6d78cbr -|cmv{8zc~hRsGm+3$i*P8-<%0N#KE-T|_)7Omv7@JgYM3yEsq^RD1s@{D9^lRU+1DILR4yW -P<3yLcGnzADq1yvmyKGCpH=)`0>G;z5U<(cY7zl9Uq;1_!T~#RpVM``#dR5&)F`!*<>?hCTOFlA%JfJ1~$8n@F~rNS>NVo+=!JQH|rNg<^p0S_7q -bG*zuQtPd7m2g!`*OcXhr2cJMse33%ZXE&TB9Mp7?vd>9+!)~sFf)r|u>u;USMN)&q63&73DYgoOgiT -5jOFdmF*ccWD>fs=cbt}-e>+BG)0RBFkl|0YuZmz}bnnM%2pEIBo|<*K@`M%UKXe -Tl@%@}#C4Eg<6Dm%{0OJuHu%Wqbp*Nm)oRE|(^|2H6D5pGGB -$Y%XSrm)}vX#Wi;TJWq`Rw8 -P&CyZT^NWurSRo?)3nI&xzT-6Cs^qt6|G_C-^^-I8~7q -AMXqH+mEAJw3N$DrdREsoF(;cDU0T9ZuIY9pt+UY=t~VfChGL8B&=Eoi}OV0c&sXDJd5Z@jGA^-PXQ9 -dP#)0G944z{Vyrn5+A6bxf!8_1gyhb39~3P&{sBm;|6%`W^~ie8nc;*xwj^@J00PrA5tH3YGeDEF#$l -+Da1TAj`QA8pkavVKMChbzFr3qEUUdnwT9Mxf#V3-y@hxtIvDu!Z)Muy?eugb4K`nEPB&1-Lwmd{VVze6O -sGF?Bgv%Dgs}2nh|md;vYW&W0nKpaM5#7~@IB5zOeR7s+r3GJu+$8+Aa0T*BH2`{Zx7VxTvOwgVT>$SW(P8Ug&@`X}Wy(Gr(NRxNn}mkNj0nhLAO$t=WsnY`#-yAz__a?c0YfIpL4We+{0U+zQNH_HsPp)1SHaxe^zNyt-`f2B47`ce;k0>hQ*A&ywj`SY^XQ7KUlvbA -40ZR@Z6Ot0bj*}%|5L(N%z8gjVl?VCyv}k<*E3hqe~T`$ei -Xs<&xW?W$n!fB;Z2t`3&>)SDNM}0P|n4q#I$P8qHU&rVx1=M1OA*z_3x}+2dg4eiE)hl9ZLNNZ&Drjm -1;iR=Pk*A3qG17&xo09noqs9bM6QzZL`tteks;9gGkYx;kmUHYUgpXyIZ^IwOMbwGDhH5TT=WOY}K6v -%vjU#y>ae}i0{>3y*OHdHx!v{qHKKBxAn*$h%vJLl{Wh@{ti7~|@y@mHti&CMAMwVZf>X>+k$1e*)7*c5qQ@_chNd -Nx|8&+sjZ-o{{eG~C(U`FU6k8M;Ka`H{C+Mh;45M}}Ex8iT7a7}t0-wU29Y5&%^=wZ -fCrA6IuMhn5qyIc;QLOs0(Tv$PF}~%=SYYN{sLZAM9x-g)4z>>A$HLL!9O?B`I((A-blE#6#G@hhL!Mo&w`Y`()!w`eoUjEev*z;4NcayX?Hx&BRiuvM%oe7Z-S$Ysn8`? -`Nw@_Ma{gLw7(Y`kP?xULzaDR025!>Tzk3k0+<26^$=gKhC~zpAV7-ex&UL$S3?|@uzPSLe@- -koKjKf=9BY4n2)9nYz#eoOl5^)DljK&C+d-r;3C5s*r)Yn8pCH -jsaIGq6OzrA!$UjiS^GX}?s1BY$%m*b7NIC;*CdHB?F$l(3lm%6y44WAitSwo5upo@Sj`X;>2Ey*1WS-rZZ_tw -PfH+2XPWc>QWec_DZH@g7VtZZG0_wHIjd^dF$-!W*~(W=%a^pN4cWOH>5u0Zh)`uJ~S@Zii*+aq -eP@0P>SYJ)%8HaB!YlgzEFzCEB`uZ6DtW`#htXT45Y(9Sw?*=?F(+Xh$hp4^jKnT&AGPr*buJwtyr=e -L~zpfxK=(iGKBjWLv!&W1_d|9L+~vEXrj%nJj$!-c7u%cV(K9Bq1o2n{dH74CxvIaxqMZ)=y}aYojh$ -8IBQ5NsGWdPxa5dxw->8QYo)ur|deta|HGZle+W+3VKvaI4b2H2Uo~a9^3S++mBgjkVU&cN>*%^9r4- -iBl<6+u&HSk2IVAs}@RW6NrP&Sd`Ip -t<-P0b6WbB3sss}`E$}4_>x)RsyzZVVA;1~6yy;dZU3zLOyfn#SXR%xzu-=^llQUhTAzErA^f)%!Y}N -97Ct;OIHBD*DjBa$<(Z`R;wFp$EuUGB3=`D_!|Bzt!Q5NOV7UEwr1G%cpBhf-lFKa9^Zty_v@dP@s3M -&zYHgdH0n~TNrrxih|ZAkP+B#s9Lf>QI*0QiXN&^8bTZfMtB3;%j_^}UMKOg@7|uToZbIGB%9n3cY1J -Hwh8ofdGF52vs=z*Of)jOY$ZRUb;L&jYY&S$OT@FEEa|KN?O%G4802ynBmFZ{$?97ZOoxdlCDo<6n62 -@*>EJ9L3&s7K_jf3iYNwzFspEWsVp<+i}c6Oazwa`BD?*^{~T5Nds(BUsuG|MP2sZheCzHu|{&G3D++ -$&Fb7f+wpg{9V>u0QpSU=KHKgtJ5f=$(VIs()X2SbaJFNduW3*KcKKm6q^dq_KxtZw4&urGAQjNL{BQ ->iFjE#Q*4f4B>(l4#L{*B0sO^GDS{7_H+yDV#XJ`9z0b)zgh*?_BuGwJA8~(LxC@g`}@Uq_3w*exUa>%@65CccM!qB -%E4_xDYGd>DtB{$)S(Ul~|eDdP#zlVA<-2`HxfqqpPxvkPE0fJx6;}@VQ|;KPvh@vMREnIvG~nq#FWY -<%XxS#7kXMD6v(^)s*m2c!1Tyt^PgP7mmKs5hB|^`#_9=?m|3G@(_HlQg9F|OgU49#kvLvW-Ln=nZVX -^XI{;xthO$*49g-kH%vBaYfOsW?;A^@Ec_^#qC;xN}@fUS+eIkyLH@@qC8s)Uyo&D7Tj9!NR -2?34;=&tVeppJ+)TzPTcB~X<#~nIytD?_*F)t1GfUU>=rHltsb5b&|PCdVXC760+@R6EE6~fDW1h(AV -CO0b+=0%WDu%kJmx`8zM+Dcl=B6rFvUQlYP+kxl5#$QxJZh$o%qLaKZtLFWsd6fA?dU_09fJtOFz}{; -*b#*G7H=`%9`a3Q*Gmvio(u*A;nfBq}ayN&f%#z1v*UgTVF*^@E3`NzgF{m(t0w?s)jnY2HdwP8Cy>s -X}#t`!D5cKw49?;ger%^fqO&-1tqUTU)G$8^;$}#n3yLfWQjf=;2;DdLgec3L*9@Y#J*Z;Ft$S`-7hs -3A{hGrU!iG?RLalRkCPeFJF7j>^;&cow3FYXLTm<{L;>y|(qXtN8KNZ2+Q{ES-=wNp;GeEg9w$5U%U=z{c=q!LklR4>K#F(2lj7|kL-BTtV%6v(t1FT%%JrsX=YD8AKfJC^UgYXbtRBC_(#ISG72v6?SBd -BDB&cVS(@6tutinf^QW+~iki6XO-8GgP&%?%4om9!hJdn2y$ZF;40BBb)YHVrlsqXC9aozX^m-X)@gt -QP#V}@r6@g8m01PPM^@?IYwdl1k+Q3pS%P%0LmdA!s^NO8MnlBJ({!pINEb2_n0_eDS_;GNEvRKT7~w -}TSw1-L^&76GnFhNpEUvMPu+mGg?ST1=>Js*0M;Nt{kLr{Q!EZEcMv)9ooNlCALPXzSdJQkD9Do|c5*N+FgPdAPS&qi%yV6w|~_Rsw{Cm(z|I{eRr_gIkY^pxyiLPE^|GKe|#;c}; -Tl^Sz3HqkdD^-Elu8z4?1;n9^cLeJUZv*Ey6hn-|q5XO0q9P2BaBp9l_g7o|CNL|6JFyBZk$SVly6Z? -ojSxI+~x`ftbDf?^>MkFR>!PWEWx%yDo2K81jpB7)oNM$M7mq5gHT*9SH(j4GQj$%o_Pp -4^2EWaKKpP>4Xs)0yBrppyKfDP7n?bpx2pfyVu+%1{x4M~Wuz04~Fh~G-fs8+u~XkF%oRCkI{(pZ>W3}Vc -QaXc5D$=Cdrhw3D~T1bIH6fJ=bBBXwZ;>ZA2gTqm!VF=XS$l6bwe&{|Xvh_U?vOX_B5dvMD$ZHUC0b? -jA&QVjvYcL7#%OTr@-y>!n7k#cn-Ns>fE6jZfyL}L@kfUBy7=oqyfdK+M?jstdGO|&l0RN -EeSOS^&|fT_s%jNdNk_%tXgR5sNX0{D|*fKVVBH+cC2EZa!rA+B&;%dn2=r3h5Tr!x7hs(9c2&O?ZU}XfL`!!_6G`uV*hPW%TlLYvbpu|LFafN3U>D`jumC!dRt!bK|U*x|hqt4~+w --2l_~^9XV09aY%v+t1Z#j3VGCf-?4Gv0pI8B&$+|?Z0$~2Q18nGuNC=4(o%odYc6lOqhSgz?l!q|Z&PY9h=~(zaZ|=q|fZptArTU{c0GM)xD6f -D77z@JyF-=hWPYRrererM#rZbjV=+p*lb(K;LNvsG|DlaAA3A6Wpj#Ueh(VsFOF()!nSEYdfhtIVxgQ -1@h=G9Lrpav_Pf4XyV}bP;JC}>b@r*ULAtV{1!UqnSJ$B9r*IZyAhwof=43o(rmVgPn!qTP<>E_K6Lq -+9uBF8bwul56JA26Iy_1sFcOj7Z)fi -fO-@8EfROF#cAw_3(*M}Zt7h`;yh=-uA=--+PE!!7!0e2)?6Qv%p}+6{1ce7bkxzukNPT7u!vHh>Xa$ -7NT@)~-ubj!rKp%Yx@u?JKPiOPSy`Ozw1EG%|E8vu$20gFmgqJouxMxcwd$|B8WHg=`8P25us+a -r^C$)AJx~R24(_9|Exfc+?9)WfNj_}x6NxLU4}I^E10k6Dv%Wb2vp@~zWEB?#5g<53;8Q2 -kD*{_%KJ|7f9FAOkdk-Lh=p(}si4X=0kZRbiagk&2P6DNvXCJ^->cqnh9rBoLh~TX2gO+~PW&P9Ff5K -M-yj%gdqerSDo@g>c`H7uOg7JQOx5=MR9(AAvJ}Fix--Np#xDgp%sD=bWPDdECA0ZoI@@dQXgAk7@~-xkuCg1GZ`){ByKEK)sUiMiHMjg;YS -wG^V7tCQpew^ezOTmyWW$GR2(Q?AwsVi{{##lgQd-T*>);DFHtmgiAUs*wbx=dc7!`+gSuYm6!Rr088 -$0cMNK@amTH;jR)lN>eIgqY;`T$>6mGs7kn2y@y5GCF^-|BNJda!hMNfkz{7<7FsrCsNt^2F)J|)Fw5h@kwcn7Yei}zI(}J<}p*NH&1@qd1r$?O*(;SO -|sDecrMNR*DsB)uZ(ko6=EdH?!_vutG-fHg4VFvA>Z46*jyyO+#P5`<7>m1H7nTUP4{%$Z>MDGg=8~W1EnN}mYw^Oft_tGE!0 -;n40kcG#{N(~-pk7xWfdXGZtK%wk2z{uoic5kLRm^X?znfv{(pDqDwFD-@?L#Rw{=ieOf^yvR!McMuH -Nj~sT~H#Sl%6Iw6}049_7*yh~L-8k0hVfStuVkJgBb@dazH0KgQKQ_xmIET$0wYqxvLVTQ4t~o{Eq+ -7Nsh$0C)@Jgye1_^%_beEx2bY_*8jSpc)Q|1IzmB}S2kl=Azhi=X1Ml8^-V)7wcTC(H_8MaGzIrv>C- -`A<7S`Q=C`gmtuOeHSAM8FPL11n>J8?uQ=3?bY1#c%$2%K0i*(%~VP8#c*I?SMR~#~F-(1tUq*~uAgv -V7WP}7L?>cXQXq>=8O;nmlMm~-8@H$?r%JXM)v_v8~6ES#f@bF`dPsOVzve32%2a5{x`BvRTIm(XSbr -FByUMGW&ar}7z9-AC1-K~g+U;53sADKome=aQ)Eehmdjm$W&ZR?fOewU)}e44f@}1}^LVvXv;-niMoH -xaqtT@4o?1O9KQH0000801jt2QZ`Og`4s~I0DA`j03HAU0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rbbZKm -JE^v8`RBdb9FcALkUvYH?vuPs2#=ZnPSlh6bg%H+mFuGzC`2+z!3)4cm#!4AsmEKXjTxm#ESrupzGPGP2h6TA+B_v6{vMY^A0-~&xw!r5`6)THL{ -oaR6tc6Rg50w_ul7mdGOEhRaGzN7rme^e-E9o`QT_HZ7?K@en^L&rfR;Uf?DE4j|X%eJw(+N3z(33?p&5WAoaVcK?`+aYzvIk$<3A -=X;!_Yt5Dk*PT5Cuyr_{-v>;!nH;2XSAu-eXQOcUVI;#DZgmJdx`ci+@@F^FF-d+4<@+a>8=fDocb=S -IZ|?MmpU#@C)e#7Ia|fGHI&NzL(ueRT&Z-~mf2t#IwPE2!0?cTcV)b)P-ap1XZZIlWVvIuQO7Ng+t6R -SqBhp)<*4o|HBM9{zowhWE$nMHd~IBB_w@u%cxk8H?CLQ3!G`hqD;mkr{aDC;Dk0s*MBCWkbz65OwwX -2kjStDqG!7c;arKq<_qS7bO5^mL1plF=D392bvCq=c*-Q95kaT|{yR#ptu5pcps+{8R3}c4t7ZDQf6d -#!nbQ47vz<$UdxB3xb;XyB;JU_+fy<5g+s$2EFdmQ`&P)h>@6aWAK2mlUeH&QuL3e##3003q_001BW0 -03}la4%nWWo~3|axZXUV{2h&X>MmPc4cyNX>V>WaCzNZdvn`168~SH0-kb{7Ci@FClIOsA*G#1aVn_JPIjVgYWkH|L3B^CT4v{>CewvNVZArbNt -ESu7+g&jl-mTq>5&>BsYeNATyR?lxg>g;YtNjkeh1U}wU37E`zHPhZ$R0Xr3f8ebkA93Gz@8iE -&kPVL%p@$mqz7i1IWQ)TC@v0+N<_o>mP~*l$-{W=XbCBh5e%s#2~ZUqP$)&I@c -1*c00K@iw^PiK$@Zg_^2R|Mi{{U>w-IhJZwt#oOSn@rV<-qTykRt{kLUXYWc$)HA3iELUGH}q~1k|rU -53dRok*5=Ox+<`*I?AB=&8ooO|ISDy73wCr-mDAJl?_`pfN2rfqS(I1p58wCj7FbGagwX@g}B7F_HYe -q*q#E96R@B1Ob&0gjaPd5!rP-qyZM|8VWGk*FwoK#OW{pu%vTI21f$<(CtRO2{(h`XVly<9moT0> -hugCM9I%rmWugJtofSc4u~q9v7;OzA5ioK0G@bo=j$y#~dXAWO7v(QS~U*+p`?yKyiF;0d@)RG$4yl; -?R2BdyWbOi%S>XzYnY>C6~=|3i2>gN1Ln9EBl3gLBzuQxB*r;Z2xl7{RZ4Y@^{QyX0vSH(K5vzCJyAb -sU~NfAi+>^|1%2qtHAD+=llFGQJdXiL#H00WYj^rXIM&=o}HHNCnrd#NrbF6q0^{&n)q8ipmB;K9GvV -oDt{aOO5645%v~34zb6^pk<$JKQ&5m1gf06o&eAD^a@2d^4SZp#EcnWv|IE<==r4p&yg{aKrhKS+lx} -J)ZWhq?`M|JegUZoE^l^l=-Y1K^b3*22o7YDc@OPG5f*2pes*$r!oL1`r+Q2@Qo^=vfg@8X*L#)q814 --hmE!2RxQ;}DzOXsZouQ5xHNa>@Vzx$)-|}=N4yDYcnH8lVhy?Qf)?O$o{8EpHY^hD=Fzgk@SLmjFdQq9&iz^qm35J6!J2L>2#3+20Ezn}W -0NOj+3Z4yf+jhJ#gIh2gf!%5h~k+lc@~ME8Dt*Og&AY=2bEk?mY{uuVqkcJQWw*0m8Al-u+CSIc7Ta; -P~{pG#xHZwFORi-fu7F=kC{yq7%U}BH)@H~(#ShuIhuE$*iBuN3M!{UE_DuZ9I}i`pfLeWoGEI+HuQF -!mq(ZhEky=O8MW0~X_P(D%+ZhLe5K+~!TtUK`{LKz**CWRhcLcB#Q5S*q4%eQ?Efi@{^8}I5)I!J^%iiXj$fQGR%-mgWp+oS-$j2-282U -0)|i=LvjYZFsMN4C(T~{+;5r-D -B-q{23`86)2N~e2bHHDTL`_&p^kv -&*z~)Iq$ubi|ySZJYyJ}5uF86E#*uMs#tz%K*-}iEh6j_J}n?^F+MG1qC(K*oo2{!&<6S+JXIU9L8+e -&9Q6CK*dyy%&5{T)nFV!aB{&dpyix?%lECIrdgFKTBX+~4eEaXeNkhY!`1MsUPq|wI -!=*RiDAq9}YqvzezuVf_*|+A>)UJ?RQ4CbPy~=ImWIN8qkPfChilAg&J$?eE`w+ZwtB{bG_aTP=l5qQ(Zs>9|e=Z1E5@ct3|=IR2&%&H}7wucx>7g~uMz7`wR= -nOaHQxbu?nv^eKq&P2(-j3C4&F$7!2;pt2OKZ4OjkD6%I;@Nq1vw&Ml3(d`=W#%UV;aJ9;e -tZtv30Env?(n|NRp_W$V`242D-J;uN-FsGn0HK*Oa_!Vo|u)Es{bZwh*2r-{yt>sbxNUv%nhEvD%$uLBQ^k%ZCa!xj9vVZ4JNR(FI>%DwZZQ$>myeL(3FvUT5`WV -i9>@UG}YUTVzS|Dw8tvjw#Nl@g)xZxrkPD{y?6jk|N$Xw~E5*%h#!O9kNY+_eAfjKCfS=%w69^QKS(v7^ -pqS?6N)@)S{jcvkop^^GxWoirZW3U4Bz_>in_rY%G95f%}I-(K_P8snBz}ALz)o+4*mSCh{XaEIsl)! -34Gxzk@-Vru`O5l)^M>o -EX;`7SV6U-*3p*4mU<;0kxJz!;xyAm71){@Vu6nZ@aL_%1km=Cm37Fnv1aH?y1QMn*T}v2W00-@v0A6 -QX_p&S06GG| -31AhuTHV82b#S#McM#6SryVQbo{m6)`VhO~-8JOL7|(!V`0vdrwUhp^9oSZ(tyzTcGMw9KV20bJq{eG -a*d=Gl5>J8^bUyUt@zmfX?|dCYxK!I=0D7BXKIV{`K4`zT!B1Ij_!j$3UpcE7K~3}Ple1%w2X1_#ELY -kZT&LyqnHE*dzneUoUUqJ&JZsyjGHU5Y19gCqJx?Bc?y7FF1B>}C -5|WGP&?ZmNk&xDK1&TlVG4*+2bF^b_KZuO70?5Fy2B>pmTa#O%{o%B#Tw+nLWpSoxX!Z#XcaBL0Iw{% -E!5GP=E-=p%5iDyGRqsL`?6V!$b2<5>2dqA*IIY -LIF6#9_=Hx;JUhqqvWF+df_72zR9SGG-xQlzzlSNtfVft~agzgvp{w5hV(FK?mO|Y9`qL>5Skt%ft^| -{)^Mwj3V0Xx*ZK*e>^2TK=Ii@TDAz8$KVWH>}$HUoZV-Yi+27Tl5WqYhOX-lS_6f|(Gz8^K2(T@4QHu -DZw5)Z=>U$9mvL)sR~kW@?`7mZHs-ZLe^K5G;?@Fb251wJ2@xgH3y{QW39(?DC0i71He(mRlJ1;nnUt -lj-{VDc0cTJr8uw@=-PO4`d5)d%40DeJfLUsJmBeRn;2&bjT4>@3G}(x9kFJszcu8q~ilmr)+4n3F9N -!LhSm}owHASRP}!qJn!XdKk_i9FGOKl+!v=m*O^Ukc>YXhIDPUCk)k8&d!K1GXBF%m%`O$%l&i_c>l? -dfGd4&)$v&3)?lASow^EN}{&CbF4^#iDqTW1w>f77twn5Ps?@Q@*il9KJ<3g^vYqPY)AYpMZ8^;=zWhJ=kPl}8C(sKAOlO -Ul5hSdi3cyxo+}JlnUETJf5p6HAl#$l%(DqfDtdk&G(;EJ6;^-Bn|CN5Iox>hzVw9kGi<-1ck;NJblwq`pinhlkSz<4#1eiwSEy+FE>T|>4F^djdX)31-fzm>wX7@XH??KI2POs%t$U$e0Y76IE0cD -8r@u8H15;8Ekb_WmQc8dWrIv)d1y{+U(ZJY^3O6(>1YHsoc>@)|MhtPYaGz~=8?m4Bmm}1B%2##+2_n+>NGLl0#7XI?K7cDgGHfL(*^!#Ji5>;0=q>y#DfSggv7?BnKMsdmQ -0=6R;rQ{?^>YAVmvVwQY@nCmDDH(wAP7XAReRCb&bMs;Wg5f;Hx%RlTH8_;o=VFR)b}yCx4)N|r -SlNgfY0w%;j7eP(f?nGow{5@zc0^%SxHW5|BVDZhAOxka0)yvC$FUl}%iol8%3!de;3EtSebHa%t-ie*TYVqxxABtXkoR`&`4q73!@PI -jU!6bF%>abkBqNsbTZjY*j)6Z~YmK@HE?esB~%pKJ>DPr?I^w`U_#=t)t_>LR3);{)0u|wP&J7_VFt+ -hh$#j_p?|JU0D8)97|y|U=O_nZWxt4D59xcdU1%XW*I4ky~_pewX3=G+q8Ky`h}P2^fD7lQrC;Ysycl -kT?7o@2IMU8^zR$`QH!@Xq5?ah*i@Lh|A~!FPbx&dB55F$SsA`}7>1f*ILMUk-<9o-LZsu5=npPIR7J -izdtVELvQ1^jO^q?8&#r38ZiyrCN=b7!t}DOsX|*&pSM99M%$eBaLe2Q6^sstNbXW94OS;O-Ol*=5F* -qP)h>@6aWAK2mlUeH&VBWHLZ34004mi0015U003}la4%nWWo~3|axZXYa5XVEFJE72ZfSI1UoLQYHO# -RJ!Y~v@;r%|v&vht>ga#E+aI|wa#}Ku)p*A;7QpLAd2bZ&bhndgG#n`5dBDl={af5l6UIL=K4z6o6=I -lcUb28ZK9eR-=6EhQ8`}{&L!CD+q)oQPFMRZRxLcRW9KSoIfOJIQ@lRKc<)Oz*nnm$lV0|XQR000O84 -rez~9^{A_1PTBE_8MO|a&Kd0b8{|mdEHrUZ`;Tb{;prK -P;emS%FM-wq6fD+z)9rVP2vPT8;4eLd6c-a)+V{^?$WXv>;k&|gQyQfu77M$P9q}MxFgg(}ErsQ$&ki6k#nZe -V7Rg`4nRvv4?w8~04Br{$q!HYC!0%XV40~5R|X{E?RCRjEtC@3NN->31XKfd}?`uh6({oC~Q$(wiMi? -<_?6sx4>tWw7kY;MRJsr1vy)!C@d)IyS2(mE5Ff}JgyS`aQ1{ead3a3FB!C9CR2C3lin=)ocR(!XD#| -NUd~B}tO6UwgevDx1P=GhE3V<(Ar&f~rPT=|fh)YFymw_xruM;3c^&_>{1+=0fSu=2!DW!TclhCoOs2 -6tri5)E4Y#F56FfOGc6X;?&%6%%>zZesBwfS11>aVuk;<@;a5sW)u_M>%AZvB6C(y#EEFMLcqvOuv!f -XCi_>rY{pBl{wvB=T#W<`@zvJ_0w6!#Mkv<5-5+)pd7wfvUZt#>^U3!&U!%X~bR -N3Mr*}hwVI7i#1A~fzgDJ7Ns%aG)k!TqW39V)vJsm}jnjiic4KQf)b`kzV-AUe*wJ|UcwD-IlZD3IQK -C|MPW(_!v^@3-4JO^{MkaQyyN8ch8(`W8{)A8RMi*CD}Tkp+^42bTvp|$HOd&pRUR1}XNXS7y;7;6fO -_%dS>SrURmffy@MJX7AD<-t0U3qmx9;6}1)Re2{hkGmSZ2pHdweQ -^=(Ah8>5=^z{IQ?BH)p`;ADEPou>G!Nn*7m=(ukYN#m+!AMbJk&Yjhc-*K_DJ=sEh@>!GK}vl+CK96X -MZgG?U*+J%P0#i})WMWr$(9aR;4=7}Hp0S(-;2U@kO6BiVx8TM)!G^w~KXPKn2`yrc3{Oi3K3`{(ovg -fRA{Wgm&Ae|VHUdgLk&^ddICmq|p8IaMa{c3}h>c*VfoX2fUP8md7cVhtib_;jAe?d-i?EHsH&=xw*3 -Zr@o(D{LG4GqVzsrFc}w<}WJd2|%0>FmiZRdLkOog=e-NLRSF#UFiy641W^^OO>lhH{Cl3#Q_*mwVt^ -$0o7%f-G`@4QJd5$KW=vG9nJXu}zk5x``olxSO-Rq&QAe -;*NuLf#CreM*Q+Hyf@5kv6i>^7BDA%n@b?#}fvtxJY$Zp@0knlwwAtzK#mB$?beDt8QufdZE>S&1_gm -LF_wlL)p!sg?O^O7=MwLi7Xz#-@#;n@9#Ga-lq$JN&wiRKo%u9Ig(}#&r -DU>L*557!Y7um{(&&5-AO)8)+3yOym9Cw{kGF=%G)y<5U^sQ&AihQDmT2WIKc$C_34|95&LC6rh%LSV -)2=gj)5@Y|2pXMhb6{L9 -&R{9bpBtMtRk<-74E#Mw2IllPb7led4jkF{vz+I7yP(uWYuwK85ViWJUD0bX-J9hQm6;hZ(44aKzSR$l2CTf -Gc)r$Ri=G0l^FIob!CnjfR$Cp6-v&j=5;rios|%1qp2a?x?`x!zSfQ|~kv?lSPz1|oK<^m!12)jH -wp5Q%iNC{eV_n7LJh1>o6Yy$Z}7K+gnq{}klMy&)`N(y|JMkJl^Uc<5H3O2ESmJD4 -8`(Mc25wR)MC7T*26 -PkalDU{6)^`{)?T15pWsgcx-OfII{kR)BozU5tO%U%Xq`v1=w5%-XkR$@r%zk!O)-}>E4ypoflKRvyUI&r57h3#y`W3zi4&QzB-HyWkgT0w3F-jXi%&$~KS=pB~*fSK7t;twTlHxOO>pUEN -oFX)6Did?)+lyH-W(j-8CMLdJuMe}2c!Jc4cm -4Z*nhiWpFhyH!os!X>4RJaCxm(OK;;g5WeeI5H1#y7Pf#MiUL7>*tW^G=ys7q(Mu2zj5M~nkw`5`IW> -a(_Z<#NJ)9=#p*chrXXcyXH!rPLtDgtiHcYVI=r2$^Hdv|l?E3PW{qX&d?4b3%t+Lf>mC3Hx#xY^`y) -YKid#m?*v`DYoW;>%h*2}))M^KG6EQ*}&+N5R=gOhC*bSqHDI|?I8DW*$xlt!x#l#6N)M)W-xo7AqM# -~6RZ5PuPE3nr>H(m1W#QO!ZuZ_xRv_RI7E@3zw9xWDB3QyV8SdE{)M9%kXAwo9?m5<2nXDrEczx&`?!a^pYVuGr%;aw3b`)@|3xO`YdF8KH?8=x_HyCxMcoS0^?v&p~T -0)_|Nz6xy?Y7`x&4lyC?^};y{i1L|S}Yy17OF}4_Z?>gqe}uRc7=WBtq_o`FyTWVn(c1D=2z{>m!MD2 -4jYO+ATPcicfPF{j)E9LFb+{99jO{wV;eQgOgVF!h>a%Omr8{c;h!4t&c(BqUb8>oM8C>^fqZ(%#UZwM0OF6{`YBIM|NeceYth=GET2Ik3cg~UndJVNqZInrs60xG$EP5}8C -yxU(?$Lf3nA2KQo3O8JP+O+=LF?f9V=WfTq^6Z9*ZDa;`|#A2Un@x1br+i`r{P8of3EMU -IqL(bqW(??zP!R!a`{F)?18C5FLG+abkpdg>_AE(;^+J3wG;5QF$3~f%hxs(%9`L0=RlGQqU4SKV=lS --JApMRUX2rp_Uwc6$up@BOyKorC&y2a&W;Vs}0H38fI6<7~$LtNmCUNG`2vW?gAPW-@lILP|or-&6tn -7(8zj<^<;{F$CDaiS`;R)<^`=-9@t`3@s=U^=NFqWbjOaYBVl&=GD-eEN1pgCexyY_VBt6u-JXd=TJM$xzn^;Mt*YFP8JLn1Rek3LPWwVK8JFMv%VE*%qfR=bka -#z5$Quiz%dsPa;jc!Jc4cm4Z*nhiWpFhyH!o -voWn*hDaCz-m-H+Tf5P#pl!UR>xifzP!5YnN2D90757C4DYJRFtfOT4@8W$j=)cekzjzcb^HeC#I6wO -rwW<|VN`GoJa)m*XT!&NjTbCXCctz2=1_OqS$|71tc!JHo8x+u91bCRUNFMpPwf3=S{OFUU71-;#||* -CwAONiq}LT4@lW*EQ3I$8n|BYv71OWo9d_w(!ntW;Y~E3$qdxUy#>INWu)M@xxQrqR#0JXry#*)wYT( -FX8(KUZ|3vYpwJGc48&+A`!(w+|z6tD=II|G*@73!HtP>&RA9P^1@F#Q7zxj#81mKD(Gb(C^(7|w$~+ -2McOyQta-q&gG5JN^ZG~WVf2tHP@{X7rX{{`~= -=`=IGfBcU(sF^EJ0G;FIf&QpvWQ()nyQEBT5P7y{JoNlht?&74mcBuwoL)%?#!Xl~}GGXl@80Ke_)mC -X@)(B9MFWA&~Z-~+2Uc#{fgENGdH>@c7Q<#QodDodYv4qg&?TTz5qEO`xa!DS)1NjqMCSMYkwv8M;(I -ZkKkQzlS21bNWyUi;vqxoxy0Pgw;aKW#b~XuuslUBDTw#dM|g0R6Y`ra<^n*`QBkJ|&M#x^Th|tUq@z -q2y7c8x2t`$uW&!0}x43hviG%@DH+o-}OV4r<`5xAXfhkZ{KU9Bj%Ri+fW6vj-fN@rQQvSr~?*(cmA{ -Gd>Xlf34E}=U>dg})sG-sF35fq4b|yU2a5oXM;cU#f`{D4Lux3y7ghHTqG@FD5i24g^rLD}B1?lcC`) -rF%lZ0EIv-cayZc}XpX6yo@R1><;zp*HY}gGaK_;kcxinyGGKI=jzO|73IT8!JDH;*|JFsJL*~NJ@cDig2?OU4;B=$pAJ`+jDU-scEm;W(# -b7Vp{NW+jTdO(GFjZ%JQZSxJn(6I^^XgMG{g0ZdNB>hZ{U0<_=jw-Vrapr1+f2O@AHA8nZ9Y;nz1>vD -JL!?83A~>==6m`f{3l|^44)s+F@f{pI_8A1X-gicV`c_^g$qtgp@a4HE?!B*fapjTByE@7jX)?Xy}*d -eJuG`kr5ah1Q4vGfdR6XcVcfmPDAzbXgIeR-yn;&D(+zw4Y6xAsNK0lJ*xue{WUFqk&&jzoSQhMtlP! -}#tMraImV!a4;O;Jjmo0}Y9&k25GzVK;`ttP{)}Y>|uX^_Q1_m6F`7(`@J-T>X)F<;I!^$Bo4T&BZu! -Tbz^^1>jF&!)WFPupee)BaoJGc{i&Ufx>KIYZrnY>|@*q511me)fkyM_U_?BBl(!Znz-7yuBm!kr4Jx -&|4OH!;HloofMy9E0O##}P9F6FlxU#Nw7|389^(zq$WGCldnGwe|0aDYSx~-qhG{4d-31p~R@mgv8%n -QyfT4gGvF)s8Xl~TLziV^!jG`i;_Gzjn!akyjIMg=yii<|>a6n*n&dQRqu-5(arJWzrMLWCURlQ7 -}5SRt0W9}46TG;zA#X~6s$>?U-$7z8(8K-D4XW~*X3(K9ikjdn|de?fWk7BI_Sizv1X6c!SuV%&od{F -$>P*!C+AFEg+d;xag(};c-%$Rx5y=-=ZSAobwF>%n$w~h!H47ceiN&mPzxw`yv8xTydR8_XqC+#%KkF -#HQ(_Y$ugDkh=K-lWh -mYP`ui`Ck~<;D9;xMc}{RO;W(3C>M|EmShaoh>d8C} -E}#|8Q-Dl5iPcKtu-JFxBn-23u7@!M2Dbm4(W1gb)TYk#pcr2`?=OiQX1vE|^TX55_k5F?{h5pdKv~5 -|J21hwoY24w!WgudOWy=jWTvCT7mjSn1Vy2-%!Z#@D0ieDn^Tb>>g3IXBcnW0I6aUy2Ck)=Uw=7I3LgZ@Ogay>F(hku|5x -Hv*Gl9JetGZ46g5{H{<*9-4x$$VL1H)e~qU%ec(tFZo{8SP5z^kf+)m8g*hjZd2@KA73YvCc_K2AU|e -!lu@#4v`p&f^5tUpQ!q7n)bT37b6v8q~?}&616zU8&RN9glR|rtQnyu+{tlkbffKM1qP?_9x!hw(7;7 -Dtwy_KJaE0`+DJDpC-GguglTk3_WO0qT!61a|fVFkV5f?Jjw?sv*+81jD23?_$;(3{u;_2E>|*!HyNE -Sj0vkJr%j?EJ4E4;>qBtI{Gx;^*XMk -7g~Aq`RHQ8<%$HxgpQe4jM615dP7Iv_Az8@kV%(e3bIa=*B~o7~Oj=pDbw228I2YhLbG4qzlH|4lfiz)ZYvPZ^DggV+ON9|}xF$|=uoV?4G&vZOEBPVDPH9D6Ge$(kn9hYV7KM){sR?!IV7=R*52$jKQ;yv=aW&2#H)?#0-7rlBmA -gJ{u>Uh@Q8))Es*i>62Wdi}TWlA#LvR@XXc%qNNK@PFjz;?P!`m|YGnTtCG4o{3+<@|Sndk`?^rH1_*MVf-qEFKv(ViY!Dc!Jc4cm4Z*nhiWpFhyH!ovvZE#_9E^v9RQq4}oFb -uxuDXi|$ZR!TvE)&wYF#(4T2{<7%rK_`Mv~iWBl)gPp!v-1yO#+{6$KQ{w1VM1u*o+iR&Ze-YqU2U4G -MBaqf`G}QByC}9NbPdd7{*u+uDMEc1dTkEY6EQrwU*Z9xA)5!q=LtX#b_2mOa7rT?Zzf!#-wmW<5$#1 -l3Gb6=;{0!F6S`4V9-WykLk)3MMsY-=cP}{HiFh_7Qt}%QggjA1CMi2OPc|esQP{+tiuRUt;so^hm{q -hSvUZ0KzxE+IPP&;6{QytU)b5+hTGV?aO}Uy>Jw!(+Da?0o)b^|qLstk;K3;-|8a`s#LW+l|MeEfb&s -yz{;q}0F($j9N~Kp?lV;57#$&&|!TiWPzOAve5c2}N#?RQBrANF2P)h>@6aWAK2mlUeH&Q##xJJ(b00 -3zO0015U003}la4%nWWo~3|axZXYa5XVEFJx(QbZ>8Lb1ras#Ztj;+b|5h`zy3u;$)t79}r+zkpTq;^ -w1rKT~Z~c8#cCNPz=)S>qkmjSX~vA`T*7^7YA46oeccD!Ne`UYDV&vAcbY{wH2 -`AhL1%*dknI`P;c?3{PcKt&Br;;fO%#h1d!H=E7w2pofPDHX`k*$4o393(<7iGjupJXVTQG1q2w5ox< -at#P@?IXdSK`kfKlTHxuTLGRl3Dw}Ot>X-mZt{37$r3xX^rZ1O{o?~T}%fm^dN%;>vfO$%=r^;-PZ0Z -2f_`rr7M)BkgyzZc94Bnua-$SaM{JB=#*JpuYM2507i2K*mMAnK(p&oN -Zd1`LN0xwCnY+`^TRXDs@x&!x(f395%y-OA3LnmKS_vI__A#qW{!Er?v!a6m1%nG5Ni$ZhLGRAXy&<` -|ZpS?;nQ6N$Dn)uEs}Ye`Eh$Tj!$6%un--Rd&@=X$P5xqNBbU8PmzNhikDTzIVJ=h*sR1ZsH~-S6Z%- -eF^Bx+(6HZ+ZjRo7B5%&F9)V7iMy>D?b#Ed*k&p(JRi;c^IY7`7ylHT%>8%8SIB`aqlfo7f{VXUO9KQ -H0000801jt2Ql<(;Xb=bh0GSs603HAU0B~t=FJE?LZe(wAFK}gWH8D3YWo~w2b!lv5E^vA6SX*!FxDk -H$uNZhy$i~XvvkSCa1jvKqC?~=?wjnE<2I+wyOH|B_EUF}(#8~Wq?+iuBlH=r@7JVqt1_5l7Gv8b|oD -2K?{>6^xDZFeL%heAmH@5KmK-#-s}~w1UaIimul~qu{(YZH&UI{XrBJ@s>r -=u-EIQEQ2T)aT=9-wB$FI=z$VDnXoA3a(LDQ{CnYg1EOTbK&UY(JpN7aqDAL|)3A@pSI%$TsoG*r2GQE=p3>pD7`-3CdKXzO)<$Q5Z>{eLoIC;VoK1 -D*F8aS3=n;2E@JdKg`|zucA)YC16AR9;-R06*Pg+pFaI{^wXyw{{rEL -5en+_%yMDkYoHi|$!&PO2v%c_Mo>^zXY`##TQa%jN^#T)0Dy$gID)&UMHwdOgre9*okR`W-{^@m1a%Ho{-ixg -0AnLrjhjlrX|i9-d+t4T!_h5@Y>AQ$vHYEKo`A*4BYWhnEc{jJ9p)x(sgwif5^DfIwFoxfGcPEMm$;o{JaCn -wXGMPByBu&H+ZnUMm=J{Wfu -y7pkTxC-wkfd~Eymcimz|I)jJ{$z!}`!3x17_qk@AVn~lhxf3!g30_Ie(~p*^@(_YTL#{01&aXuo8`> -+E?w~F)7kB%KmQCD$UR?#F!S*yA#}JfVlANWA>Wk+y77YPH7-sr{Fxu#yKv=)b3(pC=m{(*LFi9!XOj -Syx509;@=%pa%R67p{rOdZ61^L59*$81Tm$b{`~j=$$!uoC+8ao^P8ZAj!2f(5!u4Wy>EYsqXTfIv?UH^Z*3UNCQMqKV@@mC*5E-YS;k+_ozfKDQB_1RQIDKq!-ti2%!^D6oUqB|RkCk -o^fUOAa@>QAVXrG!#m_9V!m-*~&Z;IYC*d{nk~fB@xb~R1iuZW$F`DKbga*P^rbuD)vSrBZ6xsov0o8 -lz72v#D8v?dp42!)`{57h4;=F;uhJcEA)7=cZ_%1xhQl0&QHK@S*bj7sRa5zX#h2DOTc-E=~hO-um}J@dw7K0c`8sHLKi7mh&~?99v92G -h1C1aH&3`cc4Dd|Le@hR{Xuge;g+*E#EnpCa6Df>=3a5Wko_YlNVUhP1QvWX!1$y*h9Tr)kZd>NZs^VUt(=GQo6QO>Yd14(-v^6Yc*N -RDBJKP+Y~K-=)h9{%wAct)A2gTtL}`p4owHVqz?;5Uq>VUSP02Rc8#UZ(Ul*KY=UWJONuV+u=L>-%R#Fa9So?yQ2@2|=|)jC3yb^Cdc9Zef^2#?V^tOI}qgvfWaWdspbGYdhBJ;-4nXS!A^|g9Gh!oQr<4&C$MVg_rdL)S}1~9J% -m=_EZ&LR@W0D&#ZPSN#VdP~4g1~x)GDcfzGm9dPs81E7e^3Sj#KSDq)><9VU0$@gQ=HC@tv!Q9SxpMaThbVgpH+ipr}fH=kkTan$FR;t@ -D10rpLSIyluGtud;O^n4po#{}o_`ycidqk5`vYYUn$br1N#d-dVid18kmtQQ9?>IDjmux|GP(*;qB#3!SI*1;?S#oGeeS&Rt3!q_};?k*{ -5LjV6CzDy~SPcYqoZT)swj#M4or*|BE>vtq-Mwnq53l1@WskMeS -e&-GOcuxH83iR{oUv@) -Wm?`6<}+z07~nh!gY?3!G5HFiXNSfQ>I@p+sMHJSfiIP@7Z#0~InV=!wUI}ti$yxA@4P -O}dsLKFd+ZgXnc35`cRl3X&au10edx+A~2|CV|u1SEGH_`QNw)smY0LN;W-WQ0>3sz`X|2~~dbo458jkuV>_4zH3)BRkBM_F{LHSHNYg$ -O-y!w|ToLUTd_MO4DUJUee!>#+#wv)Wz>YZ?`C$ZHSB$vx@&7#iz6kmBst``J~ztUDZyW0m}%HYlkHC -Xhdsfp{kHLN^wABJjoFA(>;<9g@G_Rz9=83g=Tr7goTB`6+W8j5oNm_D}|sOLX@6aWA -K2mlUeH&Ujia{`bI000^+0015U003}la4%nWWo~3|axZXYa5XVEFL!cbaByXEb1ras%Y9g}+v0%32}mrF!{NMVIHcUyy0 -Oge8o^7cwu?=p_pH#$ichwZw@ea%AK7!ox1w42QEdobo2=$`7l2FID83gdO5y_cD-QmS-$4Qolxa_#qYVS_-!SY>0stU-SbM8Ve~t#?|zWRfYid!du7@hcM;`JwP?7NT7|h%YaV_hiJQIw!rl1IVqu%(xtsUg(H~G;)(E591`wg#yB`Y&479LZsvLL9P0` -5O=BTJ-Mab~e2-`NQU+FZQ>yf|2eXs#}aXrqAJO15^ -q(BH!2_nwVmgy)f^>@#duHL4-EqFge`0d>i2e%tY|0*wBO#AZeSx72tJx6`^}oYZG=c{iJKM`2NRx}Q -u5YG2JFFaeRg*CK~@#J6|CXXh>}SlZztF-tz`vQN?V*Kog##C5Ie8|7MKM*y);1z(&l+$M72qQ6yctvyAYht4TbgkKab_P`jZY)p2%1SpSx&I7ubv>qTI0{V^62-#aem;?W#CKk#G3%`N;l*Ufft4d -jL3vtEnILunK)TRAP4H0oX7%!7zUqVValZ+I@$y==5{V?AS6K)6Q)Dz-Zfy4o;IDyS=D>( -KBTL=z>TjuSu$bU|+OxU)jnM;|6YD1&`_#$X_8>k=fC3?Nn%di%82^8x=-T(^dQE6@G|+2AS6zj`#w? -6AYciN*r)-q|rF+y90vXs3B;fFIaWG|ifFeh`k*%|7Sg(hfsH87jvxoI=9-wG{>|z8A!g01olU2*xq6 -;u^*~gT}Cs5kYUkUm8J%jgsnc4S+GinOYQbBVh)zD+j;|oa9$iHPP^Am!fvi=)liOe -mYZN2;8Pe|wc}K~YD=eXO)mp*sMPqQW-i$~i`aP>bA-*EZqyYrUSSI*!&d&bLt5&!~ot)tU!}hIlStq -b`=9L9_a!=^GLmzT+q=8ij-ILfaK+U-oVZf#K9(Sxi!t{)NfRx8Uwjjh7NQMG#uN4^TMt))&-LT6eSh -->^vX{QNlee;x_L#AsH9H88MRi6{aO05ido4>$q>!KY26!&`1iwV>7CR2X$@;qG85jeGNw-%c4Qze>J -aJRbE+<05QQR|PbJc@CB&BXeFOacvV@i|jX!CT0`ew!cwvMTLyctMkWGP}34F=&0!~uz2<{4M3iN5_s -6gCb{Aq??GgF}Fr{T@)C0i5EhAVGf_BTwC -thC`l$Lr)M!eFSSjIy0;HRTkr>jOe!|^lqq&3>Xnocg6vpJeeuOv&W;*M>UGa9z~payr=L{wm4_6T;# -_J)Te88ukT#$o=tr*irTqVEdrNfbqh2i+Xt433iM^Lddm?nF -gnV6Vu1QVq{FhfFtAs!*lXV61Pey|K(3`^ObLs&FQi!eAU+XsB(5heZ|(>RC=56Y)&V#J?uku;<-W%b -G_yT)VX>=6k+H-GSCHI)~Dd%;EQ;R$ydXHM%A5Sb$sqTRr7=Q;Sv*y3bYVp?_6Ifi~jM&$CCN5VW7@* -sg{cJRIG$TU=LjVwc)2*;6rlRg(a{8@~?&mE1x3j6`#K3({OJ_mkWucI58G&@csN9y|4(iToGSQ0=aG -&zVPC-Xk+gs8kIL1-Jf%^~7o05$Q+#dCg9VsPCYnQu55=221rbtqA$oH@L`J5udzqNGuZ8mv^P;uz|7 -D#T6d0{{8>V!-D0nZwBbv1VUnFTOfU*%{E;)>iAvoZa-mS38Iur3TW_j-@K9wiJO(N>+xVVKItR^)3oQY2!}5l6B-r7_6azYXNG94T*kK2~Q3{`; -!83a}9m^w8$se|iaG1?2)&kP4L>h2z6D+Oe)lT2*0jFp@Q7(+<(MyfR|-G(-HH -kxY$oY9e5dApuV(SLqXNc?3V=7vM)D>8$a8#?IZu(~Nw|+Ds6A9jiEK@6Xt=tVC?Z3SvEE0A8hp*V!1 -V)2&^`itD0PWRtyZe5Vfr@?=WgMzF5~o_HXuNZlGFz!^NdJ$5S|V=BRv4Kg$pSZu6VnWw()?soM@Pba -+2^>i)Ce@051H+0} -FkhS2cuF(_d9XOf~Pme=c&)21P|{|N5xtREmNzaTFvublJF*`yZC~N%4-v5_$G$=1+KbteA+f(KT1f? -hd@!nn(xF*iWkK+NO9q15@tI_q~#Z1|OhC1xu($fg;5oNnuxD1+H5Z;fq@yeOIS%;()>gbyj@WFSK!J -lZ<_cu>lO^BFlCHO2peEU6I%iNdqzPD^ -BU4=B`Iz@Q55TWuSlN8D%rc0wCZm8!(k~@il1TYbUG`4sz8N|#6L~(U=ZSbf%d&a)SI5@b7JvchtaT~ -lF%^bd33`-=Cel?^ygz}dZIhKvrU)-=Ygu7AOV$}JVwnH+9T_j7#)Ur=;0?Ns!BI_5&Ei(Z9ZF%|j@~ -baj=C9vheE&`U`qi6%z5VeUF!#ao-xmW8$1RYP9U0%HH=?FXj>+oPVD+OVII~s!Gl=g&r6sH3#skS*c -VZ!dznM*NGtMRj8;j%I`z*$ER<X@8=s)8KTz*I@pbqZ!V?Lm#N -*d=L|bUt8YHiwG}U$6di$z~LqH;MW9xBxQGeUI)eEBQw%#q)UI(Ov;@21R_8?PL^%|m|?k^N}DdSW?w -w?IJ!p$kTI7hcT+mVfQL7mdFJy+whEr*U(I}Wzwk0=R#)+>nDsOs&MSD(YoEla`8EE<%zDa)z#P)h>@6aWAK2mlUeH&Q+0a{ -?y-E^v9&z3X}#N0K1=pHERuj -t>ACEJ=2Ir&nIOM=hzlwPQD4d*yBe#-+83-3Ma0aky%+FW%ukihhMivR%J!r -A|vA-N7<~ISM}wSY`a+;|KZ^9@bKWYm|Yi_WwtKcX1ku1+0)aP2giw@gM+8OQPpNewrnn|S+UF()v^T -0^`@xma-Q8*o2#mZ_bUcH&YHDveb8<%=GD5KZJPBi+gz3FvRUL=_U@|G4}!5|<%bnCZvDf$xGCF%O_N -;}?@NSGt>Mef75rxn?b;IlEjBWcY&v~7osP2yb+dVp-Cn_q_vISDf&t-h=u7zq##yy6mgh|d&9iM=W= -)$@i)K|qgQ}_940^sP>T0!J0x&nM0~%I#QNsGdNZJ+#P}R^DyMlS-2M4`Vgw>pvZFPyO2VdMa>uVl-- -K=k9f!kfXDR1=qc6^YRmzVrzoE7yv+t&CFAov$Bm6w}rR={Q~TY*bEv#f3^TA^Y`9UbI9RV)66U{U9@ -ZM$i1veOr*+2@ZwgXJpbsoH=Y(7bi#0%)OcvYCc3n; -;S#?976&G!@+-}MV|9x;E&ta1KYvX>a8vSik-IV(K+WofKtxDGz=7G~Ne@Ykf;I>%TutTnWyD8ke#kK -~lY?kij>iTlKsg`a?gaggmy#@qWzz*r(vu3#jR7E85O{#XYtS=!5nPXyC(-3{K#8;bx?kom8(tmk{-QSu -bVZuIm%9Vu+4S$dHxy9`v&@`E~;g<*;x?qPgb-H$;1CMOz*`9SeKRnY9FuQ{Fol1R@q7R`YpGYxm2rs -^1iI+cxYuWs}G%bIXuj7n)iU%(rUY2!iJ3D46nwB@-+D)I3+8@QN(CC_HYU>c6f@j7S6*(^8s*%VK*K -Sp`)8t^!DZ&sN5LP6zRekPUo_!uc_hpZ(hE8F?sv#>FMh??_gf<*4uK=Lf3F`*Rbt+=Em7--CPtG%N+ -oP6Pf+x>5C-XKf|Ff58_b+64$sXO*_F~^)*vD-M5y;-U9Y+x`@I5z#8T^#SAEY33R+@{o{#yEHfx(vl -3Ra*lgC-1)O?ZT{t&*jmS#UJm%%H*df)F1uSP*KxW&UHaEQo@bk$8S9db$UB1LeurjZjS{EkQ?pC|cA -2TBN;#aX+!Me1)@0m6urcC5qO(w&EMMl>mhfAmhLNOTKqb(lrYEi)#_iDZ_f84?adsEh%`+aaztgjjP -0kj7CUCfq%`arHvh`7SzYLN{;A7_t7+5bQyt;3&G^`e1C`0k4lFZsHt-~heZ)_6Qi7dvJt;KqlQ$q!^^3L9@;Sm{YyZu -C(xpHB+7EZ!4WF~NJH1oYI`${)0ocC#*v8+|@omPNf?P2BtVg9)H$=UE5?MlpeFWnIu+HKCIqe?cT51 -qaz1d5m|_1h8zqo2(j`d3P*0s}vl(;qc^kUX(=f^)bw)WtxHGgq0@-L|+oa1z228fKJSp=~v1xxm`XW -+(xeE_rHJiJ#zy?!B+WG5E&U5{P$aAAsR$?KMqAYi~X2fO@asod -EUFWWkg9E^-jCg{H02;oRF*w>wC#!@Ts?It@B>&ERMQw!`cH6zI-xtejF3s-&`0MhrnC%RBAP~qg!9W -XI?w@~=;ZNl3@arMGM#=$v_k-(OnTs5#;V9p(=GX|{&QGDH`^P>@PgQ@C*^=XMS6uCHsCS*H^+WFbdl!Z-ddN~bxT*qO;r<20mO4%WZx7sV0g -2Clk2D1F6Vgv=#7ai)B})DAHZRUd!wa$5%|LSb_OpmcF}0E>`&VbNx#`G5Urx#FhQGLl{37ULKYq=9K -gS>n_C8v&_L2^y_8U(qU0F&5= -P1`HoCfbxa>;$mB%^FoM%bh3q3JXaBU^}Hmwlfx6~!DYMa^B5ZiJy;F@l5yYQ|-1Sjb -o88kQ6lauUlUaW7c`p^@W;94=m8BmuWjz4MPe}n9kY&ggV`QPDkA5Qoc-B82P*^|%CM<7Gxm+NM`8h$ -<+IdF3Od{->DR-V(JBO0r2Y&ZzGm@T!yK@m#|*hI|enQ(@GD%xu1RVXT7z|<|n@Q_%Oj93$VF#{=3WR -ij4++Ym9ZtF=qTUV>a3Kd5JW?jA^ -SN+cL1SjDf=9&S!N;ijO-?u0o;R -C>O{iwN4gM3uNqAou2fW5Iz=^t;p@BlsT4d_D0btr!xel{&dYjM9 -^xSaHl^Mu`u*iEljkqrzC&Ptdim<g~-@g9#&9fKo&u4#q@$6q;fBVioc>dzM7hk_VmA|#;!&9MD -hZzZ;3pko^D}_fu)WhrY630o89xj{adb>j1vkdL!Hz4(+3is5|zL$C=>_gPcX=B}wQ&)N0%&rk9z86-IBzLU$VFZtn3=O@p8Esbp%R$3S7Hrlbp5=gc#rf{I!jraK0?Vb0+e~1z%+VoFh-9p6H@=auh;JR^2F&=TqC-CSpLy89QO8pi -KqXk_elQ|F{xU(`{*oos!=GvLcp?6R{G0CrfM@&?;QkV5$r#MPz`0qKYtgjhE+CYBJAg}k_UOFtbAW& -6*N@K+Onb!oy<4s`&5^Dbo8f~8WNZV*apd9P`c9C~07_2K#%`*Ui=6?j+l@aj7q$_zzV$H?l(CMXu(A -LGW=RG0HV)1+?sr=(Bb3XN-2$JDY^&)y(x(so*Fu0Ia-jbSrA*`_sO{q577oZ@aKE52SRojpcvyM5*3`Y)HIHlxS8z8n7D^w%UtvZOuf;S|~t|7G1Kc19La4P$+LFvjLV$0L_BU^Ce%$u^U2OD;LD1g} -{9ynW+1)44oRrPUMy)SEWlVJ6-jpDEkVHKR+ -=1EByW0fni|b@5cuL2MbRg9at6?9vnXwWn78@8=BwA-f4%wvwAxIHk-z6rtGG1UAnJX;WIUmr@Vo|Bh -r1r8sZ?g)N*T#B_So%(u%D_!;?fGMzHVh^I3#6!MmFY9geWV|5WJvIh+9LB`t8vC)8#pJ%)mK9X{dx^7O-D5f1M3V+2E`saa~T;fqPa43h;YuUmhK9Wlx$C9 -%RzO|lF>Tk$l?csG<^+`w%B(gq-qE#(0$1mPe^CRf3#=jvvW~al1l4e%Uz_I`B%B%EiYMi1YTT>kLu>SA52cMqR6>+)^6eqVtoCGUiB$myFw00ue{mx -i1bUqfm%3OkdQS4B&!uD&`X6c+PS0-N~6jgy(zdP8f%-{$U1=`r~=bUHXCW&K7bF+e?Y05siiyc6bwv -lygYz=Wr?nK|5+AlD65_#x#AYIsK>T2W(S0s?F)*0ZajxKV^=ou3D%&270peKvTK4OXie-n{f=0^5&H -aP5`8`2~$43I&~T7@Q$Lu{!)Nqm1aS5ZUzUu^3@z0e98%di>kJ{af~oZ3fF7Llc_cqD2}wu<3NK9S7Y -BQA(@Wl2MoCyk(bxE5LfbX1=cK?FYIJRMQ<&XmTL|qJTnbb!i>4oKx8W>D(KbGAi#4^-gy=g8$O3n1u++2J@loE(N<3A!Arm0_NLGC%&LJw -!u8_hi-^#Z(KvYU7#?)KNFr+3>?6z+xWKTfXjDOlo6TEjqyl*pH0bnEbG2@^m -sgp%gNh0}Qq+ZnFl`IznuK5r)@6>`qH0+V*SfaDALgHqe#q&c<6-__1Y5x)-upE-3BHbi9MJ)a)Kmu+ -L6c@JIp8U^?@%tTxtIU_p?_AOCTCtc-a^@{`PAFvU~@8Jtl+hR@UQ=PAc`4gsW$6viJMziq1~^-gO7J -Co^R>Qjgf4e0J&J^o{GGplOHPT$f6q40Jbo0>*~V}XhGSAv;fAUbHYK88P78^!86zHhSknj$!U;ITBCbRLr)IM_vAe#_PX3{G`o=Li0|$PsdsC;IjlQ7~b44d;d&_ -A?V;M=;86B{PRP^?jL$t9t-6Uy-@GBsb!ncJCS^zWGhnFm-y9sC?>rN6Q~bU -0jtnwhx-e1x3b0x*+AVALyOS(h>Gax!AAa8b@bghpZ_*jQa6gXT0Bzv$vwsh+F401zJwS_s87OK6xR8 -BC&tnw1&xjHv3#n~PPQBSMBxLG_aoJ?(u6NMwh}90x>_0?qZ-Ow!89yOAg};NoZqPOpYU-x$qbZx$w& -W+0O$~&pfKx(Ww;~Cm2h;*}tgyNHVj_NF+=jg(>-KD*=90m=d>!~-g)Q(C_|+ -T(a=+n*Lm`0OQKB~V9;=IE@ZKR7-({qq^7_+&mGk`AVbWNlHD#4$$D;qlX{)b_mc0BaWXp_Q#{ax2`9 -=`V2W0HvdMc0v$xb2(z<)y*l6{~_$J8uHlDk+I^)>wlbdTr{f -pxdh*JUv$xetxKa0r&<%Y9XC*d+ijPaNlJ1)Y&lU&2LCFxc&ap$RYvNIaTOaTtW8)f&d)2Qs@V&=e2X -8wEMsR2v`*)SK2wc_%5q*?!V8_y%})0Snt?0B4;JmWDh&1$C&@z-9`F$xfWXWLIe ->%j`3_eINb5!8{V+j+1PzF=`OXqP)URhfsl|2wYZlI_QMg -J5U>@i`0rGx*uqs73Ej~cCL5{16uuZTsWUL_;YKX}AQh!x^+&j@3RoFKvabx49kU(bDA1VqCV%U?q@V -n5V<-7576gS$VDddMO6-kio#??ZCQhKK&CAtT?S;)oQfc!q|=jkeWIwJg?jPlQvOOwd6{483FGE~>J% -e2Vn^3@{%klUS?Bg@SGey?UrO`8*qnKJY}xF|w{FWIfiVC)wF~_swpCVKP4O#l5_sH;ETBvC#-bE6!< -GqIL=;Ha`v>tN#{{H1k^+uE!0-uh~0bE*#;I{;Q4(w22%$?w6Z&h&Kh=c!#rP8!oc@{dA4-`+N~_W4r -QckDgnc#B6C5+Z|Q7M6aX#<73w+>J8gYCb2fT6Mw2dN0i@y1Sz;ME^vz+83-7b|cSj-bc#z0PLe&Uax#hopF7!8VN!f5LC!9 -CuD%VONT@204ga6kXjqgifQ&QAUWpAs(*TZd8Zgst2N_Bj&4%T}B2N4FSY^fxOkSprOOYvvcbf_9H&- -x?m680tA98Hm1#Oo8^1FP=189GCuD^qoN}>PeiLe -cNC?i31!=^JJV`qIpc2GGHi#mcn$?bU8OVrr2BZ(po}BYqNnd@qiKyti^h7`MPJD{1!ZaOY_^|8gRAH -kz0S)ymMeMq_560Llu<5iLD8W-5lR^wGJtWNAmP5d>ab)9ENV8@Qh_Gt7V=+9rYiBoB_thN{445Ry8P -Gqy#6BFLVtHG@<-)dO?lzoUiQY!2QehWMISwo6-TA=c&+wfp>C0Jx8uIB>w*w|MD?-7N)TrpU55%k?G -FNzIY*WulH-TU@>H-zO_MCz026;}N;GtnB_$D7EsX%n&=0I754(KM?^J{NzwY>}4+7qJ3@Q$5NU!|gm -kcOn-4E)k$O+m*4dZp?L%p&vib;g1n&?pa%CcGQMc6snK@gWM4M%gIVZ$lb&&O!@%^~y!m)WohH=0n3SdA)!22U^jbyJoSx~cm8_)@{}Zx@6~ry5 -7eL6~D)>HCgRMn;%k`5T=$2To{&gK>7xsU67}@Hx7{nRbvSZ=NUDtZqJb%~WyaImlL)&h}w3MO3OWrT -}b06w8Y8$%vvG>7m>f@KMZXp{W3GDWV#v9t+tPQe(zm(|m^3)^jURuqw)SBKHJ;jRGzq3$Q*a(6W*YE -VriWTOEE+BiRx*NHn#=l8-Zrl0sU$v~Wpoa_U=Rc#LT>ymy4m8Ww5Hc9mOPAj+-*J+*FB4$MV^IxOjg -{2h60c#F`m06T`lRCs0o8dWH1e2|q69YAPSAunzyW#DG7FCC*nG$*CW&FMagU0G0xkC%-xv$GNAghA% -cu!29Mw6@AdFSIE$lFT|~N)lBFf9tJD`z%TLb02FGwd=JgF_gfn#E<$cOZa1bsnr{xz1za1iv|)j9-@ -w`v^ysun&R4^c67dFKW|49QyA=z3<_I>jEs4Dr^z2RDsX2K+k-h52BAEDTN=jz;*6Akx>Krb%d!r|ZN -4*sDHOa-v$w=PK_j7S5uedzg^y?`#hT&-ii|w=I3-D^DRKZ+y)_0_9Tutvx}BZjK+cn%lK6oeVVQ6^& -?Pv7mgnRLo@&86V=e${9&p@-SrO*ugef1eGUa-6f;f;<@_27Hto>B4b%MBw{So3U{q84?^9;&M08K1nEo_QoLzAz@Qi9v6LEFHt)_)h)vfoCZt?^+-b+lbq -yLR2m^*WAcDm-(Db@xhPQ+m>K;6{%F3Y8HFPC#&j_@g?LQY2fvs!5<4Pm?f7h+h5S3}DA0EO>N8ZwQ6 -Gvmu7xP^K2FHMCZFy9D(Efz+QqfeJRE9ZPWWlWqoa_W6brZJzdOWGmVKh3s&M|8mW?xt ->`7^sNn?(TUwBcX7cw7axRf!y2{7?X5W7e~nA!nat3~kKn=WAX!03aJP2_B9yb_SYG4smGg7?$0U3ay -(jZH2TGK3f{6iOlDE`j+;JtIePUk*S-X}dEnH2B#ioUJ{_$OlbW#+V@4TO4NLc4;~e=FlM~RsFuXRw6 -`pUMu;LHE>qcIE@QZ!J_idXf3*-%64#H;*4e0Tpa6kYCS-3@z+LG#FCex@85<*Hoz+)xMLQ8(7GN+g1 -Y>AWSuU3*0R>pJ*e;1<<49A4OW8S#3p7`_YzTS0rW8kiVv`r=LU<_`9E`+_88B=aqIb*}$cp+L5-3q!A -m!U!9h19D#3cNforLFQ)vSh(Ix;#oWa}AkSV|^($vnwyH-o9N5B(fy6k@I&&OJpWAM-Cesfki27@UFV -r`L2MNGuIfbYF-_X{DF+tBS8K2gws9{V1LiLdoEcBbqiRIw_p}O|j~LxUUkfXH2-Z!$=V)S!OynPfrB -ht+Kkwx5P%j?_Yv@ua*5lh$n$T%rf`sP(At%II{hak1$E7H|>?a3r?rb3YJLYeyl@xWH90 -yb5}BCgy#tWNjgMR$D<`CWXa~J*rMJC7`ZGZ=Wc#7R9G^`%z@fJ*I%l`7;ikKcv~SyGd=k%+-}i=U-V -ecCdI3+)kh1Ervf;bQ&q*w3OJ0IMolh1=hF#-5dNM7Og*|t|M^d?{$8m+|;G8Xs)Z6^_fK?0#_H;F6?rH}Xwv-5m; -apuQi46-v&m$@K0Sdr!~h-K>N?IPf~pK*WP&9&PQwLT|9B2H3NJ*>D+fsmW91A+Hh7Ac&oyRm8aHQ&8 -qT}0YZ=2}zr-qD^{E;160->~P@2aX -9W6G`s}jyOY^OXo2AXgJ&eHkQ-D}%m+I0QK-we>v=!bf{5c{{q}+mrH$`$)dd*~t>aQJr$Z&=nrVFcvDb10qt01N?Rpd|saIdQ&Lw_%Mh=O9y4y_y7cN%fft3)IG^$hm -MGmVNSi)JgN{bHqrYtzU3HpSrcgBCyFdum@5o -faxa|H7^Pei$}e^j&r`cjzpzJg!gHwx{l8FxkA((g4t3@`L9f+7Z0h=|;xlds%iDL -wf*ziwDj@wO;@0s@BX^sTcJhx{6CM^5lQp04Q9dEWkPo8AMX|QHfG%VmTqVSOE2zSexw4&Bs-9~JKLp -@JS)fAW{fnJw%fDu#2fWnP;chdyRJ*SSZIwMiLrR2&^R&XPoqn{WL+`IH6fm&JiZd>b^GIx}NK{Uj(t -LDoSk9kR^1#toQN*AgZK|`k;(x}P+&VNhD?-Kx!3N=*SDKi(V@Dd&xsvAw~NMs9~6;yN~erG%hKB80Q -%s0-nx>&BRii>hXA~IlWAMCu9gjK=xx#UNn1qm0GGfU|^Kzb!oeI}9n3uV~$(-U)(`=ND2G=}T?{?vZ -u$>dcrZ*HY5N0_ZL5ND9FWUYI%U3(Ad+5m8EX+Q9)^zZnlB#XCM&IJebJBEu>zyw?Hq-(TQ9|%94GYj -NA`UHQN4`-VTMI1Q3Z8$pbHt#qLdpLA3+5Ov3&iI>>@x$;_qb_uDE{+nOA-#T|?iDMn05#yV*Kz1^U> -$DKJdw|QpKOQ-DU`lnm}75Wrq&-eAyF5tBCdGv_fGqh9O_bfjf*=4g&=to7{b -z;$byX?hQx7mrfe*6h<>15ds3!-mpw-hxsM$a?62}oy!^`y|p7|rb{%}9)2~PPE7fX -H(1Q06V6$~prjuond3nq1BStC>b_rWqJerxu+Th5e!3#|%vbxoCzb8(gPh5JuTI{{coSLyGc45*Qcmt-f?6~QYv-5VjAbvB7c=(bC^SWG??~6KK%wl -crM6>0V{0r1&nf#xLc~L(G-(w}m?@pf|8TpC2Mlm%^d+mEkMp%36&>CZ8 -ZQ;V_+2jMK-i-I`dpGB2H{|jhtjGys3+0GC7xKbZ6G=sVJ?Oz#cI(u?H?)Z&xO`vgL8jxpQKyI`E -%DoNqqK3l*9GqNFE+#f~$2r$v|Kp7N9A`E}O+GqE%_2L={Cv7CTx^_~UD(P6$py3RK`6A8*-2~kp)v8 -zyNQ>-DOL%GfhI5{(?w9;6cl7p#mU1d8rzzmoaf0NUlFf)k_re4LhOV;X2m7y95y^Swkd~hUUoq4=^K -+yMa5c#c15;j?t^ZMMNt_~RH?&227hDkH~C)D#DK;%!LM=ohtWy>QOt6=mU$TdJmA_8Px#AULI#F>g= -waG=A4RtI2vJ+ZrKsEagjdIa6lagaj_7}7&0y?G&Cdj85xX>*L**(&v#CjQPWnnl@^Z*{(7{;0gERa^fj4P9(5Dd8K3QOz|<)u!KHTcR8z -SDjt`^6=y=5Ec5W1(r7*~0ml)REqNdqfk?`44$J&9hou{Qp8vPObUN}L3VX&9)?&b)zcpL(e=$YEP(( -LtJ_PFW5dG$5@FNaOV~;2#NxNq2zyX=L;&jlf>;Vw(2Qed$hxqTfyc;Sx8m(}k0@6H?E^QzTLMHF#Va -`Z+i%@hIj-nfoZIUN;(1ROrCns_y!JbN2oi>gU5iE -nGWr08bYH6_UxbvEVB;jCT`(e8>rTJ0vh!JWIruCwT>g7?A&LKCfSbl+wt -Cl+}BZQ{piRq9)^d;)gZ=_CR(nBi=FvM-aetqOf{{JwGH}`Jos=H*EY -(Vus^C5zfX7trNmq(0B;sWjWq7$Edt(H=%hsh%cI2aK>EwEjr3#N4cd3Tm^d6jzgx64>WxIP>>AukvIE}3s))J3NGd|+eq1KOjDbu4?I2-Wbt -3$t+3jKd||EbXU}6AeL1WL?F_{hm0!327OjqZ2HUQf!)aj(O-|!7;Rgwqhv0@Mufsr1$zh8^tC5Q^9ZxNH*{^$=AqJ{*?WVyw8D;R_KxcxSG>^KcTkL`4MG(^*FKvO}rARP8XXSVv?fZ3eYvnnHYNf^~ao+gEa&#COvPww1SwRLWLP8#ka91Kg;Fbp -5)Oa4g%QE^mS}n;*{7aClUmK-zO1H7(r#vQo;u-z&Fgq$@@;=R7{>i8uXguI{H#VSR2Sxq|o;{Qjzikk6| -nh{pM+5R9``Fd;5d@nu@qzj9d*thozCvb#2*ffhIhdXFaeQrzO)gs<>pv|H|JX4d=YO9rAJ7Lc3~=H0 -^ggz7=Ij-&Li=pa+!o=4#ub}Be=V?=81Jz#F8~?qRtM9)eD9f@?Bl~cPAI~vw|*MU{^m`BeL4{!tD1v -p;3}sw%c{bZc(bJI=GeNC`Iu~O79oC3MX7ujAmC9y{x$noz6K;#(PE8acb4EgHOpjzoY6dZz)rFqW*_ -w3r`oM4gGt(K0GX9J$$pRH`PrUS6h_Av(Dox(}Lkde>8CB6b-;=?$Hw){powdz{M)C$KZEjr(i+IIMIv&E7ArrByz;$J;oO6w4(n@*f -|AB*r?54aBb!`7!+#-C<62YNpf1vLD|bq+>nCi2 -SPt1kITbOk|&R6l{$dR*1eI`wUCR!jI6qsngAz^~6s3@aPjg~cCc3ML-W72vQ6W0`ELWB>ihIUa0X8RCMr;$ZfmnKx_uZ2Ll4;;=m=oW -F6Y_*s8#tr3xWdVBl)iv2$W0rAJ2-t1$_~6WWIC~+Ogg|e(D`C^5GerU;(-=MB}n#koVv@}B*99Y*9y -_f%Rk0MKx_|sFodJ<7QBrz+Ip$mI`)hxvt`4HjNyn3S*e10VhP2GJvV&&pQ;rC{he``VfRwXy8z_-Fb -9x_8O4K2juTm$v90(QM28u!*c%>cWoQs9EaaITZfl_LhdiFk%Ry^dbKRz%*dghQqTpP1EDkf3`^8twc -3!#GE-Cp{i0ABd%8FnDzK|@6ExXua{*gKWB%hBZsVe?)&Ft-ES)(;X%XaX^(a2H7T!r;^m0?Bp^&W4r -+2+?=4GLmYtm!Ug2wLudO37R3;YrFq%?8In2L|Kp0gZf5V)@C%4xRWWoWp(M&c)F5+)+cn@Zzb36;F_ -_WpmH5vH+y@da|wCVo^?_MzWfy84>i{+2LN7{A^haS-IA#5HwO*N|$jk7Cu>p~Z~ZLL)#@#ffI1UZWSjhVkDP}5OiFk -_`2L}XDawy+56>L*N}TkKGwoM+z`QYi|=buZbY4Jx~?n_E9_Lx4NJXm3lCIiSprKL6)0Xsi@KF)ughg -xTv60NAbRP6zd7;A;mX%A4B34JJ#cYxQh!i@}lW!Fi<8JHk|l-^05G(>1KhHD!qxFMK)IOG*QTV`XC* -&>q>&2o$IHE^k&g(3T?xVRXn`(5-%<;f1(>n0d8{;qX!8q*JikSW+{gN_LNKu-GgedPH5u#vJXe@Z7E -&wfny?26dCaoxJ@1^}D}jwC3UCzq~mO7wM+G>^L6LwtPalq3pycYwbgto&;WOm$-(Seu?lfJM4lYzp2 -D?pQb7)^5)qy*es;}=*5f3Be<6U<QiS_`>2tt6H<3vBQBBgAPqRPv;&;z-me`;Y8V^Ti -imjDQL~YW^910toQo>7lb@j_?20?!>C$C}yJRf>1FyMw2<{HS~GrFOYle>C>mOVx!|;*#++w=3(5QnO@>J!5cc -t%t)DIMX_Lw0P>jP3#v!#@ouDdp)mS9vowSNcI##93c8Z7%-g*$M0^dmi)#H>oqTzr4#`SS+AD;hmoW -*VRAJNF1N+H0Fk5&gI)SMb3y%b@v_^i#IyxH8gw4MYBuE)o{k8VM!ONSuAFI^7uT7z+^HA60hT>6M~m -(Oa+7nTaBc(GE!UQuSx1eY8TM2=@jiB51V~v?zr*9idXVll&+0RodNl2^?2{MhWga2B5Q`*TTayTcNU5Ycz{tf6i69K33xn&(N&yGjhfLry~N{Cm5KfM0@xmkgny4+&oVLI;_@Aep;4WVP_|i_6RQFb{^)i5c}`A9(@~;vo(^>A@gTWQ>oSMCbT~Ns-%pSKy*U2q(eZ!J&p#cE@q@6)HO)^wlI7nB7 -4AP(bxGxy0gyn|bObYoi+fr9#J5g2?1pV@8#Nc9aI9fW-$jGv{SsYNxB1H&xTb(5EvI9C2Kq! -WVlfIpyN`re^qrnc46sEvKs5xppL|g-VxQ*XnfSkw<1o3>IcNU)y^-sf*I_b{sNa!u;^)= -aG~R&SbC8_ZRpV2dkbJUfNO7&-AD8W{STWJN@v8!R5HEnYBZW%=!%R+$bPWy*j(I{lgNpHJ!U45Iw9Z -B6rq_tCbpzpoaCL)rq(`@O?{`+l#5lE}91KNKJ^Q1~>_LR;2ERX9*bM5bcsw8 -puwm(0K=Pb>HIb=*!ZJI@?zKb_S~*=G1`x2Pm>`m-{wJdN?tJNA99eY{3`5RUrNr)@3PItN^XtLq0|7o`=+n2A0nuFlJ#mo1M!+YF(+~kq9yZ17f{sZ^7gwIT0fAHO}>JJAx(Su-BQ}@|f#e -T<_*;y#iG&~9N2*4yA(t{QzYoD=2Cgu>P+wH7W6wz(J|Bb`7VbLEmL{^}g*2Bt9qUU@{=_j{B+iPI8+a+9atsM@wb(`9Z`REg -WG|4S8@vNqv#iCSNxk7BnVe7VX16LsV-vgs&ZlVM<)AiZdQ|>?b*mLeCWBc6GmAly3=-bzML;>!0Jtz(=DY-5)LnsyD72{*1VDb6UG_=Mz;ldOA`WL93*`CQxzI0o7= -J~2~-?Kuro2Cq!I^l;c;}9X%mY$FwMW-#2zj;)Gb;f2bv?!7vBmo%50~({8Ud{%ih@zIWAp$VCY0=bQ -7@Zg(3IjnhDCIM$ER(o&2E)TAXVGZRlUDqtpD_s-O^(~s -`xRh1vnE&{6zG^lvRbVOSi4!UYfRz~1NlN5+cQs^fYg6D+L<+n){n51J31cY!D~u@i{r;~oriDh>qB* -bs9%GX6UKA=`lpvNb5`OfXY7v49FO5a@Rc5fhlB2IgzfjbkM#_AkLQ@z8Cfeke$bNp@_H^>LG -mwaW=6Gtwb`uNCl4RCFu2vGX_jry)vQWtS2YjI`XTxwwws5m>q~ES%C9yz%OjXfH9OXa$Lx0OC4;ZN` -ilHlD1j&za;`qW8UV>(mot2B&aXBlR~O<^OE~P5D}oh@QQP-xOf+Rx4Sic3e>NN}n&#m}vCcOiHW5@* -2Mu||{zaIA$wA5UhaU-uYJ+swrc};Y~x~>N8YBk@0O=1esm(Jhx{{%)d{l3|6y%*JKS+=W& -&{ity-VKO9t=^hE}n811ts|9=?opO!^^%_6Hrn{t!xj0V4A-(NNLu~;rl7ci2H*M>&~M)zyats7;$H2-X%A+GIuy+z`TNzlazGW#%zy?Y<)?oy0#nZA$`;XP2Y!Z -m%%Wg-5J)&0x|GV6eXCVo8wbdJ;KE(q}L2B*l_RXhoP|byj%gw5*sA`oKYHL^nqQLu*xUD9~&I-%!2A -RJFHnnnmR$6Yu<1Wbdo>W?L+cn`Sy6ZI9s~r~n>d&tS -dp=(`%|<=7;znGz!9L+t=rrd3$lKJ9L@pIpk_&1-XP+B~-Uih>*xi~SMTwdKb6>?LpvwAUa4+Ia4g>^Ua11|0)jkh1O_=GGDwtS+By@=7N2Q -g++0s_!5X#BUc_-Q6Ee-w8u=8Kj8`Qz^GxV{v&m9PjdqcFb;KK3Bn;GRZS7RrupO)3d*00rnUK94wh%%73p`-xPJVz(q(^1Nf<0;Q^xt -*~PY6Y7s8CVo9{6mP6XtJ(`X`VXLq#T3g*z%VMqS4d`A}ozA<_eNC!PEN#QqHFJ?ssW}X=+MpLcOz|b -&2h3ntzh^3hoQjnRMAnQV7?As4NQ4l*$CO#YSqfNHCJL+F3Vl|Ul}^hg)KX$}a~LchR^_JK>?eF2U80 -!LH>uK1S0)a9m>vRYkO`%W6H|}KEm9%_CWf7c-P_ZW69$2QQ5~awH9cJxzuAV8?P@tqBn?>S0#U?a>o -?_1gF%S_*4jVfS{Bk?m)D_k8~WquV+>1)>dTWGDk0QxV4ERN%h`xyr0j4MUz;-|;P~j5D2h-At~K0= -Hgq{S56d?(Ow;!q3TB=K}~f5F2 -H@m_KV_7Ad!uA2ya!p?(W%jeznk8~AI_r$m$E!qfEkGz*}AV|?6AEMtsV+CgGg2y9_oJUtxJ!|duB4C -P-H0Q1>4WFRyCSd~#Kpdo<#exZs6>BEaFZr4?UkF*Vc&jawE0g5R;9Bl{Z-a~Nf~SRU{^o3{?51n%Gs -3XY{j_aidDGTniLoV}jV>kLZJ)H1;*a|n2itG;N`9*;6NBtAHSFKzXy;@@DJKhh?H3dUO>Yn=1(4(h( -5fxB^X7QbhQg5BtN>L%b%VLbayy|+QTcugub*M1oX1bjMf!@dzW{P#NkvPy-eA~Wiz{u0$j%E%MSEgR2&q -IPvVS&p!nw858U`R4X$&a5z*0m?{7wrY+RaMLEx}hZbklc3yxSxugHiO>i3ZA- -sx%;~##S4Ih#7!trB^FOUEGA0ELeU0`IV@=SB9tHO@~)D4;*@%Q}Z8vhwO$em?#UyNy5hRSx9GCFaF@ ->*PRIO#I-f}~J>h*R-e+z6VTDS$+dSu~kAtnG|1$@;tD2AVVNL!D9MufiusZn1(W*D#Q{=Kc2RegQv(tLQ -LHb|~5{|sEET#-7B9+I3(qm?O^O0#5d@+eJKnnoz`R+11Ap@_zY(&fT=B~Bz-X6VL|WFew`bd5u}&31 -!HEGUv6^(Z&jsG(dX?v4DP1Z@txawj0iNsK72!(Qh%>c7n?g~gBulC+F?Djk1{xwQDx@YR+m2G44o4G -ogIUn5|;k2b-Fe(z@zu3fUsH6!Gm-->z!gCog4+JR$y=Bk#G`*~35%+P?k-q_pJ`YwE6}`Ll5*b#MFW8KF8LLu6pzvq_0OJ3hgs%5L+;z- -Up-0Vk4+=rhaO1FNj@tmSoe6buF85299)>)8GjV5_ht7=69_RbI7||8v~r611U^|^#~WXhQww~$k4@@ -GUmLC?cm&lqe)Bb>kmQz$&XyZmT7(I`laSFd`WgSN?S#0Yc0+?g6%750>KS?NbTe*h_vrbE&mL>fgIu -pve<*6VeuR+hj*QgR|{2(>Ijd-5SklVwt$(svbw -ruJV9@bZkCo@-Gq2Hp!Bf4U}V{ptFV_wY@!wI8zq~8_0uc;^?h~)mpZ0STky46&x<7%C_4RD_7!1|3SN?LG4}3>k< -*-y&Pmwk;X|C;!%g#0!5ofE=(w}Zu1hjYk~x|~e{2A?8mN^{;s_NUGsK(-7!y}XCSr;y}tK -U(1~o?0MDr9hHrAxK)`lU&XwDHLmUkaX{#<^L>(b42YYnfZExsXNfO<^TPE{_lYqK&QdQ;D-<8;)f3x`2Y -E!Hw>4eL87ls%w4!(l5zj=XSejfg!!*nosSN))E$NIef#du$A1Vl*zBy^lXE?2*+~uBgO&fVs9B+ur! -Y51wIcVM1g&(0i}df8mo~vz4~aa=o}<@mv!YZHXiPOPjlZ5Dne5y43OyIl`h*Sqx}sCvgxzssU64W>r -RZ}oQw1{4y5C@arr7t8I7i^FhaG1`_x}GB`i#tvN!el;S->{Ww2~`=-=;lUGkS=J9`z$iU?*u7ZBkRAm>6-q74_q!3ZEs1WgTc%J2^LQULH6Y5Uo?@E<2Lz~n+CC+<1F#D^& -FARe$zy=DSJmmMTyB%SL>CtI~Q;1H0ao+55_-G%wYtj^naR4=kTSXMK%l|5gPQ#c)D#tE~Gch|N=Lal5 -6li*Og*cOYdloDtinobYviXUs@7N=jFRNYJ8EjQU>(+}12NTsx>X}T+KK+@JL9v#V?zr -G4GieP3R@+oX$T5^t9}q67BjUp^BLKh<8=%~ibT8KFX9!Tf2r6ueoiib)r!gAms$a1=K~QWZUNhdj(3 -*c$Pv%Wdd{vNgZ%btIS9DM+p7}jM#APMK1G;xl=s$uL)peDEjgzjb)2_STal8e1y(O7Aqh)|;CLg}iv -BbgrM)e}y{LS~j8KQ?g$6SXw+z={5Q;-VN -QXd(6D^3>Od=>lW~JW+pHcC7lv!d-O{xNh(#vS9{e{qMg;s*x)s5}k(KZ(qs$zL`n!?Z`DK;hsHP+(( -$~nVBT>1#P_D?to!Lm8AGu}R&Q_(*$(y_u0bTmS5dek%V-UZZ09P;l;c{Jr~s&|bavtYHW$;D0+ngWN -=&S3YjQ}Pdrh}vH$uQg{!#;aBjpi7>N^n}ib2LyMslAMd3PgJ?RxxfsC^c*8zU9iSQLGc-jron$C(JV -;9`Qt~pXVJsY=$V7EcP`ZG?4BU~5O6@}-EqEkX#|cR!#AH_Jl5~xHy=O5B!mQH>GQXZ4sGp^{{dt4aP -AtZqEm!@u>r?g9#4xkhMX2yE4_i^P*cHWuciz9W`a7)Bsy|Ro{qE{y6mVe1WS!`eu&u>mbkZRE{-wX% -Ncxo-ckFUb#v)rp39P~6eF?8tT!A(4LwP~iYoNzsvgQ|x-NGoW@Yer;jiTh8gc^~p_Lu(&7IuApHXP2 -W0pHrDjjg-!CX>e_PLo`ZcT4py#BT#nj@hzZ9d|H4@h(Bwhv_T&c$Vyr02Hji+xPRquZEsz(cCNaKZ_ -UZGfI#2@cqn0AZF2qz(pdJd#OI9LMrSJ6lsx0O^6;zR^PzC{-(Qu%x}F)st_6eHE5@$+>21Obo*G&Kg -`!e6yy?Ez+H3VMqtFD7dnjSu^@Zxn^D>H}s0MSHg=hP?WazKN625g;fCMEthJl-e}wLHEBXgQ&??X=_u(X{WIJoc?P^TZ)pe%x%K7y -k{Y3#Q7@!$&N5^CVh}-m)jY2_fJF{~W(MZx;f}d9A?_>w%tS|G6S9W7Cc}Z&h*A~eS>hUnBLaeBH0Myrt<+3w*eNa-GgEQibSbc0TgRN0R>N^5^(9VS+jK{*yPZ~& -#eu~{efWR30%n8tTvVj7;hvUX&L!tBPIr_Yrz(X%*o)O`N>Z7MJLQTFn(Zq{r~G$nc$zQ_kzAIB0dVd -|(_q1;#8gXOQQ(mNDX2%dCNafD-uE^0MV*CG9uzj*cf-Sd}k$OMLeK7ID=#as8+tJg1Hy^Ecb)$U}%G -AXQpLh3I{QJKwImvCF`vL{itn6-<7h70cS7K5K*l@29!G#VX0`)|IERX4+nPA_3G?8rDuG<)cZML5Y> -5ZgmMQUq?E5w^;E44jD(ie~gEb_=BVVy_2*)?a4rb+roT6jdwiF)y(Hfx+HDG2CZfH|^;oY2X#4hOFebiFJc-!t? -^MahEc$V9hbSkE76ie0)Oxa!UW8oFnkqhY#vmww|0O1cDq*(du)i91FZOXXu7I1UQ -DQSt$OR~&>sVc10<>lR@@Dli)U$}J1Rt4{LCJIt13XTDCU^s3NMG2s~}z`)Ga>&%J1L13R9E@qwt8PIDMW!G<-pViCMkn2vH%!n!nbJNeHE8M2(^-)K$zNqE7P#khVtW;$?Lg}6dICLFR6uU_UFy1JMnXOX_Ah07Ryx -~|o-Uq1875p4g8(ypn4Og7(A_WPs9@Z+yY=RY$;5A})uX=CZqDM=5BCqw5ecXP%Da<)Y>&e%ouN+9`U -?|krY!MhVuK=B`K&Q%EvQ~@fDJ3v!F&I|y=4#bi+|At<^L+{B>2Od)HjzQqgj`sBldk9C!q@0>CwR+K -*A}9>cnnc(s4u|5r;;6(ELw#~M&N>~aUuMS`+C3hzDbyQZdPpJDjo^UT+zM>-VT!?oA>0B19<5*ST3x -t1wkQdZz<-iB<<@^)QnCzea{paZ2@SL%8rpw#`y-UVIW7`-E5O0&19EJ36$3J9^n+uheum_9Ls00&M>`vKuH-4Xb*Lw0TmXG$(vg1zub76nQNr( -A?foVEmeze0LJ4OJn{=Aq0%LKh)vIdbngL6Y+F%BlKR)Y0U9g%LWq8MrU&H`Bi{^t>pyh+!H1+=e(gi -(?s{4DG;wPx6=BT7q%kK{)eAG4ROjUzFK)h0&H?EtptPIN2L1SS#y?(idLSW8h*&K7uNBwcZ8J -+^}ahcYwy7P1H>W|A>VrVXL_=d?`yeXyXM~mkZ1@#=heeoqz& -hG#$XBUN1iL}9--c)lP?^zHTw8X353P_bFyxCo;5csOyLb@t8R~V*>nlmp61iWN=O}PBs*@$cY8Hiaw -|RsKxuspqq{NZNeg?xF5}RgLt1#hg)V3vFtmB7y!PFNd*;I?!)x>?dtFm~SjR!B-k`!WY;^=!g0)is) -pOr_lvO<%ykMV4`vCMhTSXv#lOC{7pR`XU828Vr@$GW?8!$Lf3hY}Ibpng}^BQ_Z65^kuqELY1uUrjk -J`WEu%7g+zT!zneg%$Bu+cofq?CftwXcI1CwPdGU#+(N%d&MakC$rtGrOHjpzul~8Hy}t%j%}$s}zOY#~wDSphA1&3ITbhlg@f((-vk#_H^X3gOVV4`sk@&<@FhD{0c&w3LIRRL%}IoVE$3g2 -wCy9VIx?`2SdMT0-HSJWdj0lA_8<7i -%fGyO{pQ89r*B`34|IkubPx4yr-1$&hnuh2z_c#K%#0Waa3rPd`B${zS^-Ir3DJmmZfIcKRTt+_YPYM}AHO*aMiIqw3*87DhHY@2yf=S^&1gz!LZGzQ^jFjaPt` -TyKchAh0m}Y=emw#IyFOe93bU-9Xiil(k8x+@Ve%t4-uUce&Eh9m+||)U-?j^aXOM!Coqf`t4`57#v4 -s;)S($%3Rm8epf3-u8t>Q%e$$EryZ>7jjI-NKsgaEOayrjq3gJOLN#PY#|>s$P-R~by-c*)zP!t!Gnq -cBrDKaFbBQ$&lASVlpWr=VZ_mq!q;;GVKe1o*UA!-j53zR4-&JL*N|Qb?(s=fK9I7A4nlQTD|ypj-ze -S^LZ7F0RgmKd0B1n&`W|t6CFbfUnr}Szm5J$|^veC!$&9%`o1l4%%>InxoAvqmLpK3OAQmhSF`4nSO= -)$xcP6-WRHYD@Vwm-dJZ+G)l?%$wDL6KBX2(Hj6e>lxB1I{I@Z -utwmIol?HCaK|2`lGinRGf6nDq$JIEgJ5D#$~TjTXI`rebq(a3+kM!v&d5_22P;>QYcG%H*gY5q{ASx -0x~-mxNFF_wpeljcH{$5bmsLi=kiCF&kjeWC%H{ie=W%&qebT59cKhZXl5|XF$+m(+NkC%V?$5Hg|B+-^n;a6ur+~&a6#SNao18jvyR@;pJm;l3*`|5|Y{J{ -_B)Z(88Dkr+Ki4 -yS&$As?LLJ*(O?>Kvkm0A~%Wlujl_n*FVG?@TUW+%_Xi4B18YR-<}*#C6;gy`UO8XVv0l>2GV;ROqiW -M>y_P7`%3X0jv+7BPj{<>(KdHvTD ->75C04y0?;7FmOU`{(XXVhq`itd6~RQg8}~tlYQgKpD>hz56J)8ULvj~$A__vHQua*D(OcdS$Caac4O -tq(ywEdw(mO7b#RpF%LEfDk`%qZw+uzCRfOVCJ=cO)YLIEtdRJTNoc(yLb-o%0>Oz783KNA`a1a`6tQIzeq{v)uDukgK3+P+qET|s0`hk5XX$lrd*2Xk-R*{X>iy~{3V- -GdzIO3{xW5xl{a8o%?>(ZG4>~hMtPejpeL23}ak?b -OhF^Ok?%w8$C%QT@_!q)d(wYpT1uM{X+%gjOt~fk3xe1e--@U{2iG%-agd$B3;J2qmJd3mWG?gLHHBC;%Z7*2XR@`Q-F(lW(5>&)09pu3SapYZDuVs%DIf>ZAiT{c9LG$J*Ezuvh~ -To5QS)no%R^i0eAhQELZo8~NWzJLzYM78dtM)X3Qb-2#LSblDNJ^hifD*Tq2??vJpME!64a-7xSwsN% -Wjq7H-E=(5(oxCC*OU63~#wNWp<;Ou -f=?8WBafAA552TM9)K_~3RsPruN&~mOz(Osww9XwQ?l5B+-~$YX7pi6j?| -P+_Dre1b9GdS?Z9Zn)w?U;1SP}q1|vFDM~q@f@zai{fXP`(n_173R(Y9^IR`>FP8fg{I~p=_2oge~e1je|)vMz$Q1ho;RBsJNIO`u*zydxnim5w&tKCO%HSm8s3 -{jApBlt}S;}R82Y+x3n!QmwQ=rDGe&{|=p4f~(8WzbRXc&a3JMj+xO;mh)}nC<#T{`GgxDaPiR -`kFraF5=QaLSSeZt7lwD5~COc&jYCf1uLd&qIPGfA+wo<7IlY -6&N^0^})dJ8gIKF8~SGqhSM{2BagkLEAg@MnSk%ZQ?0E=nAfC>7AaCOaNp?lnw8b~h<$<=NkwEzvW|4 -cyG<02oMUMe)RQ3P|FpxUibpOU|oS&9+O-UB7Xq9XNss2SfxGR=&<2<&Sc>ghDR2g@s{Pr#Y8Wy{RtO -v^kB#M=fN(EK_4|!y&-}j#NhWMdp8~k)zFQd`;*J5GKTb59`Tv00eg!28=>%^1Xz+hkEQM-m#E(4+3t -4%2Mlqc_uel+dxoFYY8=a$AJpUVN75_P_%(XeXfHtMTgw!RwqZbrjO_4{hw)Z`U?EkJw!bhU0+7t5cMtqx#`+(t61 -MbPpk4lUa$XODtBnr+J5X+2JHi1H1}Ru{*nRq;#V{hVHS^n%d7`ElseUSw9ThlL~g&VF#z@H-?!E4?s -jG<~LnCj~d+u>dc`f`55W=&#rH-jEz#W -&VRh9$3v6gG$p-VJC?_0;F~e9_YKv||bfe@9q?Pjr4Te+ld{dC4+Ua?XS&W-<~sgnVYu5B@uf> -gDyuR=AbzdTpie)=yeWS5r4xyPaJLp;?p#r6~Di?YviME4nANyO-rEu1>k1Dd-ga>52Q-L|phghfdst -)*;wuS9$85_uCOVjMXKxj+|0ARn}{iHMK1#rip$cSbRZatX+ZH2WDG0SLD>Uzjga5Cw --@>9j&l~(-M7`e9XR3bMTa(nfO?2u{*-E5+Ar72-E*M!4!> -=a81R3t(pgl+5Yj*9dR7aD6C5{oHOgSR4s)!5}K6FyNu$9`I$Zg8l28*=4j1D!|id@fq^(SI6BnR0=8E~cgmLeUF;eV^01UrOxUE_0tcXWjy9(UfWF78efgj#c -5yDn65y$9M7Br4eiw~C6HSUXr&~Ce490nX-xx-J|k-1uXP^{||q_R*qrlKbjrE}$Za-n -%&c?jymFp$izF@5e!^W)*UoM7Q&vtx&6TV_b~;rU^_*0?w}W+rLu8--RAy-9f@_(zEL&r4KlZ8(9&wn -mN7Wliz=tL??In$agD!II>ccgmJUqzan{?jMu*NHg~p3dR(8)M1zGCiqKRW?`oZ%tf!&jD*7IxNL@S{ -er9%*=q3nT%kpER{n!N>ku7s3Z|S2_=_WTp21LPDXK;a;>3FO$ZkFXomKa182muG3X3SMeCf@gh?3#i -m%4y=IUP7sL{0}j2ztM(fj4FM<>AGj{vhkoxSQ?QymNN&09hP>NM~&1>tr|pH7i-b^?LyE|gBOhU^EA0OL=Fwrjg*Wsl=$H{8g&Zh|yO2aGD;(NYE-jJtAuxu -T?i)_cN_P?a3ALJ1#Svp{xbP?3n_NS25E`zX+1D>?gi*krHV7pWsZUay%1fL=LK5G2jALl;xLqCp(t5 -*aUh2&MJlO*@gfJ-{)LqC$2Hvkxa5rFMz%=>CXoA}k~quGy(i8O>?Krc)g8bZWQBDtbdaVgFp3gppmz -antetUUDICv3rXzq2n7YXJaKv{CT+u!8l4iOW;Y)z# -c6>J{GREL}>!PG5q!|z6a@=|4gNB`>r?I%8kB0|YKozhS+t(mG_%6hI@bMw^dU=Z&;m!yf7BpZ^V_tF -NF@(&=(RdtE_l-0Uw*41XmiWM{eVd}g8f=k@}fIP7{h=0cwOpe_wCH?5WeW^COHNbc9r4epUP+b@Hfg -L+JX@x<1OIE}SeZTp+W>{U82A=zkxJVbZu7gIkrk)(GxFSp{10~AYCJ&{_L5V-~eC!fymG$qk5B<@)l_1quiyfo=kWvA;-Jfe%LW|K{Jy5vftVZj~5R+}AN)B2@!*6Nqe4L6zWVyb+qdc2|M0LiAkjo#>ym=?tIeqS6XRNf_4Qv%{RtvsYRIALU>E80yX1`t~bs=9n%vF_LSVIiPn?WoP-8bqDTrCm{?mDz^GX&6D$EZM7GwVBCh-JD`Q -$~L@2fJCcNHPzv!SxqQ6L`sc|WJtf4thq*)n}yI}ib;ABwn}KD6T0JMARcGiS3tu-P_6-O#AZM7FSr^ -~dg&zWMW8)2dA6j-bJEmM>cmM$ohXA_)a)4$=X16dMx7h5vy=f4!^C@H- -Xr5Iwpre{ZIieK5i+oGwJJ%G}q9fB_M`~ZIMEaQoOEqDUYUhd(m#H&6d16sh-IWC|Xfp!e#)axNX*R% -Hb1Nl%*QGL41}frj1p>1u!^~#d9`;fKsR~lt4=`euQ$@x7Iy^)53&0cYa3a!!Kg^*+8k!U>xaP`y8ai -e}70z+UJgDJg>TX%(HpP8W#N5kwW$1!qRvpTt+TS+2!TSdeK-tbD(q<`1c5%39ARYtje5YWKQWY0WRj -5ZGnMC12r)Es~t%*vud?7=LPQg*%f+v5VP7~mN^qcHx{o{e`v`2KCE=zQtEEluIT=!?g7s?SOGix;+lQI$@in(lq`rziKI)(*b}Y}5k9+qp*IFf02qm(KHO2==boHR)=Ph%dn#UTu -I>KNN#8DYT!P@&`(UvS_x^FQ)ZE9$jx%3;6_$FpjDnGE%>5>ny6k;~Qt6Qq|N(?08x1^B)d-L|4U -|qFS;7cAe8)FkqYhM$4(fOkP~k@cY)V$4&45mEnd9Eb_0J;swgAg$8bdAwggw) -_1TN5(WH4vQ^0wK-?Kb&>ENk`ZF-q{>Os5a!}G%U{S}xjMiOf9C8!gC|U^e@Sq;_`_aD0Kg9wqa=tT0 -^$CttkKdNjXdH*<~JM@t*gNRqS6u0FZqs@KV_z+JtkMg^wPH}*IV{F)}#eNdvucIR_Bxn0Ue|J=El1+ -%8s+nG>i}GK_?I!QI=YAuIDFV=%atb#k8NKm?3TDYi>VDUN_@|UnG4-$bFk!i?Z7!g2KqS+z`f1TrQg -nV7OCtC5|{Ihi~6?yWu2|fCYtSor6RD0I=@?EX^FHMe`}CuC3&lX-PCwJCV}bMPX2^W5JscuW;&YNW& -iGi;0XDJH8B2fM@opPHm5r;;K7`aX2Q!rNGJ_2Wdrpxo>07r7MCBp1v>3x2An-)Hg8;60%Z0Oy0-@0Z -FBrj_vSlIpdsvCEUMc#;z8XT2bn3ieMxK9RKdp>S$tWva%J~aMb|0yjbpz>k{+rjC`^cs`k(Wv#mv3j8A2hW#}k-4)<-QDXg>OV;Bua1e-jQ -TzdsW&Nzu%k$wB->mZ(PkR1&ac!XuXknq_P%AkTrWQZS(f=g(@YsBTD=qo$faW={|e$9#zx)a0x#wtSe|`Bj`}WoI*U!HF=EbXbFP>+>B>(mG^Dl`SbzL+@zu -U{QvWt}Y%zH@55EFxoxwoFVONKTBJSsg;OHLjaX;MU~Ud^3HDX}sRdGrH9Dy= -c#YS~#8Wr4@SSHl>>#4=)xl2!mz;84m_5qa7-k}hX2EGQvXdx5# -v;DH&s8PTuK+Q6S{85ak{)cd6g1P*9icPAmX+vd=QF#LBX4hQ;3p=dEf5M)DTFo7FA{v2gbG4U#D4W; -rGs*G=o9YtDE1T+OHQw|>vDB;p#K3=+67-%GMv7cg&(bDYZwBgERXxmfI?5qV;+DNz^XMffBX9JF6=! -@BGD=Ed38bpWZxh}q}tC5;IlMU(S> -m;%hPa^Sn(qb->L*QoJP~jiP^)$=*F=>7>ffjOLfTIFPtVq%-;ciOLF(IEg$OgIJ9t;+?wKp>Q*~W7Kcqq+c{2j=42zN}Qv8V#XtbU5HlSzj^uY#pLa`r>C#q7* -`K*0Da92$lws>b#o0+4nxms4u=E!qxKT5@Z)A?qC?m=;#UOi2eNPyFYU5%NDdQtt!re?Z|}Nj(|$IO= -HQq8QS;AVe9>X!uJvgpEzFDYze*zDg(u`79cN>|Dk+5CUJsp+EoFF!Sw6}N_^9)v;lFD -qz@7WRn5Y?NhC*)WG5z3AmtSLyZ^2`fLR0g% -)aVRN&cu_9YIY9IeJU)WPqo&OGy8&en$0N*HVGC(*mjX|sIF5!yQO%{(BhEumhN-Am#&?E4~ -vcX<|xB#HQ9ER0r5v%pyYE0d)7dR;>|Ty@?0gfVQ`&JK)$G%4C8MpB^Z9(tc!Jph53k(fNVq*)T*rn0 -D+n~P_#Va;|ySsV&$pvFqXx2P>QW{GQ$EVxB3YdAxd}4Ja8*Du4v$^lGE_W( -01QkAyBea+?h1R_L4N>k4MS*dVCsKoEzzvla#-(<pp__j(aHRBKU7_i(`l%dVo;YQ!-VASHHvr@Ld8P}EX651%Y4*HaRu -?7nV#rtwTV)~|SPckj|^9?_dgMWE8m`Iz!IVInq-}zn6#izaKH{^Rz`7voMuKl4$lzI^11 -uE@2S;t5xkc#gb-LY6OWGZ}W>Vga-*7|gf6_85Fl7g*+5-L=J0`ZG0O}L6Q(%^0 -K}3zp?x2q#9G7yjAjPXh`^$#WZZN4?#7E^Nsn07URpPix>d5!aHE~HZOi9G#h@9hO;;hG|8~p$4>uPo -zhC%SFRLWtQ)F+s#irfdG$OTGE6U<^IW -tr>HO&84$3R>@nU5in3nHaK!zda$zN2d+pIiV?Cyj{Bq|Uk-Vp(wv`r>mxTKYZDdwKl%YstwUOdtt2UIp~*al(kTxc^+qiBG_C? -cNsqFvPrqN^75ufN{va0GiFHMv=Hm)tR~uR(_{C_la)v2T?Q#SXJV1lT_0A$=py0}AQO1IRcWcM5k)O*6_ypUWk9fMj@7|#_@O9KQH0000801jt2Qeh+m)= -L2Z05Spq04D$d0B~t=FJE?LZe(wAFK}yTUvg!0Z*_8GWpgiZc{4F%Z*6d4bS`jtRZ&fE!Y~ZI=T~^*L -M7I&>xK}5Ba?R8BzD+NRUif|+9ZloMF0KVR($zn=lS_LepGuGA~;qwWEg^Vmx5bXY8PA$o_t!K&>9!u -0@7J2WpD>&t&eCZa9QMIuj63?cqWdeJ1#$T#hA<$NW{<%Nf(aO3$5oQJ%Z;g`Uqd^RR|)bxqG>hXb0B -C>vWJ7!P9oWP=lbWy>LO@jlzm4Kuxi0s*t%MDX+sso7B+a$Cz5%MjZ{JH3`&P(G8m*wGNF -RDW)SC2{SgNp5R9nUsO`Q&lL}*v2!|Lw&$Db#@z88i(an78b;cMQADyc>^G#J{`OB;r5p#pmQp=dLLb31OE -AMtBUtcb8 -d9_ztZ<|OIe&<&lH4nxqb(2bcSvB2Khs0yR(;~~7exO@kx<Dhlu2@xQq^YhVJkMf*zbk<_Pg9}@ypbUPt -VwyAM1lyqBK47cPe>}F@^}?tvsXtkp=n9wyG9ik31LhVZ1A6C8}v*h~q7z#JI0ua5;KE(6k9Qd^nzYKIRUI-?x_!fBpXMeLB$miTkzZWQjsroJO33oy}=R1<~_ -|zcD?-$`_gv6sV$-6uyeW4b75#gY?S_sGl?N(Ou-e!#U3uV4{D~Lc)XORig2d#6LnIb|@Jz%(x^j5fs -9B%{W3xMOO5L%(1r8r7+YvN#_VqgmYARH5eFhe*OdTXu&H#m1oE_LThA;iY^YxTtrNSg5yb(MSXb46F -n}D1w*8U>q53gDSn`?!~0W)ZGixJRrZ^{inb}qu1fwUt9z#;)czm{$d6Gf5w8q*gf&`my%l$2p5MLk}V%%pJQ -|3UwuCZJ#|v_k-X!xL{9{~h3t?kQ>fE7!SXq)e1y#s?QO^a_Z2QEE(+KHsRSiuz>wPqE)a7;7!ZW19h -9MWn^|vs{{WpS#f9gnvug+6^diScxEvl&LkoELdezPj2LDvP_BrbU6uQtYTDSBC0{)&y_0ZESaf(}4n -su380uJQ>556;X_xv$9J-&_A4WpIs2Jl}ri)AM@DAzFe8u%#vd(A66DN(TxZqVBSa!VaAK$`|-5#ZYv -jIyA^X9JXqzskCyy!gc=sH3`ueSy9(!hUz<{(zMK+#^q!f58>gT6vz)Yn4O&7`YFc@<{pJII`bqNQxg -rhxSx#<4_{Bix`!cZX=fa0$SDJ4jY-Tn)Kii&{TkL)NFcT~Tbm`u?JAq*tGOl75(bxv* -^Irb5MWQFfH132gg8OeN~zY9{#A$f}FEyW^FBHSDX>fr@Qwcf@5o6uW|yZ@3#(q=&BZs*8usVtmi?1w --V}>kYY*=vh$D<$~6~o38O%)@xOUGBq4E;$6YcdKSsjRqG$F75V@v*vyv~7pL!ib)lcyB;==y-rPOsr -5Q$65&DxYhEHjI`6eNvllt&iOtPcPr#*H>l{54b<2|XUE>gdy70vWZquu>)o7A3kuF1zKr8T_E`n+i= -H{fFUlk4@wz%39D>VcD*+BllU@&l>#zHRMLrc!Jc4cm4Z*nhia&KpHWpi^cVqtPFaCx;=&u` -;I6u#%Lc-pE;QaPbpE@%ZS+{8&OId-s}u2!oma^rC_;9rdGwvqP00YMiQ5FqV}`!X}{``$Ni-g`NK-cb)0iBIF@BPjBq_a5JAwGLpAq-#c(s~kFuE}R@cJb^Jy*fPoBoZx}?3 -C-aBEBW=qW#rMYzeu9Ttpfy435#f!(IkdEfg&Rc21(ZnL>MYS>%~6!G|L&iEOG+*3dyo0$ge#{AV?TG -tdS=zSej%6u4%pk+~qbYatH_kM63uSmupxuFV2atK+2LU>JuONyd3`#@Gg@pf<%k@HgS^E1rY*7)U=U -W9i=Jp7|NP`D!gcK9a9-QHZda4_``&0xU>8`0cP9G`2v_ -L!8Oc$IpPP3uwR0Bg-PYn%5mW@oR`4pU~Hqcc=LD9B0a1~^zz9C{@nU40+4B5~JhU!Eea~ZaPmP>xCG -u3r0jB4ZEoSEVBJB(~=0*2*q*)Vf7457Lz2V?$Fu%jSOLwPn=t(siWz|}32`(t3&R=EmO8yosqGY1-n -TEgG8Y;>GCB|rhy)*T+xnz=GbmLNqIQ>4AyCv2>37|-QFDIRhgh45*@+AH|B= -J&6q;W1>`cm@|h(%i6r^d;!HEaXY+vaT5kO&F9C8@lt<)K*CUU@Wik&2A7aVSZZnr`W^c*d-Tt&)G -hb%*cui-u2+7mP%h2rt~u6%BZ|_S4YI@fRoRXSv7njQ_-R+SfF0Z}dRA@-mVkb*I1-DNvx~m!-XJ%l9 -H-M)n~D0R6s`=38mLk>;f|UrY0qG%uv##Q)HnaUBMWS$3t|>F#OY?Izsm+lDeIL=t(MH`wm}f;|AUh% -O0(BmjY1;8SJWNhrBC$Z!CNC|wj$-k{65rotVm@ZEAj)u`HP=4y;ct$(XZ;-swqK4+xJXT66PTr!VZd -o2pau()@6aWAK2mlUeH&S@ -uxqie(evbWAuhQY4|=K{|=z`H&^!mdB>En4! -sm59tUcrj$n$+#qKxX4&i3e8jSZ3Nb(lNK&BZG|50ryv&_kXB1*a&SDCql%oYHqL_IZa`?Hi|<6P_rArQ`l_e|$mcSva~iYf{1G~0vsXMsuD43y&`Oi8Od -y8lHCf}k{d3yVeBxW>rE0@SwF#z9jlyft#MQBInCW4pe=zRappRagpPX7tKPYl9$IZgOk!UN!h*HNAa -H|7igD6taY-E^;S(R&L7Ou7CV;aBY;YIMY@Ksw(8~{r-K?LSI+Cz28sC8j07q!vBIh(!%A-%YVz(>)c -8U&!Kk=#~~bl|ND;)-gNM`gLfUg@8ClRA3OMTj2=IZSl!xeWYs0?cKWw13X5A+_4chNa2n#xb-V6eYI -wNU>i7Tm01nc>s^1Q?&y?)7^Z$43@83SRbA0==gRdR@)xj4W?jKM~0|XQR000O84rez~FW}v}3IhNDW -CZ{K9{>OVaA|NaUv_0~WN&gWaB^>Fa%FRKFLQ8dZf<3AE^v8`lg*CXHWY>TdWwq-3Xcnq+h!F6O;L_a -+XQ6EA?XQ%Brr4(_v>w{i{Z*_zYC7gJXdzB>sp -%<8Ut;u2H2#!8o(A?<)~?yL8j}*>hrcy&}Cmcy6ehgwxLq?(jhUPS -s10)>Y&=DrFpbr;F!x|Wo8JV~k+*|ikcd99oBEha4&n6a;bY~dzWCl?pTx?hfiY>U10b9U*E3nj?vfG@MM_LNroVW17nsCnpd2q@Mm -%@?=?^gsg4~)dESGuPv{o&bptqH=4YZ}ke~nrex=}VQ>aK2h*k)y}OWX>AU{$1b4WiOzsqFD#qklgDe -5y@as~R4_aqpxzfZo%mZv4>=U-kOFWP=~{a@E=zKmP|HZHrL1o~az#DoY!6T&p7A1Kp#s&MggfnW^XS -1r)0EHN&o5|GLsIURu3p?DwDOXZ`EobFB{9_xj)HPkJBU{NWOReDixJzjg9!@7XnGW=#1RoR^*RRVP1 -n^7c!Jc4cm4Z*nhkWpQ<7b98erUtei%X>?y-E^v9RS8Z?GMi -TzcUollah$`r{B^SLyhz;aYrwJ}~0^3)A2m*FRuBB}#F1x$5t1Hsqe$T#;qGZ|V0Vg;iIXg2u^X$Cs3 -p)DthzeE8dO4@o-W~nmC`s~yi1OS$j`MticmGG>|D5t;_rUTorFct^C_VOnN94G%noqor_&ZLL(P)%h -iQijctf99zHy`P}TxhO0$zO+l$(C6f;&l+If=EUWT3Rb=k~MwY*p;d?x>K4~?Ha5L0e1{b{>hCj=%qcoyI_}VsHJ$Y|wiGrUudHp%{P_6c;ej=NAExwjJn1EvvD~&M2ZX{AXD27!+F~ -3m^Y&At)l&2I8kSMT>tzdr#?E}r3RS}u>*Q{9E0TmUMsViihwGcI%?;mFikC34l!Z;dh|TnDe9x;^Ov -f4Fa~3~m1M`LsHOdS;a?geI?i{-n=qS16XK|ZeMWbbHQ_ZaS!+PSMi9b=;7+yxeeLb3YbP$|rAdG@>q -inb^>lbFDK>wQUDEyivH!DHPu7nO}z7{~S1cq9WX&ZNPqNF1-LeQ_hcf66mGJ4Zi6_u)J*8r4Tsp`a` -Z|P;{cQ2p?FR=-j4U_7eCCR){%|^@R%FZb*COFIKKWMR`e~G$=4Rj@>{SQm#l`KSU#GGC=ynwAUc9MB -(-oJZ&ad~~=BXO-@ZYeC66(Z3Ee{!eQni|=#{9e>0cw!i~xB{MQOGA=koWy^N}>4MN@d4;=8X+ -ld>Re$S>MSmhm6qTY9QLT6_*n|ERQ$R*x59Mka$e2Nylb`bWPyYt?GGwinJzbTy&QrnzGrHO*4AwU%wxoh*#wtpYBkdQYSe(K!z6R*g+sh$^VA -HUT6(M=F|N2^Zx^a&MY``%1+n}2;gPPP7We)dcf6PSb_l#mY70$%ptvLtgGwIYLgB>_RgRFq{MsLRp|+T&ca#TIuaBTG&?CNtY1^H+@N;5I3h8efN1Q7%LAf8h -@zDKE>3o4od(0Isv*HDtK#9vn%ybs)w45nQIl?9!6?^7sK338o#oqtJ=g(Da2q2TOMf -2J0)yt6IO`+7JePLc?6`pSn1h#u)|fO-soU7to>ih87+bunK3cd3LgfNLLge9-eoJx1H#D4O%ls6+Q} -o1Yy}_dLq4FmtWpuvH{#zNkc3Y{ozt#d^VU2oCP+%XgjK5JQlm(-P`=UBZlRit9a%oL&mT;DylGm}=a -!hMvIh(N5jIgA;r~m&&3U->lH-E49SL*JyzbiYCxD2r@U@?gl7g_Ew_9KA?fXwk~R-y6{8aXgF*_aJ! -c5*R~BBi70fhzj9!0}x$jsS`tUJc_5W%ZAg4eP-x?jNn~6b~xh3gJ5^(d8q94O8$05Po6@wL9=j4vQ3FcNo2^ZREyHNKsHE> -B84c~qq(og@$qQ)c%FNGeN}{P+Qla#t_6y&SIycx;`4-oaaF1XL*M~EAwVx#a1yD-^1QY-O00;mMXE#! -3#~n8Y0RRBG0RR9a0001RX>c!Jc4cm4Z*nhkWpQ<7b98erUte}*a&u{KZeL$6aCv2qPfG(a5XJBNDF% -9omrY}&R0KisQt(ow-U_=hJ8eRDlQnF^^1u*7PEv|L2-k6FA%e9O@)`fa6Pjo3 -^RVH4!Aew$5s4sYS`owW^vX=+I-+z#|ZcpAmiVB-tH$>GT-1HD$Tn2W1T`R;wj!tb;`ygz+@9(e;H2>{)oEojwbtNoX;3bridxh74#L2!Jyy`b@(BdB@RNL(g%Fn -70P9ZTDQ$$uO%9P`r`8_q(a~&RoZdy^j3wkd^wN68E0@6DaEdwiDVu5oZrLxoiTR1xtlX64yk?tP)h> -@6aWAK2mlUeH&TeHIlB}B002k?001Wd003}la4%nWWo~3|axZdaadl;LbaO9XX>N37a&BR4Uv+e8Y;! -Jfd1X?;Zrd;nz3VH8?9gOLeCTN~(8I8GLk|OrtvkDlP1o9N$)l*IzUZt6_(;CTcW`)rfZ -8?2K9vx-J$#4}r8b+5BK#B3vo9)R8OiFt3T%3>{=PX%-IIGZ4SI;rh9_u)t=Ty1fjiBh38jYhVZa6!u -6}~!1mEWx>eQLKg9b;m4LA$M^hr6lOEACWw4eGs_z!aIzbcd233k{h7NAuz+}NIt$Ar|Uf& -gX!7W$}{ajew0!Tw!p5kn$0uD2T@_0KYKu%Wx2W1zBcA+S1OPrb-oJPf`*I)cl?Dl?}6}1Q`4jO;DmP -?F~&HM$e`ulNa)eBj=~5cu_bwC9%JQ-kh@uenP%w)w20H-d^vSUm}o54QdZMcz(Z%GoR3<2`1s?~-5m -s*nqt?BvQmOh#$&NelfI@Eos9LYZH=o0uOyqNkH-auo4LOf#NOliIZ;K)&!Nk#BF%%_Wvtzbd`tCTUK -;&%UV>(kBXagMSQBxT^pU*VhS}V+ho4avYA_aKzcYR{)XLV$zOoiYW)163lddJl7rAITN??d7u&|exM -C>FF>)!=@3!dSK3t*iv`e_}*{luMY#Wg%i>SOk%q-cH#N9X!CW{JC)7JD^p=^!n3R+DKu3%R^6!Y?bm -0%i#xDCFMorN)urXKwd4W!(}vDlb#MXt7NF15ir?1QY-O00;mMXE#!uIW9zu6aWA$Q~&@V0001RX>c! -Jc4cm4Z*nhkWpQ<7b98erVPs)&bY*gLE^vA6JZp2?IFjG>D{%G)Npmtc$$Z!?)hJbti6s(fH2U3*CXd<4cPDI-Co;RAvbtKH{0XlN21iFngF -^hX7G+gNJmH&46y@N*+MmJTZY4{$&XYP704J-s%t}_R1gi?3m7Bb%n3)cjdBtutR92S)F6Ar{OPPrQ& -l0wV*$4q4WnxjuJS!u@WgyoCD=(uBuU6(~nJ*qhH5e?5e9bm;6UC1rOY$PBi!_z<@1sqgr)!?^dr>ew -=Pg`%qb^O@rpQ0-Vw@hslzupcfW2g;FhG8~yL)@1ul3KWE18-Z8(x%R|03@2JGmBl4a6(W*IQmMKC>2 -}Srt12;s$^8PY|CLVnZZ06VB4S6baJjyeRVGNmCWWG^$UYj^w0CxZl|RdJ2d){1a{X$rG={_RNaglV` -t00cuchem)UMl`p=4>^FiZUrO`a+sg)T^W$lYEBSx&#LIla@xottTI<l0Rr6a+CQvozM*fxXp>ssaDjQ<(WCEpaSzh*-FFXL{5GE24HaC17xA_~I(j3^5@ZX2p)i4{Aq$tFngp4Z^#)gsj>dz5k>c^@y*ax028L;5g1(+g0E+^ -?Fp-tIL;9L340WUT<&IfMJ-xVv=D_Egz5z(re6+Xfc-5jSAx_Euq`6du?kZJh){y-0@TGACUaw8K}=y -DUmH}X3`sR5icUYaq5jai@bV*@3lsy`Gr(+tRGXf%QBFF`(=q$&N&*nc31`bR=fEg*E^Jze<@Do7hjeCnpE-bhV( -yID5BggP6shV>Dx5u3yNzhJKV#O9H(NfW^$iabZHF>u}L --J5=s568R?edo7OD-k2HlcT}oKj$kbq)NP3m8JdtOquSt7oTdUS|n})bJDHMERu)M|CbU9$Fi~{%b(TnS3LJt5C(7k*h^5Yj>4bU^i26kRXwXcKAlY7Z`N -5O$5L=L-s(Hurc`qD>q_++W`uSbr~JFj<#nQQyP2bm>%D#&1;!fC%`ToZEPCpg7Fp#@3)G|DCzei69r -FC6l-DKV#ybR=GaUJ!jqERERc+Hq=kxj8P_U>KW=f2lFcc6S9?H}LK1h(Y_m|rC;?M@+{!d1cy(Fx6j -%ftUw~=>F%WL$*rHp768k}a0ZmgdK|qjQISAqV5WG|m6Ul3)SWh-PhsWCnPDG|Bt7(s2?X(72~pZ~YTWkAmo -E*XhW^f-5<(+e3eoBU5lS2Fz5c{oW1>`d*1#LPk_kCz -!&Pl}9;C`Ffr}KwW12^!6K~+N+INgI04vH&&iwWfU$}0b+qRg4EDobSM~B^H<|tVSkD3 -WEkZp9oQ?-xkqshRWDu1VLilkPgi`zw;vZjC+`vLHcgoJOV#XfCZkrbn0~Yr+M&fi@kswCWGMtb?PBY -7DM=)H~#!bLr;1(%}D(#T&V$IT1mXNtV*is*0q(k=EwK_9bc1OS$nqJOA8Z$dkOIzwn|5FhMl1f#mX= -zxazn&e7fovus!Rs`Q281+I)oL1*bjowKx^XWbL1GBT??6v!A5)vR?^HfPRN%dI2$lkN2djf}Bz2*+f -tKy4!&G4b;JlJ*a~q2~Q=4N42e~RGwP08W?um)-rW(QSj(ktQJ~#oMfgGjz7UX{%fdee6ax1IVXh;>} -VapAo7-W2nMMYpCQEAq#^N(~v|B0Bvy>4x}qisqVI+qP*GmBz(rbc;YzI2B)CZNY{cV-ytaELn(JMiu -}U(vnW`{HvoNgvkugw_|ooH72%@xfg2R-bvl{xyj2gm>DwXwo<(JyBG#Dw#R~7oByP0{w&r`4;;xbO& -rzt9BVZ!6G~5jh1Ep--?`+K@J2;>g<5QGWkMMjSkI>DrvyxJBArRC|DW|nDFlAvNOySy?;-YZrpXCps -jEXhh36_)1V#4S_{~55)MtRfrlB%FX)0j6LW7Kv(pryl5IHAC23#<&S9xO*p9pzfQniMMG@r|W1eY8& -74&=6WUO4t{Js=e&}es=Nx>zcNOF={?=_bk@zG*{zvBaxQm58-@K;k`{?M*D(g}Lxj|BDSz#1Tf&|=m -S*j#q!j3vn{m+q9$EPGyQ^;YDB2elzuNuT!+d{RA=q4x+dV=BE`3;tZ{`1|%&H3wLkO*eevP@*LZ_f% -kk8ubE?0Tp-uoC=g+L~i@a3kd>SHYKht$Jhds&iUd2aYcPbQOA%*4AJFM -9kVWD#SNtRb_JWkbFD(~(skH&Z_X5z(NVP%Z%^1z-5lzQvWv(Y{vepiI4}x2kxipkV3{U42{d($TFdI -euDBV9u>ecd%d?mGV=RSB@^94hm*YM2Jd0f -w0-9>ThN+esr-mfA_m%+SVSBIBER+F}y%``e*R!xIlBFn$#cbCG~aY!b4AP2>M$hGvs0KwsChRF_hIP ->;;1J#9ZJs~tF0r%@(f+V&Z;qIlqse*wZ*w8SIuusEiSAU>)fa -D`iW=ad&R4l*+cXhbk#LPPF5rRbE!T;e_7& -aTT3fb4AH{w%I+rj)qkS!4Dv5v+zH6!@9&wL%TYt#zG8Qaz%80EC&TYQ9(6IgvTozXsg{5U -L2qI=ZsbQHwBeJ;?Ce%tQgz|S{#y_O}adWlNHvz_W^0*%rKjt$hax+p|er90h#LjX&A^kNFx$XSE~CK -@fRTQ6p49#Q ->my+*HM)1T=NGb;t-hwd9CfS04^v_Vrx-iPYfzn(}N0kioCvGf%&I)HEj|IT%D$5GgllB>MS@APc(KB -yT<5iE3rX$YlWArJYq-Zc@XO}Y`URhm_maJS{B$>1=z-mIPCw;y~%IT_G`V)Y0I}LvruA%#(YI8pedu -HQ)@8GuBXA)_>iCn-HMSJ-@RDfP}a$@I?niUq;5OTsEieeBu2*)H*t=#q_hVO^WSF7)avZ~8aWr!Nla -|8RqgL~g?@Jzcac@*Tcc^Jg}%)Utmr}u9T7GAwUH;01Vx@60dtV;qlih(JL^vaCf$3A#N$B6K-&lyZ4 -FNn8~(R!P2kxD5ETrV(R7-$MFk6{yR@;S5j!R0{`ew#rYtvhBU(tXu@#E^-054K*W}kzu~hBn*mhXRL -=Qt{*G~`{9k$Ti#?~)X;QuqG2CMGCL&Lv7oNJDL5peh5*Jema9`jtlXdHH&)Yxf-%|Cc^4)XhQ4&UHW -pk~pgUEm)OMx!!lKpmklzDxO8#bVgaL#Ym0Oh&Wj_i}-tAoErS*&IEe*kRj9lfL8-h%73M$H+6P{#)% -43$D9Sd4>@HXH^Y~K;mO?lglQixxTtOKf7yuEqTm;VOew<56~QGUMXYQ>`>>6`!XP8cuo#_8)Y!hLy!F+npA%nbkYa~>@ -&d&LAl$I73t`A$oXQEaA;@8}6OfdHb;T)2!`-;owHi}EkOM(iy;8N@~&p5y*w#3M7A2x&|VEDmNuSxB -y9{atcF8l; -8)-v|y}sJ2L8Zz7bis?F~PwQ_C2ONc{{4NdRYtHX?Wvb#3M>Il&1PE9X>tJKwP<3#1$Vl^KRQvg&@aUGg>x^mj!r)<{KBezCDEx$5D?m6_yrjcOW#RQhE?5?A -_r#iyc2^`Y&FDdAY?^OlcWi8Yo6(Y4=#2&AE})>zbXSNrb)`2wIz&7}pI&hdeaZ*9iTMJ}sXcY2a6Eu -LelYA*^6NZ>(-Q3P^EiFmRg*>@(4NKZG>{MDWB1@GUEEMT4?u_#n3ec6O2K%@@%a6V=?8T>-JIxlO=} -p;eE9d`@7eIs;qsfnZ4Z5hWA*spgkwmS7Q&qW+D3-fNpo1S`@~tn{SkQZb_c?nu@})FCsbIU*UP0K4- -8p2746N6WiKT3!**MsdbX*?0@D&3nyf>GJBVwYx1#hTtX|?H=Q5SmP8DMG9=?yh|M#ck*h6*gtK8Rgs -fRML#tQjS*m2R!e&t5%MX^)=kR~FZ8Fcr+JKT5RC*(hZgS(tkTnh8%7|(zpd0WX!or)FtJOu;8uzd!C -Wy}TfH4Lo+Zx1X;jVSzA(NLMIa@rP4SebcJ5+U(LRr8eDcMyf)S(dAV#IOj`QjHjBi5z(^)iRIeM-+{ -YDV{BgP~y{i1rkPa`|=;Xn)mjxK(y=!f2LWc{eC5y9kA;_*6Y{TQ?MlKoD2yB-4ZqCS@diQ7DTY)7k_ -&GJmj=neVWb6-PfM=I24a88qxhZ;l2%fFAeK$Eo^A{PjbMr -0ALva02=@R0B~t=FJE?LZe(wAFLGsZb!BsOb1z|VX)bVi?O5Ma+eQ$6_g}G-JlJN8ozgyZG=UicZXso -WiOuw(=|pE~ZC{ae>fH&~>9l`)ckfOz0s^GXv@{bx*h0G7{cgW+e~9O>y|oRAN@cN#ptAGrZ~0EA^X% -EPj>carG}a77DLa2&`*b?fr8JPMw8{`quu7qBge$)Z_kd*`4VRe-dVo{`Iq)6!sq9hZ>L~%F{ybKq6F&&DxMy1dq2X8$J -zYZuzp}^Hm6EUdSFPKmq;`saVG>!*!adtjEK0BTGKaR%xhyLpPY!VinU(^@-(}N?vBoA?XI6fIq$1#D -qhJ{WT!Nr@C$Dn9!bl-*uQl+H`imVTZGI5uBJ%CJ70Ms08MNAt8Fk4%?u*!wYS>lf@oLBOr*FZrfQ8i -F*!f5$Vg%ywVKJdO>80Ip=?Mz-`gTSAy237-_sdViuJcQ#Hqly-eeRw@NJ0)XUicG#2Gt&F{nwT#Bsj -DT56!nK<&L)ng({niT%NjQ;NjdYN@kFUhiMNe&&<@97X=j)B+#i#gO!lBK}Csqg}RY2*OBG`Gn{kBpb&Wx4M1>+=OiXO@O(xZ=T -Y1v+l9*n4`D#9Lu{&AxZ8)9;mYjA{+t27Bcy@v?6Y~dq!qC&Q>%9xQ>i%}S|@#_REDA$!q~-aluF~`M -~z|>dc=sE!if68$hCrzZvi828c-W0YeP81xu7g^(Td}#uCVD74(cr&GjiT)2U`7hSNRB8o{O^NkkT@% -5|yzZCWAXq&?Q?~x9BCBf;ialoW;ku!;uQu<4Ly#cMhaa6(~}7 -#sI8pKL|6<|`^>t-MNXph^`jJa*)~fl00;XptBTaCx-xigeEnI;7mB=fR>_s|JCPaWBEWbxnvzD3O!J;iex1#4qcsy?UAm8(3ZuG;?FU%nwW#Ml3LjIw8b+dwccZR&TiWgl@s^#!@}YbtxYh> -(biNM57V^&SWuEdNEp{?e^Oy!e0$u_-W_Gi=X%E(a%G94zJckY+Yu%+y}eFAu*6UUPv2MM@&UuUTAL2 -BdRPHIR?+@D}^X|3DdAB`1hY_1X-g6K90J(dr3cN -LAYl`$FOw~kRO=^3L{@;$SZ@1ot<3?~6Adp@bRsBXp%^;4$nW-OJaf#-WCs<3+9?sC9O?{>6b#Ih>N+ -B*=K3jqYniS(a3U5n+R{wLGejjqvyX(#B8tVmw4)%$u|NKH90@}U#vKr#eBicj3hAt>71ds -@>Cm2E5D#VTxEGs{KOJ?vTx{o!=d}zCZAv#xv3M@Lah_02L1|a;IBK>Q{5KNeTupGBACxgFx6dpxg`= -|ljTRrgkL@6aWAK2mlUeH&VN_i7Rsp007 -@7000~S003}la4%nWWo~3|axZdaadl;LbaO9Zb#!PhaCzk#`)}Je`gi{oJO_oO)>a;CyCSGDWKDK0+N -MRC;d>%HsEalk^@LJ{*#XnDSzNOe#GaKEpS?UccY(N -%pm3N~@GsdeQr5`04d77hI90m{vIh{6bS+D54jPATTR5pHR(3K^C-_=1eLw6OvqbiiUoVFH0dc5z0SF -=ASfQ*3S#77C9f+OAE;;3hZC3s4U>C>h)$)EXkNE_Vh7vi{qz{Spf<%x0+7GvZUHCS28cDRBS+$mIH$ -e4@lfYi!08Q2WK~0(uvO8>r9L63zZHwOT0w3_<1=E!T$5Zk%B9Rk7B38}RxESH~N -dFZ$sQ_z3hzL?v8W6^OJ`{Nb!LwXKyby>LElMJ0grkqCcDRb(D)SxwK*){Rf?jh`NdjM{)pAV6KyJlI -!PwMLmkb2HW)2;QjoE~P5~O6JglMIbL7?TgAR{v6I_*1H_zcOL>WV6A-?;ae3m|Fm77YF+mu3L3jvJlJhG@07<39WYCJ|IS2>>EyXn`0JMHc58yw8%4ehy5UUE3OVe -V)0%tU#>fC`Jp9(2H#Pw_At#eTfEdudW9REU)ToiLAQ4&>^7?M^NpRlCgre$R$?{fxHVE$h-lbMW&@f -SAH#i$*h7nV~9L0hz!|DsTSgLJhjmV?5PSS)>-R0t -ObR4B$1TW%Eg*!=7L@i@$9>+|YD(-ng8<^yPV2U{~XR&p8Q}ur~VP#-UVWtqJh>YC~91YdnI1TDElOQ -d@hF5n3(_*p-;AB~>SUww&&_t4QAbu|ND^H6}&!iMGj!bh|K<9#ge0Sx+9Ftk7nw01;c3b6(8z_ -){yPI*dnT&cH#CD~7^=M1CzAfZ>a7&FqM^j_%hydX4=#2}Lj1F43`?A^cbI9}V$jwt>B=KpG4)=Gn_Cl8tq9u|SO$DUV9|Sp)qS)z9ESfSd2;t+F;4ZgJ=J_lBM`(suC{|U3k8neo<3>)oV9S+IsuZJJbK75GU!eaC-r%#Mw;+sy6ItIZ!dD9&v!_N)qdsB~*<_ssWzyG-M?#@zDU=D -ntm)uzW<2FXUqFT`Jry?*vyswU4&|NwXkDff;tS2mdS5<-kHz@0+-Kp=B!=ugm!o -qje7x;gJzFyj<`n<+NG+PRY8j$I6gA(^2sN)B!PacpMmy)Dav>MVIi#TZmRO1_D->#8 -+;H;O1Pvh5p4UliU -rSY)wdoS{TT?LGb)Oo#5Yi2Qi`2O44E~mhrQ|1rt9G#jSd-S}FhO`0(lHBy`*T+HW^7+Mx)m1FPe}iI -H?;L*ww(&3jea41RrTNd#rYQG=jMk{|?tmKoykI3M;+W`J-{kh!pwsxs#=Rt>syydgL?gL~f#f86j}E -1*sQ7dT$8f#YT*YvCk2bo2a^I|AAkJ$nIU&WDD)(CO}CxohKL{_WOQSJ!Y{!)p!LM7haMnL1~$L|~E= -KQ)JDc#Jh_jz30V$-XN+?%A+%&rnz0Q$+sJHE@I`5{0tBcT_ZIcdS$cZ`W1?+X=dDNh2v%)qz{Cx!A8 -8XX>paYKWRj{U#)2JJMDv*19zb3mxLGWk`SwYok7f1lo8qdZ2tnHszfb(g61^Ci7vDm -Y&8AxMA}(GssMt&@gm>4B+Sj6oWtjV=8)w!Z7Va6~q5YWK*iS;Gg04lIR_Z(zck3iE8PiW}$;jFE-br -8?fj!j*Hd^`53)0JZx1 -$(rIQNF$SkLGHG;)ge?5P9arWZm!&$P6pF3q*yK#?!Q>vS-a!t-uQ0Q5#8EwV<^>o0Q}P0BjG2L#s-ZyQp_|X -Ur=W|DCvUZIq+>t%MzjG8i4oN$gu5gsxg_obF$f9r`k1Y$F%?y=KAP3Jk2&I%R%XHi?aEYI%${t6_jv -#4P6C-5r3lKCKz?aOB13X{f;WSZNGHq&COQ#%i7hl?PuNHjBY(TmbQLsmgj-C>}JABO-?lQ&T*xgxpw -T9{8#qgdxD7$wY_~w0;4A0m7DaP+BWQKznFFNA177G@V6}W-re*8YI@1g{8Gf;lnk)3;C2O(I%L{?$9 -0>Uu2Iw9GH@L!f@6*r9U|vz73O}Y?w9~`$PtJjyqAsZDL8Ul_hza|z8T3+Rmr!d&z<@6e|CNPFHlPZ1 -QY-O00;mMXE#!UvZBu}0RRBe0RR9U0001RX>c!Jc4cm4Z*nhkWpQ<7b98erV`Xx5b1rasRgkex#4r#< -dw<1n6nCJzT#JydKvYOnh~DzW>&uE{9o9CG2JsPmAzwn03k6%PN1E}xy}a0$r28Ywp5zVvkeevx61(d -i>gZWcw^Z9R#d2TqNi@vl3rCd}Jazp5q0;!URr{GGPaes#?f&P?nIR_4*^3gaHIPyj_vWZwB3TLQ?*5i3WrCQ@&V5&D< -4bdD46xm$(ZHMcnj7j9ZBBKp|um#jgu42pN|MEeD(#rPmMQM$Z;ValM?k#N33=*OG7^aFOc&gXOy1%% -D$2KsMQ}5cYV}+jx~k@tQFUhwKyEGwzhLD)~;_2#_5$MZ=@?FBB_bvMm7?!YUTMOxUk_iV-(WDX>`p3f=QJK73-zu6g)Tt;lWs>;(e^8 -S;1^9k24zk(|0YXMGr0`pttp^#djSVpxi^{HXgo~L6Xw0O+RoZ8C1u(LIUf6$nx?0;?{n_Eu$aY -!{nk<%z{ipLI9*}7f^d>$*$I46f+&YT+(64E<=>{9k{l+O=6YqY5S1w0o}GybnlY_dJSNd5SSiK2tAE -1U?!jH4Y0My~R!G0x$l!Wor&)w*m<~IG-g`2e{DWD~H`HZ;5p0m)(A+v -u3g%5Di??wX|5i6NQJ0?(3Qtw-0nz-ToVp4N(g%B^I8pU;kX3aVhy)Qq33K7&?Q5;G?D2N9Qn>f~|v) -UZ~vpbgR8>thFby4tld28p<^Y?&w*ImC(kZq&*dOXho6x+N3BG5$7p&%%GB*w?iZ=ZqOcp(e0-Wx8z( -tA!qj2WAAwRM`S+Cm8^Z)pP|ei_y3Xe!_hJPJ`r!YjW5#yRz_^r*xhs76#Boja!k2HxQwrh-)8VjoIT -9o^nc3O2}!eNbNT{jf5p}*`vFi(0|XQR000O84rez~y(bqsz!Lxf{zm`+9{>OVaA|NaUv_0~WN&gWa% -FLKWpi|MFJo_SYiVV3E^v9>Ty2lz#*zN6U(q*<0jZ6KPMj}y3WPh`NzQxm+KbI>3}Z8pIAo88I~1vOl -cN<3=eMU``jwa-a -Nj>}f;4_Oc -FJJs&Qy;O1`G*K>cCGYy0$D3Xmt#`)1U>W7M7cY|32CW<)ewS4}5Xlh^BTN?7%}0iGV^T6Y -TMVtNtO6`R@AxHFl+JfmIax%w;yED&6x;70ALT~%N!Fad0R?iyihk -ihl50-v6;4vLNGAxa4pc2y(A -;a+y20kAmJwa6RP1TDLT*uq9NFsCGvWxLC(MvL|iA6fMhc~jDF9v^Vjs%l$-2DqLqGyxo-Xs_C)K4#2 -&UCG8Y=zZJh3N`$$RY0_^VGM2qlErx%c>tZwfom-uD-h~dc58UJHV@PJhSo$<+AE2Jao|pXny7ZKs=S -jp^ABxLMB(8rsL@dza##eBV_po!4a(~dgjIrI>h_S?O=ni2O{_uPt8TqcK`rkVmSLkF_`&DdT8Wiy8? -*%Lhdw|46gPLry@bcs7*azmg9r0W7r>kJYr*y70O}Pi0VL6@#uJQ3+_#|B(<7#*ZDd!sMNEWud<`s~q -eo=iob#9jcpq>XsveGgA-)53u_RdkNL6H_#k;rPh>Eome4-NfdD$c#>M%X~x(($0!YGe>00W!0vpbZT -UBCsV364yHRSdacVFa{a(JGFjtV)``>QEcN)yYS&RyG!}QdoDV`hu6owhh|F2Ii=tcwpCuE;Ajh^gXZ -gW+7z5!Df|Euu0~Q6zyMmN`->;za6X%B@52*U{?t|OsI!(%<20`P&}#8&jqowun)o8-v>WbzSHg}*oQ -hUrbykXe7gfr;o5Ej?Wy#-Zyu$p?kWrlCzS76^?~N!=h~Q^vD_x#$?+h3ioSLrdGK(9rofB`<~5vzd` -jNe-Rj%6nV51)9eLbnrl8HxoCjjb%QBw*K^_<4F|UI;!I!zHgE9ew5VhP^5a7XA63#$pOu=Ud@uDq%h -jdY)Z}Z{-P3YM60(@jCfSU|`qvI#9VEDIf2eG%7xO=js0GwWMd~?oR-?x2T62K`-&{hH=xct6RvaA#t -iREQ}G2n5kQz&lWxR)c39EkBf_PYTap`P*fh2iClQycI9|6s(CsyjMz&(Kk#HB{&MDT1Hqbcfwf()|< -<9w8)l%cmjIeb?;~-h6$1{pPjQ8gR-KO3GkYtLCnSUlu22S$4S3yZ;tn=DGsJS%W5nUur?Y&{-KThjg -7%5x&GmhzlT17d0H5ION9wa|KANg&{!as+l7 -H;RfM*V?@1?V%_Z`&PlU<*=oVA{yq$QkBXiV4UqQUnE!EKuO80_c$ogW9$0G!H46g)RkXtY{C77^VUS -|Hfl@kxRik|6AH*r!Bz%yNw2|q~N9Vu2ZR{un@`G0`9egMsoxl1N6d8*|_&;&*|q2lIFNKczX%ny3%Y -#VBCAKy--&NY;Z&ep@8CrsgwoFX0|;5KoFrpZh^{EI0!VHu++XsNP+;kbr=_BTlfos}R61aa=T+Iw -x9W4FhGobfd$@$W=B~FKp0`Ic5 -WW~FBU<#@;ObraN!t#zv=Ii!6>r`}Ex~up7pR)wrOiBxL`1C^P*FeL-_SEoG-(B(NRA6{4q$X9yCt~y -A1hjBoE89XhD@`U;UHczE(C2Bd8gHz$3VtV%EcRdoQNa-k -up1Co-Zbroj6aZyC@9r!6!brNZ&&6lbv>b{hA$DFuxwbfDa|{(z*igNg_7|BFef+1V=$eu -R($!m3C)~Jdi*D;4;ai^S^fYY_u}8-E#zE{hmv8z>7er3eteFh7l`WSc7Ey=nW{O{$a(8%aZjG#MdQS -eCRbX$KD~5GC5(01~kAHsjyC$i7)EfOM^;xCVM%w>VZgM2s4$k+xBBj3(y3Fg2$>PebikJLZZ6bX5(v -q;Pqv;WkuR-zWM%5&_o-s+5EApW$@I<;$2f$gglkp_BHHhpcj7mJM*>omd0UgJ~rv))@!JaUwFz(fUUtqo2Aj*mp?8ld* -#p=rz)*D>23!`RFYB1%_n+i3sC*9yn;r36rUzR_S@A-=eED!dd7j!G{r`G*rbPY1xt74fnS-A3iSQw6?_JL6xG3=0Oor$wT?QnEj_$H%|L1h_3_=7x-Dld`VxlTs;m<&b~YRWqZU$A -4iF7mYY*v%4idE*C{A>s$DSWAhT3|5SUh$Wnb-~ob*PVNvUPwG~TEV28L3H%%>lL}y#=lw~(CwUfNDB -Tphj!j4G47)>CPqS(E3}@xSvfqt)ypM+FQ#E~>w5#GOQD+h(dXYhW4Z?~T#mOp7jV|G7rJ -MGd28_I;9+D|jxlcssajv;D-Z*NHc~jMOF80Un9)JnsYVtTHeC_i}>1XKDc{xuilaWQBOW3|Pae6|G?>dI$eENVKliZMN0{Ny -kV3Io&RJaD)>@xo6D}Yb^4Q@f)27e66xN|U<&8(xrqbO%O55z##jZYT>4Lc*V*lW`NA6McVVRZoRsZ4f54QU96i9lo=`JFCwuM{0Z>WQ6qWs=d(`%E~xobl|xpgR*A90Z-rXnV+w$1#h~x#w9#m`jD0fJtj7Du$C -2#V7ykHE1-3p;POPVt3ekZnk|?DT)e2*Y^s-^kA)20Ek={)(k;cn=p?hVz`=2ylPmJi(E^8Bf^%pXte -x@HGrx!brBOAFxiXG6@Okm;yLAqc_>{yA>HvI{6NTV&@UuntdG`szIya$3{;Z?k=lZ_jTBbajvmSUgs -kd^Vfu(!(4Jhtqq0zEUxdibXb+=XU-9s -XylZlU1XNZr{)uX6S4dBGFy0I*t3y=a-Q)%6w~@TugO<=;xbaXo9uH-#HH8})mw#xK-JwWb2GWY78x0$WkWnS -4-5)djj}gNBT;1pii5elXcmkV2|1(uFJBvo#2|=%|T%G;8syskyOp*-OoY(|D^i}A)3lnj;Hc1<^;I% ->XZPh8hHc;HRbP7YKx0cYKr4$ox)Lx{bi>MG3yi4oQ*TuoZJF4+Q#`j6+z!H3hIchdR6~B@rbkJ!y&K -ymO)S|Ze1PKFKP7SS?DD}=4briH!UnsR(`<; -Xs3HHhwuvIQtOl9<5;N+v+Y#iY`&?_jj$kh-oSY6nZ1GdKBa-XW)45b)Ap%b@I4uf4!45`X2^c$IW&$ -P**4lJEX^gv#Us0Z4xBTi%W3OYl&=eg-**PY&G~4*Ea&_pR00?!`0PX?ovPb89xc#h?^9b!DWsn``Nm -MXduNe-7x9k~N^ZN>oCner~(-sfmtv^RI+qe5PaTg?O=r;jSvF9KO3wd2|k6)POh*gVgX`XP?2Wz)=# -Ax&Y98yy_3SWk>Z)Ig9tMKg+lJcp#Atg`yBWHir#BH32C%gbxe1Pf3mv-iZPK15w^(vm6F3_3Z^HJvj -_K$XtyTlc@fbb+&{@%_T>gjHiP#DclX7EhcT;^M&WNeye?%kT%VB;|P7#(CAV&vp)N1M&j{l5fhhUwP -}@x4sIMU^tIF*Ne!{>CpDc4j2);e2$3%p21*O%PlI?z9LJBRk2=ZUr*65!A -XeinpmYc^TOas2_Hg1GDaLA9z*Il>A7vD^mpTa(O#pl2I^?${y{E0XIHZSQ~&59~jMw7%9{bH%lt=XE -cUZwXjSP7`+6xZbux(B*T+5I+Dwt?B_9Hs32jv73_44J#JXS6&-@s(Y{`(&4YyvnySxj9qY_Y`3I6kS4w{ -{c1n6+Icznvcr*e?g<3s^$+g%hEvo0{{%}=$3DJZY2T2@l?!X9k680I%El!yM{D&Uo)ahE_1-p<<;fw -)#VT3^6Ta0>*eL2#s9v(PG)1S?c4Cg^>!B@|ByH!S=^IIMr&Bab9=!=fh0E1pcX`4Wo4;a_j9utc0tF -pBE1~-o%_zludN1-&|q&n(wfC$D2kQ&>l+BZ^SBJ(M05>=;VnTnk)RPwd=>jhbdjsbLE6Fi4hkM;CO3 -h*G~RN^2z&Zi4#xY3VxS0PmpuqKCStj@+X!}pX{8Bb){1$%0068pe)EB<0bclh;X9aW3*KiuV1Bs5xZ -4u9JZ8hN*WcA7CHtoGGqsHN!Jos7Vp<)I=?aYVeU3OMopicC0&wNvXj&-Vybcm*|R(dy3-JA46oXm#6nQ~1GK8l -XHfMQ2eHw{50vA{>57_5T4-O9KQH0000801jt2QiosFF*gJN0A&mS03rYY0B~t=FJE?LZe(wAFLGsZb -!BsOb1!9hV`Xr3X>V?GE^v93R!wu;HW0n@SL`?kOCFh*TsofVA#t3EXW}+vtL;&Oh^2^_1XuvHtRC{) -y9*K&Daq1U7m?uZd;5h4e1Pk#YsidLdVK?p&#!;ul_a^ixJWGi+o1C<#n%jLuZ(uduft!G%nRk9GO{U -=u(TISJMaa9Lk}j0#}4Qcc1UTU$gQcMR&}~~K`o6<8(WrY^>IK6s;Z6k@NGW-ac8ZuARK%a4*P{9NwQ -Kn7kTcY@8tf^U@*N&fPO?cFVG@v2tjBN)k>`!)3{w&6t$p`v#hZeC2R^sDHTG?k_rS{)7XI2RVIzFNq -CT$!(ySd@{7g9VVTe1O4zldzpLjBKXrk0UiW0FM5+G6gUDf{d;!ajXGzgYeseVy1eah|KQW`mFm(isU -*UIX$0kyJrZf&wXi|i^HCj{W$n7lH!1fg44{Kh -xE!ZCT5UXaZQ!r0Y-_L<)HadkdR~4GZpGbh}Z?8nNnE07IJ2mlk8?rPkm5jrWJ~&jyvu4^Cv|Ul6a< -;leU6f5mXoC_7(laM=WE6`8ei;5B$H~!9TS|~BZc^H4oxv!QuP&xgq`XKqQ|HzUn#W*>RE)@gPp+_tVx^%=W{^u335Iw -xb&t*&67=u;H&3rHeHH%`1;f(QreXYR`j}3TG%a=sMo&OYgFq&%p~ztvF#hdjZXdc{!QSrcLQnA=}U? -xoXvbb;A>4vOIEaN9N$^2(ChYi_#aS90|XQR000O84rez~tvyHYN(2A^`V9a88~^|SaA|NaUv_0~WN& -gWa%FLKWpi|MFKA_Ka4v9pwO31T<2De!>sL%&1hN5Fhb@W%0etBqT_ot*MzY&WQ3$j|+e{=nEb*<>o?bHDTReA?e} -ax0qDOuF+yANwe<)omPrE6tB+9#iUp+Ns^LoA;+bP))dof(lVVn49w#_#r$y~P_jb93)6ehdkX7L?*) -gU7!Y29k4%J1))sgMaU-w8%%wy%DA!a*4;HQ4h@l-6>UZ2+-Ps4* -pN-tS+G)2#Zzrz081P0902~hm4Z7sbjkJ#f<2=mwsSF6d(l=U>P8fwcr6@~Xtj-7Auu|a9knM74Z$n~ -hTZ5wY(@K~Qd!7sD2X_Mi=HoQtWigW;iAK~N0N&}TwU=T!-uXpp~kNuz7eCz|bS_6I%^n5g(?5=kJ}o -kThZO^;KQCwU?%!7m!1wS`7%@%Z6OLtdQRAV}{vWMj?p_Z2SN_Ds3r}4ex#@J6OhdWBcsdRF=I6J`MK -rWOQBEb%)Y4_`f?#F=iT3L(%z%CiGf!~brWY;#Hppsk`n_kXgVHyhS%@ty*W{O!e$?x7o2bYTyaXqFAZgeCxBzmBYCsoAN)y!NVKJSci+Oy -_J@He!siu@lzGwE*ip1k=)Zb312~A9|JC|tiQoC}H}?;>t7X3Y`uUfe`*A_UCzOjJ*ilT7meW`O+a@y -7Z1U-B5C=Raz6;baUIMdUt_X8?TEovX9*%e~>i1!bkliNGzbW8C+w|MHgEqw$g`skQ4t*3gqctEZo?* -Qo&zlkZ!5U;8xfQXs3Xf`eUt~sqf3}Uhh$NcMS4+%$1nZjZ&~{@6-&uzqJ7S3H#c+-5EshLUfr&?`nr -JE925|Xo-;8ezQK|QJWJh?77piE4uQ83f`@vq9?0L=%?s%NzZRGA@wd|+3<(!&(R93ciqo!_8z>OPce -f~r{wfG`iJS#I^Vp^^wEF}q}*8#}PlogvPsw?b -^#T9@9RL6TaA|NaUv_0~WN&gWa%FLKWpi|MFKBOXYjZAed2NwFZ-PJ&h41?-CVBvka&AaGH1W`+Nl99 -7#=r^#Y{XrP$BrMhH`Lo0e{df57viJ5{&D8Mk}^^ZDV6>%#O7$o0B!qqw;Hl0c~yN^;%ONh}08f?8lo -GieTig7&yApbK=>ujKx6{i_EB+Sbs_ZHatH8~SP$Zn(AD?;U$_obsxQV{bNocF*0qhuv+j4bGXT+QJo*DUAsPfhEMkP9 -z1xk*XY0Qv}sMcsdHVLz5faS_V!LM3ZvlVuG9ddYO|s;s=d%^+Z3Cuxl#4mU-YWQXIZPZ^|fx)I}4PC -*ef>Mx@lFOwYn`f+I}}TW^Zp_9rHI`@eEZ}U(ZxqtL&;Sas_S6VpX(CI+XyVNx56_;<{)riV9}Y=q!g -BXE$nJW`MqOX%N|`pR@~p{KS)4Vv0$3pQ%+#Nb-_8KC*{v>AM$cYt&UBvZT)n+%FX} -2)Ct9nEw%wYeM~}{7#NAoCsyC0eX8p)w@=;+7e0cQqt6x4#?ON^XOj_hswzs!#>W$hK+jMcItGsT~T~ -oqzo~G+UmoRTPWtDrhjh*zC%-*k(<;Sl7)4u%C^C*tJDzyF(YF7w~4hx&E}$+qS4HH -`8QK!QV@bBNMJ?F!?M$h5fE~tvq?#)NQ@0OZobJy~+^CTO5#{O$9SWZQ;JJ%x;UHbpB?m8*0yO(hJyF -H-4_y8LW3f52b-=o87A2HQKd$kr{nl8C{v8Ew1#-V%5rsX|`)GY_so9Pv8D7GsWsTJe2n<09Oya_nL4hnva-nEzx#fsUR>;|OP# -+GqT&wJ{{@^-UA43i?hQVz;Ecj>^5CR}Q?h}_X14)2jC!8gq5ud@m6Z#m2{*mAUQ`+4YynsW$TPL83L ->+@EHbky3h5v8;zgYU4Vwj0X_aj>qY2T?r~{gsDLg!Ni&R(eLJZAtkrP2JU<YD}NW -Kk9daL-iBXopADrC~q?tY%?=RcJGlnf%4n6|8POgQLF1*1DQ0K=bO-_9s*q?akC}{$`uC;i_I_Wtp9o -Fqa>)?G{l&k9n)%lmLdBa#zv3=(7Qa)zT+EpfgSYjvnE!}(f>gDmfS1(Q%C#TO(kJVg|MnFN^zj#7qjkNj1{*!`8r2|)nxRHdy+ -*CZB?G5l*!j)4(J#G5KnRE)}}&)HQWE43leb=o|1kAayu9 -Kt_qt_kT -Zp1MSLN2)+cpAWf_mKK|JZl2Ahy5g_cx#Sm6>xY+pWda6`n}#RD&I@0U&dUD5@G!G0^Rf39=XZs3yE4OFVKP^^-#F%vb)|<}bttfhWV9L -nC6_7FXfh$IVKR*teMus03R?hr_T}tWVCw1)U{^k{tLb!Tr3!t5Rzk-kQG30|DBaPHbIgHuW2hb02tQ>()X$W6 -EJ-+4Ovc)=XuBft|4CH{?G_GEf^(J+!IG}eJg#v5PLA-Snk;nr$X%g^z+nfjH~Il<>%74YYh(wJTSwo -M2^FQg$s%fZdTsT`|$m(%nye`&X<*aw#;lVD+d|yJ$T-}dRbQ!(04ODc`zNAU&WG%rfZIHfVVeK!BSA -z=Dfy(*wnBYW2_cO3^^A|x^b?11?$7XuRL7)f8AE!$(a*sm$GFv#!O`od0Na;`O!F!{%rmn5Dm(Lt0@ -x<5LSqZeI-UbHPxTQb7PNoxaTOIaXZ7O7eh~b6HJI}%!up7dWUp?Az>HPe6F4hZ`T@(!8NMGSH0JC?m -GZaZv!ynl?(xirBlD-j29es9`3lVpkZiX9^%&-GW0L-qYRqpR8%Jn;~?riQ&uvZZuI(BSVOTx -?Bh##U{zL4+rK9XMFg4qaY}%oxTs6x~Yb|c?}PJH(P=joL{ospRbvHf)u~76U}WEq>SvVSu9|uMbjxY6&Fq#|uOWzK*Bq%~95Z`vbK2IXm=Hdt0+@^i@&sjJ -IKcSlTex=N%D|QK)0%j8N~T+38Q%0r37hLy^F8al}S!VUvFzf=N7f+%=LWBPjUw#dhqQM$o8UGT_BS) -NVx!}C5K#dg@F!&e?;23Vr%7yy>$G=dUyP0U?d$`&kumigO|d*j!363>WU&bYx{Vx3k&q9!%vna9$CE -{(DAcqn*hbJCZ6K(@{-WzxX($>XBE$5j0*Q?VBFm@XO#DC9**2LSl-Tg!bqo(__uD%!<@nR&q4_}tG?A);7~m_8f&#IDhC>QODD_E*qS}hz=DwLpjY -V3_mFMwtFF6{30pD=a4xusD=(XLRa2M#6>~gT1^n$qQoG2-L;r1cIHoc_K?3{=+d|~;=+)}N7g5an%a -)Lbc*(kuT-4T3fK7LDDqK7C?y|QPxA8WzzDMgsgX9;|kCQVkE4Mun|W(T~!5iP4|Q{Qui23rKdBb%+` -FheZDTTgiOk!#qE58qfW;_rXhf;me^0O4EWHI4+rcf>v%6$~;Xj}*f9#Gf23gzqfF@+l%(6)~~yAa-x -3FL!Yg06c2ZE&6Ys -?z@X9;Hp&=b(~?haw?H8uV`PBfk70G3G&8TL*AcqfSr>cf-AkMETH9>3WawI6o%%xdZJX4|$Q#}B+_7 -K~>e1UhV6M_^bs#4th~j35fPh`M(&Bm_Z0gr!pkmuSS$df4=$Iq_Qo+);U3lZ^_Nss}Dxqd_a%xp28U -hV(-n$-6}-H{yj^JXlTtPBc@)yAX6AB{f9b9s0ul5%oWZHRl>mBOSOFtS$Votuea^0eYN3z^il)jriog+zrlW3h5aILl;)()o*60e|Q!IvrmUw}Q)e8pOU@i -uwG4U!!S_w`P8><>_B@0gE-;q|hT}kJgG>nds#)!^@1g8p9Aqurq|d7zd$gMNC8V9NeJH|N; -z#$8B9&{biXcj@(me_(DAx%E-~Jci71p&@`2DO@&q`rKfFIVRp)hdqH*MuOi&rWZZJa$g;AF0;$$2_J -DnZ+|MWBT!yfm)Lr=s!zZlqE+MDCi9!T#s^Ipq_y%!x<^_gr+Q=qU-z|u2q^i$Jn;&`CbtUOcGn!m>)g@?$DYqzvg6$IKJori073$AHV$Z`H= -UO-1hG|Rg>PwJBq{gH`S)J5u0+%^j_PFJ~Dq#K|nrV(L{sv^o#6DOQc=l`PZm36EpJ^7wG#(J!w#9C9 -Vf-?5r%Ryu9HcvgDvX0yx0cDiZX@@0}TTVv)*HRI75AvqsZJooz}b+WlvfNg&zbSZpcXTs=)c1=G4K^ -Lz_D_R*6kPoMeZ>qQU$ms7uy53;cduWlr@wmkHEd+*=~;lC$*@~~(knWm({8B|gdvSJ3~Mtx -^ZcdmT=oOls;*(JahtiGb)n4uY99;Qe6{U{Bgjuo<*VkUu5XVi1X*_oh%G}-wEtG2LgeJCAcfkC?o -~2_3r|hT4KmX>zbPzcGo1!N@Ym*+cr(-53D9ZQXwFRmDiI&QTXmN<`I}j5r@nJ*jBj#>b_W<;j_y`_X -;sSt4UTbxoiPr#373Ak#Ar1%nOiQs;3H%B7vV}k%SUhgePhK1!Q}%kcBDI=TI$)ahwV}`&`}+M9a;yd -*(5t$^tZSNt2lq?^(=O^=ld9K%dr8{yog#S5R6I1Tt` -a&GBo1uDh(3GTO%8ggwVwsu+lCh)&)GPD?YAyfLUW~CV#cL#4c7@?z%y|PV^nD}3Gh#^!|6$vU(D6yx -04tUJSC09gMnOb6aujEUyyjiR>5L^haNU&v*c|<;&MmS^r+;1iStgb-j;=DSvBTp_4l6NB3;pkIMwSG -xV-E!xNax-!)L%{0Wu8L78}4np8-*X(J)9`VnF|X22d;7#^8FQ&wlJdAJN9d(S2L4ybFu;WQ_GRbmz2 -MEnIWv9$^JT?3=(O9M`8uSp#(!J{l(v&3`^LWDX13J6LfN*HAi^h12zli&MOcu%s)bN!P`r?P1ODz7MIh(+3IqMN -`7EUV%eN0sX|*!Rj~hR89M*p7OB?l#34bS&oN+4?X%t5YvyCj)+kD`#}ya-i)4`>n^XKw>RXbph}!zc -R=dkf^A$GJ+d-#0EV%X*)r+!BK7_85u{xvBn;l -I{YNEOvdCpLtDM?qB0#c7%eT=1sOzIvAWT~rj5}&TPl`EKr6vpHf_C#uepToKe*j)R4sPcLMscyKCYC -U{+RX5&>K(i%8@{UbfU6vDO8?yKi{ZU;T2K@l^py3WX>VT)`i<|Y+vF -);*F#^aJqe1MZMJ-??C2Q%*-4wNiJz+v4%(8&|XeGM?e0qcTR>hmEFl_PEy9Yb -1ZhH};%7jz^3Ftf9pfUTLkbW|o`-{k7cUfTs@~v52G<2%6>+VB>vF=t00>~WJw|b)gh}+}(BH+m$oJz -%wuB&DuFZF^p1+(-37bJA5~O<)4>ldH`r&aUdb7$Zj^Jc{F|$v4X-+`_A$Zt!ovN -fr;r}>sm@{$*ob$AQ^lrn^s?1t+IC;i+BBl-$k0co(R9XN$mHj7h8_!aGT$XaYu?U6A~UP1~^=!x6k?XS$VjE! -;L4rSanG4HJ51zSNbFeG(eA|k}jA@>H^ks0geqim8)|d$f}ZxGajH(OBHqtkP5vEq1eKi$=(p)i5l1b}POQP~zE#CE9! -u^70Vam%)@%i@F7ecr_A;c3Z*h%yuum6A}lG2sL4M|B$cO5#e6bP~(q%HwT60b0D7fMhLkfbx(Vl_`A -lIj}|j-;%pQz~ww(n|J?QQ++g5WqI2!F&2{FvN%99xeqz7l#MRua=;~yu(g{+ms>x7Y>Yn+X0r0^T@K -+`xQe7`lP&Y>XiX<3T{~GDhbHJR<8^E2g?SmdR_#_04A9a~+fgt!jO^l7pk9Vgb+rvQ-(rKN}_J_`nl6Z{K)av2j -LNI5S`^z*OB|mj&hQSiL&nCY@4xV#%@-#redqdM+E}QI{W+{GV($SYoc2rUp8N5A{yXC5&u+s;3YU}* -~2u0E`C{IikO=!Me2lEr<9ma6T*UIF0^-6Mq -TDyBtYLbn5h7uanE`i%OooE3a^^OJqHw_62k21u2cTtM<9mRn2_}VPy2&6e|QjYJHr{oZcuUh!d9HRe -10yQL1R0DdAnv2+?peoC}ta&BbVY98_cyOHVa3fz1Dc|ETG(GkO;nf2$^_Lv!*HVLLAx5?p)GUOb9vG -Wt&a=hsa(OXbX-xzXr5cv$GllO$^I?t9V*5O_4Q8p_FbWtemoAwJOX7RU2fDaoIw`F4b|cvVz8L*ek! -QGSWN|F*k~3M28hws}(S;IuCM9Y;Tzj@R>_}bB$4ftU2FN5I#D9vKMoA3vuc&nLO@qEo7p!KJ&T38)WvRovyS7mK<5+uNb>WgAh4-^|Ixf&J~ujU3XRzCm6<8 -hp>#aoowun`%|VKG3XgQl1abcQ5n(|xkMmk~3pLJVkp(xi9U$xk?;BNty12ThA9793q7@dn?WXVa-+K -l|7*A$DeTEvg@NrW{i*5MET=WH>%=g86v;g7l$nvAQI~QJ8&R%S~FKqM&Ts8wNM&Aq;f8@J_s_1HiK3 -w$G}Wwbg53F@&dW1>nx=y6l4k{Wrc-A|5(3&b)7E&5B;@IqfgM|hOHV7e4VcYSS-hZe@NJqHU -Q6G!_R{-uI1o9ozMZX}-FRaqeQa_%SH#V3-3vq06ccPU>u{>&Q?l~fuC2Ap~M;oj{goG#g&2%`=TVEY -daa1xZS5KPc#mpQF%xx_)<{9(Bqw$457k=B>~PE~dFH{I0#zghndn^g>o2E4w86Kye*neT=1B#)9zOq -D@vsR}KCBv=Uz+^lwKw|6+tQeAg01&hfsm19uX2P6Ka5(+rRzff2$_ -=;;g>RJlBmZKGbLsFsW!9nNErNDKSRVa!i?Inxe)R0#4WEA-OvrxLq#MK1wt5ohR8hCfB`83ei4~N1woq8wZkF-Q> -!7oMfTVc*tT@DtD4g3mG5+xsbywtzOz*f)tv1adV0Gk~g&}BO(4+fYt)v2|Z{LjA#W?JN!nR;katfNE -*?(dOTvyI`;9cIQlk!LnoDK6YoG&Jk6a&yvn>CHkK&HZ00ic#p3M#SN}{v8k7i~09F8f<(kZRK_cIUs -6%9(-Ks -&lqE9$oCcI~LA6?IrkDYs1@NeCdkrlJA62ydDL-6&g+i9f4S#KDukBnlKxZyN^0lHGyutABB%5R@JL) -|`LKFKy#r3~@1{PTA;zG6kd{jOCCP!asB5n%_qN3;(n37< -VOJX$+wFI9F_fzBV6M4Wt7A5a?74ia>CWGR3a_X5qY`PX+b_hA0B*Dyi?fbOU&t{mb$7n;iaQEo#_;I -dAFR}fWq6Dwonf=AAJ`d>s^4XLU@S#hT={>4lbUVbkyS8M%(WOR>TeeITwr|J@7==Re01q2bLKFzkn?uy$8R@h!>^th}8XROE$&N}nO8b0*94%YB-K$c5!7N7^v^ -Okz{PwWx(jt4pznhpI@5L-#6E;SgJHRmchc=q~Fpj}%qgg2W!`TC2mZ3aN8Tl_UvTowA9okdL9BW-rB -{U0oH_pw}7^)+nUxprB$8M;rgu87u)Qn2+FGb7-Ub&pbZxojK~mrL}+z@9Z&??hRcd~bsnwDdycBeHN -Gi1LP9F$kaX9{h@kp1h6@m6zrbq{g&^n)8>0N`}5#Of064V&(5t!y* -p+ZOELPXNtf2=lNrP7e*aS8oxNKP%mxn`I!rbNC};Q>DL)h{`@LzoDcjV{ZesCP-3sZXM$U#;w%D7g` -kQbk-h0^Ysp39EL>7o8xHie);PN`kGiW^LEutA)AKHsjRvnwnd?ran1RfWYyWanN@Mjs|NWGz2_N;Wd -9WK?3s)MP}4URwJ-;?S`gj(bOL+Kb4uHI(;^`LF9zn~Z#m%%1+)4a%0qdQ~Js4{50JYRLvX -R5mM4`4g^eyAw@Nc1^Zz7KZosZ^BA%OFU1m!lk4&CQs1!gdC7AI)qFx~e)kBI(fh<*et@nYrEgEVc$c -vBV$%Z~!Q9;D<+)h(l2A@@&=uVVkVm+0+wFox-C|>qxrA3m#a>HJBptp&0uCQ~f$-O)TQ3QiZji9)l5 -+OwNbxaPOx^!C)XQLN};@@Ymxm#g(OS|=M${`rR$-!)pU(fr-^{>@ej~_>urN#ub -n>;k?1t*J$Uh&Y_$Pj)W%!`{TOIlrZW$5buYIIIt-)~MQ%y$1lb3*JXzPd*4I`zawg5z;#`w>J8fUt>^5tX{DWY#?^OxQ(ulhM~4c6tyhqI-Qd?(S2lCx927uL8$H1Lv5( -YA_p=9l;}3{g>!|3e{kme^^uS-*px$_&6jzK41$nzn+k`0WS8@GX9Ch?txFk<+4grKwwaIS<PZ -{siw-Tff`D|A%eIQAuT8eFCw1trwyj`!2F`H&xf!Z0PPmI3(#%%AYz9ijwg_@>vb`g=k3UAo-(0UGcHU6qadHrL(TYiMAg(T&BQMI+UL^Y$G -Hws#5pBjgb8|yS`TE^9|OvwMKRjXMVrl|GFQBn>^RFs@A0s$YGtgsVJkL99eGb*S~fEml5N0P-|O70K -kr~S<894t<>S^y``&jcSGgr9q4FF5Q1nheT?#8zIE{yX1x$xN|E~T4P)h>@6aWAK2mlUeH&VB@y5=$= -006gj001BW003}la4%nWWo~3|axZdaadl;LbaO9rWpi_BZ*FrgaCz-LYjYdNk>B|%Ce{Z4K5!{nx6KQ`G~@2#qGt -(Iw{@tgAAEOp+b{CZL5Im`^^Seq8_s->><@>RBI_P9}k!<*N$i?q%bGki3wn@UBY$COu|NIfE8sbt-r -}qUZmDkJh@n)TZG`MglVF+zuqY#_D~gVPbk|AG|vL;qb%j^V#X~tCQ2?qx0G8lQ$>l0^|x{S{O^cO54 -1d(ZjJ?W;GyVaYf&y{VXdQT@`6QYn#lC4s$QkCcDvyONWfO&9&anZlG_T;l%84It5bIZl>?wot~cw2> -p4XHvwT8rRQb&CM~w7dYM%~dFXvo0O)Lawz$&kbgYi9+TvO-j|<)n$5mAVCXY&(f6=_s-qVrc514zqX -xhq=?ee}Bl&_WD-Ov&KD9HhR`p*;rlbW~PgqtSXC{>I!x -Z0@9y1Wi8*amAXh5*SBf4RJ=*Di!9HYZ9g*_Ry#XCJU_u -{#F9MqJgNCNU}1;}ZUv8gSyoH}fPl`q;x6O$0sNd-Bb)gv{0I>v~2ZmH_jeX{ -B-E*_lJ^Fxb5+Vr)cne%MvDB(GY<0U})6Vvfp6~1*jl=yPsh6~25l~S!!P3-FCzpx3(N(tEj?8e_YG` -58Ls%nh-D07K9fFI_86lo`b?UH<=|mky4?_ea-XdY@vDz>a=f<$Sjv)xFn --MZ`v>NETu7@Ke;EmysPXq -J{!j`OG${3ao7hbq?P;-E7~cvo9lS_DNDSS$Bb>*_PdoXY`gFE^XNcg%1BVEv)g^96!rwEbg3MtwLvL43^Th? -)7^kcW5Jt5)Og!;J<8A(&FCTme;Y9cO|1LDqqB3`E@6sQW>*mrD})9zYQOixiA|*vpN|bqc$?1nH*QP -01>ytg_1t3{qvNLA+}lH@DeBd+?x_PQl=)+lv~fR5Wg77Qzr10gTI0;&nugr50`7fVs0qbR%=LHEAUU -_P`QcCR#^cUS6rxv6voW3{00d_V7!a*YB|s -xUfIqO|vf>Gtf^DPpdXrTdP+DnpI+4P4dwEG5Lt>vBBhEo_ZX;k-isFK)ahri01ChIbcy@Ghq83*vY6 -r5^3$oJ9gpvrzNncjaD&!rQLMD_<6fIOub3`s~5i8$h-tca|{AY>`67@kJI1g2|Au -wz!|rK-#PhIwnOZjm4MxigW#_Rsn!1U$gLYe@Ns`sQQ8kcR^XH5dh*M0Ul_-q7?Ot3lhWo_oEd2TBSj -l*FaM&Kq)IL?o5)ki3{e-{OZ*Jb}vwjDc!~C~yeCSb|rAVq1H?Z2RZodD%kvQ1 -1@HW+|Q@YFnD=$6%qQQyS?Om_so%3xI&TXp)wk^0?tPyd-WBec0j56GBNzBopGjpG<^unyfp-hO}xpv -DabhR|^@ty&G_A6av_EEMj=*3$GyiwR0!{?93#D$~IF2Eihg -(8UcAZ}nmK7005V2*mp`9lgG-=4SNA6ZFA*n>y{M8hx|NePtlOClj`d76b=Hb}7ojX~-&?W{0lGJMqO -Y1XB>*b95}L(fv>AdQSX3}Q5726X@mR$_!B>CnrGX0(H1{ul8MRr+LmTcgxLD7T$ZWdR -uEDJ~hc2Kw+C*^>kD7UTVtv$mF|Nk@Cc@6BQ^^_(xrXWDsHdDmfxU*#U$ByF^rNvk+bR|7ZSXI7lGYv ->J+s=&f?Y9!Qn&IZXtiQ?vywn9cO0Z_w(569+I4~j0#5&;kcZE@5w2KkZ*II8BI%?Ns5yGny)VOU6q7 -<4UhLS#;m8?}i&T^B1F*RFN>E#+tI8QLck`olniFs+e-Ckv|{oq~58XF0i8f1|%^mDQ(H{0Q8FKGHme -IWPM%%2!BT$v?ztjO8Gl77Tq*=2#oMr6eD94KBw#$>q(03n0~9C=+VBdjowdV@@<@y92VPvI&sM%Ljk ->bceS{+!nTHT`sP{2C7RmXcu7hka9)aT8EJbiJA=`9(Nt9)3!ja=P2xsIaTRx0^4LcWOH&Rb7YQ -==mR1q*TvAs!brUkzFMcB-Dd0=EX}~ij>F2s!7;2$qowxC7mv7u1jCOhds89k(b$^oQ>IYF38#!cB0Q -|7;DZa&s2py?7n`!olP+x+c?mq;0V%4*8afzP1w{d9Xlf&l -obvbU1Jgs#m;%6ewRE+z6)pBwedO&0Z5{9oaBK;v5nA?O1rQILkJXLnoXWA^w4yfc7TKv(0O+XJ;U_K -$EZ`#hiM}%E>Yg+T^9QxU7&@B(hv4Okxn^3QQ1QrbWg>obB1NdOX3*l-~cSgtAnOIKyBGp3q4R6zXVt -)OUVM892_jmb($4PlP|mNM-kv7utxI?{B5>GVf?4RfBsu?oHiOdzzffNLS~C8j5dnkqRBs)@4lz$myjt&q75Ch`Q$;1*sk4W=JxM%O`l8Li8sG@aFoq_eYcUDG -su_h7Si%9zTB;qmVG-9XkTP^Acbc!>$CtO**871=fP8Z`t0|QyPKn>u&VGYn -zRE^PW!KQaoJoAz>PIe&bJ$l-_NVGs8_n$H)?Irm2epG6+aY~8V=K4L@!xQ3}91khWvS#*V5^VM}Dvv -=V_Zix6oa~^);s{4EP9oU?veUhzY!-?`Dp@YusSszS+Q)s5E;D-VFs&yinUHVWM7|sIne_oLRRhcR(h -zU~iWjbXv_~I#!mjbSnxLTnjo}BySUhz*Tyq(f!@h5kd=!W*JI={$u&hrb%WttAT8JW2=Ou3J&h?fiw!^0ZiDxQC-P-6N9LMyWOO*1ON0Z%f3y=qfH!I0Y7qZ59r4fkusprU_1qpbvR6e43|(O{5+)@^t*5}yH8epPXX(Xeoq>U}=>Cl!uAk0gK)BK=MSK{De;w(D+s()XkXSvU&1(@-vP+=` -ML7kEcp11#bQ_jx1(e&zII4uLJ8IUgyU*~qX$&1^=}h7sIK)-9?02MMT>so72RlAQ=sS0(NAD3>k9zN -QV$2Sz(QE5f1t>#$Ur3CA|LJdH0tfPMewj(H3qcM_{6{;-`9czR=xrLuB07ymU1a -VM&c5^x;|QSmAUIVBL?s`H;~wsuUKo-j9$0c+ -BiohE5P>FmrsPox7fr?wM!LySkz)*|7y9tPi4mj-kG+RSm}Fp2^um>W@?)S0<(sK>c6rs1eI#jEXeA) -~w-k^^+sn+-je}8GYB-HD*T@&)GkZW-ET%dT`?Cv0)wSs6Y(;v^rZ0lcHB^bhx8NkjkNohPw8~KB)rs%|X0yb+@Zt0|0K37I4S -;LmynQ!&fBNn}{=_Uoys=|8iF$`;WVacHd~Z2jW(_`(NrYj9VmHp2ArS`)#({^x^9zYif#|^PNn>r;p -HFRY!4nwbsU?o7eEfmDK=XhC9gM*DIQD+;2_6XqkGmwx!~;F48gR-cloin{7M#^;K4HwneDusEV#Qy+ -{GH{AX<`ptf^brNyh5iK@q|t6*)}R?OfJ`g@=wh3fv4BJL{V(tn?5?^Q&#CcH6MbbnrPe7i3=dk2OsX -xD3etLLiBX!$Q{1}Cm(gDMVlk0zIOw#J_e(1Ot@#Z5$?ejuP&N-SItK%U -PSZx~^cCXx4v$p~OdeB&tM)fiK4q4R#m|K%2yjR&xq`fQRbjR$Wx(Ei4d*0)?8DRlfxz(0e2azwx!Si -Fq|;2?kiEn^jU)mj_qPIzOmZ3k=1Al_AN|4@ZLx_^)*J@c}o`1c`8kd$(CyAd}^#i7CjujF7>ErKeJ_7;hbtjW)_YziRi$?% -|!}QNI=+Gq_{_6d^vvbrHaw^Z7nF7iw%<+lLHftn38fWV-iPYZ(aDN5rQ&<4ZCwPdN(<$ZI1Gk)Dm{L -9Y-Q#Cpu~N=!@m7i_5IEllu5<^hK|{lHVT$3fFV)bcksjK^Uz^;`W4$-!L+qECG9gUu8hgQzeLU!*^y -HMo2c8+jfL@~9P#-W+Vq*R47cX9zVuL8P1mDyWQKvI$vyPG9fc1shQ~2*iR?vom7dE*2y*cGpAHRG2_ -|pp>{awX5cyto^xsh6^Dx4fKOLq>~)2a#B2lVf+osE!yhn>wZ1F)XW@W|a#dmwTdgV^FA<42Uj_^$|8 -{7A{B^enB?HGSe>!N9ri1C(>rU#eg5GlwSdlQkFoF2UKTy!hm#`D~UISu>lF93Oe{lSdPENS5e+<_d8 -9>}`y%iNywc@Iu?zGv;^tU?#-RlesV|;*mbQm~$6#fwQ`=lgUi}UOv2-yS+*_lCv74dM5t}4FJB9w4c -M!b8Fg7PWi>IwoVQ*oAP0ch~^{SSg6Bse22L;7XqM#)0B%c$KmZ~+=l4mnW#NF1)~1QBJyGKDc&!fdo -@vmRaqt%X*GHJfs}x$DMVeH%wa5zApgvV2J#y;1hNnezJ~c`)M?3+QnY=s-X~rq -@9Qpt&S?L-(;AZmBG`za@NNevaVix6I(x1Dh$6%Ab_asn2DE4A7;T^Pv1wMZO(wbo-m>%|#yfv~MkW@ -6){3o+5Gm`j!Px#X7!90k0h86HYGh6`mtkoz3jU`HGM4c$D;mxRD5z&=m@As98$71NZ9{M*tH&mQg5y -njWSU|~2O%xN9LT6B&W(mizEl!N(AMd-R$DY4D1s)4y=iky#o~~e4-Zrkh|7JL*#0_OVoJ#HP1d{_F? -0Hi4~^dy`IeD_=8D4%2Lu2!Sm6>syol6%V5ca0i12s%Gd -Oe~@$vH~Nu^L(hbgjYb1xQ&H&5*kHh`%@K=WN}sRne|5bQNT3nS2Er$uslGf6~jkqZ{&Uoneie-Pm!~ -&|KNFRk9-S{3v8hvJjWvUa+PDS5hYZRl9~a!udRX93dglxqyuwCBVUiP7)8`ODw(Rib)~4TPl;@n@A*Wphw)) -k+gh25+9+?JFlw&Q$mQ>gRqX_JQ7U-px8FMW*6-*8D)U -THJ0#D3LSo-O#Q`mi8t@CiSyLE44&+tPzS~<(lfU&hx`6_7r*_w%C^=*{A%2@JqSbAiJgCx -*lO2IqO({sOI@X>R_Uy>$+~)4x*G;x~q~1_%BjLytQA)Fjx-$nmOcjY-dH+>M@(f2&{)kyrIH@xo$af -$TMdV_UEvPaj-fSW`Op1G9$bnxU5H_|MC-}v>DIuEskCD94y0;oUQIGh?6I&Z|IuxT3;~Ud3?vb>c4N -9i)j2cFpdLxG~(KxB?Yx)*8K##z_$1maQpX#!(uklOxTHMEJZ;5DP^DKSmGpP3Mxw9f#9eV;h2H=-t- -)D%rBVD4-a#w{RY}7%xaT@Y`v}*LZrak4&i7kpXo|*@}Q)w0)r~6W$sZGbSy~yCmH&Kp18Zz)VvjqOe -9MCP)Ak1)+pqitT7QtyoLB&Q7Hn^{3fbbVdGwk`l?M4s{%R{bm -;N3_3$2OYInVOb$M&YV>b_$!Qv6oRH0*3I=yUA|#NRB;|fejOO0?Ag2WL!3TFh4933~x;Y5jh3OTS;Q -r_WcQmY+6JI%)Y|74Hh(Bk$M>zX+L(z`EV^#C{0GmjV%Mx#&2e0SzP=mk(DRKkAB_Ex#4L5n2E<0nBs -`Q7(5TXklVtKrT0ss_#3dW-F`N69UYpD;8xPF~zfKWPPiP#E;`?0)LdC7%|wOi%d-{w$aEIM8=#VqHEqLX9}DF#3+N**3y45ErV7Wy?2MiW*H>G$^tG2-97F-F`z6r45@T -#rvw1Zpc0|5clt>v*uH2)^hWotGPmMD>LujS7HO1x$8loUt2R45stYKx4<1J&iX^cqz&e?81ig2~Oj* -WKKyoK1`p#a-W~lv1pCuYMg@}=Vh1ELSma->mHY->#B(DEGG*+{m39D=b+aixWf}*tG~z4M@!Y@+r|M -N_}6z5JBeUX(7;AGO@%0VAD)kF{F}%h$6-0i(_Y&r`PstqY?^zM58Uu#=|`FUm|U@xTxdL{35FbqRs- -XrS4R#aWi*(?>dCeL(l?^Hn9Ho#_pG7>c3eJ|l6$?osXJk6v%7bQ(Dv=Oo$~Vvw#*qh9h6PsDuH(S9l -M>4zsXbh^S6JN$xYNdktzzlw#W~17tMSwvjch7fb_g8%GE0x>=(hkmwnbDbFK@NGSnEE1`tT2S`rkzS4}G-nBRINUzmnvK=SM&OgXsT@h>iq -#7}=LP*JLU`RFA(petmp?{QpFg_hOeZaED$d&muUW@5QPh)m~Q}9Rl{$2|d(F$C#f>$T5lRoEnJt9^q -~7c;^g7S+RngE2Pr=Hr>`#Hs=B3f^WY1(Iw<@o)7qp%XXn9Y$uo1bezE+d&nl*dWm?WyE>TsT|am0&J -Ggvu!&T6Hg>tgegbCT>z?2#v#ahzq_$KRz_o_y0EIU#Y3F)x%BlU+C?`cafQ#`|GU~-4yf --VX`l3Y>Dz^VWt;xTb&F#C+zLU75SNKhgNibaC99U#q-Qh -EXd8Ed{3|e7}>wzg9{btZjSpr6q~3iohZdzSje?9sjtCdtG}i{Xx<3^z44MaBmq)4UwP~mL(8LKbeKSD4(-61*J#3%5La-Dz2LGFVY|08E0|w33|%BIG)j!H$I&6vcX$v^K?UZ{o*vkX~na)eNC -U9iK=~Ggqu|2THD_?0eOfuDfLv|1@p4!uj{nPHf=6tlmQ1-bYZ*qD<0mR)ng?G>(!2hzn9;2i8EKQLd -D#!7TtI7$YfB8*yOmUxsMLhOfaC&Wmc4>WYS-nGK?|Hj@h6w;SHvuzXx3hz{US}Tm|qzCZ2__Fp6+z(nm#BpiHn=E{1_>cll-AKeY#g?~subg>t4;sq4LQGh?nth$ -S*`fqwnW^|dwl#Qd&8-$i(}r)6X*a#|VTS}5lqq -V-IJ_}x%J3+VlCSDj+SA@pW97=@o&0W>oe?SwqCCXV=)l+G267)iIH-Tum{~?*UYFEp#163am_^@;o9t;&~vwwS-xV2K~O!zbrsxe$W -hl5I`D=VX6c>AHg@bBpu!NPSNq805&aH@zQM@}Y)k4d;bFuVidyOAoZ`;6+fC0(%$h?sc~?g&yO{JQi -9{aFgQ)p%Q+Sdoua=)Zn{anyti~jbn$dDHQBRV`$>aWefw1W1LhHiopy~|kOyq|nxHE0HtmY^T{VauFb -F<@TC=&Hn-_nH%<}xk357aE>uU1IP>TQ9(OVh+_K-hgvUHKSKpOco%FO1-iSg2J?zjcHe6oLpNj|Fgm -T%o@6aWAK2mlUeH&Q*z-+GM(003MN001Na003}la4%nWWo~3|axZdaadl;LbaO9rbYXO -Lb6;a`WMy+MaCv=K!E)O+5WVv&Fv)l*CAMPAvg3FrxwPrD(@xuIa*Hz%L_!i`5?}z(w%X}e^w3Mcu3y -r{E=WLfQXOn!_hGTvUAzUJvXf^gtTMIIn`_ql^~qI`6oq~A%kMP4UOMka`5>6#njcEA06;Ltt*n)WZIvGp -e17`!E0bnkiq3e{F3zsLYWl{!h_>dZr$zD3w32qpw&G5*wr{)wuPIQldtI}Y@mtn+owO%7Zp=M=R>Db -kC#{2RLlo8p#3qJUSjj{aVD*fB2LX~4isK<$GjqFKrqM4yh7p)9l3wf}rCN7Oqj*Wm^{8Gk5lI4p}7sf5U=nb0 ->()~UrD+#rVigXp#b3jzyJJ|Ea9FiD}|T!=+m6`5$eC&m*Xz9(OmR?YpjA)s5{9OgfW=@vL*&NExI5p -Jj7ULv6!D;1Px?Q`lMteNYgJd$ijLhnj98I3HUMqv9384O+XEGekj7RdW2BP+!Y3;fne3)c!u)IgEL3 -JRLg-@NF0mow|J5v2D5mUPe;$fI@Q)FsF=~zIi;mFce3Vi_*$W1iw$NJg)yBc8j70*%;7f=(GzcK6c_5CJ1S-TenbPchb~@zcn?}JJ?5(xNQeqaAn3bq`Jb=M63S2ec7CeOZ7s_)En}MHLkH(b?8Rq9Tt(&rpYSe0hjaK+Tx6PR -BZc4eEes5*{P3OS<6ErN5jO1-uU#TpE<0Os~XJ -P_++&cEYoq^ThJtGj>wZEWPN#>{A+Ey;%3+9q2KHmJfqP*10v}`Yi~j&nO9KQH0000801jt2QV5N;-+ -TlB0KE$U03rYY0B~t=FJE?LZe(wAFLGsZb!BsOb1!pra&=>Lb#i5ME^v93R@-jdMi71HR}5?fqzsBh- -wLBHU^ponAW4hDK^`1KT#+Mb<0Y5gU0M~2_S-wN%d2d;tsdf#d**iL%q-7gd9j2-m$KeoLhClmANWla -ot>RU1|M6r&Sut`ws5UM8~y$K7e#M{6EK3n?Sz9y@6o{Ty$|m(+8A9?IHj;~Qr8w_)oA13S5u`BK -RT1ik)7`DKwecwaRNE3BObp%hf;cDkhh*Cpr%jR^wgf74bI9`yu9el^t} -*&amdIy{d0R<`l_f~X;hO9p@IX-w0{+oZc36Vbutw&c0@)01cQ`fy4CP#{(Qr4=JK>@!PksjC%(2Jb2 -fEZ(l;;%KBt(r9b%BdKPrJG}e8SHGQ%xVtcsM#4K;FS#QVE5wose~)eM!>ws -?uu;;wgbWvqp9Jc09{961)J(zpVj_1aXb9|G%r%qVmRN_ujPFTCoCXRar%e@LOCamF&tlAI-+`IofBW@Rg^PsX -6LWa40AH(Be)wxrw-eCPZK*#Mbwf{ -#PzG>OYhs-ww~w!cskf11MlPVRsH@Wkp4ZU;Cjdo+X{5udahZfq2+e^P1b;V4(*4;R7*j{4C;Ew3>xEbX%qW -4ti~~@^#@i>+wGI_sEq$9}imE|H+s@>Y4;YaCy}|d7s<1mH*GDz- -r=>ax|R7j@MNzr;a^trgiLej->6_p(zm>(L<36k2#!8KKs4{00ENHI6ZcMonISEB=7({JiHrE+hXVbj -+o_fl3k2NUCnnMilhOoi376Ec3WdrC1gDRT9fmVAG_!74tfqRY{(e -qFO|ihzcp{QpVyssTN5ljuq%F^EOJ$9GlGRRLt{2$eT(QS(L)$va(*T5LiId+DewIyr^*2a#l9qvI_d -7$y7f{a{VbctqQ3>mHF&aR_0q()U)Q>t?5w7yc`t-^^qISlSj<9%fOMT*(lo3KI~3`#K|(E?|I>nAVl*qaG0!r_t;ZrW}_rx8 -(`|Olf=cOp=U|9MTT!G23IQ)(k;6T17=E!$noC!Zayi4@(j9GyEDZWCRQE?dfj``1`5OE0}g&q|^%*a -9hc8ggXIGGxhpHRzO-e3A~|R_~ka7-mapuq|SAwyGNzu>5c?0>p~V`b-O~4Ng1wgA9MkPGP_EOJX^}F -vWIe?e;ch<0Ci~Al3zj_vp@9pLsW$LI*f6jxgnEOT{LZ*nQEol{YiFa_EMUbd+61X%e3 -uzZ&V!-w8TuMSVdMEG8i$*P!nBjJ -Vo3EI3keEIC`)oJ+rS@`wY>ld#M!|$G*egn;k{DNzwC*NxK-J9c6g!Z$C1mKOu<2`_fpG)}i@Zp1Bw& -0k~@gN1OG^&6Umtryz9!&7Tfj6ebZELO}B4=BKItv2+_X8{_zb=Vw01p(rS;_3r^43>hzxngw-@@l-$H#}SPs6j5!{bqB&V_f9&nw^!^6j_DtjJ6F_Ew? -$?en@QfcU@Xjd**c#ua*Cpcxz1w)hUW;4nklgCkL=v6xD6eE7%kJ88L-u15K4G>|0vOP}#m>}CAG -0n0(uwP->tSf}Z4!HPau<2&hd}>XUO7mIoidN~D4#;8+hQ4A;xV2r1&|exH -GBuYFq8Ps0^>bN^I4QW^%RalC{S;DiU*pziztif`78%IEmwIK+Z(biW>J=B3H0IifqB*5C+B-mu0S~Y --j^16Zv#fI)w%#<*AkXm%@)9$09|u;X|(RL84Lw5$TSdq*(RIqOVQKEx4|EI|G1m*L%0XU+KgZ(GEEEk&VF$@_8&G~qaO~>wm -6|U6Sk1)X6c}qJv_5L+hdP1?ir{$Ft2nA;Kqi1%q7{m}GcdPSY)61rQAD_07Y=Uo2BK(Bx(w!J6;(cuIRwQxER&Cx_`tty@lA -Av9G^@Y>HvV?XaYejlZ*rfEkH2f5whY;Lfa~D0Rl^Ko)k+qJS#L(soyoIWjUxx(4}4>51l4NR$#%(pv -`2wsbRHwfGxVbMO%Uae(?QXW<1b#E^bw`7%jYj+Ouj$VTz;$&UVlbN?GH8AVd=aPzyk0YFUIU9Ro+Ym -RD#b;G;F*2q!qJsg#*U3@jIoXu^r`lRySW^F~mJm383K=z_XKGweMK1p5b~TiCG(w}}rpiR@Xm4vveI -0IVM4D-aI?urd^J!o1QH*=-@0`4vok-Mj#+xYW{F8;F~J?W<)~b=nMj4}B%mbmPhEVIO&by}BpRR~j4 -`d~eu<8@K42@Cq6ZOkoAvh6^k6B@nnwiWsP&s_D$4EnS1Ag4W1FW`;ak&``exGc`)nTU2dP;sF08>WF -1IE0R?OC`=R3@5&0)EZP#J(>9z8&Ma_jI+$^ud6l?C)#;i~p+2`T9?UC8DG2I6QpHDEAZf%cc&S8hjo -SIyqRuX{J&pp@)H$yX&w(Z3*+u5vJ+?htVRzoZ*IJuiN_puGSru)K-aqoTI3cC>=nZxH8vPycc@bR!Y -5^Fza58d&kv7i!vIC|=Tn&7J0w|RL9vDJrxAk8hU`roP)4{N}K}YT=THQ1*x|(osgt1(JpLn>|tiKWUn|Hdun^HQK(G6nUX|vNIN3Ae{{>JW^FsiG -CUl%DTxlvNeP~yDH3F)t0B??cPVVG6D0y;tfBwZqLkz4^M0AQ?h(g2M@#pBV@C$X(G!2sssd*nt^h7p ->MP21k%#_!RZVYk*q_)VA5Q0Xw`<{sX!yFdTp1?W9O{b5L}m?OipoLY)1onz6gPWxu)%SgP&f4)PHA# -MLwYxGsrsC|wZM}xLz*wT9XjwQ5ZR3hL&-mKu@!|^U)Ev{RM$@9-ZWm(IEz5PcI#qWAR>24RGB-B&% -^X{(7`L5>M+`Zi0fBf*#8ry8E&0?E%f)!EvfWe+K>g*OY=`@%EC%Lp86wjte1u`mt%dp*6AmyT%g3WH -^i6LzQ-pk9|6E6~&g!W_ONgdh)BhOz6ronnSl|^Z&6DF>-Bo^K8lX(!psl&j=`}ZP7aVji9yRDRCpvU -iMi$Ehf0C~GeK+MOvq}6EssLm3E1Ckq*PT&>I63NQ}78=ZY>Ww{n=}D=@ICC6m)xy5jS$_;-i6i-5RL -+vb@|}=jJOTU!YO(BJ(f!DMwO(gp_6PmxU%%OvVSpSBm}UY85m;f%N>xkY?tLdo+3={?0_|MD!QLg4< -~lFB$Aub%xWoQl0~TgZ+)M0tMU7(jzG|reyc_AR2k*K%UyCiR*Zqz(>7q3gQ4j{L0g?%VSo{i2jI!id -0v`BKh)^OxCB~dypzInpFoMyimZ;!ahY6qAAu3iI@hMW$f1%^g>u_s&y|d5npW60?A~DS>5i -YG1|DzQMFm(!0?8A=<7zr^QoYJS`W9ba+gUw+6$Zbh$!**;sW1NK*f4~arW^<4^XvT@9L`H`AiZB35@ -SegzdloCH{H$r#?1wVHZ9wYtNH=Me5$45&Bx(s#BsG1RJoBoJQ}xt(S3Spfjg5^nPyzNJDMR(KXBM4Zfu>rK)d2pUtX|r^^&o0O%G;wm28dk@VfdSdLFUN@oF -*n~CkcuAd2?h`#zV75)pA8%aZWTqZ5uzwNuitr=HzIFM`M_<2fat)K7-c*j9qUyv~k$lMHis8zRpMn8 -|sbEWMWK|$a5F@N%YU{d5(7|^HJ7hGLcTDeRTFsbO^UJ3$nK4 ->mTE^JPjA?Ol4j^`vZ?$8Mb>?cU)N3Ss${ -70~k?)$B#y)wxD3|aC>35XU&0LluCIc5X&TvLFNka7k-6Xs>2*$mgUO`OZz8TF;qn19duHqj1kH%|c;kI{vw5X(BP67(Zh$r2|6oN5LJhtPR!nC+Qha2r@uab@D(r= -+2&C-R)RBzk{v -pO9d>375_}(#IZJpO3+goJ{!h&i`MhQB#=J!+#iEII~HmBg%|0I* -3%z?X^1c*5h8Y4w(s|ZZ7PhcFz=7v*yB?}5vA!fMhgc408gkc=m -6?_luz9w=&TOqu?hq;Ij9Bw-1BBk0`HekKY%#WzvloVb%-q{%^`VZwvl3Dpn>`T&e8vALpZvv!XIV81WqR&2mS$p_3#NN}-eS44pIZo)ERvG?<=YRb~D5YDw -?VLzh0lRjVDUoVOj+Gf9{9{auD5DhFg`%$R81ILHl3;j7bIIW?MVRPKP1V#WL9wnl#62zY>k_^DbeTa -#)CmqJY#`aFPQA2CnPk><(GpM?2pj?h67SbPQ8M#B?K%71-R{O0hAZo?iftO4S4%MxYXt_$;Q4s*lE^f~Bpm -7J!$8Uio^aTDw0Q_y7!q5;fOM7IY_*!WB>D3LgO{akq&F>cXua -Plm4q74%-Ecr|)`dF}Z+N{Zso60o5#!UHU6w2x$)pkBd+mb9mH=Si$Wn?hc;=IOugA!QcLJL0}+dNY% -&aD1${BFWTHeU9ji9n&wDO8$I3f3tF7`GpO@z{;BAwz6VF?xU%w>n^t_gnb$+Pt#SCrt(^HymLHZ)iU -q;6p8X?XGrCBDprqB@Tb~p&L>siMh+0WThjL9E-$r>iZ|4GUrs!K8%}J+RDe&40e$TeT@X6xaZpuKuS -5mwj_~R3>i7ZZ}7mucm`Eg`*Z#rXdbP;Dl}M#vHB?VL~$JIv`rg9BfD)Mwwh%t6!oER6Se?NV5rKX!4 -eW>;B;uFFc#>1Q3@cBQ(7R1o~=!?QEeW(_;yg@T>}(A(#?d^~G)0MQzWTR|DAS(N#8D^JT -In$@B=Ng3`wCdmu_(%g=SD}?2>Q@($2UG#7m&SCVcEIb5u7o&enik1`8ZG3|WdSI^(3A -)uq1L!@%8hbON~LA1K$gVo|VD(0v%)=ZBmJQ%4LC^8BN^+nS3GXA{xd33hxO -Btthzvm1;3LAH4P6-S>mfzZ&Alr|*DyU`}H>q11AMwko2FWwZ$xV@d)0(g5EK_GX#(!2I#a+ppjaK-J -sPGe_4m<2TCC(L>Cu~cSg{WIrCNqLhg1SIx9{ -_$dw(s8EUjTI)~#GUj0rQk%LK@;fLTb&erVkdu~$4|ASI;|VlPm@@cLh}@`oe+2-NN^G -hS&ibCQQ>>QR0?Ws6M20Hl`~G>o1RkYuX69rnf-6aH5ZYRg%A;fhhqP*xpB-TNZ2;qoTT=OM5MP_WGq -ND2O6GUy~+v^#(d2V28wr3Tlq&d04j8fz{(x+xaU+|Szse=Y#mp8(0)iF24$0E!fl?XcIB>Dz8wSlVo -pxh9iMsg6PUiTwYY)6?$+U-2Zd7W5o|a%|Ibj|AvZDr}>nL%)W|OHTFEIoSBlbEC0#w+)W&HK$_(x3H -fzLwbs%d3~gBqOth++%(l&Kk(iT1{Nqx{w6pZ*WewUyxDpD_>14~?0fo_2uABc{!^Ay$oI`)6)M5Xr~ -Il4b5ks4cS3yx_d%sdw{otp6oJ{YPVm5XGw9ClX}V1$NJebaT7W`v&@7W>1=o{T>O;4gt~%DP4yJDaG4>0u&gRGl5h-RuC;?2Szn{h#C -y@Cgt`_WUL&I`+-*0ges-b@E~e%5QsU(_h=d@&$TIx56vLP5_f}kZJ)_+(}#Nz_n)W^SBUUNz2~3;z1 -fD%xV>Ws46mAO5O+nO1)kw@y5WZVF^c)ZHUR)N@W^!Rltm>=lo7;~AU?GFO{euS -&zj*ZDkAJ@tguf27O0V6n&FuWTNE$A2mhH%L7Litci(Xrdz3WHXFGcaph?dpVe=z`!ZN|%0NziaQu25 -F8Bas@81ROGX5v3|2E!%l^^8DzCEnpS?)&a+LXB|VrC1q$QT8Y1BNwx%MT3|+@zds@#Odag_`+`-?sy -t8Lo$rkg8iothjXf4abg@!2Ni2e-jMA)Lw(r{ZUJ$_i=Gmga+5rAyB=#Q-doKo9nF}2doE^|q3h@W(^ -SZqm3-4a(4a7aMXx-?6<;)NrF3oj^)X2ce10@;U9E{(&v+u2zVfBWcu=;PU@3*;+*4